BDC:CO11/CO11N

FORM frm_process_co11n_bdc  TABLES   tp_message STRUCTURE zifsret01
                                     tp_item STRUCTURE zrmxpps002
                              USING  up_head TYPE zrmxpps001
                                     up_aufnr LIKE afko-aufnr
                              CHANGING cp_eind TYPE c
                                       .
  DATA:
        ls_item      TYPE zrmxpps002,
        ls_message   TYPE zifsret01.

 

  DATA: lv_msg   TYPE string,
        lv_bwtar TYPE bwtar_d,
        lv_menge(18) TYPE c.

  REFRESH:gt_bdcdata[],gt_bdcmsg[].

* 凭证类型
  IF up_head-vtype = cns_vtype_2.
    lv_bwtar = 'OEM'.
  ELSE.
    lv_bwtar = 'PRD'.
  ENDIF.


*
  PERFORM frm_fill_bdc USING: 'X' 'SAPLCORU'   '0100',
                              '' 'CORUF-AUFNR'  up_aufnr,
                              '' 'CORUF-VORNR' '10',        "默认0010
                              '' 'BDC_OKCODE' '/00'.        "回车

  lv_menge = up_head-menge.
  PERFORM frm_fill_bdc USING: 'X' 'SAPLCORU'   '0150',
                              ''  'AFRUD-LMNGA' lv_menge,   "确认数量
                              ''  'CORUF-TEILR' 'X',        "部分确认
                              ''  'BDC_OKCODE'  '=RZUS'.    "人员附加信息标签页

* 在人员附加信息标签页填写凭证日期
  PERFORM frm_fill_bdc USING: 'X' 'SAPLCORU' '0150',
                              ''  'AFRUD-BUDAT'  up_head-budat,
                              ''  'BDC_OKCODE'  '=MB03'.    "跳转到物料移动

*"默认行带出的评估类型
  PERFORM frm_fill_bdc USING: 'X' 'SAPLCOWB'    '0130',
                              ''  'BDC_CURSOR'  'COWB_COMP-BWTAR(01)',
                              ''  'COWB_COMP-BWTAR(01)' lv_bwtar,
                              ''  'BDC_OKCODE'   '/00'.  "回车

* 消耗物料的行
  LOOP AT tp_item INTO ls_item.
    lv_menge = ls_item-menge.
    PERFORM frm_fill_bdc USING: 'X' 'SAPLCOWB' '0130',
                                '' 'COWB_COMP-MATNR(02)' ls_item-matnr,
                                '' 'COWB_COMP-ERFME(02)' ls_item-meins,
                                '' 'COWB_COMP-WERKS(02)' ls_item-werks,
                                '' 'COWB_COMP-LGORT(02)' ls_item-lgort,
                                '' 'COWB_COMP-ERFMG(02)' lv_menge,
                                '' 'BDC_OKCODE' '/00'.  "回车

    PERFORM frm_fill_bdc USING: 'X' 'SAPLCOWB' '0130',
                                ''  'BDC_OKCODE' '=P+'.  "翻页
  ENDLOOP.

*  保存
  PERFORM frm_fill_bdc USING: 'X' 'SAPLCOWB' '0130',
                              ''  'BDC_OKCODE' '=WEIT'.  "保存

  CALL TRANSACTION 'CO11'  USING gt_bdcdata
                           MODE  gv_mode
                           UPDATE 'S'
                           MESSAGES INTO gt_bdcmsg.

  COMMIT WORK AND WAIT.

  LOOP AT gt_bdcmsg.
*        it_log-aufnr = it_data-aufnr.
*        it_log-vornr = it_data-vornr.
    MESSAGE ID sy-msgid TYPE gt_bdcmsg-msgtyp NUMBER gt_bdcmsg-msgnr
            WITH gt_bdcmsg-msgv1 gt_bdcmsg-msgv2 gt_bdcmsg-msgv3 gt_bdcmsg-msgv4
            INTO lv_msg.

    CLEAR ls_message.
    ls_message-class  = 'BUS'.
    ls_message-msgtyp = gt_bdcmsg-msgtyp.
    ls_message-msgno  = gt_bdcmsg-msgnr.
    ls_message-msgtxt = lv_msg.
    APPEND ls_message TO tp_message.

    IF gt_bdcmsg-msgtyp = 'E' OR
       gt_bdcmsg-msgtyp = 'A'.
      cp_eind = 'X'.
    ENDIF.

  ENDLOOP.

ENDFORM.                    " FRM_PROCESS_CO11N_BDC

转载于:https://www.cnblogs.com/zhumk/archive/2010/08/23/1806247.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值