{"id":915,"date":"2025-02-16T17:46:30","date_gmt":"2025-02-16T17:46:30","guid":{"rendered":"https:\/\/sapvimtraining.com\/?p=645"},"modified":"2025-06-13T13:12:48","modified_gmt":"2025-06-13T11:12:48","slug":"creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template","status":"publish","type":"post","link":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/","title":{"rendered":"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)"},"content":{"rendered":"\n<div class=\"wp-block-ainoblocks-notification-block status-warning border-all icon-fill pt__5 pb__5 pl__5 pr__5\" style=\"border-width:1px\" x-data=\"{ open: true }\" @click=\"open = !open\" :class=\"{'close': ! open }\"><div class=\"content-wrapper\"><button class=\"close-btn\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 12 12\" aria-hidden=\"true\"><path d=\"M10.243 3.172l-2.829 2.828 2.829 2.829-1.414 1.414-2.829-2.829-2.828 2.829-1.414-1.414 2.828-2.83-2.828-2.827 1.414-1.414 2.828 2.827 2.828-2.827z\"><\/path><\/svg><\/button><span class=\"icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 17c0.552 0 1 0.448 1 1s-0.448 1-1 1c-0.552 0-1-0.448-1-1s0.448-1 1-1zM13 5v10h-2v-10h2z\"><\/path><\/svg><\/span>\n<p class=\"has-xs-font-size\" style=\"margin-right:var(--wp--preset--spacing--10);margin-left:var(--wp--preset--spacing--10)\">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\u2019s official documentation.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-ainoblocks-notification-block status-info border-all icon-fill pt__5 pb__9 pl__9 pr__5\" style=\"border-width:1px\" x-data=\"{ open: true }\" @click=\"open = !open\" :class=\"{'close': ! open }\"><div class=\"content-wrapper\"><button class=\"close-btn\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 12 12\" aria-hidden=\"true\"><path d=\"M10.243 3.172l-2.829 2.828 2.829 2.829-1.414 1.414-2.829-2.829-2.828 2.829-1.414-1.414 2.828-2.83-2.828-2.827 1.414-1.414 2.828 2.827 2.828-2.827z\"><\/path><\/svg><\/button><span class=\"icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M13 9v10h-2v-10h2zM12 5c0.552 0 1 0.448 1 1s-0.448 1-1 1c-0.552 0-1-0.448-1-1s0.448-1 1-1z\"><\/path><\/svg><\/span>\n<p class=\"has-xs-font-size\" style=\"padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">Please note that this article is <em>not about the VIM Invoice process<\/em> but VIM Solutions Beyond Invoice which is, for example, used to process <strong>sales orders<\/strong>, quotations, remittance advices, order confirmations or fully custom document processes (including capture &#038; recognition using OpenText Intelligent Capture for SAP Solutions [IC4S]).<br><br><strong>VIM Solutions Beyond Invoice<\/strong> is formerly known as<strong> Business Center <\/strong>and sometimes referred to as <strong>VIM Beyond<\/strong>.<\/p>\n<\/div><\/div>\n\n\n\n<p>Similar to the invoice process, the document process in SAP VIM Solutions Beyond Invoice is made up of <a href=\"https:\/\/sapvimtraining.com\/sap-vim-beyond-invoices\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/\">data enrichments<\/a>, roles, business rules and actions. In today&#8217;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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creating a Business Rule class<\/h2>\n\n\n\n<p>Create a new class using superclass <strong>\/OTX\/PF04_CL_MODULE<\/strong>. You can use for example SE24 or SE80 to achieve this.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Hack\" style=\"font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FDF6E3\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#657B83;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>\/OTX\/PF04_CL_MODULE<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-light\" style=\"background-color: #FDF6E3\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #657B83\">\/OTX\/PF04_CL_MODULE<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-10-1024x677.png\" alt=\"\" class=\"wp-image-646\" style=\"width:527px;height:auto\"\/><\/figure>\n\n\n\n<p>To implement a business rule you must redefine method \/OTX\/PF04_IF_MODULE~MODULE_EXEC_CHECK.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Hack\" style=\"font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FDF6E3\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#657B83;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>\/OTX\/PF04_IF_MODULE~MODULE_EXEC_CHEC<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-light\" style=\"background-color: #FDF6E3\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #657B83\">\/OTX\/PF04_IF_MODULE~MODULE_EXEC_CHEC<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-ainoblocks-notification-block status-info border-all icon-fill pt__5 pb__9 pl__9 pr__5\" style=\"border-width:1px\" x-data=\"{ open: true }\" @click=\"open = !open\" :class=\"{'close': ! open }\"><div class=\"content-wrapper\"><button class=\"close-btn\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 12 12\" aria-hidden=\"true\"><path d=\"M10.243 3.172l-2.829 2.828 2.829 2.829-1.414 1.414-2.829-2.829-2.828 2.829-1.414-1.414 2.828-2.83-2.828-2.827 1.414-1.414 2.828 2.827 2.828-2.827z\"><\/path><\/svg><\/button><span class=\"icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M13 9v10h-2v-10h2zM12 5c0.552 0 1 0.448 1 1s-0.448 1-1 1c-0.552 0-1-0.448-1-1s0.448-1 1-1z\"><\/path><\/svg><\/span>\n<p class=\"has-xs-font-size\" style=\"padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">In earlier versions, data was changed with the help of <strong>business rules<\/strong>. This is becoming obsolete today and should therefore be avoided. Business rules <strong>check<\/strong> data, <a href=\"https:\/\/sapvimtraining.com\/sap-vim-beyond-invoices\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/\">data enrichments <strong>change<\/strong> data<\/a>. It is easy to convert old business rules into data enrichments.<\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-12-1024x334.png\" alt=\"\" class=\"wp-image-648\"\/><\/figure>\n\n\n\n<p>As a starting point you can use my business rule template:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Hack\" style=\"font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#fbeecb;color:#708891\">ABAP<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#657B83;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>   METHOD \/otx\/pf04_if_module~module_exec_check.\n\n    DATA: ls_plh   TYPE z01ca_otx_bc_plh, &#8221; header table\n          lt_pli   TYPE TABLE OF z01ca_otx_bc_pli, &#8221; line item table\n          lv_pos   TYPE c LENGTH 10, &#8221; line item position for messages\n          ls_msg   TYPE SYMSG. &#8221; message\n\n    FIELD-SYMBOLS: <fs_pli> TYPE z01ca_otx_bc_pli. &#8221; line item table\n\n    ls_plh = pis_plh.\n    lt_pli = pit_pli.\n\n    pe_mod_run_status = \/otx\/pf04_if_category=>mc_run_stat_success. &#8221; set rule to successful initially\n\n    LOOP AT lt_pli ASSIGNING <fs_pli>.\n\n      CLEAR: lv_pos, ls_msg.\n      \n      &#8220;[&#8230;] logic\n      \n      &#8221; pe_mod_run_status = \/otx\/pf04_if_category=>mc_run_stat_failed. &#8221; set rule to failed \n\n      ls_msg-msgty = &#8216;E&#8217;.\n      ls_msg-msgid = &#8216;Z&#8230;&#8217;.\n      ls_msg-msgno = 123.  \n      ls_msg-msgv1 = &#8216;This rule always fails..&#8217;.\n      &#8220;[&#8230;]\n\n      APPEND ls_msg TO pet_mod_msg.\n    ENDLOOP.\n\n  ENDMETHOD.<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-light\" style=\"background-color: #FDF6E3\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #657B83\">   <\/span><span style=\"color: #586E75; font-weight: bold\">METHOD<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #CB4B16\">\/otx\/pf04_if_module<\/span><span style=\"color: #657B83\">~<\/span><span style=\"color: #268BD2\">module_exec_check<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    <\/span><span style=\"color: #859900\">DATA<\/span><span style=\"color: #657B83\">: ls_plh  <\/span><span style=\"color: #859900\"> TYPE<\/span><span style=\"color: #657B83\"> z01ca_otx_bc_plh, <\/span><span style=\"color: #93A1A1; font-style: italic\">\" header table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">          lt_pli  <\/span><span style=\"color: #859900\"> TYPE TABLE OF<\/span><span style=\"color: #657B83\"> z01ca_otx_bc_pli, <\/span><span style=\"color: #93A1A1; font-style: italic\">\" line item table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">          lv_pos  <\/span><span style=\"color: #859900\"> TYPE c<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #859900\">LENGTH<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #D33682\">10<\/span><span style=\"color: #657B83\">, <\/span><span style=\"color: #93A1A1; font-style: italic\">\" line item position for messages<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">          ls_msg  <\/span><span style=\"color: #859900\"> TYPE<\/span><span style=\"color: #657B83\"> SYMSG. <\/span><span style=\"color: #93A1A1; font-style: italic\">\" message<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    <\/span><span style=\"color: #859900\">FIELD-SYMBOLS<\/span><span style=\"color: #657B83\">: <\/span><span style=\"color: #268BD2\"><fs_pli><\/span><span style=\"color: #859900\"> TYPE<\/span><span style=\"color: #657B83\"> z01ca_otx_bc_pli. <\/span><span style=\"color: #93A1A1; font-style: italic\">\" line item table<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    ls_plh <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> pis_plh.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    lt_pli <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> pit_pli.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pe_mod_run_status <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> \/otx\/pf04_if_category=>mc_run_stat_success. <\/span><span style=\"color: #93A1A1; font-style: italic\">\" set rule to successful initially<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">   <\/span><span style=\"color: #859900\"> LOOP AT<\/span><span style=\"color: #657B83\"> lt_pli <\/span><span style=\"color: #859900\">ASSIGNING<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #268BD2\"><fs_pli><\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><span style=\"color: #859900\">CLEAR<\/span><span style=\"color: #657B83\">: lv_pos, ls_msg.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><span style=\"color: #93A1A1; font-style: italic\">\"[...] logic<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><span style=\"color: #93A1A1; font-style: italic\">\" pe_mod_run_status = \/otx\/pf04_if_category=>mc_run_stat_failed. \" set rule to failed <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      ls_msg-msgty <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'E'<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      ls_msg-msgid <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'Z...'<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      ls_msg-msgno <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #D33682\">123<\/span><span style=\"color: #657B83\">.  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      ls_msg-msgv1 <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'This rule always fails..'<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><span style=\"color: #93A1A1; font-style: italic\">\"[...]<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      <\/span><span style=\"color: #859900\">APPEND<\/span><span style=\"color: #657B83\"> ls_msg<\/span><span style=\"color: #859900\"> TO<\/span><span style=\"color: #657B83\"> pet_mod_msg.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">   <\/span><span style=\"color: #859900\"> ENDLOOP<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">  <\/span><span style=\"color: #586E75; font-weight: bold\">ENDMETHOD<\/span><span style=\"color: #657B83\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Customizing for a SAP VIM Solutions Beyond Invoice Business Rule<\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Hack\" style=\"font-size:.875rem;font-family:Code-Pro-Hack,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#FDF6E3\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#657b8333\" stroke=\"#657b834d\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#657B83;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><textarea class=\"code-block-pro-copy-button-textarea\" aria-hidden=\"true\" readonly>\/otx\/pf00_img<\/textarea><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki solarized-light\" style=\"background-color: #FDF6E3\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #657B83\">\/otx\/pf00_img<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Navigate to <strong>Process Configuration<\/strong> > <strong>Profiles<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-3.png\" alt=\"\" class=\"wp-image-622\" style=\"width:394px;height:auto\"\/><\/figure>\n\n\n\n<p>Select your <strong>Profile Configuration<\/strong> and navigate to the corresponding <strong>Version<\/strong> > <strong>Characteristic Configuration<\/strong> and select<strong> Process Steps<\/strong>. Select the process step where you want to add the business rule, then navigate to <strong>Rules<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-13.png\" alt=\"\" class=\"wp-image-650\" style=\"width:348px;height:auto\"\/><\/figure>\n\n\n\n<p>When creating the rule, it is important that the rule type here is CHK. Change (CHG) rules are obsolete and have been <a href=\"https:\/\/sapvimtraining.com\/sap-vim-beyond-invoices\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/\">replaced by data enrichments<\/a>. Your business rule should not change any data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-14-1024x120.png\" alt=\"\" class=\"wp-image-652\"\/><\/figure>\n\n\n\n<p>Don&#8217;t forget to activate the <strong>active checkbox<\/strong> on the right-hand side of the screen, as this can easily be overlooked depending on the screen resolution.<\/p>\n\n\n\n<p>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:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-15-1024x554.png\" alt=\"\" class=\"wp-image-655\"\/><\/figure>\n\n\n\n<p>In general, the simulation of each step should be allowed in all steps and the skipping of rules should also be permitted. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts: Less Is More<\/strong><\/h2>\n\n\n\n<p>When crafting business rules for non-invoice scenarios in SAP VIM, it\u2019s 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. <\/p>\n\n\n\n<p>Focus on the minimal rules that truly matter\u2014clearly 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. <\/p>\n\n\n\n<p>By keeping it simple, you\u2019ll speed up maintenance, reduce errors, and allows you to adapt more quickly when requirements change.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,31],"tags":[33,30,25,32],"class_list":["post-915","post","type-post","status-publish","format-standard","hentry","category-development","category-sap-vim-beyond-invoices","tag-business-rule","tag-development","tag-opentext","tag-sap-vim-solutions-beyond-invoice"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/\"},\"author\":{\"name\":\"Johannes Auer\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#\\\/schema\\\/person\\\/5be8c8acac2d2546979a66edb36355f7\"},\"headline\":\"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)\",\"datePublished\":\"2025-02-16T17:46:30+00:00\",\"dateModified\":\"2025-06-13T11:12:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/\"},\"wordCount\":750,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sapvimtraining.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-10-1024x677.png\",\"keywords\":[\"Business Rule\",\"Development\",\"Open Text\",\"SAP VIM Solutions Beyond Invoice\"],\"articleSection\":[\"Development\",\"SAP VIM Beyond Invoice\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/\",\"name\":\"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sapvimtraining.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-10-1024x677.png\",\"datePublished\":\"2025-02-16T17:46:30+00:00\",\"dateModified\":\"2025-06-13T11:12:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sapvimtraining.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-10-1024x677.png\",\"contentUrl\":\"https:\\\/\\\/sapvimtraining.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-10-1024x677.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#website\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/\",\"name\":\"Johannes Auer\",\"description\":\"SAP VIM Consulting\",\"publisher\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/johannesauer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#organization\",\"name\":\"Johannes Auer\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Logo-2026-space-marble-picture-scaled.png\",\"contentUrl\":\"https:\\\/\\\/johannesauer.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Logo-2026-space-marble-picture-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Johannes Auer\"},\"image\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/auer\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#\\\/schema\\\/person\\\/5be8c8acac2d2546979a66edb36355f7\",\"name\":\"Johannes Auer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g\",\"caption\":\"Johannes Auer\"},\"sameAs\":[\"https:\\\/\\\/johannesauer.com\"],\"url\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#article","isPartOf":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/"},"author":{"name":"Johannes Auer","@id":"https:\/\/johannesauer.com\/#\/schema\/person\/5be8c8acac2d2546979a66edb36355f7"},"headline":"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)","datePublished":"2025-02-16T17:46:30+00:00","dateModified":"2025-06-13T11:12:48+00:00","mainEntityOfPage":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/"},"wordCount":750,"commentCount":0,"publisher":{"@id":"https:\/\/johannesauer.com\/#organization"},"image":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#primaryimage"},"thumbnailUrl":"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-10-1024x677.png","keywords":["Business Rule","Development","Open Text","SAP VIM Solutions Beyond Invoice"],"articleSection":["Development","SAP VIM Beyond Invoice"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/","url":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/","name":"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)","isPartOf":{"@id":"https:\/\/johannesauer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#primaryimage"},"image":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#primaryimage"},"thumbnailUrl":"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-10-1024x677.png","datePublished":"2025-02-16T17:46:30+00:00","dateModified":"2025-06-13T11:12:48+00:00","breadcrumb":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#primaryimage","url":"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-10-1024x677.png","contentUrl":"https:\/\/sapvimtraining.com\/wp-content\/uploads\/2025\/02\/image-10-1024x677.png"},{"@type":"BreadcrumbList","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-business-rule-for-sap-vim-solutions-beyond-invoice-free-template\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/johannesauer.com\/en\/"},{"@type":"ListItem","position":2,"name":"Creating a Business Rule for SAP VIM Solutions Beyond Invoice (+ free Template)"}]},{"@type":"WebSite","@id":"https:\/\/johannesauer.com\/#website","url":"https:\/\/johannesauer.com\/","name":"Johannes Auer","description":"SAP VIM Consulting","publisher":{"@id":"https:\/\/johannesauer.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/johannesauer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/johannesauer.com\/#organization","name":"Johannes Auer","url":"https:\/\/johannesauer.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/johannesauer.com\/#\/schema\/logo\/image\/","url":"https:\/\/johannesauer.com\/wp-content\/uploads\/2026\/01\/Logo-2026-space-marble-picture-scaled.png","contentUrl":"https:\/\/johannesauer.com\/wp-content\/uploads\/2026\/01\/Logo-2026-space-marble-picture-scaled.png","width":2560,"height":2560,"caption":"Johannes Auer"},"image":{"@id":"https:\/\/johannesauer.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/auer\/"]},{"@type":"Person","@id":"https:\/\/johannesauer.com\/#\/schema\/person\/5be8c8acac2d2546979a66edb36355f7","name":"Johannes Auer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/60aef692d1ef612aae869660d5783f53d98ea7fbd0396a3dc70f028c5294135c?s=96&d=mm&r=g","caption":"Johannes Auer"},"sameAs":["https:\/\/johannesauer.com"],"url":"https:\/\/johannesauer.com\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/posts\/915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/comments?post=915"}],"version-history":[{"count":0,"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/posts\/915\/revisions"}],"wp:attachment":[{"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/media?parent=915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/categories?post=915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/johannesauer.com\/en\/wp-json\/wp\/v2\/tags?post=915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}