Question
HD Vest
US
Last activity: 16 Feb 2016 12:10 EST
Need to clear Orphan Fix Correspondence assignments
TK-334403:
Pega did a security update on Jan 7th with which some of the host settings are messed up.
Because of this we were having issues
1) Pega connecting to HDVest and
2) correspondence emails are failing.Managers started seeing 'Fix Correspondence' assignments because when correspondence agent sent emails, emails were failing.
I fixed some by rejecting correspondence as an admin, however some cases were already resolved and I can fix those.
Manager continues to see those in his work list and need to be cleared.Michael Puchalek from pega resolved the email issue by making some host setting changes.we need to clear existing orphan 'Fix Correspodances' in the manager worklist.
In the Clip board of the workobject I see that the Fix Correspondence is visible under pyWorkPage-> pxFlow, however I don't see options to delete it.
Please check the attached screen shot.Is it possible to delete from clipboard or is there any other way?
TK-334403:
Pega did a security update on Jan 7th with which some of the host settings are messed up.
Because of this we were having issues
1) Pega connecting to HDVest and
2) correspondence emails are failing.Managers started seeing 'Fix Correspondence' assignments because when correspondence agent sent emails, emails were failing.
I fixed some by rejecting correspondence as an admin, however some cases were already resolved and I can fix those.
Manager continues to see those in his work list and need to be cleared.Michael Puchalek from pega resolved the email issue by making some host setting changes.we need to clear existing orphan 'Fix Correspodances' in the manager worklist.
In the Clip board of the workobject I see that the Fix Correspondence is visible under pyWorkPage-> pxFlow, however I don't see options to delete it.
Please check the attached screen shot.Is it possible to delete from clipboard or is there any other way?
Please let me know.
Manager sees them in their worklist even though the cases are resolved.
I checked in the clip board with workobject open to see if I can delete the correspondence, I can view the correspondence, but could not find an option to delete.
pyWorkPage->pxFlow
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
HD Vest
US
Resolved,
1. created a report definition to first get the assignments I need to Delete
2. Create a new activity :
Step 1: Create a new page (TempPage)
Step 2: Call Rule-Obj-Report-Definition.pxRetrieveReportData : parameters: pyReportName, pyReportClass: Assign-Worklist, pyPageName: my page in step 1 (TempPage)
Step 3: For TempPage.pxResults, loop through "For Each Embedded Page"
Step 3.1: Create a new PAge "AssignmentsPage"
Step 3.2: AssignmentsPage : Obj-Open-By-Handle with InstanceHandle: TempPage.pxResults(<Current>).pzInsKey
Step 3.3: AssignmentsPage : Obj-Delete
With this approach it worked fine, the assignments got deleted.
However, I did not call Commit after deletion. Would that create an problem?
Is Commit needed in this scenario?
Pegasystems Inc.
IN
Hi Pushpa, Good Morning!
would calling RULE-OBJ-ACTIVITY WORK- PXDELETEASSIGNMENTSFORWORK helps?
Please share your thoughts/comments, Thank you!
psahukaru
HD Vest
US
I am still a newbie to pega, How should I call RULE-OBJ-ACTIVITY WORK- PXDELETEASSIGNMENTSFORWORK?
Infosys
AU
Check if these failed assignments appear in Designer Studio -> Process & Rules -> Tools -> Work Admin -> Worklist Assignment Errors landing page.
If they, then I think they can be deleted in bulk from that page.
Murali...
HD Vest
US
No, they are not listed in Designer Studio -> Process & Rules -> Tools -> Work Admin -> Worklist Assignment Errors landing page, reason is that they are not error assignments.
By design if Correspondence agent cannot send an email, a Fix Correspondence task needs to be created. the same happened. However because of outage....the assignments are still in managers workbasket (as he could not access them at that time, he could only view them) and in the mean while workobjects got resolved.
Pegasystems Inc.
IN
Hi Pushpa, Good Morning!
- generally fix correspondence assignment occurs when...
- there is no proper email account configuration.
- to fix the additional assignment, we need to stop the SendCorr agent.
- If the assignment still shows up then we need to look at ...
- the parameter value Param.BatchSend in OOTB RULE-OBJ-ACTIVITY WORK- CREATEANDPROCESSCORR
- there is no proper email account configuration.
to remove already existing assignments on the work object... we could attempt the following steps
- Create report definition on Class group listing the workobjects in a page list
- for each page in page list call PXDELETEASSIGNMENTSFORWORK if assignment exists ..
Please share your observations/comments, Thank you!
psahukaru
Pegasystems Inc.
IN
- Create report definition on Class group listing the workobjects in a page list
-
for each page in page list
- Obj-Open-by-handle - workobject
- call PXDELETEASSIGNMENTSFORWORK if assignment exists ..
- remove temp page...
- Obj-Open-by-handle - workobject
Pegasystems Inc.
IN
- Create report definition on Class group listing the workobjects in a page list
-
for each page in page list
- Obj-Open-by-handle - workobject
- call Work-.ResumeFlow if assignment exists ..
- simulating (I fixed some by rejecting correspondence as an admin, however some cases were already resolved and I can fix those using ResumeFlow)
- remove temp page...
- call Work-.ResumeFlow if assignment exists ..
- Obj-Open-by-handle - workobject
HD Vest
US
Yes Fix correspondence assignments occurred because pega cloud missed updating our email client IP when they did a security update.
As a result we are stuck with these assignments that were created before the IP was fixed.
Is report definition the only way to delete? is there an Out of the box way to do this?
Because to write a report def, I need to first write it lower environments, but cannot test in lower environments as we don't have fix correspondence assignments in lower environments.
Pegasystems Inc.
IN
would it be possible to directly delete from Database tables (PC_ASSIGN_WORKLIST & PC_ASSIGN_WORKBASKET) using SQL query...?
HD Vest
US
If the question is to me, I don't know.
The manager is definitely seeing these assignments in his personal worklist.
Pegasystems Inc.
IN
yes... then running a delete query on db table PC_ASSIGN_WORKLIST alone should help in removing those orphan assignments.
HD Vest
US
Please let me know how the query would look like, so I can add the necessary assignment ID's and provide to cloud team to run the query.
HD Vest
US
Please let me know how the query would look like, so I can add the necessary assignment ID's and provide to cloud team to run the query.
The attachment to the discussion has my clip board info. below are some of the important information I see.
pxAssignClass=Assign-Worklist
pxAssignmentKey=ASSIGN-WORKLIST HDVEST-FNCL-HDVPOPS-WORK-OPERATIONS HDV-641310!FIXCORRESPONDENCE
pxFlowInsKey=RULE-OBJ-FLOW WORK- FIXCORRESPONDENCE #20120113T000249.940 GMT
pyFlowInterestedPageClass: HDVest-FNCL-HDVPOPS-Work-Operations
so would the query work (one query for each assignment):
select * from PC_ASSIGN_WORKLIST where pxAssignmentKey=ASSIGN-WORKLIST HDVEST-FNCL-HDVPOPS-WORK-OPERATIONS HDV-641310!FIXCORRESPONDENCE
Please correct the query.
Also there is no way for the developer to run this query right? From what I know the queries need to be provided to Cloud team for them to run.
Pegasystems Inc.
IN
yes pushpa. the query will technically look like below... (need to correct the syntax)
- select * from <SCHEMA>.PC_ASSIGN_WORKLIST where pxAssignmentKey CONTAINS (%) FIXCORRESPONDENCE...
Pegasystems Inc.
IN
- create a report definition in "Assign-Worklist" class
- apply filter criteria as pxAssignmentKey CONTAINS FIXCORRESPONDENCE
- do a private checkout of an existing report definition in class Assign-Worklist and update the rule and run.
- from pyReportConentPage copy the query to analyse
HD Vest
US
I will try the above suggestions. Thanks!
HD Vest
US
Out the suggestions I tried the 1st part and it worked:
- create a report definition in "Assign-Worklist" class
- apply filter criteria as pxAssignmentKey CONTAINS FIXCORRESPONDENCE
For 2nd part of the suggestion, which report definition should I do a private checkout, update and run?
where can I view pyReportConentPage to copy the query.
- do a private checkout of an existing report definition in class Assign-Worklist and update the rule and run.
- from pyReportConentPage copy the query to analyse
Pegasystems Inc.
IN
>>> Because to write a report def, I need to first write it lower environments, but cannot test in lower environments as we don't have fix correspondence assignments in lower environments.
- so suggested (2nd part)
- to write report definition in buggy system
- in private edit of any existing rule
- just to pull the assignments...
- in private edit of any existing rule
- to write report definition in buggy system
8<-------------------- - --------------------------->8
For 2nd part of the suggestion, which report definition should I do a private checkout, update and run?
where can I view pyReportConentPage to copy the query.
- do a private checkout of an existing report definition in class Assign-Worklist and update the rule and run.
- from pyReportConentPage copy the query to analyse
8<-------------------- ---------------------------->8
HD Vest
US
I created a report joining workobject table with assign-worklist in production with Filters:
.pxFlowInsKey contains "FIXCORRESPONDENCE"
.pxAssignedOperatorID = "marty.e.cotton" (user I know who has this assignments)
Report shows correct data.
I verified pyReportContentPage in Clip board. I don't see the word FIXCORRESPONDENCE in the query but I know the data is correct.
pxSQLStatementPost:
SELECT "PC0".PXREFOBJECTINSNAME AS "pxRefObjectInsName" , "PC0".PYASSIGNMENTSTATUS AS "pyAssignmentStatus" ,
"PC0".PXDEADLINETIME AS "pxDeadlineTime" , "PC0".PXTASKNAME AS "pxTaskName" , "W".CASENUMBER AS "CaseNumber" ,
"W".PXCREATEDATETIME AS "pxCreateDateTime" , "PC0".PXASSIGNEDOPERATORID AS "pxAssignedOperatorID" ,
I created a report joining workobject table with assign-worklist in production with Filters:
.pxFlowInsKey contains "FIXCORRESPONDENCE"
.pxAssignedOperatorID = "marty.e.cotton" (user I know who has this assignments)
Report shows correct data.
I verified pyReportContentPage in Clip board. I don't see the word FIXCORRESPONDENCE in the query but I know the data is correct.
pxSQLStatementPost:
SELECT "PC0".PXREFOBJECTINSNAME AS "pxRefObjectInsName" , "PC0".PYASSIGNMENTSTATUS AS "pyAssignmentStatus" ,
"PC0".PXDEADLINETIME AS "pxDeadlineTime" , "PC0".PXTASKNAME AS "pxTaskName" , "W".CASENUMBER AS "CaseNumber" ,
"W".PXCREATEDATETIME AS "pxCreateDateTime" , "PC0".PXASSIGNEDOPERATORID AS "pxAssignedOperatorID" ,
"PC0".PXREFOBJECTKEY AS "pxRefObjectKey" , "PC0".PZINSKEY AS "pzInsKey" FROM pc_assign_worklist "PC0"
INNER JOIN pc_HDVest_FNCL_HDVPOPS_W_389e3 "W" ON ( ( "W".PZINSKEY = "PC0".PXREFOBJECTKEY AND "PC0".PXOBJCLASS = ? AND "W".PXOBJCLASS LIKE ? ) ) WHERE ( "PC0".PXFLOWINSKEY LIKE ? AND "PC0".PXASSIGNEDOPERATORID = ? ) ORDER BY 6 DESC
pxSQLStatementPre:
SELECT "PC0".PXREFOBJECTINSNAME AS "pxRefObjectInsName" , "PC0".PYASSIGNMENTSTATUS AS "pyAssignmentStatus" ,
PC0".PXDEADLINETIME AS "pxDeadlineTime" , "PC0".PXTASKNAME AS "pxTaskName" , "W".CASENUMBER AS "CaseNumber" ,
W".PXCREATEDATETIME AS "pxCreateDateTime" , "PC0".PXASSIGNEDOPERATORID AS "pxAssignedOperatorID" , "PC0".PXREFOBJECTKEY AS "pxRefObjectKey"
, "PC0".PZINSKEY AS "pzInsKey" FROM {CLASS: Assign-Worklist } "PC0" INNER JOIN {CLASS:HDVest-FNCL-HDVPOPS-Work-Operations} "W"
ON ( ( "W".PZINSKEY = "PC0".PXREFOBJECTKEY AND "PC0".PXOBJCLASS = {Tmp1455410891.pyPreparedValues(3) }
AND "W".PXOBJCLASS LIKE {Tmp1455410891.pyPreparedValues(4)} ) )
WHERE ( "PC0".PXFLOWINSKEY LIKE {Tmp1455410891.pyPreparedValues(1)} AND "PC0".PXASSIGNEDOPERATORID = {Tmp1455410891.pyPreparedValues(2) } )
ORDER BY 6 DESC
Do I have to build an activity to use PXDELETEASSIGNMENTSFORWORK if I want to delete it myself?
If I want to provide the query to Cloud team to run, I am not sure if above query is helping because I don't see the word "FIXCORRESPONDENCE" in it.
Pegasystems Inc.
IN
>>> If I want to provide the query to Cloud team to run, I am not sure if above query is helping because I don't see the word "FIXCORRESPONDENCE" in it.
- Replace question mark with appropriate parameters in the generated query.
SELECT "PC0".PXREFOBJECTINSNAME AS "pxRefObjectInsName" , "PC0".PYASSIGNMENTSTATUS AS "pyAssignmentStatus" ,
"PC0".PXDEADLINETIME AS "pxDeadlineTime" , "PC0".PXTASKNAME AS "pxTaskName" , "W".CASENUMBER AS "CaseNumber" ,
"W".PXCREATEDATETIME AS "pxCreateDateTime" , "PC0".PXASSIGNEDOPERATORID AS "pxAssignedOperatorID" ,
"PC0".PXREFOBJECTKEY AS "pxRefObjectKey" , "PC0".PZINSKEY AS "pzInsKey" FROM pc_assign_worklist "PC0"
>>> If I want to provide the query to Cloud team to run, I am not sure if above query is helping because I don't see the word "FIXCORRESPONDENCE" in it.
- Replace question mark with appropriate parameters in the generated query.
SELECT "PC0".PXREFOBJECTINSNAME AS "pxRefObjectInsName" , "PC0".PYASSIGNMENTSTATUS AS "pyAssignmentStatus" ,
"PC0".PXDEADLINETIME AS "pxDeadlineTime" , "PC0".PXTASKNAME AS "pxTaskName" , "W".CASENUMBER AS "CaseNumber" ,
"W".PXCREATEDATETIME AS "pxCreateDateTime" , "PC0".PXASSIGNEDOPERATORID AS "pxAssignedOperatorID" ,
"PC0".PXREFOBJECTKEY AS "pxRefObjectKey" , "PC0".PZINSKEY AS "pzInsKey" FROM pc_assign_worklist "PC0"
INNER JOIN pc_HDVest_FNCL_HDVPOPS_W_389e3 "W" ON ( ( "W".PZINSKEY = "PC0".PXREFOBJECTKEY AND "PC0".PXOBJCLASS = ? AND "W".PXOBJCLASS LIKE ? ) ) WHERE ("PC0".PXFLOWINSKEY LIKE ? AND "PC0".PXASSIGNEDOPERATORID = ? ) ORDER BY 6 DESC
>>> Do I have to build an activity to use PXDELETEASSIGNMENTSFORWORK if I want to delete it myself?
- yes, we need to either call PXDELETEASSIGNMENTSFORWORK or pzEndFlows on each of the retrieved result (pxResults) fetched by report definition.
Accepted Solution
HD Vest
US
Resolved,
1. created a report definition to first get the assignments I need to Delete
2. Create a new activity :
Step 1: Create a new page (TempPage)
Step 2: Call Rule-Obj-Report-Definition.pxRetrieveReportData : parameters: pyReportName, pyReportClass: Assign-Worklist, pyPageName: my page in step 1 (TempPage)
Step 3: For TempPage.pxResults, loop through "For Each Embedded Page"
Step 3.1: Create a new PAge "AssignmentsPage"
Step 3.2: AssignmentsPage : Obj-Open-By-Handle with InstanceHandle: TempPage.pxResults(<Current>).pzInsKey
Step 3.3: AssignmentsPage : Obj-Delete
With this approach it worked fine, the assignments got deleted.
However, I did not call Commit after deletion. Would that create an problem?
Is Commit needed in this scenario?
Pegasystems Inc.
IN
>>> I did not call Commit after deletion
- as Immediate is not selected, the items will be queued in deferred list.
- Show-Page on HTML 'DeferredOps' would list the queued items.
>>> Would that create an problem?
- it should not create a problem - unless a new save or rollback operation is performed on the deleted (deferred) instances
>>> Is Commit needed in this scenario?
- as it is not within PRPC transaction flow model issuing commit would have deleted the instances immediately.
- again, when ever from any where - a commit is fired the deferred list will process the queued items.
- also - there will be a min time for deferred list to wait for explicit commit option
- otherwise on reaching/exceeding the min time - the deferred list will process the queued items.
- also - there will be a min time for deferred list to wait for explicit commit option