IBM Support

PJ37154: ATTACHDOC() FROM BP8OPERATIONS CAN FAIL TO UPDATE THE BP8ATTACHMENT[] FIELD.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The attachDoc() method code (relevant section only) looks like
    this:
    
                 if(attachedDocs.size() > 0)
                 {
                     VWWorkObject wo =
    getWorkObjectWithRoster(caseId, sRosterName);
                     if(wo != null)
                         try
                         {
                             String lockedUser = wo.getLockedUser();
    
    
    // ==============> This is where the problem occurs
    
                             if(lockedUser == null)
                             {
                                 logger.debug("Before
    WorkObject.doLock()");
                                 wo.doLock(false);
                                 logger.debug("After
    WorkObject.doLock()");
                                 VWAttachment oldAttachments[] =
    (VWAttachment[])wo.getFieldValue("Bp8Attachment");
                                 int oldAttachmentsLength = 0;
                                 if(oldAttachments != null &&
    oldAttachments.length > 0)
                                     oldAttachmentsLength =
    oldAttachments.length;
                                 VWAttachment wfBp8Attachment[] =
    new VWAttachment[attachedDocs.size() + oldAttachments.length];
                                 logger.debug("Already attached
    documents: " + oldAttachmentsLength);
                                 for(int j = 0; j <
    oldAttachmentsLength; j++)
                                     wfBp8Attachment[j] =
    oldAttachments[j];
    
                                 for(int j = 0; j <
    attachedDocs.size(); j++)
                                 {
                                     GettableObject gettableObject =
    (GettableObject)attachedDocs.get(j);
                                     if(logger.isDebugEnabled())
                                         logger.debug("Attach to
    Work Object. Attachment [" + (j + oldAttachmentsLength) + "]
    Id=" + gettableObject.getId());
                                     wfBp8Attachment[j +
    oldAttachmentsLength] = createVWAttachment(objectStoreName,
    gettableObject);
                                 }
    
                                 logger.debug("Before
    WorkObject.setFieldValue()");
                                 wo.setFieldValue("Bp8Attachment",
    wfBp8Attachment, false);
                                 logger.debug("After
    WorkObject.setFieldValue()");
                                 logger.debug("Before
    WorkObject.doSave()");
                                 wo.doSave(true);
                                 logger.debug("After
    WorkObject.doSave()");
                             } else
                             {
                                 logger.warn("Work Object " +
    wo.getWorkObjectNumber() + " is locked by user " + lockedUser +
    " when trying to attach document " + documentData.get("Id") + "
    to Case " + caseId + " Document was attached to the Case" + "
    but not to the work object.");
                             }
    
    The code that should update Bp8Attachment is encapsulated in an
    'if' statement testing that no user is locking the work object.
    But the Component Manager is always locking a WO when it's
    processing it. Meaning that there is no way to actually get in
    the 'if' statement.
    NOTE: This is assuming that the attachDoc() method is used from
    the workflow that must be updated. It is perfectly possible to
    update another workflow that is no locked by any user.
    
    How long has the problem been occurring (recent changes)? : N/A
    
    Does this occur on more than one station / server? : all.
    
    Is there a workaround? : None that I could find.
    
    What is the impact to the customer/system? : The Bp8Attachment[]
    array doesn't contain all the case attachments.
    
    Can the problem be replicated on an internal system? Yes
    By Who: CSS
    System configuration: BPF 3.6.0-005
    
    Steps to Reproduce:
    Modify the CaseManagement workflow and add an attachDoc
    component step just before Index step.
    Start the workflow and try to attach a document.
    => the attachment will only be attached to the CE case object
    but not the PE wob.
    
    Actual Results: Bp8Attachment[] is not updated with the new
    attachment.
    
    Expected Results: Bp8Attachment[] should always contain all the
    case attachments.
    
    Are there any similar or related Defects? none that I could
    find.
    
    adaptor.log snapshot:
     2008-11-06 02:54:56,508 DEBUG operations.Bp8Operations -
    WorkObject: E533B2408FEAFF459ECB98C1EE5E27C0
     2008-11-06 02:54:56,508 DEBUG operations.Bp8Operations -
    Exiting getWorkObject
     2008-11-06 02:54:56,508 WARN  operations.Bp8Operations - Work
    Object E533B2408FEAFF459ECB98C1EE5E27C0 is locked by user
    Administrator when trying to attach document
    {6EEB9169-2F8A-4AC0-A88F-E10CB8F5F101} to Case 65808 Document
    was attached to the Case but not to the work object.
     2008-11-06 02:54:56,508 DEBUG operations.Bp8Operations - Attach
    document successful.
    
    Customer's Configuration/Environment : BPF 3.6.0-005.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * BPF_Operations users                                         *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * ATTACHDOC() FROM BP8OPERATIONS CAN FAIL TO UPDATE THE        *
    * BP8ATTACHMENT[] FIELD.                                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to BPF-3.6.0-007 or above.                           *
    ****************************************************************
    

Problem conclusion

  • The fix for this APAR is contained in the following maintenance
    packages:
    BPF-3.6.0-007
    

Temporary fix

Comments

APAR Information

  • APAR number

    PJ37154

  • Reported component name

    BUS PROC FRAMEW

  • Reported component ID

    5724R7500

  • Reported release

    360

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-12-07

  • Closed date

    2010-08-03

  • Last modified date

    2010-08-03

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    BUS PROC FRAMEW

  • Fixed component ID

    5724R7500

Applicable component levels

  • R360 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSNVLC","label":"FileNet Business Process Framework"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"3.6","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
03 August 2010