Send Transactions Over $10k to Review Journal

Is it possible to send all transactions over $10k to the Review Journal with a BPM? We’ve got ‘Manually review all transactions’ checked on the SingleGLJrn in GL Transaction Type Maintenance, but I’d like transactions under $10k to go through without review.

Or is the only way to have a BPM to restrict who can post a JE above $10k, in the first place? A posting rule?

Financial guys - what do you say? @LarsonSolutions @Doug.C

I was hoping a trace would show where it gets sent to the review, but it didn’t.

Relevant - Journal Entry Approval and Segregation of Duties - #7 by Mark_Wonsil

Trace was set to Full DataSet, Call Context DataSet, Write Response Data, and BPM Logging - Here’s the only nugget:

<tracePacket>
  <businessObject>Erp.Proxy.BO.GLJrnGrpImpl</businessObject>
  <methodName>PostGroupJournals</methodName>
  <appServerUri>https://MASKED/</appServerUri>
  <returnType>System.Void</returnType>
  <localTime>4/1/2024 09:04:12:6389025</localTime>
  <threadID>1</threadID>
  <correlationId>f85f5ea9-9ecc-4bc5-937a-b9f5b3d97cdc</correlationId>
  <executionTime total="821" roundTrip="819" channel="0" bpm="0" bpmDataForm="0" other="2" />
  <retries>0</retries>
  <parameters>
    <parameter name="postGroupID" type="System.String"><![CDATA[AES]]></parameter>
    <parameter name="CallContext" type="Ice.Bpm.Context.ContextDataSet">
      <ContextDataSet xmlns="http://www.epicor.com/Ice/300/Bpm/Context">
        <BpmData>
          <SysRowID>00000000-0000-0000-0000-000000000000</SysRowID>
        </BpmData>
      </ContextDataSet>
    </parameter>
  </parameters>
  <returnValues>
    <returnParameter name="NotAllPostedMessage" type="System.String"><![CDATA[Transaction is sent to Review Journal 3.]]></returnParameter>
  </returnValues>
  <serverTrace>
    <Op Utc="2024-04-01T13:04:12.7706616Z" act="Erp:BO:GLJrnGrp/GLJrnGrpSvcContract/PostGroupJournals" correlationId="f85f5ea9-9ecc-4bc5-937a-b9f5b3d97cdc" dur="810.09" cli="132.29.200.124:51964" usr="MASKED" machine="ERPDB2" pid="2328" tid="343" />
  </serverTrace>
</tracePacket>

BPM isn’t the way to go on this. You want to look into the GL Transaction Booking Rules. It’s definitely possible to conditionally route items to RJ with those.

3 Likes

Well I don’t think you do this just with a BPM. Because posting rules are binary, either all the transactions are marked as manual review or none (for a specific posting rule). That means even if you are able to trigger a BPM, you will need a custom field to update the posting rule routing. That likely means to custom every posting rule

Thanks for the input John & Juan! I’ve spoken to the finance department, and we’ll restrict access to Actions > Post via a BPM. Seems to be the least complicated way to achieve the goal.

I think the BPM will be the best.
I looked at a couple posting rules, I have some ideas, but I am in the middle of a go live.
So I can’t give you a definitive answer.

Can’t you do this via Service Security? Might be easier than a BPM.

Doug,
Can service security have logic? We’ve always used it as all-or-nothing. That would be sweet if it does…

No, I thought you were wanting to simply lock down the Post action. If you’re doing logic in the BPM to sometimes let it pass, then that’s the way to go.

The request we got was to allow under $10k to pass, and over $10k to be restricted.

Here’s the simple BPM:

image

image

image

Db.GLJrnHed.Where( r =>r.Company == callContextClient.CurrentCompany && r.GroupID == groupID).Select( r =>r.TotDebit).FirstOrDefault()

image