The purpose of me writing this blog is to hopefully help others on their SAP Cash Application implementation journey as well as to share some of my past experiences from implementing SAP Cash Application. Before I jump into the technical implementation guide, I would like to spend a few moments outlining the what’s and why’s of SAP Cash Application. Then I will outline the main steps from a high-level point of view for quick reference. After that I will dive deeper into the implementation guide while also sprinkling in some additional concepts for consideration. I have also included hyperlinks throughout this blog to hopefully make any additional research needed easier for you to locate.
So, what is SAP Cash Application? SAP Cash Application can be looked at as a Machine Learning Service (“model”) provided by SAP that is comprised of five separate microservices that can automatically process particular FI AR/AP business processes. The microservices are as follows with applicable hyperlinks so that you can review additional information not covered in this blog: Receivables Line-Item Matching, Receivables Line-Item Matching for Lockbox, Payables Line-Item Matching, Customer Account Identification, and Payment Advice Extraction. The way SAP Cash Application works is based on historical data and processes that customers currently use for processing electronic bank statements for reconciling their bank balances. SAP Cash Application can make proposals and even more importantly, clear matching invoices for future incoming payments.
Now that we have covered what SAP Cash Application is from a high-level, lets briefly discuss why SAP Cash Application is useful. As with most ML implementations, the most useful benefit comes in the context of saving the end-user/customer time and effort, and SAP Cash Application is no exception to this benefit. SAP Cash Application can quickly clear bank statements and even quickly clear lockbox items. This ML model has the capability of handling large number of payments and can also execute various matchings. For example, SAP Cash Application can match one item to many invoices as well as match various receivable processes in multiple unique countries. SAP Cash Application can even extract Payment Advice details that can then be used for matching and SAP Cash Application greatly improves service quality within shared service centers (PA Config Guide).
Ok great, now that we have a basic understanding on the what’s and why’s of SAP Cash Application, allow me to share with you the high-level steps for implementing SAP Cash Application on your S4HANA 1909 On-Prem system.
- Prerequisites (Very, Very Important to confirm these prerequisites before implementation)
- Setup SAP Business Technology Platform Global and Subaccount
- Create SAP BTP Cockpit Service Instance and Key
- Activate Machine Learning in SAP GUI
- Create RFC Destinations
- Send Training Data to SAP Cash Application/BTP Model Manager from SAP GUI
- Activate Model in BTP Model Manager
- Send Open Items to Cash App
- Inference Cash Application to receive results
We are now ready to take this blog to the next level by diving deeper into the technical configuration guide. Please note that this blog is merely here as a helpful guide for implementing SAP Cash Application. I would highly recommend reading through all the information related to SAP Cash Application via SAP’s various resources to ensure a smooth implementation of this service. Without further ado let’s begin.
As stated above, it is very important that you review the prerequisites before implementing SAP Cash Application. ML Models, in general, are quite sensitive to the data being passed into them and without following the hyperlinked prerequisites, you may run into errors, non-compatibility issues, and/or inaccurate results. Instead of directly copying and pasting these prerequisites, please click on the hyperlink and go through each prerequisite. As a side note, pay special attention about the customer having 10,000 historical bank statement items that’s processed with Posting Rule 0001, this is very important. In addition to the prerequisites for SAP Cash Application specifically, I would also like to include other prerequisites regarding SAP Business Technology Platform. Yes, you will need SAP BTP for SAP Cash Application which includes setting up a Global Account, creating a Sub-Account, and finally creating a Service Instance and Key. Since I am including this as a prerequisite and because this process is relatively straightforward, I won’t be going into those specifics in this particular blog.
I. Activate Machine Learning in SAP GUI:
Once we have completed the above-mentioned prerequisites, we can begin with Activating ML in SAP GUI. Here we will also find some additional configuration options. These settings may change from use-case to use-case but since the purpose of this blog is an implementation guide, the settings captured below should be sufficient to at least get you started.
- Go to the transaction SPRO.
- Select: Integration with Other SAP Components > Machine Learning Integration > SAP Cash Application > Basic Settings.
- Select the Machine Learning Enabled checkbox.
- Click Save.
(Basic Settings Preview)
II. Create RFC Destinations
We will use RFC Destinations to establish the connections between SAP GUI on-prem system and your SAP Cash Application service. Remember earlier in the prerequisites we created a Service Key. Go ahead and copy that JSON file service key because we are going to be using that here in this step. Now, there are two ways in which we can establish our RFC Destinations. One way is to do it Manually and the other way is Automatically by using the Web Dynpro Wizard. I highly recommend using the Wizard for this step because it will save you time and its less error prone. So, you may need to reach out to your basis team member to ensure that Web Dynpro is setup with the following SICF services activated (also needed for manual setup): <FPM_S4ML_CONFIG_WIZ> <FPM_S4ML_SETUP_WIZ> <OA2C_CONFIG>. Once the Wizard has been successfully completed, you will have configured the RFC Destinations (t-code SM59) and the required OAuth Configurations (t-code OA2C_CONFIG) that’s needed for this step.
- Start the Wizard via transaction code S4ML_CASHAPP_CONFIG.
- Paste in your JSON file that you copied from BTP and click Create Destinations in the bottom left. If successful you should see something similar to the below image. Click Next in the bottom right for Step 2 of the Wizard.
- Click Test Connection and you should see an output like the image below with a Connection Test Successful message. Click Next and you are all set with using the Wizard.
III. Send Training Data to SAP Cash App/BTP Model Manager from SAP GUI
The next step that we need to do revolves around sending historical data from your on-prem system to SAP Cash Application which can be accomplished in just a few steps. Not only will this send your on-prem historical data to SAP Cash Application, it will also create a “model” in the Model Manager in SAP BTP (more details on that in the next step). To send historical data we will progress as shown below. Also, it’s very important to create Variants for each of the below executions. This will be helpful in case you need to reference this data or if for some reason you need to submit an incident ticket to SAP, as they will want the variant information as well.
(<SE38> t-code for each of the below steps.)
- Run Program: ML_CASH_APP_JOB_STATUS_DP
Then Execute in background as shown below. This step is basically opening up a session for the training data to begin.
- Run Program: ML_CASH_APP_DATA_POST
For Type of Data: select Incoming Payment and Training Data. Leave Selections for Open Invoice Data and Test Download Only empty.
In Selections for Training Data: Enter all applicable pieces of data that will encapsulate your historical data best. (10k historical bank statement data records) Then Execute.
- Run Program: ML_CASH_APP_JOB_STATUS_DP
Select Processing Type to Complete and then Execute. This step triggers the actual training to SAP Cash Application in the cloud.
IV. Activate Model in BTP Model Manager
Now that the above steps are completed, we can now head over to your SAP BTP account and open the SAP Cash Application app. Here we will find the Model Manager which will be used for viewing our Training Job Statuses (from previous step) and for Activating our ML Model. Before we activate our model, select the Training Runs tab on the left side of the window. Once your Training Job has a Success status, we can now Activate your model. Be sure that you are in the ML Models tab.
(Status View)
- Within the ML Models Tab, Select your applicable Country/Region
- Select your applicable ML Service Name: receivables-matching-glim is selected for this particular use-case.
- Select the bubble next to which ever ML Model you would like to use for running Inferences on.
- Select the Activate button. Your model is now ready for Inference runs.
(ML Models View)
V.Send Open Items to Cash Application
This step is easily overlooked and quite often missed but it is very important, nonetheless. Before running an Inference on our model, we need to make sure that the model has the most up-to-date information as possible. That’s why we must push recent Open Items to SAP Cash Application. For this, we must go back into our SAP GUI on-prem system.
- Execute T-code SE38
- Again, Run Program: ML_CASH_APP_DATA_POST
- Choose Incoming Payment and Open Invoices as shown below. (Selections for Open Invoice Data -optional)
VI. Inference Cash Application to receive results
Lastly, but most certainly not least, we can finally use SAP Cash Application and run Inferences on our activated ML model! Here, I would recommend working closely with your FI counterpart as this is where this process shifts from Technical to Functional. In order to Inference your model, the steps are quite simple technically speaking.
- Execute t-code SE38 again.
- Run RFEBKA_AUTO_REPRO to send Open Bank Statements for Inference.
- Review your Inference Results using t-code FEB_BSPROC
- This can also be completed using the above referenced t-codes respectively in Fiori.
In conclusion, we have covered the what’s and why’s of SAP Cash Application, a quick-reference outline of the key steps required for implementing SAP Cash Application, and finally a more in-depth process flow for implementing SAP Cash Application into your S4HANA 1909 On-Prem system from a Technical perspective.
I sincerely hope that this blog has been found to be useful for you on your SAP Cash Application implementation journey. In the comments section below, please feel free to add any questions, comments, or concerns. I would also like to encourage you to post and answer questions within the SAP Community found here, and also check out other similar blogs found here.
Finally, I would like to say Thank You for your time and if you feel that you’ve received any value from this blog to please Like this blog and Follow my profile for future content releases.