Skip to Content
Product Information
Author's profile photo Ignacio Kristof

Cash Application with Machine Learning – summary info

DISCLAIMER: This is not based on implementation experiences and the objective is not to provide key insights or recommendations. It neither is an evaluation or assessment about the efficiency of the solution. It is only a structured summary of the available information about the product from official SAP sources, at the moment of writting it.

Update 08/19/2020: Please review in detail the conversation with Sajid where he raises multiple concerns about the solution.

 

The objective of this blog is to summarize information and links about SAP Cash Application with Machine Learning.

Reseraching about this topic, there is not too much information available, and the one in SAP elp it is  distributed in different pages, mostly in SAP Help, and some powerpoint presenttations; however it was a bit hard to follow, so I put together  a summary that others may find useful as well.

 

Corrections and suggestions, are welcome.

 

 

FUNCTIONAL OVERVIEW

The objective of SAP Cash Application is to increase automation of Cash Application  using Machine Learning.

The solution consists in  a bundle of cloud services to simplify the process of bank statements clearing.

Open items from receivables and  payment advicesare synced to cloud, then open items from bank statements are sent, and based on the model resuting of the training of the machine learning app,  the application will propose items to be cleared or clear them if it is 100% certain.

The figure belows gives a clear picture of how this works:

  • Payment Advices are extracted
  • Scheduled receivables are synced with Cash Application app
  • Bank Statement info is sent to Cash Application app
  • Information is processed in SAP Cash Application
  • Proposals are sent back to ERP system.

From%20SAP%20Presentation

From SAP Presentation

 

On the figure below, it is clear that this process does not interrupt the standard clearing rules from the ERP system, based on posting rules and search strings.

  • Bank Statements are processed by standard transaction FF_5
  • Standard clearing rules try to clear the items normally.
  • Cash App machine clearing comes into place for the items not cleared with the standard rules

From%20SAP%20Presentation

From SAP Presentation

 

MACHINE LEARNING SERVICES

SAP Cash Application, consists of the following Machine Learning Services

Service Purpose
Receivables Line-Item matching Provides proposals for matching open receivables with bank statements.
Receivables Line-Item matching for Lockbox Provides proposals for matching open receivables with incoming Lockbox files.
Payables Line-Item matching This service is to match vendor initiated payments.
Payment Advice Extraction It is the service to extract unstructured payment advices and return structured payment information.
Customer Account Identification Provides proposals to identify the payer of a bank statement item.

 

 

TECHNICAL OVERVIEW

Open items are synced from ERP system to the cloud application.

For On Premise ERP, the  job have to be scheduled. In cloud solution, they are scheduled automatically.

From%20SAP%20Presentation

From SAP Presentation

The inference job in the ERP system sends the open items from the bank statement to the machine learning application.

With the information,  the machine learning engine  generates clearing proposals, based on the model resulting from the training.. The ERP system checks of there are available proposals to retrieve. If at the first attempt the ERP did not find any proposal, it can do other attempts. The number of attempts is managed in the configuration.

From%20SAP%20Presentation

From SAP Presentation

 

Not all bank statements are valid for inference. The application has some criteria:

  1. The bank statement item has a posting rule with posting type 8 for A/R, or posting type 7 for A/P.
  2. The bank statement item status is still open (both VB1OKand VB2OK are blank, which means the status in FEB_BSPROC is red).
  3. The bank statement item hasn’t been manually changed before (N2PCHand SVAVS are blank, and no manual processing has been carried out in the app)

 

REQUISITES

  • Follow standard SAP process for processing bank statements (imported with FF_5 or FF67; standard post processing, etc.)
  • Acquire License
  • SAP Version
    • SAP ERP 6.0 EHP7 SP13
    • SAP ERP 6.0 EHP 8 SP10 and onward
    • SAP S/4HANA 1709 SPS2 and onward
    • SAP S/4HANA 1809
    • SAP S/4HANA cloud editions
  • Also read the recommendation below:

 

 

IMPLEMENTATION OVERVIEW

Below  you can find the core steps to implement this. Based on SAP documentation, some configurations are different for line Item Matching functions and for Payment Advice Extraction.

Steps are:

1.Implement required OSS Notes for fixing bugs / issues before implementation

2.Connection set up of ERP with cloud Machine Learning App

–>2.a Create SAP Cloud Platform instance and key

–>2.b  Create RFC Destinations for Line Item Matching functions

–> 2.c Create RFC Destinations for Payment Advices

3.Enable Machine Learning

–> 3.a Activate Machine Learning for Line Item Matching

–> 3.b Enable Machine Learning for Payment Advice

4.Model Training

5.Configuration

–> 5.a Configuration of thresholds

–>5.b Configure Poll Settings

–>5.c.Schedule jobs for synching open items and Inference jobs

 

Let´s review the implementation steps with some more detail:

1.Implement required OSS Notes

Some OSS Notes are required to fix some bugs / gaps in the implemeentation system.

For 1709

From%20SAP%20Help

From SAP Help

 

For 1809

From%20SAP%20Help

From SAP Help

 

2.Connection set up. Steps are the following:

–> 2.a   Create SAP Cloud Platform instance and key. This works for both Matching Items and  Payment Advices.

SAP%20Help

SAP Help

 

–> 2.b.  Create RFC destinations for Matching Line Items

Check this step by step for creating RFC destinatins

 

–> 2.c   Create RFC Destination for Payment Advice

From%20SAP%20Help

From SAP Help

 

3.Enable Machine Learning

–> 3a.For line items matchingFrom%20SAP%20Help

From SAP Help

 

–> 3.b For payment advices

From%20SAP%20Help

From SAP Help

 

4.Model Training

The training includes the steps required for the application to learn the parameters and logic users apply to clear items manually. The machine learning engine will identify the parameters and logic humans use to match the items, in order to do that by itself.

a.Data is extracted from your ERP system and sent to the cloud.

Default training parameters have to be set:

From%20SAP%20Help

From SAP Help

 

“Months” and “MB for data upload” parameters, limit the selection of data used for training and avoid excessive data to be selected.

Path for S/4HANA On Premise: Integration with Other SAP Componentsà Machine Learning Integrationà SAP Cash Applicationà Basic Settings

Path for S/4HANA Cloud: you can set these parameters in the Manage Your Solutions app using the BPC_EXPERT role under Manage your solutions  Configure your solution. Search for SAP Cash Application.

 

b.When this settings are completed, the scope of training selection has to be defined:

    1. Company Code
    2. Period
    3. Posting Rules: Useful in case you want to limit the extraction by posting rule, as some posting rules are not relevant for cash application.

c.Training parameters have to be well documented as the notes below refer, and create the BPC ticket as this will be used to attach the report generated by the training process.

From%20SAP%20Help

From SAP Help

 

d.You start the programs to send the training data:

e.Cloud training is triggered after the extraction finished. Machine Learning training: This happens in the cloud. It can take from several hours to a couple of days, depending on the data size.

f.When the training is complete SAP DevOps team attaches to the BPC ticket the “Benchmark Report”, containing details about proposals and it´s accuracy. This report can be generated in graphic view.

From%20SAP%20Help

From SAP Help

 

5.Configuration

–>5a.Configure Threshold

Parameters below from “Basic Settings” indicate target accuracy. In the screen below:

  • Target Accuracy for Proposal 99%, will make the app to show proposals with a high level of accuracy. If this number is reduced, the system will show more proposals, probabbly incorrect.
  • Target auto-clear accuracy 100% means that auto clear should happen when proposals are 100% certain.

From%20SAP%20Help

From SAP Help

–> 5b.Configure Polling Settings:

  • Number of Open Bank St. per batch: indicates how many bank statements are sent per batch, to avoid performance issues.
  • Number of attempts: Number of attemps for the ERP to get proposals from the Cash Application. It can happen that the app does not generate any proposal so the system will no another attempt to get proposals.
  • Time Delay: Indicates how much minutes the system waits between attempts.

From%20SAP%20Help

From SAP Help

 

–>5c.Schedule jobs

Open Receivables and Inference jobs

SAP%20Help

SAP Help

 Open Payment Advices

SAP

SAP

 

MACHINE LEARNING INFERENCE

Inference it is the process of sending open bank statements to the cloud to be processed by the Machine Learning application, and then receiving the result in the ERP.

SAP

SAP

When item is proposed, you can see it from FEB_BSPROC

                                                        SAP Help

 

And also from FIORI app Reprocess Bank Statements

SAP

SAP

 

 

This is it for now.  Feel free to propose corrections or suggest information to be added.

 

 

SOME LINKS

SAP Product description

https://www.sap.com/products/cash-application.html

SAP Help Portal

https://help.sap.com/viewer/product/SAP_CASH_APPLICATION/1809_On-Premise/en-US

SAP ERP Connector for Cash Application

https://help.sap.com/viewer/product/SAP_ERP_CONNECTOR_FOR_CASH_APPLICATION/1.0/en-US

Implementation

https://help.sap.com/viewer/60e4f6eb9b6a427db1963afb7e9791b5/2005/en-US/a433d223d933474fbcd42c67ca310eac.html

https://help.sap.com/viewer/f7edad0eae0f4469895a0b6604b47701/1.0/en-US/6bdebb81cd5641eab7cf55167480d86f.html

Feature Scope Description

https://help.sap.com/viewer/53c7d0eb5a044148a110aa082c06325c/2005/en-US/eb30addf7ee3499e83867da8a5f8e995.html

 

See the Related Blog Posts at the right of the screen

 

Assigned Tags

      4 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Sajid Rahim
      Sajid Rahim

      This is an interesting approach but unfortunately it wont work for Cash App in a large org.

      Author's profile photo Ignacio Kristof
      Ignacio Kristof
      Blog Post Author

      Hi Sajid. Thank you for your comment. Could you please ellaborate a bit more?

      Why do you think  that the product will not work for large companies?  Myself and others for sure as well, will be interested in reading your throughts about this. There is not too much information or user experience available.

      Thank you so much.

      Author's profile photo Sajid Rahim
      Sajid Rahim

      Hello Ignacio.

      Sorry i could not reply earlier.

      Firstly there is a major gap in Cash App for Receivables in SAP.  It starts right from Lockbox process and fundamentals of matching and deduction management that spills over into tolerances. What is described by Cash AI is a serious flawed approach and I am frankly appalled that this was even proposed as a solution.  The summary of the approach can be quantified by what can easily be achieved by a single algorithm called Levenstein – I wrote a paper on it which you can get from ResearchGate as part of university research work.

      Cah App is a subject area of expertise for myself. I have designed leading world class Cash App solutions.

      Let us assume that we bring in payments via various sources; for example lockbox etc. Right here, there is a major flaw in SAP’s design – you need to cater for multiple possibilities of identifying a customer using either transit/account or customer number or even an alternative customer number. A fundamental nature of resolution needs to have the ability to move a payment from a child payer to a parent payer and then as part of match process be able to drill into the open items belonging to a part of the larger hierarchy.

      Once a payment is on account at Payer level.  Now you have remittance sources, you can have multiple sources not just what is sent via EBS or Customer via EDI etc – Scanners via OpenText are a major source.  Customer can give you not only invoices, but also use PO etc etc.  You need the ability to hand matching patterns for these and also how you can direct processing logic dynamically at a customer level and have multiple tolerance levels depending on matching conditions you find. This is not possible with Cash AI which as I noted is just a levenshtein’s model that is purely a fuzzy logic match based on edit distance calculation; this is the least reliable of techniques which will result in many false positives which you need to further resolve duplicates with additional criteria.  I can achieve all of what you have described in less than 20 lines of code; instead it is wrong to mislead customers.

      Batch processing with hierarchy resolution and complexity of matching via remit and autocash duplicate resolution, deduction mgnt, tolerance is a completely different problem area which Cash App AI is not designed for; it is just handling a tip of the problem which is wrong to start with.  Performance in this case - you cannot quantify it for any large client.

      I hope this will help answer your questions.

      You can connect offline with me as well.  Will be happy to discuss.

       

       

       

       

       

       

       

       

       

       

       

       

      Author's profile photo Ignacio Kristof
      Ignacio Kristof
      Blog Post Author

      Hi Rajid, thank you for this great and complete response.  I think that you expose strong points, both from a technical and functional perspective. And it is specially important because of the lack of information about this solution.

      I have designed (not developed) Cash Application programs as well, (really one program, with a cuple of versions), which main advantages were the ability to cover very specific scenarios, with granular defintions and controlled at user level. They helped to improve the auto-clearing rate for account receivables, however the problem was that the program required user intervention to identify new patterns.

      I was expecting that this solution, far from being perfect, could mean one more step in the direction of finding a more autonomous capability for capturing  and handling new scenarios.Based on your explanation, I understand that if the solution is based on a Levenshtein model it will not make a significant difference.

      Another advantage that I thought it could have, was that it does not seem complex to activate. So there would be some value added, with moderate effort. 

      I will reach out offline to you for a few more questions (but putting them here, in case you read this blog again):

      1.You said that  “this approach will not work for large companies”. Would it work for small companies? and if answer is yes, why ? Because many of the limitations you described it seems that would also apply to smaller companies.

      2.Is there a pre-built solution to cover this business need that intregrates seamlessly with SAP?

      3.Last one. You mentioned: “You need the ability to hand matching patterns for these and also how you can direct processing logic dynamically at a customer level and have multiple tolerance levels depending on matching conditions you find. This is not possible with Cash AI which as I noted is just a levenshtein’s model

            –> Did you mean that: this soultion as constructed would not work? or that machine learning / AI in general is not a good fit for Cash App, at least with the current technology?

      Thank you so much. I will try to contact you offline.