Adecomm Library

KMoody

Member
Progress: 11.7.5
Server OS: SUSE Linux Enterprise Server 15 SP1
$DLC: /usr/dlc
PROPATH:
/usr/dlc/tty
/usr/dlc/tty/OpenEdge.Core.pl
/usr/dlc/tty/adecomm.pl
/usr/dlc/tty/adeshar.pl
/usr/dlc/tty/adeedit.pl
/usr/dlc/tty/adecomp.pl
/usr/dlc/tty/dataadmin.pl
/usr/dlc/tty/prodict.pl
/usr/dlc/tty/ablunit.pl
/usr/dlc
/usr/dlc/bin

Prodict extracted directory: /usr/dlc/src/prodict
Adecomm extracted directory: /usr/dlc/src/adecomm

When I try to compile a script that uses the following code:
Code:
{ /usr/dlc/src/prodict/user/uservar.i "new" }

I get the following error:

Code:
"adecomm/adestds.i" was not found. (293)
/root/scripts/dump_tables.p Could not understand line 19. (193)
/root/scripts/dump_tables.p Could not understand line 203. (193)

What am I doing wrong? Is my propath or DLC incorrect?
 
Last edited:

Rob Fitzpatrick

ProgressTalk.com Sponsor
I have an adestds.i file in $DLC/src/adecomm on both Windows and Linux.

There might have been an error in your source-code extraction. Try deleting $DLC/src/adecomm and running extractpl adecomm.pl again.
 

KMoody

Member
Okay, here's what I tried:

Code:
cd /usr/dlc/src
rm -r adecomm
./extractpl adecomm.pl

I got the following error:

Code:
Invalid option -extract for memory-mapped library adecomm.pl. (8949)
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
Interesting. My adecomm.pl is a standard PL, not a memory-mapped one. Can you do a prolib adecomm.pl -list in $DLC/src?
 

KMoody

Member
Code:
/usr/dlc/src/adecomm.pl has an incorrect version (found 7 should be 11). (1945)

We're converting from 10.2B to 11.7.5. Is this why we're getting this error? Maybe we have the 10.2B libraries?
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
When you get that error, you are looking at a pre-v11 PL with v11 DLC.

Are you trying to use the v10 DLC source or the v11 DLC source? Make sure you are in the directory you intend, and DLC and PATH are set and exported properly. PATH should contain $DLC/bin.

Some tips on working with multiple DLCs on the same box:
  • The two versions, 10.2B and 11.7, should have separate, well-known paths. If you haven't already, create a consistent, predictable path-naming convention for future DLC installations and stick to it. If you install a lot of versions on a lot of machines like I do, these conventions eliminate a lot of unnecessary hassle and wasted time trying to figure out what's where.
  • Create scripts you can use to easily move back and forth (by setting and exporting DLC and PATH). Run the script by sourcing it (e.g. . set117 or . set102b. Here is an example:
    Code:
    # set DLC to 12.0:
    export DLC=/u/DLC/12.0
    export PATH=$DLC/bin:$PATHEND
    export PROMSGS=$DLC/promsgs
    echo "DLC : $DLC"
    echo "PATH: $PATH"
    In this case, "PATHEND" is an env var I set in /etc/profile that contains everything I want in my PATH except Progress stuff. This keeps my PATH from growing longer and longer as I switch back and forth between versions in one shell instance.
  • When the DLC installer prompts you to copy the Progress scripts to /usr/bin, say no. You'll be better off if the specific DLC binaries you want to be in your PATH are there because you consciously decided they should be there. It also makes uninstalling an old release easier, as its bits and pieces will be in fewer places.
  • If you're feeling adventurous, configure your shell prompt to display the current value of $DLC so it's never in doubt. This is left as an exercise for the reader. :)
    Here is the prompt on one of my boxen:
    [robf @ sitdev] /sandbox/code/robf/analysis/ [1](11.7.5):
    It includes login name, hostname, FQ path, $SHLVL, and DLC version.
 

KMoody

Member
Thanks, Rob.

I've just confirmed that we ONLY have OpenEdge 11.7 on this server; I accidentally copied OpenEdge 10.2B libraries onto our 11.7 server. I think that's why we got that message.

So! Now we've reinstalled OpenEdge 11.7 on our server. We have the following libraries extracted:

/usr/dlc/src/prodict
/usr/dlc/src/adecomm

I tried compiling code that makes references to adecomm, and I got the following messages:

Code:
** "src/web/method/cgidefs.i" was not found. (293)
** ./adecomm/_runcode.p Could not understand line 110. (193
** "fn" was not found. (293)          
** ./adecomm/_runcode.p Could not understand line 723. (193)
** Unable to understand after -- "? cObjectType". (247)
** ./adecomm/_runcode.p Could not understand line 723. (198)

Am I missing other libraries? If so, why weren't they included in our installation of OpenEdge 11.7? Where can I get them?
 
Last edited:

Stefan

Well-Known Member
$DLC/src/web/method contains numerous includes including cgidefs.i - I suspect they are only installed when you have a license containing 'development server'
 

KMoody

Member
Our configuration:

Code:
         Product Name:  4GL Development System
         Product Name:  OE Enterprise RDBMS

So why wouldn't we have the web library installed? Is it okay if I download it?
 

Stefan

Well-Known Member
Our configuration:

Code:
         Product Name:  4GL Development System
         Product Name:  OE Enterprise RDBMS

So why wouldn't we have the web library installed? Is it okay if I download it?

I was referring to OE Development ServerL

Code:
OE Development Server <---
OE Application Svr Ent
Client Networking
4GL Development System
OE DataServer for Orac
OE Adv. Ent. RDBMS
Progress Dev AS for OE

All source code is released by Progress any way - see for example ADE - OpenEdge 11.7.4 Development Tools Source Code - Wiki - OpenEdge General - Progress Community

You can find the zips for other versions there too.
 

KMoody

Member
Okay, I got it working after downloading the web and wrappers folders from the development tools source code.

One last problem:

I compiled a custom program called "dump_tables.p" with the following environment settings:

PATH -> /usr/dlc:/usr/dlc/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/bin:/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/bin:/usr/dlc/bin
PROPATH -> .:/home/bcstuff/testing/src:
DLC -> /usr/dlc

dump_tables.p makes this call:

Code:
RUN /usr/dlc/src/prodict/dump_df.p (INPUT "ALL", dumpPath + "/" + databaseName + ".df","").

When I run dump_tables.r, I get this error:

Code:
** "prodict/user/uservar.i" was not found. (293)
** /usr/dlc/src/prodict/dump_df.p Could not understand line 121. (193)
** "prodict/dictvar.i" was not found. (293)
** /usr/dlc/src/prodict/dump_df.p Could not understand line 122. (193)
** Unknown Field or Variable name - user_env. (201)
** /usr/dlc/src/prodict/dump_df.p Could not understand line 196. (196)

Why can't it find prodict/user/uservar.i?
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
RUN /usr/dlc/src/prodict/dump_df.p (INPUT "ALL", dumpPath + "/" + databaseName + ".df","").
You are running the source version of the program, and what it needs (includes) is not in the propath. You should be running the r-code version, implemented in prodict.pl, which is in your propath (should be /usr/dlc/tty/prodict.pl).

E.g.: run prodict/dump_df.p( blah blah...)
Don't specify a fully-qualified path to prodict.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
I should note, as this confused me when I started, that there are two different prodict.pl files. (This also applies to some other PLs for which Progress provides source.) The one in $DLC/src is a PL full of source files, so you can extract and view the files as needed. That code isn't intended to be run.

Then there are $DLC/tty/prodict.pl and, on Windows, $DLC/gui/prodict.pl. They contain r-code. One of those will always be in your propath and you can run code from these libraries, as I described above.
 

Rob Fitzpatrick

ProgressTalk.com Sponsor
It may be surprising to some people how much is in their propath, even when they haven't set it. In an editor session, run the following:
Code:
/* Display the current propath */
define variable i as integer no-undo.
repeat i = 1 to num-entries(propath):
  display entry(i, propath) format "x(50)".
end.

You will see several PSC libraries, after your own propath entries if any. The PSC ones are there no matter what you do.

Note: you'll need a compiler license to do this (e.g. 4GL Dev System, WebSpeed Workshop, PDSOE/OEA, OpenEdge Studio). If you don't have a compiler, you can still try this code in ABL Dojo.
 

KMoody

Member
Thanks for all your help, everyone!

A follow-up question on the PRODICT, ADECOMM, WEB, and WRAPPER libraries:

If the source code for these libraries is available here, does that mean I could use them on a server that doesn't have a 4GL Development System license?
 

TomBascom

Curmudgeon
That depends. If "use" means "compile" (on the server without a compiler license) then no. If "use" means run r-code that was created by compiling them at some point on a server that has a development system on it then yes.
 
Top