Type: Performance Improvement
Affects Version/s: None
Fix Version/s: Canceled/Declined
Sub-Committee:AP / DV / PDP
Impacted Modules:Purchasing / Accounts Payable
Contributing Partner:Indiana University
Rice Change Required?:No
1. Filtering POs on app doc status to get the open POs takes too much time while running autoClosePurchaseOrder job. The reason is the filterDocumentsForAppDocStatusOpen() method calls getDocumentHeader().getWorkflowDocument(). This can be fixed by using the KFS doc header table to get the app doc status instead.
Note - Before contributing the fix we have some cleanup work to do. We need to investigate getAllOpenPurchaseOrders method to see whether it can be combined with the above method. Currently this is returning not only the open POs but closed ones too.
Also, currently there is a class level @Transactional annotation in PurchaseOrderServiceImpl class. Therefore it applies to all the methods including autoCloseFullyDisencumberedOrders() method. This causes rolling back everything (could be thousands of documents that could have been already closed) when a failure occurs. As a solution we removed class level annotation and push it down to the method level except autoCloseFullyDisencumberedOrders method. However, the logic inside for loop was split out and made transactional.
2. Add autoClosePurchaseOrdersStep dependency on GL clearPendingEntriesStep to avoid OptimisticLockException due to PLEs being updated
Kalani Ruwanpathirana added a comment - 16/Mar/15 4:45 PM - edited
Code from FSKD-7762
Note that we need to add any code changes from FSKI-439 too.
Philip Berg added a comment - 19/May/15 3:55 PM
Edited jira to capture that we also wish to contribute a quartz dependency from autoClosePurchaseOrder Job on clearPendingEntries job. That is because it currently has a risk to OptimisticLockException due to PLEs being updated.