In the post below, I’m sharing a short look at an AI-based document extraction approach that runs directly inside the SAP VIM inbound process.
At the core is a purpose-built middleware I developed to bridge SAP VIM with modern AI models — cleanly, safely, and without breaking the existing architecture.
Same VIM architecture. A very different level of intelligence.
In SAP VIM (OpenText Vendor Invoice Management for SAP) you may occasionally notice a small blue symbol next to a business rule — some refer to it as a diamond, others as a badge or Rhombus. It’s a subtle visual element, barely documented, yet it often triggers questions among AP processors, key users, consultants, and anyone involved in maintaining VIM rule logic.
The meaning behind it is simple but important: this blue indicator shows that the business rule is newly added to the system and has not yet been evaluated for the current document. In other words, the rule exists, but it has never been considered by the VIM engine and therefore has had no influence on the current status or outcome of the document you are viewing.
This explains why a rule may appear correct in configuration while the document itself does not reflect the expected change. The system is essentially telling you that the logic has not been executed yet. As soon as the document is resubmitted or the rules are applied again, VIM will process this rule for the first time. Once that happens, the symbol disappears because the rule has officially taken effect and is now part of the evaluated ruleset for that document.
This small blue icon—whether you think of it as a diamond, marker, indicator, or flag—is easy to overlook, but it plays a useful role in everyday troubleshooting. It prevents you from searching for errors in the configuration when the actual issue is simply that VIM has not yet re-evaluated the rule. Knowing this helps both operational teams and consultants understand exactly why a document behaves the way it does, especially when introducing new rules or adjusting existing logic in productive environments.
In the OpenText Vendor Invoice Management for SAP Solutions User Guide for Invoice Solution the icon is mentioned once as “Business rule run was not logged.” Have you seen this icon before?
This article is intended for informational purposes only and does not supersede or replace the official documentation provided by OpenText. It serves as supplementary guidance to assist with common challenges that may arise. For authoritative instructions and compliance requirements, refer to OpenText’s official documentation and support.
In the world of Accounts Payable automation, efficiency is king. One of the standout innovations in Open Text Vendor Invoice Management (VIM) for SAP Solutions is Smart Coding — a feature designed to make invoice processing faster, more accurate, and less dependent on repetitive manual entries.
What is Smart Coding?
Smart Coding is a machine learning–driven function in VIM that helps users automatically assign coding proposals to invoice line items. Instead of manually entering cost centers, GL accounts, or other coding data every time, VIM learns from historical postings and suggests coding values during document indexing.
Availability of this feature depends on your VIM version, and the specific fields that can be learned may differ.
Benefits of Smart Coding
Time savings: Reduces manual effort in entering repetitive cost allocations.
Consistency: Ensures coding aligns with historical and organizational patterns.
Fewer errors: Minimizes the risk of incorrect GL postings.
Scalability: Supports large volumes of invoices without increasing headcount.
Basic Model and PAL Model: What’s the difference?
In Open Text VIM Smart Coding, the Basic Model and the PAL Model differ mainly in complexity and accuracy.
The Basic Model is a simple, frequency-based approach. It analyzes historical postings for a given company code and supplier, then suggests a GL account and cost object based on how often that combination was used before. It’s easy to set up and works as a foundation, but it’s limited to pattern recognition and doesn’t adapt well to complex scenarios.
The PAL Model, on the other hand, is powered by SAP HANA‘s Predictive Analytics Library (PAL). It applies machine learning, using multiple factors like company code, supplier, requester, expense type, tax rate, and invoice amount to generate proposals. This makes it far more accurate and dynamic than the Basic Model, but it requires SAP S/4HANA with PAL installed and builds on the Basic Model‘s training.
In short: the Basic Model is static and straightforward, while the PAL Model is context-aware and designed for higher accuracy in real-world invoice coding.
How to activate Smart Coding
Step 0: Read the documentation and test in a sandbox environment first.
Make sure to check chapter Smart coding in OpenText Vendor Invoice Management for SAP Solutions: Configuration Guide for Invoice Solution. Please understand that Step 1 deletes all coding statistics from your system.
Step 1: Delete Coding Statistics
To start with a clean surface the first step is to delete what is in the system using T-Code /OTX/PS302_TRAIN_CODING_DELETE.
Warning: This will delete the coding statistics in the selected system!
Step 2: Train Coding Statistics: Basic Model
Now that we have an empty Smart Coding environment we start by training the basic Smart Coding model using /OTX/PS302_TRAIN_CODING.
For the first run always use the “Test Mode” to make sure everything is working correctly. If the first run in test mode was successful, it can be repeated without test mode.
From this point of time it is already possible to use smart coding in the system by clicking on Smart Coding button in the Line Items Tab on the Indexing Screen:
Step 3: Train Coding Statistics: PAL Decision Model
To use the more advanced PAL Decision Model you must ensure that your system has the following prerequisites in place:
SAP S/4 HANA
PAL model installed and activated
Basic Model training is completed (Step 2)
Similar to the Basic Model: for the first run always use the “Test Mode” to make sure everything is working correctly. If the first run in test mode was successful, it can be repeated without test mode.
Once you have completed the training for the PAL Decision Tree Model you can see an entry in VIM Central Workplace (/n/OTX/PF03_WP) in work center Smart Coding:
Final Thoughts
Smart Coding in OpenText VIM can offer significant benefits — especially for organizations processing moderate to high invoice volumes. It has the potential to reduce manual data entry, improve consistency, and help teams spend less time on repetitive tasks. However, it’s important to keep expectations realistic:
Smart Coding usually requires a period of training before it produces reliable results. Initially, proposals will need review, and accuracy may be limited for uncommon combinations or new suppliers.
The PAL model improves accuracy over the basic model, but it also requires a solid foundation: enough historical data, correct setup, and ongoing monitoring.
Smart Coding won’t eliminate coding errors entirely. Edge cases, exceptions, complex allocations, or unusual cost objects will still require human intervention.
Benefits are greatest when invoice volumes are high and coding rules relatively stable. In very volatile or complex environments, the value may be less dramatic.
In short: Smart Coding can be a useful tool to help reduce workload and increase consistency, but it’s not a magic bullet. Proper expectation setting, pilot testing, and incremental rollout are key for getting good value.
What has been your experience with Smart Coding so far? Did it meet your expectations, or did you run into challenges? Share your thoughts in the comments below — I’d love to hear them.
This article is intended for informational purposes only and does not supersede or replace the official documentation provided by OpenText. It serves as supplementary guidance to assist with common challenges that may arise during installation and upgrades. For authoritative instructions and compliance requirements, refer to OpenText’s official documentation.
The capture component used in conjunction with OpenText Vendor Invoice Management for SAP Solutions (SAP VIM) is usually Intelligent Capture for SAP Solutions (short: IC4S; on premise) or Core Capture for SAP Solutions (short: CC4S; hosted in the OpenText Cloud).
Continuous feedback allows the capture component of VIM to read and interpret more and more incoming .pdf-documents fully or partly. In some systems, however, it is simply never switched on. As a result, the automatic recognition of data on the documents never improves and a high manual validation effort is required. This is not only annoying but also expensive.
How does the learning work?
In simple terms, the process for continuous learning works like this:
The system (IC4S or CC4S) extracts as much data as possible from the document
The extracted data is corrected and supplemented by users in the validation client.
The corrected results are sent back to the capture component via the so-called feedback link, which expands the set of rules for extracting data and generally delivers a better result for the next similar document.
What is an Archive Link Document Type?
An Archive Link Document Type refers to a classification used for documents that are stored in an external archive system but linked to SAP transactions via SAP ArchiveLink. ArchiveLink is an SAP technology that enables the connection of external document management systems (DMS) to SAP applications.
In the simplest case, there is one archive link document type in a VIM project for storing, for example invoices, let’s call it “ZINVOICE”. Whether the learning is executed or not depends on the settings assigned for this archive link document type.
In VIM projects, usually one or more archive link document types are created for both invoicing and non-invoicing processes. These allow you to create your own scenarios independently of the document types supplied with the product.
My recommendation here is always to create your own archive link document types. This makes customization easier and you don’t run the risk of accidentally resetting all possible settings during the next VIM upgrade. However, this also opens the door for the customizing mistake which I describe in this article.
Is my system learning or is it standing still?
You can find out in just a few minutes whether your system is learning, or at least is encouraged to learn (in addition to this setting, there are also other reasons that can prevent learning).
First we find out which Archive Link document type we are using, the quickest way to do this is in transaction /OTX/PF03_WP (VIM Central Workplace) in the work center Inbound administration.
/otx/pf03_wp
Select the “Processed” note and select the line of a recently processed document.
In the line you can scroll to the right until you see the column “Document type”. Note all the Document types you are using. For example “ZINVOICE”.
The next step ist to check the customizing in /OTX/PF00_IMG.
/otx/pf00_img
Navigate to Inbound Configuration > Capture > Feedback:
In the table you should see all active archive link document types you are using with an active checkbox next to them:
In case you archive link document type is missing here there will be no learning taking place after validating documents. This means that your validation process does not generate a sustainable learning effect but is only valid for the current document.
My learning is not activated, how do I solve the problem?
The problem is quickly solved. Add the missing entry in the development system, test, transport and the issue is resolved (learning will only take place for newly processed documents).
Why didn’t we realize this earlier?
In the case of non-invoice-related document processes, the problem is usually immediately apparent because without learning results, not a single field (with the exception of business entities) is recognized and therefore an exorbitantly high validation effort is required.
The situation is different for invoice-related processes, where the product standard already provides basic recognition results, which are then improved by validation. Therefore you already have a basis of recognition results and do not initially notice that the feedback is missing.
Conclusion
This setting is very simple but unfortunately easy to overlook. The system does not complain about the missing setting and everything initially appears to be working. If this article has helped you to resolve a big problem in a simple way, I would be happy if you share it!