Support Article

Data pages with blank interaction ID created with End Call click

SA-28448

Summary



Pages are created with an empty interaction ID (D_CPMPortalContext.pyID). Sometimes pages are not created at all when finishing one call and opening a new call. This causes the portal to behave incorrectly.


Error Messages



Unable to load Data Page D_XXXX. Required Parameters : InteractionID. cannot be blank.


Steps to Reproduce

  1. Launch a new account (interaction call).
  2. Launch a new intent task.
  3. Launch a second call by clicking “New” and just type the account number.
  4. Switch to first account (interaction call), click on “Finished with Account” (End Call).
  5. Immediately switch to second account (interaction call), perform a search using previously entered account number.


Root Cause



A defect in Pegasystems’ code or rules. This problem is due to the fact that users are clicking on the tabs very quickly. As a result, the first interaction is trying to wrap-up and clean up the clipboard, while the second interaction tab is requesting focus. Since these requests are coming from separate documents in the browser, they are going at the same time. This causes a problem where multiple threads are trying to update the PortalContext, which is a problem since this is a requestor scoped data page.

Resolution



A local change was provided that disables the click action on the non-focused tab while the first interaction is wrapping up. With this change, we are able to prevent this issue. As soon as the first interaction is closed, the Portal Recents are reloaded from the server and click actions are restored. Here are the changes. The link is in the CPMPortalRecent section as shown below:
 


Here is the change to the script:

function pega_cpm_IP_QuickWraupup(interactionThreadName)
{
  /* Disable on-click of each links in CPMPortalRecent */
  parent.$('[data-node-id="CPMPortalRecent"]').find('.Header_nav').attr("data-click","");
 
  var iframes1 =  $(window.parent.document).find("iframe");
    for(i=0;i<iframes1.length;i++)
     {
          
          if($(iframes1[i].parentNode).attr("pegathread") == interactionThreadName)
            {
               var wrapupHiddenTextField = iframes1[i].contentWindow.document.getElementById("QuickWrapupHiddenField");
               pega.control.actionSequencer.fireTopPriorityEvent(wrapupHiddenTextField,"click");
               break;
            } 
     }
  delete iframes1; /* Cleaning object */
}
 

Published September 26, 2016 - Updated October 12, 2016

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.