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.
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).
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.