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. For authoritative instructions and compliance requirements, refer to OpenText’s official documentation and support. Do not use this in production systems.
Debugging Logic Modules in SAP VIM is rarely straightforward. Setting multiple breakpoints, stepping through code execution, and still failing to reach the relevant section can quickly become frustrating and time-consuming.
However, there’s a little-known approach that can make this process far more efficient.
Within the SAP VIM development packages, there is a program that can be executed via transaction SE38:
/OPT/DR_BPF_TEST
This program does not appear in the standard OpenText documentation, which means many consultants are unaware of its existence. Yet it provides a structured way to analyze and debug Logic Modules.
Key Capabilities
Display a list of all Logic Modules executed for a given document
View the sequence of module calls in detail
Decide whether to simulate the process start, rerun business rules, or both.
Set a breakpoint in the code and execute the program in SE38 to jump into the debugger without detours
This transforms debugging from a trial-and-error exercise into a transparent, manageable process. Instead of relying on chance to intercept the correct module, you can work systematically through the exact logic that is being applied.
How to use it
Execute the program in SE38
Enter the corresponding VIM DP document ID, decide if you want to check the process start, the re-run of business rules or both and decide if you want to show the modules only or process them:
Benefit from a clean list that gives all relevant information for debugging Logic Modules. You can pick up the class name, set a breakpoint in the code and repeat.
Why This Is Valuable
Effective debugging is essential in every OpenText Vendor Invoice Management for SAP Solutions (VIM) project, whether for customizing workflows, implementing enhancements, or analyzing issues in production support. By providing direct insight into the sequence and behavior of Logic Modules, /OPT/DR_BPF_TEST can significantly reduce the time spent on troubleshooting.
Because this tool is not part of the official documentation, knowledge of it can provide consultants and project teams with a clear advantage when working on complex VIM implementations.
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. For authoritative instructions and compliance requirements, refer to OpenText’s official documentation.
When working with OpenText Vendor Invoice Management (VIM) for SAP, one of the most overlooked yet powerful features is the Workflow History PDF Log. This capability automatically generates a comprehensive PDF at the conclusion of the VIM process—capturing every key detail, from process milestones and approvals to workflow logs and user comments.
This isn’t just a convenience for auditors or a checkbox for compliance. It’s a transparent, time-stamped audit trail that gives AP managers and business users immediate visibility into how an invoice was handled. What’s more, the history log is securely archived and linked to both the DP document and the SAP invoice—so it’s always accessible and never lost.
Benefits of the Workflow History PDF
Audit-ready: A single document with all approvals, comments, and workflow steps.
Transparency: Clear visibility into who did what and when.
Compliance: Securely archived and linked to the invoice for future reference.
Flexibility: Can be customized to include company-specific information.
How to Set It Up
You configure the PDF history log within a profile which describes all settings for the creation of the PDF history log. You assign this profile to a OpenText VIM for SAP process step.
You must specify that the PDF history log will be created at the end of the OpenText VIM for SAP process. To enable the creation of the PDF history log, you must assign the profile for the PDF history log (default profile: HISTORY) to the OpenText VIM for SAP process “VIM process is finished”. Without this, the PDF history log will not be created at the end of the OpenText VIM for SAP process.
1) Define the profile for the PDF History Log
Run the /n/OPT/SPRO transaction and navigate to OpenText Vendor Invoice Management Invoice Solution > Cross Component Configuration > PDF Log >Maintain Customizing Profiles.
The PDF profile ‘HISTORY‘ is delivered with the baseline. You can either customize it or create your own custom profile.
In the Define Profiles screen, you will find the following parameters that are specific for the PDF history log:
PDF Log Class The complete logic of the PDF history log is included in the PDF log class /OPT/CL_C_PDF_LOG, which is delivered with the baseline. You can enhance the class by redefining components of the class within a custom class, which you can maintain instead of the baseline class.
PDF Form Type Enter the type of the PDF form.
Currently, Smart Forms is the only available entry for this field. However, it is also possible to redefine the logic of the PDF log class /OPT/CL_C_PDF_LOG within a custom class to support other techniques, for example SAP Interactive Forms.
Default value: Smart Forms
Form Name Enter the name of the SAP Smart Forms form. Baseline delivery includes a Smart Form /OPT/C_WORKFLOW_HISTORY01. You can copy the Smart Form using the smartforms transaction and adjust it to your needs. You can maintain this adjusted Smart Form in the Form Name box instead of the baseline Smart Form. The baseline Smart Form uses the SAP Smart Style /OPT/C_SF_STYLE01 for the format options of the Smart Form, for example the font and the font size of headers or default paragraphs. You can copy the Smart Style using the smartstyles transaction and adjust it to your needs. Additionally, copy the Smart Form and maintain your new Smart Style in the Output Options tab of the Form Attributes screen of the Smart Form.
Document type Enter the archive document type to be used for archiving the PDF history log. Within baseline, the archive document type /OPT/PDF is delivered (we suggest that you create your own archive link documenttype for this).
You must link the archive document type to the OpenText VIM for SAP Business Object and to SAP Business Objects (in case it’s not already linked by default, you can link the document type ‘/OPT/PDF’ to object types ‘/OPT/V1001’ and ‘BKPF’ via transaction OAC3).
Overwrite Select this check box to overwrite PDF history logs that have already been linked to the DP document and its SAP invoice with the same archive document type. It is possible to create a PDF history log to a DP document manually by using the /OPT/CR_PDF_LOG report. When using this report, a PDF history log linked to the DP document and its SAP invoice can already exist.
Selecting the Overwrite check box deletes the physical PDF document (the PDF history log) and its links to the DP document and the SAP invoice. This PDF history log can either be created manually or automatically. Default value:
2) Assigning the profile to a OpenText VIM for SAP process step
To create this PDF history log at the end of the OpenText VIM for SAP process, you must assign the profile to the VIM process is finished process step for your company codes. If you leave Company Code empty, the setting is used for all company codes.
By setting up the Workflow History PDF log, you create a single source of truth for your invoice processes. With just a few configuration steps, your organization gains audit-ready documentation, transparent tracking of every approval and action, and a secure archive that is always accessible.
Whether for compliance, audit preparation, or day-to-day process insight, the Workflow History PDF log ensures that your AP processes are not only more transparent but also more reliable and future-proof.
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.
When working with SAP Vendor Invoice Management (VIM), standard configurations often cover the majority of business needs — but not all of them. In many projects, there comes a point where additional data enrichments are required to ensure invoices are processed correctly and efficiently. This is where Logic Modules come into play. Logic Modules allow you to extend VIMs capabilities by injecting custom ABAP code into the document processing flow.
In this guide, I’ll walk you through creating a simple data enrichment logic module, step by step: from the ABAP implementation to configuration in /n/OPT/SPRO and finally the mapping to document types. By the end, you’ll have a working example that you can adapt to your own project requirements.
1. Creating the logic module class
Creating the logic module class using superclass /OPT/CL_D_LM_SUPER.
Redefine method /OPT/IF_D_BP_MODULE~PROCESSING
A very minimalistic logic module can just consist of one line:
METHOD /opt/if_d_bp_module~processing. ev_success ='X'. "this is important!ENDMETHOD.
It is important to remember giving back ev_success = ‘X’ in logic modules as the missing success indicator can cause the following logic modules to not start.
“Success” in this case does not mean that actual data was enriched but just that the logic module did not encounter any issue. This is different in VIM Beyond Invoices Data Enrichments where you only want to give the success marker back when there was really data enriched.
As an empty logic module does not bring any benefit so lets give it some simple logic. Here’s a basic example that sets an empty reference number to “Test” + DocID::
METHOD /opt/if_d_bp_module~processing.* in case the reference number is empty we fill it with "Test" and the current docid. Resulting in e. g. "Test5" for Doc. ID 5. IF cv_index_header-xblnr ISINITIAL.CONCATENATE'Test' cv_index_header-docid INTO cv_index_header-xblnr. ENDIF. ev_success ='X'. "this is important!ENDMETHOD.
Save and activate your Logic Module class.
2. Defining a Logic Module
Now that we have created the logic module class lets head to /n/OPT/SPRO and navigate to Document Processing Configuration > Document Type Configuration > Logic Module Processing > Logic Module Processing
Create an entry with an unique Module ID, a meaningful descripton and the name of the class you just created:
It is a good practice to start custom logic modules with a “Z” and stick to the naming convention from product standard.
Example: “ZN_ITEM_001” is affecting NPO Invoices and updates line item information (001 is a running number) while “ZP_HEAD_001” is affecting PO-Related invoices and header information is updated.
Remember the name and move on to the next step.
3. Processing Definition and Module Processing Steps
You can Imagine a “Processing Definition” as a collection of logic modules which you can later assign to a DP document type like “Z_NPO” or “PO_75”. It is not possible to directly assign a logic module to a document type therefore lets create a Processing Definition. Add a Process ID and a Description and you can move on the “Module Processing Steps”:
For a basic processing definition with just one module you can simply add a counter (We suggest using 10 so you can add something before this module later), the Module ID we defined before, the “Active” checkbox and the Processing mode (Run only at processing start, only when re-running business rules or both):
Now we have created our collection of logic modules (with just one logic module for now) and can can move on to the next step: Process Mapping.
4. Mapping groups of Logic Modules (“Processing Definition”) to DP Document Types
To complete the setup you simply assign you Process ID (“Processing Definition”) to one or more DP Document Types:
Official Documentation
Always cross-check your setup with the official Open Text Guides. Starting with chapter “Processing logic modules” in “OpenText Vendor Invoice Management for SAP Solutions: Configuration Guide for Invoice Solution” (for your Version of VIM) is good idea.
Outro
Logic Modules are a powerful way to adapt SAP VIM to the unique requirements of your organization. Even though the example shown here is very simple, the same principles can be applied to implement far more complex business logic — from tax code adjustments to automated field population.
By following the approach outlined above, you now have a blueprint for creating, configuring, and deploying your own custom Logic Modules. With this flexibility, VIM becomes not just a standard solution but a platform you can tailor precisely to your processes.
If you are running OpenText Vendor Invoice Management (VIM) in your SAP landscape, you may have noticed that the default configuration includes OpenText logos in the Central Workplace, Invoice Workplace, and Analytics screens.
This setup eats up valuable space in your VIM screens. For Accounts Payable (AP) users working with many line items, those extra inches of screen can make a real difference in productivity.
The good news: removing these logos is straightforward and does not require deep technical development. Below are the practical steps you can follow.
VIM Central Workplace
Run the /n/OTX/PF00_IMG transaction and navigate to OpenText Vendor Invoice Management Foundation > General Settings > General Settings.
Set the parameter ‘Logo is displayed in Workplace and Index Screen’ to blank.
VIM Invoice Workplace
Run the /n/OPT/SPRO transaction and navigate to OpenText Vendor Invoice Management > Cross Component Configuration > VIM Workplace > Maintain Customizing Profiles.
Select the Customizing profile you desire to update and click on ‘General Profile Settings’.
Set the parameter ‘Logo name’ to blank.
VIM Analytics
Run the /n/OPT/SPRO transaction and navigate to OpenText Vendor Invoice Management > Cross Component Configuration > VIM Analytics > Maintain Customizing Profiles.
Select the Customizing profile you desire to update and click on ‘General Profile Settings’.
Set the parameter ‘Logo name’ to blank.
Alternative option to remove the OT Logo from both VIM Analytics and VIM Invoice Workplace
VIM provides the global possibility to control whether logo images should be displayed using the DASHBOARD_NO_LOGO constant, product code 005 of the WebFlow Constant Table /PTGWFI/Z_CONST.
Run the /n/OPT/SPRO transaction and navigate to OpenText Vendor Invoice Management > Document Processing Configuration >General Configuration > Global Configuration.
Maintain the constant 005 DASHBOARD_NO_LOGO, set the value to ‘X’.
This last change affects both VIM Analytics and VIM Invoice Workplace.
With just a few customizing steps, you can clean up your VIM screens and give your team more space to focus on what really matters: processing invoices efficiently.