Friday, August 15, 2014

Using GetFile() on AE commits the App Engine

The title of this post sounds strange isn't it? When I encountered an issue with one of my App Engine committing though the program would error, it sounded strange to me. The AE had GetFile() peoplecode function and was triggered from a pushbutton. In the fieldchange event associated with the pushbutton, there were few data changes and had also GetNextProcessInstance() function to achieve a desired functionality, followed by a call to AE using CallAppEngine() function. Even after getting rid of GetNextProcessInstance() function(which would issue a commit) did not resolve the issue. Since the program started to commit data, though the AE would fail had a hard time identifying the issue. I had no idea that the GetFile() function would perform implicit commit until I came across a documentation in Oracle Support which listed situations where implicit commit is issued by PeopleTools. The list below:
1.            GetFile()
2.            GetNextProcessInstance()
3.            MessageBox()
4.            When CI is called, and any CI Error/Warning is occured

I have listed the details of impacted versions and workaround below:
GetFile():
Impacted Version: All versions except PT8.49.21 the ONLY version for which Oracle has provided a fix
Workaround: Call the function at the top of the program from a place where the commit would have no impact on the transaction data.

GetNextProcessInstance():
Impacted Version: All versions
Workaround: Call the function at the top of the program from a place where the commit would have no impact on the transaction data

MessageBox():
Impacted Version: PT 8.48.17 to 8.48.19, and 8.49.09 to 8.49.18
Workaround: No workaround and PT upgrade is the only option

When a CI is called from an AE and any CI Error/Warning is encountered:
Impacted Version: PT 8.48.17 to 8.48.19, and 8.49.09 to 8.49.18
Workaround: No workaround and PT upgrade is the only option

No comments:

Post a Comment