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 during installation and upgrades. For authoritative instructions and compliance requirements, refer to OpenText’s official documentation.
Please note that this article is not about the VIM Invoice process but VIM Solutions Beyond Invoice which is, for example, used to process sales orders, quotations, remittance advices, order confirmations or fully custom document processes (including capture & recognition using OpenText Intelligent Capture for SAP Solutions [IC4S]).
VIM Solutions Beyond Invoice is formerly known as Business Center and sometimes referred to as VIM Beyond.
Similar to the invoice process, the document process in SAP VIM Solutions Beyond Invoice is made up of data enrichments, roles, business rules and actions. In today’s article, I will show you how to quickly and easily create and configure an individual business rule. I also provide my template which allows an easy start for your new business rule.
Creating a Business Rule class
Create a new class using superclass /OTX/PF04_CL_MODULE. You can use for example SE24 or SE80 to achieve this.
/OTX/PF04_CL_MODULE
To implement a business rule you must redefine method /OTX/PF04_IF_MODULE~MODULE_EXEC_CHECK.
/OTX/PF04_IF_MODULE~MODULE_EXEC_CHEC
In earlier versions, data was changed with the help of business rules. This is becoming obsolete today and should therefore be avoided. Business rules check data, data enrichments change data. It is easy to convert old business rules into data enrichments.
As a starting point you can use my business rule template:
ABAP
METHOD/otx/pf04_if_module~module_exec_check.DATA: ls_plh TYPE z01ca_otx_bc_plh, " header table lt_pli TYPE TABLE OF z01ca_otx_bc_pli, " line item table lv_pos TYPE cLENGTH10, " line item position for messages ls_msg TYPE SYMSG. " messageFIELD-SYMBOLS: TYPE z01ca_otx_bc_pli. " line item table ls_plh = pis_plh. lt_pli = pit_pli. pe_mod_run_status = /otx/pf04_if_category=>mc_run_stat_success. " set rule to successful initially LOOP AT lt_pli ASSIGNING.CLEAR: lv_pos, ls_msg."[...] logic" pe_mod_run_status = /otx/pf04_if_category=>mc_run_stat_failed. " set rule to failed ls_msg-msgty ='E'. ls_msg-msgid ='Z...'. ls_msg-msgno =123. ls_msg-msgv1 ='This rule always fails..'."[...]APPEND ls_msg TO pet_mod_msg. ENDLOOP.ENDMETHOD.
Customizing for a SAP VIM Solutions Beyond Invoice Business Rule
Now we have created the class for our business rule and have to create the corresponding customising, which can be done very quickly in the transaction /otx/pf00_img.
/otx/pf00_img
Navigate to Process Configuration > Profiles:
Select your Profile Configuration and navigate to the corresponding Version > Characteristic Configuration and select Process Steps. Select the process step where you want to add the business rule, then navigate to Rules.
When creating the rule, it is important that the rule type here is CHK. Change (CHG) rules are obsolete and have been replaced by data enrichments. Your business rule should not change any data.
Don’t forget to activate the active checkbox on the right-hand side of the screen, as this can easily be overlooked depending on the screen resolution.
Basically, the rule is now active and can be tested. In Customizing, however, you still have to decide which role can skip which rules in which step. Depending on the number of steps and roles, this can be quite extensive:
In general, the simulation of each step should be allowed in all steps and the skipping of rules should also be permitted.
Final Thoughts: Less Is More
When crafting business rules for non-invoice scenarios in SAP VIM, it’s tempting to add a high number of rules to check every possible scenario. But complexity can lead to confusion of the end users and slow performance.
Focus on the minimal rules that truly matter—clearly defined conditions, straightforward actions, and well-documented workflows. It can also make sense to group multiple checks into one business rule to declutter the workspace. For example the rule missing material number and invalid material number can be combined into one rule.
By keeping it simple, you’ll speed up maintenance, reduce errors, and allows you to adapt more quickly when requirements change.