BDC录屏 EPIC_PROC,银企直连

目的:用户希望用BDC实现,自动创建EPIC_PROC银企直连的"付款建议"按钮功能

(本想实现以下步骤,创建付款状态,但无法实现)

难点:EPIC_PROC事务码直接录屏没办法捕捉到该按钮(失败了很多次)

解决方法:创建一个新程序,调用标准函数  EPIC_PR_SEL_POPUP,对该事务码进行BDC录屏

解释:EPIC_PR_SEL_POPUP 该函数是通过debug事务码EPIC_PROC的时候,定位到,弹出"付款建议"窗口时,是调用的该函数,所以我们可以绕过前边步骤,直接调用该函数,弹出"付款建议"窗口进行录屏,成功!

步骤:

1)创建程序:ZFICOM008(事务码:ZFICOM008),调用:EPIC_PR_SEL_POPUP

*&---------------------------------------------------------------------*
*& Report ZFICOM008
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zficom008.

CALL FUNCTION 'EPIC_PR_SEL_POPUP'.

2)DBC录屏:调用事务码ZFICOM008,会弹出以下窗口,成功录屏

代码参考:

LOOP AT lt_item_1 INTO ls_item_1.

    lt_ztfico_mkyz003-zformbizcode       = ls_item_1-zformbizcode.         "来源单据号
    lt_ztfico_mkyz003-zlsch              = lv_fkfs.  "ls_item_1-zlsch.                "付款方式
    lt_ztfico_mkyz003-zpayamount         = ls_item_1-zpayamount.           "付款金额(比例)
    lt_ztfico_mkyz003-lifnr              = i_lifnr.                      "供应商
    lt_ztfico_mkyz003-bukrs              = i_bukrs.                      "公司代码
    lt_ztfico_mkyz003-zformdatacode      = it_header-zformdatacode.      "单据code
    lt_ztfico_mkyz003-zprocessinstanceid = it_header-zprocessinstanceid. "流程实例Id
    lt_ztfico_mkyz003-ztaskid            = it_header-ztaskid.            "流程节点Id
    lt_ztfico_mkyz003-zformtype          = it_header-zformtype.          "单据类型
    lt_ztfico_mkyz003-zdqr               = ls_item_1-zdqr.                 "到期日
    lt_ztfico_mkyz003-zpaytotalamount    = it_header-zpaytotalamount.    "总待付款金额
    lt_ztfico_mkyz003-zwaitpayamount     = ls_item_1-zwaitpayamount.       "待付款金额明细
    lt_ztfico_mkyz003-waers              = ls_item_1-waers.                "待付款金额-币别
    lt_ztfico_mkyz003-zdate              = sy-datum.
    lt_ztfico_mkyz003-ztime              = sy-uzeit.

    lt_ztfico_mkyz003-zdjje              = ls_item_1-zdjje.    "单据金额

    READ TABLE lt_002 WITH KEY zbelnr = ls_item_1-zformbizcode_1 BINARY SEARCH.
    IF sy-subrc EQ 0.
      lt_ztfico_mkyz003-zdfje = lt_002-zdfje.  "付款总金额
      lt_ztfico_mkyz003-tsl   = lt_002-tsl.    "发票金额
    ENDIF.


    "凭证号
    lv_belnr                = ls_item_1-zformbizcode+0(10).  "前10位为凭证号
    lv_docln                = ls_item_1-zformbizcode+13(3).  "后3位为行项目号
    lv_gjahr                = ls_item_1-zformbizcode+20(4).  "年份
    lt_ztfico_mkyz003-belnr = lv_belnr.
    lt_ztfico_mkyz003-docln = lv_docln.
    lt_ztfico_mkyz003-gjahr = lv_gjahr.


    "计算折扣金额  modify by 80007687 20210323
    lv_zpayamount = lt_ztfico_mkyz003-zpayamount.
    IF lt_ztfico_mkyz003-zdfje = lt_ztfico_mkyz003-tsl AND lv_zpayamount <= 100 .
      lt_ztfico_mkyz003-zzkje = '0'.
    ELSEIF lt_ztfico_mkyz003-zdfje < lt_ztfico_mkyz003-tsl AND lv_zpayamount <= 100 .
      lt_ztfico_mkyz003-zzkje = lt_ztfico_mkyz003-tsl - lt_ztfico_mkyz003-zdfje.
    ENDIF.
    "end 80007687 20210323


    "下一个过账日期
    IF lt_ztfico_mkyz003-zdqr <= lv_date1.   "到期日<当天日期,下一个过账日期 = 当天日期 + 1天
      lv_date2 = lv_date1 + 1.
    ELSE.
      lv_date2 = lt_ztfico_mkyz003-zdqr.
    ENDIF.

**------------------bdc录屏  epic_proc 电子支付集成  数据准备------start------
    PERFORM bdc_dynpro1      USING 'SAPLEPIC_PROC' '3010' CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'BDC_OKCODE'
                                  '=3010_EXEC' CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'BDC_CURSOR'
                                  'S_BSEG_P-LOW' CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'P_BUK_P'
                                  i_bukrs CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'S_LIF_P-LOW'
                                  i_lifnr CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'P_BUD_P'
                                  lv_date1 CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'P_GRD_P'
                                  lv_date1 CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'P_NED_P'
                                  lv_date2 CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'P_ZWE_P'
                                  lv_fkfs CHANGING bdcdata.
    APPEND bdcdata.
    PERFORM bdc_field1       USING 'S_BSEG_P-LOW'
                                  lv_belnr CHANGING bdcdata.
    APPEND bdcdata.

    CALL TRANSACTION 'ZFICOM008' USING bdcdata
                                 MODE lv_mode
                                 UPDATE 'S'
                                 MESSAGES INTO lt_message.
**------------------BDC录屏  EPIC_PROC 电子支付集成  数据准备------END------

    APPEND lt_ztfico_mkyz003.
    CLEAR: ls_item_1, lt_ztfico_mkyz003,bdcdata[].
  ENDLOOP.

FORM bdc_dynpro1 USING program dynpro
      CHANGING bdcdata LIKE bdcdata.

  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.

ENDFORM.

FORM bdc_field1 USING fnam fval
      CHANGING bdcdata LIKE bdcdata.

  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  CONDENSE bdcdata-fval.

ENDFORM.

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值