{"id":914,"date":"2025-02-08T17:10:19","date_gmt":"2025-02-08T17:10:19","guid":{"rendered":"https:\/\/sapvimtraining.com\/?p=607"},"modified":"2025-06-13T16:03:29","modified_gmt":"2025-06-13T14:03:29","slug":"creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template","status":"publish","type":"post","link":"https:\/\/johannesauer.com\/de\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/","title":{"rendered":"Creating a Data Enrichment 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<p>A data enrichment is a <em>logic<\/em> or <em>learning<\/em> based data manipulation which can run, for example, at the begin of a process. From a usage point it is very comparable with a logic module in the VIM Invoice process. <\/p>\n\n\n\n<p>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]). <\/p>\n\n\n\n<p>To be precise, Solutions Beyond Invoice describes the supplied solution packages, while the Foundation describes the creation of customised solutions, actions, rules and so on. For the sake of simplicity, I will refer to both as Solutions Beyond Invoice.<\/p>\n\n\n\n<p>In the following steps I will describe how to create a <em>logic<\/em> based data enrichment for <a href=\"https:\/\/www.opentext.com\/products\/vendor-invoice-management-for-sap-solutions\">SAP VIM Solutions Beyond Invoice<\/a>. <\/p>\n\n\n\n<p>In case you are interested about <em>learning<\/em> based data enrichments please check the <br><a href=\"https:\/\/support.opentext.com\/csm?id=kb_article_view&#038;sysparm_article=KB0778393\">OpenText Vendor Invoice Management for SAP Solutions &#8211; Configuration Guide for Foundation<\/a>.<\/p>\n\n\n\n<p>In case you are interested about using <em>logic modules<\/em> for the <em>VIM Invoice process<\/em> please refer to the <a href=\"https:\/\/support.opentext.com\/csm?id=kb_article_view&#038;sysparm_article=KB0778393\">OpenText Vendor Invoice Management for SAP Solutions &#8211; Configuration Guide for Invoice Solution<\/a>.<\/p>\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)\"><strong>VIM Solutions Beyond Invoice<\/strong> is formerly known as<strong> Business Center <\/strong>and sometimes referred to as <strong>VIM Beyond<\/strong>.<br><br>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, data enrichments <strong>change<\/strong> data. It is easy to convert old business rules into data enrichments.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0-creating-a-data-enrichment-abap-class\">Creating a data enrichment ABAP class<\/h2>\n\n\n\n<p>The initial step in this process is to create a new class that is both appropriately named and described, while adhering to the relevant naming conventions. You case use for example SE24 or SE80 to achieve this.<\/p>\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-1024x644.png\" alt=\"\" class=\"wp-image-608\" style=\"width:514px;height:auto\"\/><\/figure>\n\n\n\n<p>It is essential to add the correct interface for data enrichments. In the version I am working with, this is \/OTX\/PF04_IF_DATA_ENRICH_EX. <\/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_DATA_ENRICH_EX<\/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_DATA_ENRICH_EX<\/span><\/span><\/code><\/pre><\/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-2-1024x253.png\" alt=\"\" class=\"wp-image-610\"\/><\/figure>\n\n\n\n<p>The implementation is carried out in method \/OTX\/PF04_IF_DATA_ENRICH_EX~DATA_ENRICH_LOGIC.<\/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_DATA_ENRICH_EX~DATA_ENRICH_LOGIC<\/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_DATA_ENRICH_EX~DATA_ENRICH_LOGIC<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>I use the following minimalist template for my projects. It already declares the structures, table and field symbol which are needed for processing header and line information. In addition, the success marker is set, if you forget this, the data enrichment is not even executed.<\/p>\n\n\n\n<p>As the naming conventions for variables and the tables used change from project to project, I recommend creating this template once for each project.<\/p>\n\n\n\n<p>If the data enrichment is only executed at the start of the process, <a href=\"https:\/\/sapvimtraining.com\/sap-vim\/debugging\/using-abap-debug-loops-in-opentext-vendor-invoice-management-for-sap-solutions-sap-vim\/\">it will be helpful to use a <strong>debug loop<\/strong><\/a>. But beware: If only the <em>VIM Solutions Beyond Invoice Invoices<\/em> solution is used in the system, but <em>not<\/em> the packages for invoice processing, a custom debug table in the style of <em>\/opt\/cp_debug<\/em> must be created. <\/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_data_enrich_ex~data_enrich_logic.\n\n* Optional: Debug loop\n\n    DATA: ls_plh TYPE [&#8230;]_plh, &#8220; header table\n          lt_pli TYPE TABLE OF [&#8230;]_pli, &#8220; line item table\n          ls_msg TYPE bapiret2.\n\n    FIELD-SYMBOLS: <fs_pli> TYPE [&#8230;]_pli. &#8220; line item table\n\n    lt_pli = pct_item.\n*   ls_plh = pcs_head.\n\n    pe_success = &#8218;X&#8216;. \n\n    LOOP AT lt_pli ASSIGNING <fs_pli>.\n      [&#8230;]\n    ENDLOOP.\n\n    IF pe_success = &#8218;X&#8216;.\n*     pcs_head = ls_plh. &#8220; update header information\n      pct_item[] = lt_pli[]. &#8220; update item information\n    ENDIF.\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_data_enrich_ex<\/span><span style=\"color: #657B83\">~<\/span><span style=\"color: #268BD2\">data_enrich_logic<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #93A1A1; font-style: italic\">* Optional: Debug loop<\/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\"> [...]_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\"> [...]_pli, <\/span><span style=\"color: #93A1A1; font-style: italic\">\" line item table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">          ls_msg<\/span><span style=\"color: #859900\"> TYPE<\/span><span style=\"color: #657B83\"> bapiret2.<\/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\"> [...]_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\">    lt_pli <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> pct_item.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #93A1A1; font-style: italic\">*   ls_plh = pcs_head.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pe_success <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'X'<\/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\"> 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 style=\"color: #657B83\">      [...]<\/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: #859900\"> IF<\/span><span style=\"color: #657B83\"> pe_success <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'X'<\/span><span style=\"color: #657B83\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #93A1A1; font-style: italic\">*     pcs_head = ls_plh. \" update header information<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">      pct_item[] <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> lt_pli[]. <\/span><span style=\"color: #93A1A1; font-style: italic\">\" update item information<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">   <\/span><span style=\"color: #859900\"> ENDIF<\/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<p>Whenever data is changed, I recommend issuing a helpful and transparent message to users so that they know what has been changed and why. Here is an example of what such a message could look like in the code. You can of course also assemble the messages (ls_msg) manually, but I find the option mentioned here easier to read.<\/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>DATA ls_msg TYPE bapiret2.\n\n&#8220; [&#8230;]\n\nCALL METHOD \/otx\/pf02_cl_error_message=>message_return_build\n  EXPORTING\n    pi_type    = &#8218;S&#8216; &#8220; &#8222;S&#8220; = Success \/ &#8222;E&#8220; = Error \/ &#8222;I&#8220; = Info\n    pi_cl      = &#8218;Z&#8230;&#8216; &#8220; name of your message class\n    pi_number  = 019  &#8220; your message number.\n    pi_par1    = &#8220; message parameter 1\n    pi_par2    = &#8220; message parameter &#8230;\n    &#8220; [&#8230;]\n  IMPORTING\n    pes_return = ls_msg.\n    \n  APPEND ls_msg TO pet_return.<\/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: #859900\">DATA<\/span><span style=\"color: #657B83\"> ls_msg<\/span><span style=\"color: #859900\"> TYPE<\/span><span style=\"color: #657B83\"> bapiret2.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #93A1A1; font-style: italic\">\" [...]<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #859900\">CALL<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #859900\">METHOD<\/span><span style=\"color: #657B83\"> \/otx\/pf02_cl_error_message=>message_return_build<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">  <\/span><span style=\"color: #859900\">EXPORTING<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pi_type    <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'S'<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #93A1A1; font-style: italic\">\" \"S\" = Success \/ \"E\" = Error \/ \"I\" = Info<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pi_cl      <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #2AA198\">'Z...'<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #93A1A1; font-style: italic\">\" name of your message class<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pi_number  <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #D33682\">019<\/span><span style=\"color: #657B83\">  <\/span><span style=\"color: #93A1A1; font-style: italic\">\" your message number.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pi_par1    <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #93A1A1; font-style: italic\">\" message parameter 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pi_par2    <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> <\/span><span style=\"color: #93A1A1; font-style: italic\">\" message parameter ...<\/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 style=\"color: #657B83\">  <\/span><span style=\"color: #859900\">IMPORTING<\/span><\/span>\n<span class=\"line\"><span style=\"color: #657B83\">    pes_return <\/span><span style=\"color: #859900\">=<\/span><span style=\"color: #657B83\"> 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: #859900\">APPEND<\/span><span style=\"color: #657B83\"> ls_msg<\/span><span style=\"color: #859900\"> TO<\/span><span style=\"color: #657B83\"> pet_return.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Customizing for a SAP VIM Solutions Beyond Invoice Data Enrichment<\/h2>\n\n\n\n<p>Now we have created the class for our data enrichment and still 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:322px;height:auto\"\/><\/figure>\n\n\n\n<p>Select your <strong>Profile Configuration<\/strong> and navigate to the corresponding <strong>Version Definition<\/strong> and then <strong>Data Enrichment Configuration<\/strong>. Here you can now create a Data Enrichment ID with a speaking name and description.<\/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-5-1024x176.png\" alt=\"\" class=\"wp-image-626\"\/><\/figure>\n\n\n\n<p>The enrichment point decides when a data enrichment should be executed. For my example I select <strong>ALL<\/strong> to execute it at all enrichment points.<\/p>\n\n\n\n<p>Even if a data enrichment should only run at the beginning of the process, I like to use <strong>ALL<\/strong> at the beginning of my implementation because the jump to the debugger is super quick. Simply set a breakpoint in the class, execute the <strong>Enrich Data<\/strong> action and you are already in the ABAP Debugger and can analyse if everything is working according to plan.<\/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-6.png\" alt=\"\" class=\"wp-image-627\" style=\"width:454px;height:auto\"\/><\/figure>\n\n\n\n<p>The last step is often forgotten in data enrichments because it was not necessary in earlier versions. The newly created Data Enrichment ID must still be assigned to the corresponding Characteristics Configuration and given a sequence.<\/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-9-1024x669.png\" alt=\"\" class=\"wp-image-642\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">I have created a data enrichment but it is not working<\/h2>\n\n\n\n<p>If your data enrichment does not work, please check the following points:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is the success marker <strong>pe_success<\/strong> returned with true (\u2018X\u2019)?<\/li>\n\n\n\n<li>Is the newly created <strong>Data Enrichment Configuration<\/strong> active? There is a checkbox on the far right which can easily be overlooked.<\/li>\n\n\n\n<li>Have you perhaps overlooked the last point <strong>Assign Data Enrichments<\/strong>?<\/li>\n\n\n\n<li>Perhaps <a href=\"https:\/\/sapvimtraining.com\/sap-vim\/debugging\/using-abap-debug-loops-in-opentext-vendor-invoice-management-for-sap-solutions-sap-vim\/\">your debug loop<\/a> can help you here? If this is not activated, this can also be a finding.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>When using SAP VIM Solutions Beyond Invoice, there is no getting round the use of data enrichments. Only with these can the process be properly tidied up and optimised.<\/p>\n\n\n\n<p>Don&#8217;t forget to issue transparent and helpful messages for the users and make sure that the data enrichments run in a sensible sequence.<\/p>\n\n\n\n<p>I wish you every success with the implementation!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A data enrichment is a logic or learning based data manipulation which can run, for example, at the begin of a process. From a usage point it is very comparable with a logic module in the VIM Invoice process. Please note that this article is not about the VIM Invoice process but VIM Solutions Beyond [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":642,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,31],"tags":[28,19,30,32,14],"class_list":["post-914","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-sap-vim-beyond-invoices","tag-customizing","tag-debug-loop","tag-development","tag-sap-vim-solutions-beyond-invoice","tag-sap-vim"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating a Data Enrichment 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\/de\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-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-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/\"},\"author\":{\"name\":\"Johannes Auer\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#\\\/schema\\\/person\\\/5be8c8acac2d2546979a66edb36355f7\"},\"headline\":\"Creating a Data Enrichment for SAP VIM Solutions Beyond Invoice (+ free Template)\",\"datePublished\":\"2025-02-08T17:10:19+00:00\",\"dateModified\":\"2025-06-13T14:03:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/\"},\"wordCount\":1095,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"Customizing\",\"Debug loop\",\"Development\",\"SAP VIM Solutions Beyond Invoice\",\"SAP VIM\"],\"articleSection\":[\"Development\",\"SAP VIM Solutions Beyond Invoice\"],\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/\",\"name\":\"Creating a Data Enrichment for SAP VIM Solutions Beyond Invoice (+ free Template)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2025-02-08T17:10:19+00:00\",\"dateModified\":\"2025-06-13T14:03:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/development\\\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/johannesauer.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a Data Enrichment 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\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/johannesauer.com\\\/#organization\",\"name\":\"Johannes Auer\",\"url\":\"https:\\\/\\\/johannesauer.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@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\":\"de-DE\",\"@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\\\/de\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a Data Enrichment 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\/de\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#article","isPartOf":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/"},"author":{"name":"Johannes Auer","@id":"https:\/\/johannesauer.com\/#\/schema\/person\/5be8c8acac2d2546979a66edb36355f7"},"headline":"Creating a Data Enrichment for SAP VIM Solutions Beyond Invoice (+ free Template)","datePublished":"2025-02-08T17:10:19+00:00","dateModified":"2025-06-13T14:03:29+00:00","mainEntityOfPage":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/"},"wordCount":1095,"commentCount":0,"publisher":{"@id":"https:\/\/johannesauer.com\/#organization"},"image":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#primaryimage"},"thumbnailUrl":"","keywords":["Customizing","Debug loop","Development","SAP VIM Solutions Beyond Invoice","SAP VIM"],"articleSection":["Development","SAP VIM Solutions Beyond Invoice"],"inLanguage":"de-DE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/","url":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/","name":"Creating a Data Enrichment for SAP VIM Solutions Beyond Invoice (+ free Template)","isPartOf":{"@id":"https:\/\/johannesauer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#primaryimage"},"image":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#primaryimage"},"thumbnailUrl":"","datePublished":"2025-02-08T17:10:19+00:00","dateModified":"2025-06-13T14:03:29+00:00","breadcrumb":{"@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/johannesauer.com\/en\/development\/creating-a-data-enrichment-for-sap-vim-solutions-beyond-invoice-template\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/johannesauer.com\/en\/"},{"@type":"ListItem","position":2,"name":"Creating a Data Enrichment 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":"de-DE"},{"@type":"Organization","@id":"https:\/\/johannesauer.com\/#organization","name":"Johannes Auer","url":"https:\/\/johannesauer.com\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@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":"de-DE","@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\/de\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/posts\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/comments?post=914"}],"version-history":[{"count":0,"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/posts\/914\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/johannesauer.com\/de\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/media?parent=914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/categories?post=914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/johannesauer.com\/de\/wp-json\/wp\/v2\/tags?post=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}