Hi all,
We are evaluating the efforts to migrate PB NVOs from an EAS web app to REST API using Snap Develop and PB 2019.
We already migrated few methods using the IDataStore object. However we noticed that several methods were missing from the original PB datastore as follows:
1. Describe
2. Modify
3. ClassName
4. Error and DB Error events
5. SelectRow
6. setItemStatus
7. generateResultSet from a datastore
8. createFrom (rSet)
The web App is more than 12 years old and shares several NVO with an even older Client App. Both Apps extensible use the methods mentioned above.
We also noticed that the transaction object SQLCA is not part of any Snap Develop class. This fact is a big inhibitor since the mentioned Apps use SQLCA after every DB access to check if it was successful and, if not, get the error code and text.
Imagine how many times SQLCA is referenced in an enterprise App with more than 2 million lines of Power Script.
Migrate to C# an enormous App is itself a big task and it will be even worse if we have to introduce C# code that does not belong to the original PB code, increasing the chances to add logical errors to a code that works.
Workarounds to wrap code like IF SQLCA.SQLCODE < 0 THEN in a Try/Catch block is sometimes difficult to accomplish due to the way the PB code was written, long time ago.
SQLCA is affected after any DB access, not only by datawindow/datastore retrieve/update methods but also by SQL embedded code, which we also have a lot, making things more complex.
We would like to know if someone already faced these challenges or knows what is Appeon's approach for these concerns.
Thank you in advance,
Paulo Gomes
Interval International
Senior PB Analyst