|
![]() |
...PFC 7 Release Notes:
PB 7.0.2
| PB 7.0.1
| PFC 7.0 + PB 7.0
...PFC 6 Release Notes: PFC 6.5.1 +
PFC 6.5.1 Y2K + PB 6.5.1 | PFC 6.5 + PB 6.5
| PFC 6.0 + PB 6.0
...PFC 5 Release Notes: PFC 5.0.04 +
PFC
5.0.04 Y2K + PB 5.0.04 EBF#3 (includes Y2K fixes) + PB 5.0.04
...PFC 5 Release Notes: PFC 5.0.03 + PB 5.0.03 | PFC 5.0.02 | PFC
5.0.01
...PFC/PB Release Downloads: Maintenance Downloads
...PFC Upgrade Check List: Cheat Sheet Upgrade
Check List | PFCGuide
Migration Check List | Faxback #44505
...PFC/PB
Y2K FAQ
STEP 1 | Notify all developers of upcoming upgrade |
STEP 2 | Back up all of your PBLs (PFC, PFE and application) prior to beginning any upgrade |
Common sense here - Keep a frozen backup until you are very sure that you will stick with that release, plus an extra month or so.
Some people who have only done a little PFC coding in their PFE layer are dismayed to find that their PFE PBLs are overwritten upon installation of a new PFC release. So just be aware.
To avoid confusion between YOUR PFE PBLs and the pure Powersoft PFE PBLs (for use with the PFC examples), many companies rename their PFE PBLs to something other than PFExxxxx.PBL... such as a three-letter acronym designating the level for the layer (their company or department name). This is the same approach that the QuickStart application uses with their QCKxxxxx.PBLs, housing their PFE objects.
Throughout the entire migration process, take another backup at any point along the way at which you have put forth significant effort. When making your backups, use a lengthy directory name to describe the point at which you took that backup.
STEP 3 | Perform an initial full rebuild, optimize and backup again |
Before you even start any migration, run a full rebuild of your existing application. This step will get you off to a good, clean start - for there may already be some existing errors from development and/or maintenance. Starting with a good copy of your application will ensure that if the migration fails, it is not due to problems in the original source.
Your application may still have some warnings about obsolete code. Although it is not actually required to fix most of those warnings, you may find that this is a good time to fix the obsolete code. Note that you can ignore the "C0190: Instance variables of local structure type ... will be implicitly private in the next release" Warnings since PFC 7.0 will fix these.
After this full rebuild, it is a good idea to optimize.
Warning: When done, make another backup. This is because if the migration
process fails, you may need to go back to this copy, fix the problems and then
retry the migration. If a critical failure occurs during the migration, the application may be left in
no-man's land somewhere between versions. As a result you may not be able to open it in PowerBuilder,
new version nor old. So be sure to have a backup before migrating.
STEP 4 | Install the proper PB/PFC Release |
Please see the PFC Cheat Sheet Sybase Contacts page for the location of latest releases. The Online Infobase locations are also listed there in order to check for reported bugs and issues with the different releases.
Notes about mixing PFC versions with PB versions:
STEP 5 | Read the PFC Release Notes documentation carefully to understand what has changed |
For handy access, copies of these files are included at this site. These are listed here for your convenience, and they are also in the header above.
...PFC 7 Release Notes: PFC 7.0 + PB 7.0
...PFC 6 Release Notes: PFC 6.5.1 + PFC 6.5.1 Y2K + PB 6.5.1 | PFC 6.5 + PB 6.5 | PFC 6.0 + PB 6.0
...PFC 5 Release Notes: PFC 5.0.04 + PFC 5.0.04 Y2K + PB 5.0.04 EBF#3 (includes Y2K fixes) + PB 5.0.04
...PFC 5 Release Notes: PFC 5.0.03 + PB 5.0.03 | PFC 5.0.02 | PFC 5.0.01
STEP 6 | If migrating to PB 6.0 or 7.0, update your new PB.INI file |
You can save yourself a little time and effort by simply copying the DBMS_PROFILES and related profiles from your previous PB.INI file into your new PB.INI file. This step will be particularly useful if you have for instance some embedded SQL that will cause PB to connect to the database during a build.
Of course, make a backup of the original PB.INI before copying and pasting information.
NOTE | [Note that for the rest of the steps, you will always be using the new version of PowerBuilder.] |
STEP 7 | Next, if migrating to PB 6.0 or 7.0, migrate your objects to the current upgrade version |
Warning: If a critical
failure occurs during the migration, the application may be left in no-man's land somewhere between versions. As a result you
may not be able to open it in PowerBuilder, new version nor old. So be
sure to have a backup before migrating.
To do so, simply open your application using the new PowerBuilder version, and a window will appear that says, "This application was created in a previous version and requires migration to the current version." Fill in your complete (original) PowerBuilder Search Path in the box, and then press OK. This process will take a few minutes, as it migrates all objects to the current upgrade version.
Don't be surprised if you get some errors migrating to PB 6.0... Consult this faxback for details DocId=47787
If an object fails to migrate, you'll be unable to open it in the new PowerBuilder version. Thus, you will need to export the source code, fix the error, then import the code... Or go back to the previous PowerBuilder version (using your backup), fix the errors and then remigrate. Use the method that is the most comfortable for your level of experience.
STEP 8 | Copy the new PFC PBLs over your PFC source PBLs |
All you need to do to accomplish this is to physically copy the PBLs from the new directory to your work directory. A word of warning though - If you did the unthinkable and made changes directly to the PFC source code instead of the extension layer as recommended by Sybase, then you will need to compare your PFC source code carefully with the new PFC code.
FYI: To determine the PFC Release for a set of PFC PBLs,
check PFCAPSRV.PBL(pfc_n_cst_debug), PFCUTIL.PBL(pfc_n_cst_debug) for PFC 6.0+
Public:
constant integer ici_pfcmajorrevision = 5
constant integer ici_pfcminorrevision = 0
constant integer ici_pfcfixesrevision = 2Note: The constants above will become "obsolete" in 6.0 as there are these new constants...
Public:
constant integer PFC_MAJOR = 6
constant integer PFC_MINOR = 0
constant integer PFC_FIXES = 0Note: As Boris pointed out, since these are constants, without even instantiating the debug service, you may use these values anywhere in your application:
ls_version = &
String(n_cst_debug.ici_pfcmajorrevision) + "." + &
String(n_cst_debug.ici_pfcminorrevision) + "." + &
String(n_cst_debug.ici_pfcfixesrevision)
STEP 9 | Add any new PFE objects for the release to your PFE PBLs |
For PFC 5.x upgrades...
From PFC 5.0.01 - 5.0.04, only 5.0.02 has had new objects... For a list, of the 5.0.02 PFEAPSRV.PBL objects, please see PFC 5.0.02
For PFC 6.0 upgrades...
PFC 6.0 has a lot of these new objects... For a list, please see PFC 6.0
For PFC 6.0, you will need a new PFEUTIL.PBL containing the new objects listed in PFC 6.0, plus these objects from your PFEAPSRV.PBL: n_cst_debug, n_cst_sqlspy, w_debuglog, w_sqlspy, w_sqlspyinspect. (If you are sure that no one has ever made any changes to any of these objects, you may simply just use the new PFEUTIL.PBL.)
Note: The new PFC Library Extender utiliity (pfcext60.exe) that ships with PB 6.0 can assist you with the generation of these new objects.
For PFC 6.5.1 upgrades...
The PFC 6.5.1 list forgot these two new objects:
n_cst_filesrvunicode
n_cst_platformunicode
For PFC 7.0 upgrades...
PFC 7.0 has some new objects to support the new Windows controls in PB 7.0... For a list, please see PFC 7.0
For applications with PFC Corporate Layers...
Don't forget to add a new Corporate extension object for each new PFC/PFE object. You can use the PFC Library Extender utility (PB 6.0's pfcext60.exe), or you can simply create the extension objects by hand with the proper inheritance.
STEP 10 | Remove obsolete 7.0 references |
With PB 7.0, a few objects were made obsolete since the 16-bit and mac platforms are no longer supported. So the PFC Team decided to remove the related objects from PFCAPSRV.PBL entirely. So you will need to...
Delete these objects in your PFEAPSRV.PBL:
n_cst_filesrvwin16
n_cst_filesrvmac
n_cst_platformwin16
n_cst_platformmac
For the official list, please see PFC 7.0
For applications with PFC Corporate Layers...
Don't forget to delete the corresponding Corporate extension objects as well.
Note: To help you identify any obsolete references in your application, there is a Migration Assistant utility named ( PB 6.0's pfcobs60.exe or PB 7.0's File>New>StartWizzards>MigrationAssistant main menu option).
STEP 11 | Fix all AutoInstantiated Objects (applies to any release) |
Because of a bug in the PB 5.0.03 painter, you need to open and resave all of your application's autoinstantiated objects. Regenerating/building/migrating will not fix this problem. For details, please see Faxback#47882.
Note: This bug basically affects any version that you are currently on or are currently migrating to.
The PFC Developer's have done the tedious task of opening and resaving all of the PFC AI objects for you in PFC 7.0. And they have done this in their PFE objects as well. So rather than having to open and resave all PFE AI objects, if you are sure that you have not extended any of these objects, you may simply copy over the fixed PFE objects. There are over 40 of these objects. For the complete list, please see PFC 7.0
For applications with PFC Corporate Layers...
Don't forget to fix the corresponding Corporate extension objects as well.
STEP 12 | Add any new extra PBLs to your PowerBuilder Library Search Path |
Although no new PBLs were added in any 5.0.01-5.0.04 / 7.0 releases, with 6.0 there were a couple of new PBLs...
PFCUTIL.PBL (6.0 Utilities - such as debug, spy & DW property utilites)
PFEUTIL.PBL (6.0 Utilities - such as debug, spy & DW property utilites) - See notes on PFEUTIL.PBL in previous step..
PFCOLD.PBL (6.0 Old, obsolete objects - such as DW debugger & the undelete window)Note: To help you identify any obsolete references in your PFC objects, there is a Migration Assistant utility named (PB 6.0's pfcobs60.exe or PB 7.0's File>New>StartWizzards>MigrationAssistant main menu option)... First you will probably want to include the PFCOLD.PBL in your PowerBuilder Library Search Path, then do the full rebuild (directly below), then weed out old references, and then finally remove the PFCOLD.PBL from your path.
STEP 13 | Next, backup and perform a full rebuild and optimize |
This will make sure that all objects are properly regened... which will prevent unwanted Dr. Watson's, Memory Exceptions, by any name, still a GPF<g>.
After the full rebuild, it's a good time to optimize your PBL's.
STEP 14 | Modify your PFE objects if the release has fixed some problems that you had coded around |
Also check to see if code that you have "overridden" is not interfering with the new functionality of the new PFC release. At this point, if you have done a good job documenting and keeping tabs on what you have changed in your PFE objects, you will reap the benefits of your efforts.
For PFC 6.0 or 7.0 upgrades...
STEP 15 | Remove any obsolete PFC 6.0 references, as you choose |
To help you identify any obsolete references in your PFC objects, there is a Migration Assistant utility named ( PB 6.0's pfcobs60.exe or PB 7.0's File>New>StartWizzards>MigrationAssistant main menu option). Of course, you also have a listing from your builds/migration to start with... Now is the time to weed out old references, and then finally remove the PFCOLD.PBL from your path.
STEP 16 | Backup and perform another full rebuild (and then optimize) after all of these changes |
STEP 17 | Test thoroughly ! |
STEP 18 | Alert Developers of pending promotion of the new PBLs to your master copy |
After you have determined that the release suits you okay, alert all developers, and then proceed with promoting the new PBLs to your master copy.
STEP 19 | Then, upgrade all Developers' machines to the new version and source all at the same time... |
It is very important to have all Developers make the move to the new source and new PowerBuilder version at the same time. This is because PBLs can possibly become corrupted when two different developers (using different releases) try to either copy/move, check in/out and/or run from the same set of source PBLs.
PFCUTIL.PBL (6.0 Utilities - such as debug, spy & DW property utilites)
PFCOLD.PBL (6.0 Old, obsolete objects - such as DW debugger & the undelete window)
(PFCOLD.PBL, if still needed)
CONGRATULATIONS | You are done! |
Migration References
7.0 | "Migrating to PFC 7.0" | "PFC Corner" PBDJ - August 1999 | Brian Grimm |
7.0 | "PFC 7.0 Highlights" | "PFC Place" PowerTimes - March 1999 | Boris Gasin |
7.0 | PB 7.0 FAQ | MIS Sciences | |
6.0 | "PFC 6.0 Migration" | PFC Guide | Boris Gasin |
General | "PFC: Upgrade Strategy for Customized Extension Levels" | Sybase |
...PFC 7 Release Notes:
PB 7.0.2
| PB 7.0.1
| PFC 7.0 + PB 7.0
...PFC 6 Release Notes: PFC 6.5.1 +
PFC 6.5.1 Y2K + PB 6.5.1 | PFC 6.5 + PB 6.5
| PFC 6.0 + PB 6.0
...PFC 5 Release Notes: PFC 5.0.04 +
PFC
5.0.04 Y2K + PB 5.0.04 EBF#3 (includes Y2K fixes) + PB 5.0.04
...PFC 5 Release Notes: PFC 5.0.03 + PB 5.0.03 | PFC 5.0.02 | PFC
5.0.01
...PFC/PB Release Downloads: Maintenance Downloads
...PFC Upgrade Check List: Cheat Sheet Upgrade
Check List | PFCGuide
Migration Check List | Faxback #44505
...PFC/PB
Y2K FAQ