Adam Saghy created FINERACT-3003:
------------------------------------
Summary: PL - Retained Earning Job - noop changes
Key: FINERACT-3003
URL: https://issues.apache.org/jira/browse/FINERACT-3003
Project: Apache Fineract
Issue Type: Improvement
Components: Job Scheduler
Affects Versions: 1.16.0
Reporter: Adam Saghy
Assignee: Adam Saghy
Fix For: 1.17.0
*Issue:*
The retained earning job runs the trial-balance stretchy-report query
regardless of whether anything would be persisted — the writer only decided
after the fact whether to discard the fetched data. Making the decision once
upfront, before the step even starts, lets the job skip the query entirely on
the vast majority of daily runs (every day except right after a new fiscal year
end).
*Fix:*
* Move the retained-earning idempotency check (whether entries already exist
for the fiscal year end date) out of RetainedEarningJobWriter.beforeStep and
into a new RetainedEarningJobExecutionDecider, a Spring Batch
JobExecutionDecider that runs before the summary step starts.
* RetainedEarningJobListener.beforeJob computes the fiscal year end date once
and shares it via the job execution context
(RetainedEarningJobConstant.FISCAL_YEAR_END_DATE_CONTEXT_KEY), so it is only
computed a single time per job run.
* The job flow now branches on the decider's outcome: on a NoOp day (entries
already exist) the flow ends immediately and the summary step — reader and
writer alike — never runs at all, so the trial balance report query is never
issued. On a real day, the flow proceeds into retainedEarningSummaryStep.
* RetainedEarningJobReader and RetainedEarningJobWriter no longer perform
their own idempotency checks; they just read the fiscal year end date from the
shared context and process/persist whatever they're given
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)