<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290551#M499655</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Friends,&lt;/P&gt;&lt;P&gt;I am new to the Badi technology. We would like to populate/change the standard field values, (Purchasing group) during Purchase Requisition creation/change.&lt;/P&gt;&lt;P&gt;Method --&amp;gt; PROCESS_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried the following code, but system blnaks out all the field values entered during PR creation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Appreciate, if you could provide me some sample code which can be of help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reg&lt;/P&gt;&lt;P&gt;Kumar&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------" /&gt;&lt;P&gt;Sample code----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;METHOD if_ex_me_process_req_cust~process_item .&lt;/P&gt;&lt;P&gt;DATA: k_mereqitem          TYPE mereq_item,&lt;/P&gt;&lt;P&gt;        om_data              type mereq_item,&lt;/P&gt;&lt;P&gt;        om_datax             type mereq_itemx,&lt;/P&gt;&lt;P&gt;       &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    k_mereqitem = im_item-&amp;gt;get_data( ).&lt;/P&gt;&lt;P&gt;    check im_count = 1.&lt;/P&gt;&lt;P&gt;    if k_mereqitem-bsart = 'ST' and&lt;/P&gt;&lt;P&gt;       k_mereqitem-loekz = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    om_data-pstyp = '5'. " assign default item category code&lt;/P&gt;&lt;P&gt;    om_data-bnfpo = k_mereqitem-bnfpo. &lt;/P&gt;&lt;P&gt;    om_data-WERKS = k_mereqitem-WERKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    om_datax-pstyp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method im_item-&amp;gt;set_datax&lt;/P&gt;&lt;P&gt;         exporting im_datax = om_datax.&lt;/P&gt;&lt;P&gt;    call method im_item-&amp;gt;set_data&lt;/P&gt;&lt;P&gt;         exporting im_data =  om_data.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 27 May 2007 12:59:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-27T12:59:39Z</dc:date>
    <item>
      <title>Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290551#M499655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Friends,&lt;/P&gt;&lt;P&gt;I am new to the Badi technology. We would like to populate/change the standard field values, (Purchasing group) during Purchase Requisition creation/change.&lt;/P&gt;&lt;P&gt;Method --&amp;gt; PROCESS_ITEM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried the following code, but system blnaks out all the field values entered during PR creation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Appreciate, if you could provide me some sample code which can be of help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reg&lt;/P&gt;&lt;P&gt;Kumar&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------" /&gt;&lt;P&gt;Sample code----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;METHOD if_ex_me_process_req_cust~process_item .&lt;/P&gt;&lt;P&gt;DATA: k_mereqitem          TYPE mereq_item,&lt;/P&gt;&lt;P&gt;        om_data              type mereq_item,&lt;/P&gt;&lt;P&gt;        om_datax             type mereq_itemx,&lt;/P&gt;&lt;P&gt;       &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    k_mereqitem = im_item-&amp;gt;get_data( ).&lt;/P&gt;&lt;P&gt;    check im_count = 1.&lt;/P&gt;&lt;P&gt;    if k_mereqitem-bsart = 'ST' and&lt;/P&gt;&lt;P&gt;       k_mereqitem-loekz = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    om_data-pstyp = '5'. " assign default item category code&lt;/P&gt;&lt;P&gt;    om_data-bnfpo = k_mereqitem-bnfpo. &lt;/P&gt;&lt;P&gt;    om_data-WERKS = k_mereqitem-WERKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    om_datax-pstyp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method im_item-&amp;gt;set_datax&lt;/P&gt;&lt;P&gt;         exporting im_datax = om_datax.&lt;/P&gt;&lt;P&gt;    call method im_item-&amp;gt;set_data&lt;/P&gt;&lt;P&gt;         exporting im_data =  om_data.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 27 May 2007 12:59:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290551#M499655</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-27T12:59:39Z</dc:date>
    </item>
    <item>
      <title>Re: Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290552#M499656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Below is my sample code in method CHECK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_items TYPE mmpur_requisition_items.&lt;/P&gt;&lt;P&gt;Data: wa_item like line of i_items,&lt;/P&gt;&lt;P&gt;lv_if_item type ref to IF_PURCHASE_REQUISITION_ITEM,&lt;/P&gt;&lt;P&gt;lt_itm_data type MEREQ_ITEM,&lt;/P&gt;&lt;P&gt;lx_itm_data type mereq_itemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD im_header-&amp;gt;get_items&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;re_items = i_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at i_items into wa_item.&lt;/P&gt;&lt;P&gt;lv_if_item = wa_item-item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD lv_if_item-&amp;gt;get_data&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;re_data = lt_itm_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD lv_if_item-&amp;gt;get_datax&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;re_datax = lx_itm_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if lt_itm_data-bnfpo &amp;lt;&amp;gt; '00001'.&lt;/P&gt;&lt;P&gt;lt_itm_data-ekgrp = 'A02'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lx_itm_data-ekgrp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD lv_if_item-&amp;gt;SET_DATAX&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IM_DATAX = lx_itm_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD lv_if_item-&amp;gt;SET_DATA&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;IM_DATA = lt_itm_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward Points if it is useful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 27 May 2007 13:24:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290552#M499656</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-27T13:24:16Z</dc:date>
    </item>
    <item>
      <title>Re: Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290553#M499657</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sashu&lt;/P&gt;&lt;P&gt;Thanks for your prompt response. I tried the given code in check...method. But it does not reset the values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think process item method would be right place for resetting the values. As per the given code,  im_header is not available in process item method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following syntax errors occured when I tried the code in the Process item.&lt;/P&gt;&lt;P&gt;1. IM_HEADER is not available in the Process item method.&lt;/P&gt;&lt;P&gt;2. Endloop and endif statements are missing in the sample code.&lt;/P&gt;&lt;P&gt;3. I believe if lt_itm_data-bnfpo &amp;lt;&amp;gt; '00001' statement should be defined as '00000'?.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kumar&lt;/P&gt;&lt;P&gt;Secondly, endloop and endif statements are missing in the given sample code. It is also noticed that some times BADI will go into loop ..when we code any thing in process item method.. do we need to set im_count in this &lt;/P&gt;&lt;P&gt;Appreciate,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 May 2007 05:43:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290553#M499657</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-28T05:43:03Z</dc:date>
    </item>
    <item>
      <title>Re: Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290554#M499658</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts&lt;/P&gt;&lt;P&gt;Could you please provide the solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 May 2007 10:31:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290554#M499658</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-29T10:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290555#M499659</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kumar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have not a special solution for your case, but i use this BADI with great effort &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;As my comments in example are in german lg. i explain in short words what i do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;X) define data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) select data from base item &lt;/P&gt;&lt;P&gt;1a) header-data&lt;/P&gt;&lt;P&gt;1b) item data (easy)&lt;/P&gt;&lt;P&gt;1c) accounting data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2+3) check field values, post warning message + mostly change values + sometimes set cursor focus on field&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a look and give me some points if my example increased your BADI knowledge &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;Jörg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;METHOD if_ex_me_process_po_cust~process_item .
* Business-Add-Inn ME_PROCESS_PO_CUST
* Jörg Sauterleute - 23.12.2005
*
* ----------------------------------------------
* Ablauf:
* 1. Datenbschaffung
* 2. Feldänderungen prüfen + Warnung ausgeben
* 3. Feldinhalte prüfen + evtl. ändern u. Hinweis ausgeben

  DATA: ls_mepoitem TYPE mepoitem,
        ls_mepoheader TYPE mepoheader,
        ls_mepoaccounting TYPE mepoaccounting.

* Interfacereferenz auf &amp;lt;if_purchase_order_mm&amp;gt;
  DATA: header_obj TYPE REF TO if_purchase_order_mm.
* Interfacereferenz auf &amp;lt;if_purchase_order_account_mm&amp;gt; über Tabelle
  DATA: it_accountings TYPE purchase_order_accountings, "Tabelle
        accounting_obj TYPE purchase_order_accounting.


* Include für Ausgabe von Meldungen
* im BAdI ME_PROCESS_PO_CUST niemals ABAP-Statement MESSAGE verwenden!
  INCLUDE mm_messages_mac.

* Hilfsvariablen
  DATA: h_change_mepoitem TYPE c,
        h_text TYPE string.

  IF sy-sysid = 'HLT'. break sau. ENDIF.

* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 1. Datenbeschaffung
* ######################################################################

* Kopfdaten
  header_obj = im_item-&amp;gt;get_header( ).
  ls_mepoheader = header_obj-&amp;gt;get_data( ).

* Positionsdaten
  ls_mepoitem = im_item-&amp;gt;get_data( ).

* Kontierungsdaten (Accounting) über Tabelle it_accountings
  it_accountings = im_item-&amp;gt;get_accountings( ).
* ...IF eingebaut, weil sonst später Abbruch, wenn sy-subrc &amp;lt;&amp;gt; 0
  IF NOT ls_mepoitem-knttp IS INITIAL.
    LOOP AT it_accountings INTO accounting_obj.
      ls_mepoaccounting = accounting_obj-accounting-&amp;gt;get_data( ).
    ENDLOOP.
  ENDIF.


* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 2. Daten prüfen -&amp;gt; Warnmeldung
* ######################################################################

*______________________________________________________________________
* Feld Empfänger (Kontierung) prüfen -&amp;gt; Warnmeldung


  IF ls_mepoheader-ekorg = '1000' AND
     ls_mepoheader-bsart = 'IB'.
    IF NOT ls_mepoitem-knttp IS INITIAL.
      CASE ls_mepoheader-ekgrp.
        WHEN '500' OR '501'.
          IF NOT ls_mepoaccounting-wempf IS INITIAL.
            mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
            mmpur_message_forced 'I' 'ME' '303' text-011 '' '' ''.
* Warnmeldung wieder aus Protokoll entfernen.
            IF ls_mepoaccounting-wempf IS INITIAL.
              mmpur_remove_messages_by_id ls_mepoaccounting-id.
              mmpur_business_obj_id ls_mepoaccounting-id.
            ENDIF.
          ENDIF.

        WHEN OTHERS.
          IF ls_mepoaccounting-wempf IS INITIAL.
            mmpur_metafield mmmfd_recipient.       "Warenempfänger - Cursor setzen
            mmpur_message_forced 'W' 'ME' '303' text-010 '' '' ''.
          ENDIF.
* Warnmeldung wieder aus Protokoll entfernen.
          IF NOT ls_mepoaccounting-wempf IS INITIAL.
            mmpur_remove_messages_by_id ls_mepoaccounting-id.
            mmpur_business_obj_id ls_mepoaccounting-id.
          ENDIF.
      ENDCASE.
    ENDIF.
  ENDIF.

* Ende Feld Empfänger (Kontierung) prüfen -&amp;gt; Warnmeldung

*
* Ende test

* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 3. Positionsdaten prüfen/ändern -&amp;gt; setzen
* ######################################################################
  CLEAR: h_change_mepoitem,
         h_text.

* ______________________________________________________________________
* Kennzeichen Wareneingang prüfen/ändern
*
* Belegart 'NB' immer mit "Wareneingang" wegen Log. Rechnungsprüfung
* Belegart 'IB' immer ohne "Wareneingang" weil Einsatz Workflow
* (Kennzeichen 'WEPOS' setzen/nicht setzen)


  IF NOT ls_mepoitem-knttp IS INITIAL.
    CASE ls_mepoheader-bsart.
      WHEN 'NB'.
* Prüfung ob gesetzt
* Wenn nicht, dann setzen und Daten übergeben
* Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
        IF ls_mepoitem-wepos IS INITIAL.
          ls_mepoitem-wepos = 'X'.
          h_change_mepoitem = 'X'.
*           im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
          h_text = text-001.
          mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
*           message erst später ausführen!
*           mmpur_message_forced 'I' 'ME' '303' text-001 '' '' ''.
        ENDIF.

      WHEN 'IB'.
* Prüfung ob nicht gesetzt
* Wenn doch, dann entfernen und Daten übergeben
* Cursor auf Metafeld (aus Typgruppe MMMFD) für Fehlerbehandlung
        IF NOT ls_mepoitem-wepos IS INITIAL.
          ls_mepoitem-wepos = ' '.
          h_change_mepoitem = 'X'.
*            im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
          h_text = text-002.
          mmpur_metafield mmmfd_gr_ind .       "WE-Kennzeichen - Cursor setzen
*           message erst später ausführen!
*           mmpur_message_forced 'I' 'ME' '303' text-002 '' '' ''.
        ENDIF.
    ENDCASE.
  ENDIF.
* Ende Kennzeichen Wareneingang prüfen/ändern

* ______________________________________________________________________
* Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern
* (für autom. Gutschriftsverfahren Verpackungseinkauf)

* Kreditordaten
  DATA: it_lfm1 TYPE TABLE OF lfm1,
        wa_lfm1 TYPE lfm1.

  IF ls_mepoheader-ekorg = '1000' AND
     ls_mepoheader-bsart = 'NB'   OR
     ls_mepoheader-bsart = 'KA'.

    IF ls_mepoitem-xersy IS INITIAL AND
       ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
      SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
               WHERE lifnr = ls_mepoheader-lifnr AND
                     ekorg = ls_mepoheader-ekorg.
      IF sy-subrc = 0.
        READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.

        IF wa_lfm1-xersy = 'X'.
          ls_mepoitem-xersy = 'X'.
          h_change_mepoitem = 'X'.
*          im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
          h_text = text-005.
          mmpur_metafield mmmfd_ers.       " Kennz. aut.WE-Abrechnung - Cursor setzen
*            message erst später ausführen!
*            mmpur_message_forced 'I' 'ME' '303' text-005 '' '' ''.
        ENDIF.
      ENDIF.
    ENDIF.

  ENDIF.
* Ende Kennzeichen aut. WE-Abrech. (Rechnung) prüfen/ändern

* ______________________________________________________________________
* Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern
* (für autom. Gutschriftsverfahren Verpackungseinkauf)

* Kreditordaten bereits deklariert
*  DATA: it_lfm1 TYPE TABLE OF lfm1,
*        wa_lfm1 TYPE lfm1.

  IF ls_mepoitem-knttp IS INITIAL.
* nicht anwenden bei kontierten Bestellungen
    IF ls_mepoitem-pstyp = 0.
* nicht anwenden bei gefülltem Positionstyp (z.B. 'L' = Lohnbearbeitung, Preis 0,00 EUR)

      IF ls_mepoheader-ekorg = '1000' AND
         ls_mepoheader-bsart = 'NB'   OR
         ls_mepoheader-bsart = 'KA'.

        IF ls_mepoitem-webre IS INITIAL AND
           ls_mepoitem-umson IS INITIAL.                    "kostenlose Lieferung
          SELECT * FROM lfm1 INTO CORRESPONDING FIELDS OF TABLE it_lfm1
                   WHERE lifnr = ls_mepoheader-lifnr AND
                         ekorg = ls_mepoheader-ekorg.
          IF sy-subrc = 0.
            READ TABLE it_lfm1 INTO wa_lfm1 INDEX 1.

            IF wa_lfm1-webre = 'X'.
              ls_mepoitem-webre = 'X'.
              h_change_mepoitem = 'X'.
*          im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
              h_text = text-006.
              mmpur_metafield mmmfd_gr_based_iv.   "WE-bezogene RP - Cursor setzen
*            message erst später ausführen!
*            mmpur_message_forced 'I' 'ME' '303' text-006 '' '' ''.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.

  ENDIF.
* Ende Kennzeichen WE-bezogene Rechnungsprüfung (Rechnung) prüfen/ändern

** ______________________________________________________________________
** Kennzeichen Auftragsbestätigungspflicht prüfen/ändern
** (bisher nur Natec)
*
** Infosatzdaten (Konditionen) deklarieren
** Verweis of Tabelle mit Kopfzeilen immer mit TYPE TABLE OF
*  DATA: it_ekomd TYPE TABLE OF ekomd,
*        wa_ekomd TYPE ekomd.
*
*  IF ls_mepoheader-ekorg = '1300' AND
*     ls_mepoheader-bsart = 'NB'   .
*
*    CALL FUNCTION 'ME_GET_INFORECORD_CONDITIONS'
*      EXPORTING
*        i_ekorg = ls_mepoheader-ekorg
*        i_esokz = '0'                                       " '0' = NB
*        i_infnr = ls_mepoitem-infnr
*        i_lifnr = ls_mepoheader-lifnr
*        i_matkl = ls_mepoitem-matkl
*        i_matnr = ls_mepoitem-matnr
*        i_werks = ls_mepoitem-werks
*      TABLES
*        tekomd  = it_ekomd.
*
*    SORT it_ekomd BY datbi DESCENDING.
*    READ TABLE it_ekomd INTO wa_ekomd INDEX 1.
*
*    CASE ls_mepoheader-ekorg.
*      WHEN '1300'.
**     Anforderung Natec: wenn Infosatz-Kondition
**       a)  leer o. nicht gültig  =&amp;gt; AB setzen, wenn fehlt
**       b)  älter       2 Monate  =&amp;gt; AB setzen, wenn fehlt
**       c)  nicht älter 2 Monate  =&amp;gt; AB entfernen, wenn gesetzt
*
**     Hilfsvariablen
*        DATA: h_vgldat   TYPE sy-datum.   " Vergleichsdatum
*        DATA: h_ergebnis TYPE c.
**     Alter der Infosatzkondition ermitteln.
*        CALL FUNCTION 'CCM_GO_BACK_MONTHS'
*          EXPORTING
*            currdate   = sy-datum
*            backmonths = '002'
*          IMPORTING
*            newdate    = h_vgldat.
*
*        IF wa_ekomd-datbi &amp;lt; sy-datum OR    " gefunden Kondition nicht gültig oder
*           wa_ekomd-datbi IS INITIAL.      " keine Kondition gefunden
*          h_ergebnis = 'a'.
*        ENDIF.
*        IF wa_ekomd-datab &amp;lt; h_vgldat.
*          h_ergebnis = 'b'.
*        ENDIF.
*        IF wa_ekomd-datab &amp;gt; h_vgldat.
*          h_ergebnis = 'c'.
*        ENDIF.
*
**       Prüfung ob nicht gesetzt
*        IF ls_mepoitem-kzabs = ' ' AND
*                  h_ergebnis = 'a' OR
*                  h_ergebnis = 'b' .
*          ls_mepoitem-kzabs = 'X'.
*          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
**               im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
*          h_text = text-003.
**               message erst später ausführen!
**               mmpur_message_forced 'I' 'ME' '303' text-004 '' '' ''.
*        ENDIF.
**       Prüfung ob gesetzt
*        IF ls_mepoitem-kzabs = 'X' AND
*           h_ergebnis        = 'c' .
*          ls_mepoitem-kzabs = ' '.
*          h_change_mepoitem = 'X'.       "Merker setzen, geändert wird am Schluss
**               im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
*          h_text = text-004.
**               message erst später ausführen!
**               mmpur_message_forced 'I' 'ME' '303' text-003 '' '' ''.
*        ENDIF.
*
*
*    ENDCASE.
*  ENDIF.
** Ende Kennzeichen Auftragsbestätigungspflicht prüfen/ändern


* ______________________________________________________________________
* Bestell-/Bestellpreis-Mengeneinheit prüfen/setzen
  DATA: h_txz01 TYPE mepoitem-txz01.   " Materialkurztext

  IF   ( ls_mepoheader-ekorg = '1000' OR
         ls_mepoheader-ekorg = '1500' ) AND
         ls_mepoheader-bsart = 'IB' AND
     NOT ls_mepoitem-knttp IS INITIAL.

* Vergleichen ob eingegebene Mengeneinheit in Kurztext "avisiert"
    CONCATENATE '(' ls_mepoitem-meins ')' INTO h_txz01.
    IF ls_mepoitem-txz01 CS h_txz01.
      IF NOT ls_mepoitem-meins IS INITIAL.
        mmpur_metafield mmmfd_unit .       "Steuer-Kennz. - Cursor setzen
        mmpur_message_forced 'W' 'ME' '303' 'ME' ls_mepoitem-meins
                                                 text-031 ''.
      ENDIF.
* sonst standarmäßig 'LE' setzen wegen Problemen bei Obligo
    ELSE.
      IF NOT ls_mepoitem-meins = 'LE'.
        ls_mepoitem-meins = 'LE'.
        ls_mepoitem-bprme = 'LE'.
        h_change_mepoitem = 'X'.
*      im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
        h_text = text-030.
        mmpur_metafield mmmfd_unit .             "Steuer-Kennz. - Cursor setzen
*      message erst später ausführen!
*      mmpur_message_forced 'I' 'ME' '303' text-030 '' '' ''.
      ENDIF.
    ENDIF.
  ENDIF.
* Ende Bestell-Mengeneinheit prüfen/ändern


* ______________________________________________________________________
* Steuerkennzeichen prüfen/setzen (für EK-Gruppe 500,501)

  IF ls_mepoheader-ekorg = '5000' AND
     ls_mepoitem-matnr IS INITIAL.
    CASE ls_mepoheader-ekgrp.
      WHEN '500' OR '501'.
        IF ls_mepoitem-mwskz IS INITIAL.
          ls_mepoitem-mwskz = 'V4'.
          h_change_mepoitem = 'X'.
*    "      im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
*          h_text = text-020.
*          mmpur_metafield mmmfd_tax_code .       "Cursor Steuer-Kennz.
*    "      message erst später ausführen!
*    "      mmpur_message_forced 'I' 'ME' '303' text-020 '' '' ''.
        ENDIF.
    ENDCASE.
  ENDIF.
* Ende Steuerkennzeichen prüfen/ändern
*
*
* ********
* zu 3.
* ______________________________________________________________________
* zum Schluss noch die geänderten mepoitem-xxxx setzen
* + gleiche Meldungen (I ME 303) ausgeben

  IF h_change_mepoitem = 'X'.
    im_item-&amp;gt;set_data( EXPORTING im_data = ls_mepoitem ).
  ENDIF.
  IF NOT h_text IS INITIAL.
    mmpur_message_forced 'I' 'ME' '303' h_text '' '' ''.
  ENDIF.

* Ende Daten prüfen/ändern -&amp;gt; setzen
* ####

ENDMETHOD.                    "IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jul 2007 15:06:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290555#M499659</guid>
      <dc:creator>Joerg_S</dc:creator>
      <dc:date>2007-07-12T15:06:43Z</dc:date>
    </item>
    <item>
      <title>Re: Badi ME_PROCESS_REQ_CUST Sample Code required for changing the values</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290556#M499660</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I ave tried your code..when i m debuuging its shows the change value in debug but the value is not getting updated..please help me i m in so trouble its so urgent..Your help is so much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L1S52"&gt;METHOD IF_EX_ME_PROCESS_REQ_CUST~POST.&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;DATA&lt;/SPAN&gt; I_ITEMS&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt;&amp;nbsp; MMPUR_REQUISITION_ITEMS.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;DATA&lt;/SPAN&gt;: WA_ITEM &lt;SPAN class="L1S52"&gt;LIKE&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;LINE&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;OF&lt;/SPAN&gt; I_ITEMS,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LV_IF_ITEM &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;REF&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;TO&lt;/SPAN&gt; IF_PURCHASE_REQUISITION_ITEM,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LT_ITM_DATA &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt; MEREQ_ITEM,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LT_ITM_DATAX &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt; MEREQ_ITEMX.&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;DATA&lt;/SPAN&gt; : PRIO_FLAG &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt; PRIO_URG,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;INDEX&lt;/SPAN&gt;&amp;nbsp; &lt;SPAN class="L1S52"&gt;TYPE&lt;/SPAN&gt; SY-TABIX.&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; BREAK DEVELOPER.&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;CALL&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;METHOD&lt;/SPAN&gt; IM_HEADER-&amp;gt;GET_ITEMS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECEIVING&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RE_ITEMS = I_ITEMS.&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;LOOP&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;AT&lt;/SPAN&gt; I_ITEMS &lt;SPAN class="L1S52"&gt;INTO&lt;/SPAN&gt; WA_ITEM.&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;INDEX&lt;/SPAN&gt; = SY-TABIX .&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LV_IF_ITEM = WA_ITEM-ITEM.&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;CALL&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;METHOD&lt;/SPAN&gt; LV_IF_ITEM-&amp;gt;GET_DATA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECEIVING&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RE_DATA = LT_ITM_DATA.&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;IF&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;INDEX&lt;/SPAN&gt; = &lt;SPAN class="L1S32"&gt;1&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRIO_FLAG = LT_ITM_DATA-PRIO_URG .&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;ELSE&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LT_ITM_DATA-PRIO_URG = PRIO_flag.&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;CALL&lt;/SPAN&gt; &lt;SPAN class="L1S52"&gt;METHOD&lt;/SPAN&gt; LV_IF_ITEM-&amp;gt;SET_DATA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IM_DATA = LT_ITM_DATA.&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;ENDIF&lt;/SPAN&gt;.&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L1S52"&gt;ENDLOOP&lt;/SPAN&gt;.&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L1S52"&gt;ENDMETHOD&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Jul 2013 05:03:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/badi-me-process-req-cust-sample-code-required-for-changing-the-values/m-p/2290556#M499660</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-07-01T05:03:17Z</dc:date>
    </item>
  </channel>
</rss>

