Header Ads

  • Breaking News

    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




    1 comment:

    1. From Peoplebooks for PT8.53:
      GetFile and Open both perform implicit commits. Therefore, the GetTempFile function has been introduced specifically to avoid these implicit database commits. GetTempFile differs from GetFile in two respects:

      GetTempFile does not perform an implicit commit.

      GetTempFile does not make the associated file available through the Report Repository even when the calling PeopleCode program is run through the Process Scheduler.

      Therefore, GetTempFile can be a good choice when you wish to avoid implicit database commits and when you do not need to have the file managed through the Report Repository. Otherwise, GetTempFile operates exactly the same as GetFile.

      ReplyDelete

    Please refrain for marketing messages and unnecessary back links.

    Post Top Ad

    Post Bottom Ad