1. Elaine Tse
  2. PowerBuilder
  3. Tuesday, 22 August 2017 19:41 PM UTC

Hello,

I tried to migrate our project from PowerBuilder 12.6 to 2017.
There are two workspaces; each workspace has a target and a library:
  Workspace_A has Target_A which has A.pbl and
  Workspace_B has Target_B which has B.pbl and A.pbd.
I migrated A.pbl first then built the A.pbd. I then copied the new A.pbd to the Windows directory where B.pbl is located. When I open the Workspace_B, the Migration dialog was displayed containing both B.pbl and A.pbd. The migration failed in B.pbl with all references to functions in A.pbd.
  C0101: Referenced object obj_a is out of date, must be converted.
  C0163: The definition of referenced variable r_obj_a was improperly compiled in object obj_b
  C0194: Missing pcode block for indirect function. Possible cause: library missing from library list.

I searched the web but could not find the proper steps to migrate a target that includes an external pbd.

Really appreciate your help.

Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 22 August 2017 20:18 PM UTC
  2. PowerBuilder
  3. # 1

Hi Elaine;

   You cannot migrate PBD's.

 

   The approach here would be to rebuild the PBD(s) from PB 2017 IDE from the original source code in its associated PBL library.  Then replace the PB 12.6 PBD(s) with the PB 2017 built ones in new App folder for migration use. From there, you should be able to let the PB 2017 IDE complete the migration on the PB 12.6 PBL's - but now seeing the PB 2017 PBD's, it should not complain.

Note: If you are just using the PB supplied PBD's - grab the new ones from the PB 2017 installation folder and replace the PB 12.6 PBD's with these.

 

HTH

Regards ... Chris

Comment
  1. Brad Mettee
  2. Wednesday, 23 August 2017 13:13 PM UTC
Chris: He already migrated A.PBL into PB 2017, built a new PBD after migration, then tried to use it on the 2nd app, but is still having problems.



My suggestion is to try the following:

- Manually edit the B.PBT, change A.PBD to A.PBL (the original pb12.6 pbl), and put the PBL in the appropriate directory

- Run the migration - it should succeed

- Manually edit the B.PBT, change A.PBL back to A.PBD

- Place A.PBD in the appropriate directory, and remove A.PBL (unless both apps share the same directory, then A.PBL is where it belongs)

- Regenerate whole B app (full rebuild is easiest way I know of)



This should work (I've had to do similar in the past, but it's been a while).

  1. Helpful
  1. Elaine Tse
  2. Friday, 25 August 2017 19:20 PM UTC
Chris and Brad,



Thank you very much for your response and suggestions.



To simplify the original problem description, I omitted to mention that Target B included pbdom126.pbd and pbejbclient126.pdb. Before the migration, I manually edited the LibList parameter in the target file b.pbt to reference the appropriate Appeon library path; changing “Sybase” to “Appeon”, “pbdom126.pbd” to “pbdom170.pbd” and “pbejbclient126.pbd” to “pbejbclient170.pbd”. (The target file had relative file path in the value.)



LibList "BB1.pbl;..\\..\\Appeon\\Shared\\PowerBuilder\\pbdom170.pbd;..\\..\\Appeon\\Shared\\PowerBuilder\\pbejbclient170.pbd;A.pbd";



I omitted to mention the above change because I did not think that could be the cause of the errors since the Migration process replaced the relative path to the correct absolute path in the Migrate Application dialog.  However, after I manually changed the relative path to absolute path in the target file (e.g. “C:\\Program Files (x86)\\Appeon\\Shared\\PowerBuilder\\pbdom170.pbd”), the migration was successful.

  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.