About appserver apps. how to...

Posted by OctavioOlguin on 15-Jan-2015 18:19

It's very embarrasing for me to ask this, but I spent few days developing procedures to gather info and prepare to send to an appserver, and a program to receive and act upon this info (this will be the program executed by appserver brokers), and now that I wanted to check how to register this procedure on appserver to be executed on call from remote client, I CAN'T find where on handbooks, manuals, and even docs from PEC, are documented these steps..

Can someone point where in hanbooks is detailled this knowledge?

the DAAA courses from PEC won't allow me to understand where is the configuration on the appserver side, where should I tell appserver what procedure should be available to clients (deploy app)... 

The 11.5 documentation don't mention Partition anywhere but twice on webspeed chapter.

I feel really confused... and old...

I appreciate any help.

Thanks.

All Replies

Posted by Matt Baker on 15-Jan-2015 19:03

This is development guide for 11.5 appserver

documentation.progress.com/.../openedge115

The two you want are:

This is PDSOE online help for appserver support which talks about publishing code to appserver from PDSOE.

documentation.progress.com/.../openedge115

There is also a nice task map here with getting started videos and walkthroughs.  Unfortunately, there isn't one for appserver.

community.progress.com/.../1165.developer-studio-for-openedge-task-map.aspx

This talks about setting up an appserver using openedge explorer:

documentation.progress.com/.../index.html

Top level help guide for appserver:

\documentation.progress.com/.../index.html

There are also a number of .pdf from various presentations available @ pugchallenge.org/downloads.html

Try this one which has some nice screenshots of PDSOE and appserver setup.

pugchallenge.org/.../254_Maximizing_Productivity_With_PDSOE.pptx

Its fairly straight forward if you are using PDSOE since it automates most of it.

You don't have to register anything with the appserver beyond making sure your r-code is in the PROPATH.  You simply define a connection (connect statement in the abl) and you use the RUN statement as you normally would with a modified RUN statement using the "ON <appserver connection handle>" syntax to have it run.  

General steps:

1. Develop your client/appserver code.

2. Copy (and/or) compile your .r code intended for the appserver to a directory of you choosing (pdsoe automates this)

3. Using OpenEdge Explorer tool (web application...you can access it from start menu or from within PDS.  Normally available on your own machine at http://localhost:9090 login: admin:admin), you setup the propath to include the directory where you copied your r-code (pdsoe automates this)

4. Setup your startup parameters to include your database connections and what-no (pdsoe mostly automates this)

5. Start the appserver (pdsoe automates this)

6. Run your client code (...)

Posted by Matt Baker on 15-Jan-2015 19:15

Ignore the concept of AppServer partitions for the moment as you are just getting started.  

Think of the appserver as simply another AVM where you can run some ABL code.  That AVM needs a database connection, a PROPATH and some r-code to run.  The AppServer can only run that r-code when requested by the client application so the client application drives what gets done by the appserver.

The AppServer finds that code the same way the client does: by searching the PROPATH based on the RUN statement used to run the code on the client.  No difference beyond small syntax difference of the RUN statement.

You setup the propath and startup parameters using openedge explorer.  The PROPATH and startup values for the AppServer are stored in $DLC/properties/ubroker.properties.  Best not to edit this by hand, but you can if you want.  You can use either OpenEdge Explorer (OEE) through the web interface, or if you are using PDSOE you can setup what is called a "launch configuration" from within the UI (check the links I sent before for screenshots and concepts) which provides a subset of what OEE can do.

Once you have our AppServer setup, you can then copy the needed r-code to the AppServer where it can find it in the PROPATH.

From there, it is just a matter of running your client code.

Let me know if this help and if I can answer more specific questions.  Especially related to PDSOE or OEE.

Posted by OctavioOlguin on 16-Jan-2015 07:20

Extensive answer indeed.

it takes a THAAAAAAAAAAAAAAAAAAAAANKS for your help.

I'm checking all the stuff you point out, and I guess I should ask change of product from AS to Pacifc AS, don't you think?

Posted by agent_008_nl on 16-Jan-2015 08:10

Check at least --

Kind regards,

Stefan Houtzager

Check at least community.progress.com/.../15364.aspx  and decide for yourself if pacific AS is interesting for you. A first succesfull experiment costed me one morning using the docs.

--

Kind regards,

Stefan Houtzager

Houtzager ICT consultancy & development

www.linkedin.com/in/stefanhoutzager

Posted by OctavioOlguin on 16-Jan-2015 18:54

Continuing with my endeavor, I face this:

created business entity on a table to obtain json of record and send to appserver.  I've trying to test just locally, so I have another table just like original one, but on the appserver side table will be  named different.

on local dataset's json have this: (table is named Ticket)

{"dsTicket": {

 "ttTicket": [

   {

     "Almacen": 42,

     "Articulos": 3.0,......

On appserver's database will be named dwTicket, so the BE (Busines Entity)' DS  will be named  dsdwTicket.

When I issue:

DATASET dsdwTicket:READ-JSON("LONGCHAR", LcJson).

myTicket:CreatedwTicket(INPUT-OUTPUT dataset dsdwTicket).

To get the record locally, I got error (15375), as

{"dsTicket": {        wont match the   expected:     {"dsdwTicket": {

(dsTicket is the one sent by remote client,  dsdwTicket is BE that will use Json on appserver side.)

Do you think is some error on design of application? or sometimes is frequent this kind of situation?  Is there somehow to  overcome this?

I would like to be able to do this way, as I think it is not easy nor desirable to maintain system by modifying by hand the json.

Any advice will be appreciated.

Thanks.

Posted by agent_008_nl on 17-Jan-2015 00:50

Architecture is not the best group to put this kind of questions in. In openedge general you could get more readers and answers.

Posted by OctavioOlguin on 17-Jan-2015 11:41

I got it... serialize-name is my friend....

Thanks anyway, and will take it on account!!

Appreciate it, Stefan!

Greetings!!!

This thread is closed