*&---------------------------------------------------------------------*
*& BDC调用MMPV批量开物料帐账期
*&---------------------------------------------------------------------*
REPORT zmmpv NO STANDARD PAGE HEADING.

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

批量开物料账期的程序相关推荐

  1. 当APO生产订单报工遇到物料账期没开

    7月1日,在测试环境中通过VA01建了一个包含25台的销售订单,MMP计划排程后,产生了25个生产计划,其中有一个计划号是212640,RPM BOM展开.MRP计算物料需求做完,再做PPC1完工确认 ...

  2. SAP如何将物料账期跨年月一次性开到当前

    SAP如何将物料账期跨年月一次性开到当前 SAP 学习中使用IDES系统,里面公司的物料账期可能是在十几年前,如果使用MMPV一个一个月关和开,那将是非常耗时工作. 下面介绍一个方法,将物料账期跨年月 ...

  3. SAP 打开或关闭财务账期和物料账期等事物代码清单-OB52/MMPV/MMRV/OKP1/1KEF

    文章目录 1.FI账期 1.1 财务账期-OB52或 S_ALR_87003642 2.CO账期 2.1 控制范围账期-OKP1 2.2 利润中心账期-1KEF 3.物料账期-OMSY/MMPV/MM ...

  4. 打开财务账期和物料账期code

    物料账期:Tcode MMPV和Tcode MMRV 财务账期:Tcode OKP1  和OB52

  5. 物料账期、财务账期之间区别

    物料账期:Tcode MMPV和Tcode MMRV 财务账期:Tcode OKP1 和OB52 一.MMPV 调整财务物料帐结算的期间,只能逐月的进行调整.如果系统目前是07年2月份的物料帐,现在要 ...

  6. SAP中财务账期和物料账期系统内表

    SAP中财务账期系统内表:财务账期表:T001B SAP中物料账期系统内表:物料账期表:MARV

  7. SAP ABAP 检查物料账期函数

    "James_lx  2021.11.04  添加过滤掉不在账期中的数据   开始 loop at gt_log into data(gs_log). SELECT SINGLE BWKEY ...

  8. 查看打开物料账期 MMRV 和 MMPV

    用MMRV查看物料账期 . 用事务:MMPV 打开物料账期. 例如本例子是打开2022年11月的物料账期.操作如下图: 再用MMRV查看,账期改变了.

  9. SAP License:修改物料账期

    还有一种是用程序的方法更改,作用与此类似. 参考代码(将6000工厂的期间更改为第4期,上一期为第3期): REPORT ZZZZZ. data:  wk_marv type marv. select ...

最新文章

  1. 【TeeChart Pro ActiveX教程】(八):ADO数据库访问(上)
  2. 0x08 大数据分析,七层基本功
  3. 教你如何在项目中集成推送功能
  4. 职场真实故事计划##职场干货# 职场晋升之路
  5. AndroidStudio安卓原生开发_一个activity中引用多个fragment_以及不同activity中复用某个fragment---Android原生开发工作笔记117
  6. ENVI去除NDVI/EVI异常值、NAN(not a number,无效值)、无穷大(inf)
  7. Python错误:'tuple' object is not callable
  8. 随机森林模型调参方法
  9. 基于SSH保险业务管理系统的设计与实现
  10. android 调色盘插件,Adobe co CC2017下载
  11. 政府行政管理思维与互联网思维
  12. vivo NEX3史上最强旗舰机!瀑布屏+骁龙855+44W+5G,对战华为
  13. IMU输出的角度、角速度、加速度信息的坐标系
  14. Typora收费了, 还有哪些好用的markdown工具
  15. pythonsuper继承规则,Python用super继承
  16. 使用RestTemplate上传文件
  17. 如何在Edit中切换为默认输入法
  18. windows下驱动安装
  19. Wince平台软件打包
  20. .vue文件_Spring Boot + Vue 前后端分离,两种文件上传方式总结!

热门文章

  1. 获取计算机中的硬件信息
  2. 专家周 |360精确搜索VS今日头条精准推荐算法
  3. 我的手机应用创业的头一年
  4. Mesos Framework开发指南 一
  5. sklearn识别单张自定义手写数字图片
  6. 使用SharePoint Online PowerShell cmdlet有哪些好处?
  7. Git在服务器安装完成后续工作
  8. iOS开发之第三方框架Masonry
  9. 打开适配器并捕获数据包
  10. RadioGroup和RadioButton(单选框)