IPA flow to delete workunits

 9 Replies
 1 Subscribed to this topic
 52 Subscribed to this forum
Sort:
Author
Messages
Jessica M
Advanced Member Send Private Message
Posts: 34
Advanced Member

We are having an issue with the size of our pfiactivityvariables table.  Info support has suggested scheduling a flow to delete anything older than 90 days.

I have been playing with the various actions in IPA (test) and I'm not getting the criteria correct.    For now, I would like to delete flows completed in a certain date range.  I tried using "DeleteWorkunits" and "DeleteWorkunitsByDateRange" but I am not seeing anything come out of the workunits view in the rich client.

Has anyone created a flow to do this?  If so, any pointers or suggestions?

Thanks,

Jessica

Tim Cochrane
Veteran Member Send Private Message
Posts: 154
Veteran Member
Can you paste your LM node code so we can see it??
Tim Cochrane - Principal LM/IPA Consultant
Jessica M
Advanced Member Send Private Message
Posts: 34
Advanced Member
I didn't actually save it, as I just played around with different criteria. I will re-create and copy the code and the results.
Jessica M
Advanced Member Send Private Message
Posts: 34
Advanced Member
I tried to delete by workunit number (workunit 1). It doesn't give an error, but the workunit is still there when I look at workunits in the Client and the table on the server.
_dataArea="ltm" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="DeleteWorkunits" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & PfiWorkunit="1"

Log:
============================================
Started locally: Jul 27, 2015 2:47:16 PM EDT

Process started: PFMaintenance (Run id = 1) - 07/27/2015 14:47:17

Activity started: Start (Run Id: 1)
Executing Start Activity...
Variables in Process:

Activity completed: Start

Activity started: LMTxn9380 (Run Id: 1)
Landmark:LMTxn9380 Executing transaction_dataArea="ltm" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="DeleteWorkunits" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & PfiWorkunit="1"
Landmark:LMTxn9380 Executing transaction_dataArea="ltm" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="DeleteWorkunits" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & PfiWorkunit="1"
Landmark:LMTxn9380 transaction complete:true,
response messageelete Workunits Batch... Submitted,
record count:1,
results header string: PfiWorkunit,
results string:1,
has next:false,
has prev:false
LMTxn9380_complete = true
LMTxn9380_recordCount = 1
LMTxn9380_hasNext = false
LMTxn9380_hasPrevious = false
LMTxn9380_resultsHeader = PfiWorkunit
Landmark:LMTxn9380 Page 1 retrieved
LMTxn9380_recordCount = 1
Activity completed: LMTxn9380
LMTxn9380_errorCode = 0
LMTxn9380_informationCode = 0
LMTxn9380_returnMessage = Delete Workunits Batch... Submitted
LMTxn9380_outputData = 1
LandmarkLMTxn9380: Executing loop 1 of 1 (Page 1)

Activity started: LMTxn9380 (Run Id: 1)
LMTxn9380_PfiWorkunit = 1

Activity started: End-LMTxn9380 (Run Id: 0)

Activity started: End (Run Id: 1)
Activity End: Executing End activity
End_errorCode = 0
End_informationCode = 0
End_returnMessage =
End_outputData =
Activity completed: End
Process completed - 07/27/2015 14:47:18

Process ran successfully
Information code: 0
Return message:
Output data: (null)

Finished: Jul 27, 2015 2:47:18 PM EDT
Tim Cochrane
Veteran Member Send Private Message
Posts: 154
Veteran Member
Change your "_actionName" var to be "Delete", and not "DeleteWorkunits", as you're only deleting a single workunit. Here is my query, which worked 2-3 times when I tested it.
Also - you can only delete Completed or Cancelled statuses, so may have to change status before you delete.


_dataArea="test" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="Delete" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & PfiWorkunit="914"

complete: true
response message: Work Unit Deleted
record count: 1
has next: false
has previous: false
Results header string: PfiWorkunit
Results string: 914

Communications trace
null


Also - the "DeleteAllWorkunitsByWorkunitRange" worked...as long as they are in Complete or Cancelled status

Deleting by Date Range

Delete by date range is a slightly trickier, since it requires full 16 digit dates (CCYYMMDDHHMMSSHundreths). I used & BeginDate="2015071300000000" & EndDate="2015071323595999" to say delete everything for 07/13/2015, midnight to midnight, which deleted the 7 workuits I had in test which started/ended on 07/13. You should be able to modify the dates by "x" days to get a bigger spread.


_dataArea="test" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="DeleteWorkunitsByDateRange" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & BeginDate="2015071300000000" & EndDate="2015071323595999"


complete: true
response message: Delete Workunits By Date Range Submitted
record count: 1
has next: false
has previous: false
Results header string: BeginDate,EndDate
Results string: 2015071300000000,2015071323595999

Communications trace
null
Tim Cochrane - Principal LM/IPA Consultant
John Henley
Send Private Message
Posts: 3351
moved to process flow forum
Thanks for using the LawsonGuru.com forums!
John
Jessica M
Advanced Member Send Private Message
Posts: 34
Advanced Member
Based on your info, I ended up using the query below and it works. Thank you so much for your assistance.

_dataArea="ltm" & _module="pfi" & _objectName="PfiWorkunit" & _actionName="DeleteWorkunitsByDateRange" & _actionOperator="NONE" & _actionType="CreateUpdateDelete" & _runAsUser="" & _pageSize="30" & _relationName="" & _setName="" & _asOfDate="" & _effectiveDate="" & BeginDate="2014010100000000" & EndDate="2015010100000000"
JeffR
Advanced Member Send Private Message
Posts: 22
Advanced Member
If the flow is triggered from an S3 application or action it creates a work unit on S3 and another work unit on Landmark. Is your flow deleting both work units or is it leaving an orphaned record on the S3 server? Because the S3 work unit never changes to a complete status, I am not sure it they would purge.
Jessica M
Advanced Member Send Private Message
Posts: 34
Advanced Member
It is being triggered on the Landmark side.
Tim Cochrane
Veteran Member Send Private Message
Posts: 154
Veteran Member
This logic only deals with Landmark work units...it doesn't touch (purge, archive, etc) classic (BPM) work units.

Not sure why you consider the classic work unit as orphaned...it did it's job and has completed...there just isn't a "Tiggered in LPS and now completed" status to use.
There is no activity to worry about in the classic work unit, so no need to worry about that space. If you really needed to purge BPM work units, then you could have DBAs truncate the tables.
Tim Cochrane - Principal LM/IPA Consultant