cancel
Showing results for 
Search instead for 
Did you mean: 

ORCAScript Build executable :Is the pbdflags string too long?

Former Member
0 Kudos

This application has *139* PBLs

Orcascript build completes without error. 

This application build fine from within the Project Painter in the IDE

But when executing an ORCAScript generated EXE, resources are not found at runtime as if they are not available in the PBDs.

I get these sort of things all over the application

Is the PBDFlag string too long for ORCAScript???


Here are some snippets:

//*

start session

scc get connect properties "ywTrunkTFS.pbw"

scc connect

scc set connect property logfile "BuildViaORCAwithGLV.log"

scc set connect property logappend "false"

scc set target  "smartsoft.pbt" "OUTOFDATE"

scc refresh target "3PASS"

build application full

build library "advance.pbl" "" pbd "" pbd

build library "adv_dw.pbl" "" pbd "" pbd

...137 more of these....

build executable "Smartsoft.exe" "Smartsof.ico" "Smartsof.pbr" "NYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"

I have the same result when building without source code refresh

start session

Set LibList "grain.pbl;adv_dw.pbl;adv_dw1.pbl;.....136 more......

build application full

build library "adv_dw.pbl" "" pbd "" pbd

build library "adv_dw1.pbl" "" pbd "" pbd

...136 more....

build executable "Smartsoft.exe" "Smartsof.ico" "Smartsof.pbr" "NYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"

***What is happening here?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Is w_sa_edit_sales_costs_search opened using

1. Open(w_sa_edit_sales_costs_search)

or

2. Window w_temp

    Open(w_temp, "w_sa_edit_sales_costs_search")

If it is done using method 2, try declaring an application variable that you will never use:

w_sa_edit_sales_costs_search     w_test

And try your recompile and execute.  Of course a local declaration or changing the code to use method 1 would work just as well.

Former Member
0 Kudos

Thanks Christopher,

But

139 PBLs

15,000 + code objects include over 1200 windows

18+yr old application that compiles properly from the IDE project object

BUT doesn't compile correctly when built via ORCAscript

Your approach will be like shouting into the wind on stormy seas

Former Member
0 Kudos

Hi Yakov;

  FYI: I spent about a month last year looking at this very type of issue at one of my Canadian government clients (HRSDC) on one of their big human resources applications. Between the HRSDC develop and I we tried various options and could never make the build EXE work from ORCAScript - even with a clean generation. The only way we made the EXE build correctly was from the PB IDE.

     I suspect that there are still some bugs in ORCAScript that need to be resolved when compiling large PB applications. I feel your pain on this one (been there, done that).

Regards ... Chris

Former Member
0 Kudos

Thanks for sharing your experience, Chris.

The real challenge here is getting focus on the issue and getting it resolved.  Because of the sensitive nature of source code, opening a reproducible case through submitting full source code is not an option.  Creating a case by simulating the situation is a hit or miss time consuming operation of dubious outcome.

It is real important for my current project to implement automated building.  I will next try using Roland Smith's ORCAApi.  It bypasses ORCAScript and goes directly to the ORCA API.

I know the IDE has certain 'privileges' because dashes-in-identifiers compiling is supported in the IDE and NOT supported by ORCA.  It may have others, such as long library lists, too.

Seems like Very Large Apps and PowerBuilder Compiling is uncharted water.

Anyone else have an experience to share?

Former Member
0 Kudos

Thanks to PBOrcapi by TopWiz Software I was able to bypass ORCAScript and interact directly with the ORCA API using PowerScript. 

I was able to produce a working executable with 137 PBDs outside the IDE, that did not exhibit the window load errors I described above.

Thank you Roland Smith for our assistance in achieving this milestone.

Caveat I used the provided TopWiz UI tool to do the job, but I am confident that I will be able to produce my own fully functional build utility in PowerScript that I will integrate into a complete build solution)

Former Member
0 Kudos

Hi Chris / Yakov,

I am facing similar another issue with Build script - May be due to build script.

When I  run application (executable) built using build script (PB ORCA 12.6) - Some windows is not getting opened properly . after investigation we found that those Window' ancestor open event is not getting triggered and due to that behaviour defined in Ancestor event is not functioning.

When I built executable using PB 12.6 IDE then application is working fine without any issue.

After more investigation we found that when we run application (executable built using PB ORCA 12.6 script) then COMCTL32.DLL loaded twice with two different versions (5.82.6001.18000 & 6.10.6002.18005) due to that those windows not behaved correctly.

When we run executable built using PB IDE then only COMCTL32.DLL (with version 6.10.6002.18005) loaded & its working fine.

Also one more thing we noticed - when we built executable using PB ORCA script then Description and company name is displayed as below - this is minor issue.

Description                   

Company Name

Sybase Inc. Product FileSybase, Inc.

Can someone suggest ? same bug reported to SAP PB12.6 ?

Thanks & Regards,

Devang Modi.

Former Member
0 Kudos

Hi Devang;

  I think that your problem started before v12.6 as one of my Canadian Government customers (ESDC formerly HRSDC) was having the same issues with PB 12.5.1 just over a year ago. No matter what we tried, the OrcaScript compile failed to properly build the EXE whereas the build from the IDE always worked 100%. The application .EXE failure was similar to your observations.

  ESDC did register a formal problem ticket with SAP and also supplied a copy of their OracScript script settings. However, I never did hear about a fix from SAP and I believe that ESDC finally gave up waiting for a fix and went to an IDE build only.

Regards ... Chris

Former Member
0 Kudos

Hello,

I experienced a similar issue with a 64 bit 12.6 I isolated into a small app and opened a case. The issue was corrected in 12.6 build 4098

Former Member
0 Kudos

Echoing Chris' comment, we abandoned ORCAscript long ago in favor of PBORCapi from TopWiz systems.  I built a custom build processor which we use as part of our continuous integration processor and for production builds.  Also note that the latest Bootstrap tool from TopWiz has a build facility which gracefully handles ORCA aborts .and continues processing.  We have IDE commandline launched batch build process process that intermittently aborts in the IDE that we replaced using the new Bootstrap Compile process.

Former Member
0 Kudos

That is great feedback .. thanks Yakov! 

Former Member
0 Kudos

Thanks Yakov for your feedback.

Regarding COMCTL32.DLL SAP provided new build 4098?  Do I need to check in code again with that Build ?

OR

we just need to build executable using script which will use Build 4098?

Former Member
0 Kudos

There are no PowerScript or datawindow syntax changes.  This is a compile and go situation

Former Member
0 Kudos

After build using new PB 12.6 4096 patch - issue is not getting resolved.

Two versions of COMCTL32.DLL is still loading when I build it using PBORCA script.

I built it on Windows 2012 and running executable on Windows 2008 SP2. Is it due to OS version mismatch. But application is running fine when we built it using PB12.6 IDE ( which is also on Windows 2012) .

Any pointers to solve ?

CobyKako
Advisor
Advisor
0 Kudos

Hi Devang,

Please be aware that Windows 2012 is not a supported platform for PowerBuilder 2016 at design time:

Release Bulletin - SAP Library

This is probably the root cause.

You should consider using another O.S to build your EXE with Orca.

HTH,

Jacob

Former Member
0 Kudos

Thanks Jacob for that. Devang tried my Bootstrap tool (uses ORCA) and had the same result. I will have to add something to the documentation about OS support.

Former Member
0 Kudos

I had this but it was unrelated to a migration or ORCA.

I had modified(almost rewritten) an ancestor when I started to receive this message.

I verified the object existed and only in one library.  Tried a number of possible solutions:

     1.  exported the window(dataobjects)) in question so if any issues arose I could import later.

     2.  Went into the PB BROWSER to find the window(object) ,right clicked and then edit. When it opened, I   looked to see which PBL it wanted to save it too.  This would verify I was looking in the right place.I also put a random space in and did a SAVE to see if any errors would display.

     3.  Right clicked on the PBL with the object and did an Optimize (why I exported)  this will provide insight into some missing objects or errors it might be seeing. There was significant information there.  Working with those suggestions I made changes.  Optimize sometimes deletes objects.

     4.  Then I did a full rebuild (3 times). Testing after each rebuild.

I remember (years ago) embarrassing remark, when there were ancestors to either determine order and regen accordingly or do Rebuilds multiple times.

It resolved the issue for me. It was a journey.

I did not have 139 PBL's.  Frankly, I am surprised PB supports it. Are they all being used?  Could there be duplicate objects?  How did you find the Library list? Did you see the app run successfully? In particular the object where you are seeing the error? No, I do not expect you to answer those questions for me.

BACKGROUND: the app I am currently working is from the late 80's early '90s.  Its 3rd party and the company was sold three times and now no longer exists.  The ancestor changes across companies are not consistent.

Unrelated, another thing I see which causes errors is they(3rd party app) sometimes (not always) code e.g.

      GetItemString(row, column)

They do not preface with THIS or an Object name.  They rely on Focus being on the object which does work and I also was surprised at.  Why I mention this,  any changes I make no matter how small can break the app because of this.These GetItems are in the Ancestor.  An Enhancement causing focus change which when corrected then causes much regression testing.

Yakov,

   They are so lucky to have you!  I can't imagine anyone else who could work with this migration.  Good Luck, if I can help or you just want to talk it through, I would be happy.

There is a lot of info here you may only find one piece that applies (hopefully) but I thought too much better than not enough.

Chris Moyer