Can you customize the PROPATH of an RTB Plugin project?

Posted by jquerijero on 03-Feb-2014 11:21

I need to add an r-code directory to the PROPATH and has to be high above the Roundtable folders.  Is this possible? I need it to be able use the Launch Application feature.

All Replies

Posted by Jeff Ledbetter on 03-Feb-2014 11:35

Hi.

Roundtable sets the plug-in PROPATH based upon what you have defined for the Roundtable Workspace path. You can change the PROPATH for the project, but Roundtable will put it back when a task is selected. However, for a launch/run configuration, I wouldn't think that you would want to change your project PROPATH at all. The launch configuration can have it's own PROPATH and application-specific settings.

Posted by jquerijero on 03-Feb-2014 12:01

How do you update the PROPATH in the Launch Configuration? I need the r-code to be after the Active Task entries but before the RoundTable folders.

Note that I want to keep the project's default PROPATH to get the Active Task entries automatically.

Posted by Jeff Ledbetter on 03-Feb-2014 15:07

Hi.

Once you launch an application, it creates a run configuration. Switch to the OE perspective, and choose Run > Run Configurations from the main menu. Select (or create) your run configuration. You should see a ProPath tab where you can set it as you need to launch your app.

Posted by jquerijero on 03-Feb-2014 15:54

It's not that simple. RTB Task seems to compile code in the same location as the code. Our production code which RoundTable points to has an r-code folder (and several other folders) that the RoundTable plugin is not including to the auto-generated PROPATH.

This r-code folder needs to go after the Task entries, but should be above the source code folders.

NOTE: You cannot rearrange the default PROPATH inside the Launch Configuration window. The move buttons are disabled..

Posted by Jeff Ledbetter on 03-Feb-2014 16:21

You can change the PROPATH of a launch configuration to whatever you wish for it to be. You may not can move the entries of the specified project up/down, but you can add new entries as needed. Generally for testing task level share, the PROAPTH order would be <task>,<workspace>,<default>.

Posted by jquerijero on 03-Feb-2014 16:46

I need the r-code between <Task> and <Workspace> because;

1. We have a separate r-code location, so it should be <Task><Workspace r-code><Workspace>.  You can only add above or below the RoundTable default PROPATH.

2. Class files (specially those CLS files that are being called from another CLS) will no longer run uncompiled. You will get unknown datatype error when the r-code of a CLS is not found.

3. The application will be too slow if it has to recompile code on the fly.

4. [DESIGN TIME ISSUE] The Visual Designer will not always load a form in Design View that uses ABL controls or usercontrols if the ABL controls and usercontrols are not compiled.

Posted by Jeff Ledbetter on 04-Feb-2014 09:14

Hi.

I am not suggesting that you have to compile on the fly but maybe we are speaking of two different things (or maybe there are two different issues).

I assume that you have specified r-code directories for your Workspace Module definitions and you need those in your PROPATH for your testing run configuration, correct?

Posted by jquerijero on 04-Feb-2014 09:21

I need the r-code for both design-time and run-time. CLS files will not load in design view without all the r-codes of the classes that a CLS dependent on. I need the r-code during run-time to avoid unknown datatype error.

Yes, we have an r-code folder in our Workspace Module definitions.

Posted by Jeff Ledbetter on 04-Feb-2014 11:05

To modify the PROPATH during design-time, you (or your admin) need to change the Roundtable Workspace path to include the additional path entries that you require.

Posted by jquerijero on 04-Feb-2014 15:29

That sounds promising.

But before we go changing our age-old configuration, my co-worker just found a more straight forward way of managing check out location while still having the flexibility of the regular OpenEdge Project. I'm going to give the Roundtable Task Group - regular OpenEdge Project combo a try.

Roundtable's Task Group allows you to specify a custom checkout location which I can just point to my regular OpenEdge project folder. More steps to create a workable Task, but it simplifies a lot of things, for example, I just need to maintain my Launch Configuration once.    

Posted by Blake Stanford on 05-Feb-2014 09:57

Yes but I don't believe this solves the issue with needing compiled cls files during design time.

Posted by Jeff Ledbetter on 05-Feb-2014 10:49

I don't think that you have to involve Task Groups for this situation. Task Groups are good for sharing your changes with your team without affecting the central-share Objects/configuration.

For fun, I created a standard OpenEdge project and looked at the PROPATH entries. The PROPATH does not include the 'rcode' directory (when a separate r-code destination is chosen) either.

Posted by jquerijero on 05-Feb-2014 11:56

In standalone Roundtable, you can specify the Task folder. The plugin won't, but the Task Group seems to give the same behavior.

Yes, the initial PROPATH of a regular OpenEdge project will not include the r-code, but it will allow me to customize the PROPATH to any configuration I like (I have my check out location first then the Central r-code then Central source code). And I only need to set the PROPATH up once as long as I can check out programs to same location regardless of which Task I'm working on.

Posted by Jeff Ledbetter on 05-Feb-2014 12:22

If you change the Roundtable Workspace path, you should get the same results. But since a standard OE project doesn't include the rcode directory, I wonder if it is necessary the separate rcode paths.

Posted by jquerijero on 05-Feb-2014 13:21

For standard OE project, you will need to build the PROPATH to make it useful. That's a given.

With regards to the need for the rcode;

- You need the rcode (of other CLS files) to open a CLS files (ex. form with custom controls) in design view.

- You need the rcode to be able to run your program without getting the unknown datatype error. This is probably related to the first one.

Granted the issues might just be limitations of OpenEdge, but to workaround these issues require a better control over the PROPATH entries.

Posted by Jeff Ledbetter on 05-Feb-2014 13:25

I'm not sure it's a given. When I don't modify it (the PROPATH) at all, it works as expected with finding the proper resources.

You can control the PROPATH by changing the Roundtable Workspace path entries.

Posted by jquerijero on 05-Feb-2014 13:45

If we update the Roundtable Workspace path entries, will the compile when in Task status also send the rcode to a designated folder?

Posted by Jeff Ledbetter on 05-Feb-2014 13:48

I answered that in the other thread yesterday.

Posted by jquerijero on 05-Feb-2014 14:10

My other thread was regarding code in Central status. So I assume the same is true when in Task status.

Posted by Jeff Ledbetter on 05-Feb-2014 16:19

Yes, correct. We are issuing a COMPILE command to the OE project with the SAVE INTO option. Unfortunately, the SAVE INTO option does not create the structure. We have logged this and have made a change to our plug-in to touch the appropriate structure into existence if it does not exist.

Posted by jquerijero on 05-Feb-2014 16:22

OK good, I'll ask our DB manager to make some changes to the Workspace path.

Posted by Stefan Drissen on 05-Feb-2014 16:27

[quote user="Jeff Ledbetter"]

Yes, correct. We are issuing a COMPILE command to the OE project with the SAVE INTO option. Unfortunately, the SAVE INTO option does not create the structure. We have logged this and have made a change to our plug-in to touch the appropriate structure into existence if it does not exist.[/quote]

SAVE-INTO only requires the top-level directory to exist, the lower directory structure is created automatically.

Posted by Jeff Ledbetter on 05-Feb-2014 16:37

For class files, yes. Not for all compilable files.

Posted by Stefan Drissen on 06-Feb-2014 00:12

Sorry, you are correct... that would explain this line above our compiler. :-)

            RUN CreateSubDir ( cTargetDir ).
            COMPILE VALUE( cProgramFull )
               LANGUAGES( VALUE( IF CONNECTED( "translat":U ) THEN "en-US:en,nl,nl-BE:nl,fr,de,es,it,pt":U ELSE ? ) )
               SAVE INTO VALUE( cTargetDir )
               MIN-SIZE       =  TRUE
               GENERATE-MD5   =  TRUE
            NO-ERROR.

Posted by jquerijero on 06-Feb-2014 17:12

Bad news, adding the r-code folder above the source folders caused the standalone Roundtable to stop working properly. It looked like Roundtable was trying to find the program source code under the r-code folder.

I did not continue verifying the Rountable plugin because of the above issue.

We created a Roundtable enhancement request to be able to specify r-code folder in the PROPATH.

Thanks,

Posted by Jeff Ledbetter on 06-Feb-2014 17:17

I do not see the same issues that you are seeing with Visual Designer.

Posted by jquerijero on 06-Feb-2014 17:26

Do you have rcodes? If you do, removed them and turn off any setting that will auto-rebuild your programs. Also, many of our CLS programs have 2 to 3 level of CLS program dependency.

Ex.

Form.cls

 -> UserControl.cls

      -> UserControls.cls

           -> Control.cls

      -> Control.cls

Posted by Jeff Ledbetter on 06-Feb-2014 17:35

Please add any additional information to the support case you created instead of on the forum.  Thanks. Maybe send some screenshots to help demonstrate what you are seeing.

Posted by Jeff Ledbetter on 06-Feb-2014 18:08

Ok, I know what you are seeing - I duped it. Your class cache is set to Workspace. If you set it to PROPATH, your references will all resolve just fine.  I have reported this to our tech support as well.

This thread is closed