Class (full) name (path). Once deployed on PASOE instance.

Posted by OctavioOlguin on 27-Jun-2019 23:39

Greetings.

I have this class:

USING Progress.Lang.*.
BLOCK-LEVEL ON ERROR UNDO, THROW.
CLASS procs.ven.AppS.pedidostransp:
    {procs\ven\inc\ttPedidoTransp.i}

    @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false").
    METHOD PUBLIC VOID GetPedidos(  OUTPUT TABLE FOR ttPedidos):

mapped on a service that I export and deployrest correctly (I guess)

and have this oeprop:

AppServer.Agent.transport.PROPATH=g:\inst\transport\openedge,G:\Progress\OpenEdge/tty,G:\Progress\OpenEdge/tty/netlib/OpenEdge.Net.pl,g:\inst\transport\webapps\ROOT\WEB-INF\openedge\tap,g:\inst\transport\webapps\ROOT\WEB-INF\openedge\sch

BUT, on 

http://10.101.102.151:8819/rest/transp/pedidos

I get

_errors
  object {1}
   _errors [1]
       0 {2}
          errorMsg : Condición de ERROR del 4GL: procs.ven.AppS.pedidostransp Singleton la creación de instancias de            objetos terminó con la condición an ERROR. (16819) (7211)_errorNum : 16819

I'm quite sure, the problem is the module name in the class.

found this

https://knowledgebase.progress.com/articles/Article/000041655

but I think its a little old.  (there is no "@program FILE(name="<class_name>..." on the annotations of current version)

Question is... 

Where  can I find the info about the correct configuration, or how to manage module names, and program's .r file position on the directory tree, for such a class to instantiate correctly on PASOE?..

TIA

Jorge Olguin

Posted by Mike Fechner on 28-Jun-2019 04:21

The class r-code is located similar to a procedure call with relative path. So the parent folder of your "procs" folder must be in the propath and procs/cen/AppS must be a valid relative path.

The answer to this question would be easier if you'd share with us the absolute folder in which the pedidostrasnp.r r-code is located.

(also English error messages would be helpful).

All Replies

Posted by Mike Fechner on 28-Jun-2019 04:21

The class r-code is located similar to a procedure call with relative path. So the parent folder of your "procs" folder must be in the propath and procs/cen/AppS must be a valid relative path.

The answer to this question would be easier if you'd share with us the absolute folder in which the pedidostrasnp.r r-code is located.

(also English error messages would be helpful).

Posted by OctavioOlguin on 28-Jun-2019 11:41

Sure thing. Thanks.

This is a code that works on a isolated client (gui.bat = G:\Progress\OpenEdge\bin\prowin.exe)

// propath defined for this procedure: f:\oetap\sch (so it's on f:\oetap\sch\procs\ven\AppS\pedidostransp.cls)

USING procs.ven.AppS.pedidostransp. {procs\ven\inc\ttPedidoTransp.i} DEFINE VARIABLE myP AS procs.ven.AppS.pedidostransp NO-UNDO. myp = NEW pedidostransp(). myP:GetPedidos(OUTPUT TABLE ttPedidos). FOR EACH ttPedidos: DISPLAY ttPedidos. END.

(it also compiles/works with DEFINE VARIABLE myP AS  pedidostransp NO-UNDO.)

on PASOE, there is 

[AppServer.Agent.transport]
    numInitialSessions=2
    PROPATH=g:\inst\transport\openedge,${DLC}/tty,${DLC}/tty/netlib/OpenEdge.Net.pl,g:\inst\transport\webapps\ROOT\WEB-INF\openedge\tap,g:\inst\transport\webapps\ROOT\WEB-INF\openedge\sch

and .r is located on : .....

That was it....   thanks!!!!  (there were no .r file on procs/ven/apps/  folder)

Note for future me:

Object position on the folder tree, should be relative to class definition.   if class says   x.y.z.class    the .r file, should be on  x/y/z folder on server (relative to propath).

Thanks A lot

This thread is closed