F-53付款清账BDC示例

1. 代码

  DATA: lt_bdcdata TYPE TABLE OF bdcdata,
        lt_message TYPE TABLE OF bdcmsgcoll,
        lv_date    TYPE dats.

  DATA: lv_perpay_amount TYPE pszah,
        lv_msgtext       TYPE string.

  DATA: lo_invalid_date TYPE REF TO cx_invalid_date,
        lv_belnr        TYPE char30.

  FIELD-SYMBOLS: <fs_message> TYPE bdcmsgcoll.

  DATA(ls_ctu_params) = VALUE ctu_params( dismode = 'N' updmode = 'S' nobinpt = 'X' cattmode = 'A' ).

  TRY.
      lv_date = zcl_abap_comm=>convert_date_to_internal( is_actual_payment-actual_pay_date ).  "清账日期
    CATCH cx_invalid_date INTO lo_invalid_date.
      es_output-zpost_type = 'E'.
      es_output-zpost_message = lo_invalid_date->get_text( ).
      RETURN.
  ENDTRY.

  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPMF05A' '0103'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '/05'.

  PERFORM frm_field_line TABLES lt_bdcdata USING 'BKPF-BLDAT' lv_date.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BKPF-BUDAT' lv_date.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BKPF-MONAT' lv_date+4(2).
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BKPF-BUKRS' is_input-header-company_code. "清账公司
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BKPF-WAERS' is_input-header-currency_code."货币
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-KONTO' '9200018'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BSEG-WRBTR' is_actual_payment-amount.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-AGKON' is_input-header-vendor_num.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-XNOPS' 'X'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-XPOS1(01)' ''.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-XPOS1(03)' 'X'.

  SELECT SINGLE concat( a~belnr,concat( a~gjahr,a~buzei ) ) AS belnr_ref
    FROM bseg AS a
    WHERE bukrs = @is_bkpf-bukrs
    AND belnr = @is_bkpf-belnr
    AND gjahr = @is_bkpf-gjahr
    AND koart = 'K'
    AND umskz NE 'Z'
    INTO @lv_belnr.
  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPMF05A' '0733'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-FELDN(01)' 'BELNR'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '/00'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-SEL01(01)' lv_belnr.

  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPMF05A' '0733'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_CURSOR' 'RF05A-FELDN(01)'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '=PA'.

*  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPMF05A' '0731'.
*  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_CURSOR' 'RF05A-SEL01(01)'.
*  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '=PA'.
*  PERFORM frm_field_line TABLES lt_bdcdata USING 'RF05A-SEL01(01)' is_bkpf-belnr.

  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPDF05X' '3100'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '=PART'.

  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPDF05X' '3100'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_CURSOR' 'DF05B-PSZAH(01)'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'DF05B-PSZAH(01)' is_actual_payment-amount.

  PERFORM frm_screen_line TABLES lt_bdcdata USING 'SAPDF05X' '3100'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_OKCODE' '=BU'.
  PERFORM frm_field_line TABLES lt_bdcdata USING 'BDC_CURSOR' 'DF05B-PSZAH(01)'.
  PERFORM frm_field_line TABLES lt_bdcdata USING '
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值