1. VINOD NAIR
  2. PowerBuilder
  3. Wednesday, 29 November 2023 15:00 PM UTC

Is there documentation on what changes were made to PFC layer for PB 2022? Our applications use PFC from PB 11.5 and have inherited a lot of objects and made changes within the inherited objects. Any documentation related to the changes made to PFC PB 2022 will help us manually migrate our PFC layer as well. 

Miguel Leeuwe Accepted Answer Pending Moderation
  1. Wednesday, 29 November 2023 15:22 PM UTC
  2. PowerBuilder
  3. # 1

Hi, 

No, not really. You could look at the ws_objects folder of each version after 11.5 and look at the history of each change made, but I think that's just a waste of time.

Replace your PFCs (make sure you didn't make any changes in those pfC libs) with the latest version of PFCs (not the PFE or PFD if you have). Try to compile and work your way through it. When everything compiles, compare each and every override that you might have in PFE / PFD and compare with the PFC version to see if arguments are still coinceding etc.

regards.

Comment
  1. VINOD NAIR
  2. Wednesday, 29 November 2023 18:41 PM UTC
Thanks Bruce and Miguel! We have a middle layer between PFC and PFE. The middle layer was inherited from PFC objects. Example we have xyzapsrv.pbl, xyzdwsrv.pbl etc. and all objects within these PBL's inherited from PFC layer objects.
  1. Helpful
There are no comments made yet.
Bruce Armstrong Accepted Answer Pending Moderation
  1. Wednesday, 29 November 2023 18:25 PM UTC
  2. PowerBuilder
  3. # 2

You can see the changes in the Commits view in the repo:

https://github.com/OpenSourcePFCLibraries/2022/commits/main

We didn't make a whole lot of changes between the 2021 and 2022 versions.  The main one was in the security service to handle the new object types.  In particular, in order to support both 2022 and 2022 R2 with the same version I added this to the of_setcontrolstatus method:

String		ls_itemname

ls_itemname = lower(classname(a_object))

IF ls_itemname = 'mditbb_1' THEN
	as_desc = ""
	Return "TabbedBar"
END IF

 

The remainder of the code in that method does:

choose case typeof(a_object) 

And then branches based on an enumerated object type.  However, 2022 wouldn't have tabbedbar in it's enumeration (since that wasn't added until R2), so I couldn't add that and have it continue to work with the 2022 GA release.  However, if you aren't using the PFC security service then you wouldn't need this change at all.

In earlier versions of PFC there were references to window class names that changed with every new version of PowerBuilder and that was the first thing we changed when creating a new release of PFC.  In the 2019 version of PFC we introduced a of_getpbvmname that determined the version of PowerBuilder in use and determined the window class name dynamically so we didn't have to keep updating that.

There were also a number of other changes in the 2019 version.  In particular, given the uncertain future of SQL Anywhere I provided SQL Server versions of all of the PFC databases and modified the PFC datawindows that used the PFC databases so that they were more database agnostic.

Were the only changes you made to the PFE layer?  if so, they you could likely just replace the PFC layer and compare the PFE layers to see what objects we've added since the release you're working on.

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