SAP BDC模板+VF01

FORM zvf01 .

DATA:lt_vbeln TYPE TABLE OF ty_out WITH HEADER LINE.
DATA:lv_mseg TYPE string.

lt_vbeln[] = lt_out[] .

DELETE lt_vbeln WHERE check <> ‘X’.

SORT lt_vbeln BY vbeln_d.

DELETE ADJACENT DUPLICATES FROM lt_vbeln COMPARING vbeln_d.

LOOP AT lt_vbeln ASSIGNING FIELD-SYMBOL() .
SELECT SINGLE fkivk INTO @DATA(l_fkivk) FROM vbuk WHERE vbeln = @-vbeln_d.
IF sy-subrc = 0 AND l_fkivk <> ‘C’.

  PERFORM bdc_dynpro      USING 'SAPMV60A' '0102'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'KOMFK-VBELN(01)'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=FAKT'.
  PERFORM bdc_field       USING 'KOMFK-VBELN(01)'
                                <fs>-vbeln_d.
  PERFORM bdc_dynpro      USING 'SAPMV60A' '0104'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'VBRK-FKART'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=SICH'.

  CALL TRANSACTION 'VF01' USING bdcdata MODE 'N' MESSAGES INTO messtab.


  READ TABLE messtab INTO DATA(ls_msg) INDEX 1.
  IF ls_msg-msgv1 IS NOT INITIAL .

    <fs>-msg      = '销售开票完成'.
    <fs>-status   = icon_green_light.
    <fs>-vbeln_vf = ls_msg-msgv1.
  ELSE.
    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 = lv_mseg.

      <fs>-msg = <fs>-msg && lv_mseg .
      <fs>-status = icon_red_light.
      CLEAR : lv_mseg .
    ENDLOOP.
  ENDIF.
  CLEAR: messtab[].
ENDIF.

ENDLOOP.

LOOP AT lt_out ASSIGNING FIELD-SYMBOL(<fs_o>) .
READ TABLE lt_vbeln WITH KEY vbeln_d = <fs_o>-vbeln_d BINARY SEARCH.
IF sy-subrc = 0.
<fs_o>-vbeln_vf = lt_vbeln-vbeln_vf.
<fs_o>-msg = lt_vbeln-msg.
<fs_o>-status = lt_vbeln-status.

  "更新sto01
  UPDATE ztsto_01 SET vbeln_vf = lt_vbeln-vbeln_vf WHERE ebeln = lt_vbeln-ebeln AND ebelp = lt_vbeln-ebelp AND vbeln_d = lt_vbeln-vbeln_d.
  IF  sy-subrc = 0.
    COMMIT WORK.
  ENDIF.


ENDIF.
CLEAR:lt_vbeln.

ENDLOOP.

"第二步开采购发票
PERFORM fr_miro.

ENDFORM.

  • bdcdata-program:程序名

  • bdcdata-dynpro:屏幕号
    FORM bdc_dynpro USING program dynpro.
    CLEAR bdcdata.
    bdcdata-program = program.
    bdcdata-dynpro = dynpro.
    bdcdata-dynbegin = ‘X’.
    APPEND bdcdata.
    ENDFORM.

  • bdcdata-fnam:字段名

  • bdcdata-fval:字段值
    FORM bdc_field USING fnam fval.
    CLEAR bdcdata.
    bdcdata-fnam = fnam.
    bdcdata-fval = fval.
    APPEND bdcdata.
    ENDFORM.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值