MR21批量修改價格


前兩天吃中飯時同事說MR21修改價格用LSMW導入,每次只能導入一條商品價格,而每一個商品價格的修改都會產生一個憑證,問是否能批量導入。先去找了下BAPI,看了下BAPI_MATVAL_PRICE_CHANGE和BAPI_M_REVAL_CREATEPRICECHANGE兩個BAPI,發現前一個每次只能修改一個商品價格,后一個根本就跑不起來,不知道咋回事,只能回頭用SHDB解決問題。

 REPORT zmr21
       NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE bdcrecx1.

PARAMETERSdataset(132LOWER CASE.
***    DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
*
*   If it is nessesary to change the data section use the rules:
*   1.) Each definition of a field exists of two lines
*   2.) The first line shows exactly the comment
*       '* data element: ' followed with the data element
*       which describes the field.
*       If you don't have a data element use the
*       comment without a data element name
*   3.) The second line shows the fieldname of the
*       structure, the fieldname must consist of
*       a fieldname and optional the character '_' and
*       three numbers and the field length in brackets
*   4.) Each field must be type C.
*
*** Generated data section with specific formatting - DO NOT CHANGE  ***
DATABEGIN OF record OCCURS 0,
* data element: BUDAT
        budat_001(010),
* data element: BUKRS
        bukrs_002(004),
* data element: WERKS_D
        werks_003(004),
* data element: SCREEN_VARIANT
        screen_variant_004(030),
* data element: SCREEN_VARIANT
        screen_variant_005(030),
* data element: MATNR
        matnr_01_006(018),
* data element: VALPR
        newvalpr_01_007(015),

      END OF record.

*** End generated data section ***

START-OF-SELECTION.

*  PERFORM open_dataset USING dataset.
  PERFORM of_getexcel.
  PERFORM open_group.
  PERFORM of_processdata.
  PERFORM close_group.
*  PERFORM close_dataset USING dataset.

FORM of_processdata.
  DATA: li_cur TYPE i VALUE 0,
      li_mod TYPE i,
      ls_fname(30TYPE c,
      ls_temp(2TYPE c,
      li_len TYPE i,
      li_inex TYPE i VALUE 0.
  li_mod = LINES( record ).
  break ypcheng.
  LOOP AT record.
    li_cur = li_cur + 1.
    li_inex = li_inex + 1.
    IF li_inex = 1.
      PERFORM bdc_dynpro      USING 'SAPRCKM_MR21' '0201'.
      PERFORM bdc_field       USING 'BDC_CURSOR'  'MR21HEAD-WERKS'.
      PERFORM bdc_field       USING 'MR21HEAD-BUDAT' record-budat_001.
      PERFORM bdc_field       USING 'MR21HEAD-BUKRS' record-bukrs_002.
   


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com