批量开启物料账期源代码

智慧灯盏SAP技术 2025-02-25 11:19:42 86阅读 举报
*批量开启物料账期源代码
&---------------------------------------------------------------------*
*& Report  ZBATCH_MMPV
*&---------------------------------------------------------------------*
*& BDC调用MMPV批量开物料帐账期
*&---------------------------------------------------------------------*
REPORT ZBATCH_MMPV .

TABLES:t000, marv.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF messtab OCCURS 0.
        INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
DATA: BEGIN OF itab_log OCCURS 0,
        message(132) TYPE c,
      END OF itab_log.
DATA: datum TYPE sy-datum.

PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY MEMORY ID buk,
            p_frdat TYPE sy-datum ,
            p_todat TYPE sy-datum ,
            p_mode LIKE ctu_params-dismode AS LISTBOX DEFAULT 'E'
VISIBLE LENGTH 16 OBLIGATORY .

INITIALIZATION.
  CONCATENATE sy-datum(6) '01' INTO p_todat.

AT SELECTION-SCREEN OUTPUT.
  %_p_bukrs_%_app_%-text = '公司代码'.
  %_p_frdat_%_app_%-text = '当前期间'.
  %_p_todat_%_app_%-text = '开到期间'.
  %_p_mode_%_app_%-text  = 'BDC运行模式'.

AT SELECTION-SCREEN ON p_bukrs.
  ON CHANGE OF p_bukrs.
    SELECT SINGLE * FROM marv
      WHERE bukrs = p_bukrs.
    IF sy-subrc = 0.
      CONCATENATE marv-lfgja marv-lfmon '01' INTO p_frdat.
    ELSE.
      MESSAGE e000(oo) WITH '公司代码' p_bukrs '不存在物料帐数据'.
    ENDIF.
    LEAVE SCREEN.
  ENDON.

START-OF-SELECTION.
  IF p_frdat IS INITIAL OR p_frdat = '' OR
     p_todat IS INITIAL OR p_todat = ''.
    MESSAGE e000(oo) WITH '日期不可以为空'.
  ENDIF.

  SELECT SINGLE * FROM t000
    WHERE mandt = sy-mandt AND
          cccategory = 'P'.
  IF sy-subrc = 0.
    MESSAGE s000(oo) WITH '不可以在生产系统使用本程序'.
    RETURN.
  ENDIF.

  p_frdat = p_frdat + 32.
  CONCATENATE p_frdat(6) '01' INTO datum.
  WHILE datum(6) <= p_todat(6).
    PERFORM bdc.
    datum = datum + 32.
    datum+6(2) = '01'.
  ENDWHILE.
  MESSAGE S000(oo) WITH '完毕,请使用MMRV查看结果'.
  LOOP AT itab_log.
    WRITE / itab_log.
  ENDLOOP.

*&---------------------------------------------------------------------*
*&      Form  bdc
*&---------------------------------------------------------------------*
FORM bdc.
  DATA: option TYPE ctu_params .

  option-dismode  = p_mode.
  option-racommit = 'X'.

  CLEAR: bdcdata,bdcdata[].
  PERFORM bdc_dynpro      USING 'RMMMPERI' '1000'.
  PERFORM bdc_field       USING 'BDC_OKCODE'    '=ONLI'.
  PERFORM bdc_field       USING 'I_VBUKR'       p_bukrs.
  PERFORM bdc_field       USING 'I_BBUKR'       p_bukrs.
  PERFORM bdc_field       USING 'I_DATUM'       datum.

  PERFORM bdc_dynpro      USING 'SAPMSSY0' '0120'.
  PERFORM bdc_field       USING 'BDC_OKCODE'    '=&F03'.

  PERFORM bdc_dynpro      USING 'RMMMPERI' '1000'.
  PERFORM bdc_field       USING 'BDC_OKCODE'    '/EE'.

  CALL TRANSACTION 'MMPV' USING bdcdata
        OPTIONS FROM option MESSAGES INTO messtab.

  LOOP AT messtab.
    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
      EXPORTING
        msgid               = messtab-msgid
        msgnr               = messtab-msgnr
        msgv1               = messtab-msgv1
        msgv2               = messtab-msgv2
        msgv3               = messtab-msgv3
        msgv4               = messtab-msgv4
      IMPORTING
        message_text_output = itab_log-message.
    APPEND itab_log.
    CLEAR itab_log.
  ENDLOOP.
ENDFORM.                    "bdc

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.                    "BDC_DYNPRO
*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  CONDENSE bdcdata-fval.
  APPEND bdcdata.
ENDFORM.                    "BDC_FIELD

版权声明:
作者:智慧灯盏
链接:https://www.erpcool.com/p/c3ef3941fa44f.html
来源:SAP技术
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~