功能需求为实现一个接口,进行供应商付款业务。要求可使用现金、银行存款、汇票等过账方式,本想用BDC录屏实现事务码F-02,结果测试时发现有些过账码内容不能同时使用,现记录下来,抛砖引玉,如有大神知道怎么改,请多指教,后期将另一篇文章中用bapi实现此业务。话不多说,先上代码:

FUNCTION ZFI_OA_SUPLIER_SPECEIL_PAY.
*"----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*" REFERENCE(BUKRS) TYPE BUKRS DEFAULT ‘1000’
*" REFERENCE(BLART) TYPE BLART DEFAULT ‘SA’
*" REFERENCE(BLDAT) TYPE BLDAT DEFAULT SY-DATUM
*" REFERENCE(BUDAT) TYPE BUDAT DEFAULT SY-DATUM
*" REFERENCE(XBLNR) TYPE XBLNR OPTIONAL
*" REFERENCE(KURSF) TYPE KURSF OPTIONAL
*" REFERENCE(WAERS) TYPE WAERS
*" REFERENCE(BKTXT) TYPE BKTXT
*" EXPORTING
*" REFERENCE(RTYPE) TYPE BAPI_MTYPE
*" REFERENCE(RTMSG) TYPE BAPI_MSG
*" REFERENCE(BELNR) TYPE BELNR_D
*" REFERENCE(GJAHR) TYPE GJAHR
*" TABLES
*" IT_ITEM STRUCTURE ZF02ITEM
*"----------------------------------------------------------------------
DATA BEGIN OF ITAB OCCURS 0.
INCLUDE TYPE ZF02ITEM.
DATA:NUM TYPE SY-TABIX,
END OF ITAB,
WA LIKE LINE OF ITAB,
WRBTR1 TYPE CHAR23,
WRBTR2 TYPE CHAR23,
MONAT TYPE CHAR2,
KURSFC TYPE CHAR9.
DATA:BDCMSG LIKE ARRANG_ERR,
MSG TYPE BAPI_MSG.

IF IT_ITEM[] IS NOT INITIAL.
CLEAR:BDCDATA[],MESSTAB[],BELNR,GJAHR,RTMSG,RTYPE.
MONAT = BUDAT+4(2).

APPEND LINES OF IT_ITEM TO ITAB.PERFORM BDC_DYNPRON      USING 'SAPMF05A' '0100'."头数据录入
PERFORM BDC_FIELDN     USING 'BDC_CURSOR''RF05A-NEWKO'.
PERFORM BDC_FIELDN       USING 'BDC_OKCODE''/00'.
PERFORM BDC_FIELDN       USING 'BKPF-BLDAT' BLDAT ."凭证日期
PERFORM BDC_FIELDN       USING 'BKPF-BLART' BLART."凭证类型 总账科目凭证 默认SA
PERFORM BDC_FIELDN       USING 'BKPF-BUKRS' BUKRS. "公司代码 默认1000
PERFORM BDC_FIELDN       USING 'BKPF-BUDAT' BUDAT. "过账日期
PERFORM BDC_FIELDN       USING 'BKPF-MONAT' MONAT."记账期间
PERFORM BDC_FIELDN       USING 'BKPF-WAERS' WAERS."货币 默认CNY
PERFORM BDC_FIELDN       USING 'BKPF-BKTXT' BKTXT."抬头文本
PERFORM BDC_FIELDN       USING 'FS006-DOCID' '*' .
IF KURSF IS NOT INITIAL.PERFORM BDC_FIELDN       USING 'BKPF-KURSF'   KURSF. "汇率
ENDIF.
LOOP AT ITAB.WRBTR1 = ITAB-WRBTR.CONDENSE WRBTR1 NO-GAPS.IF ITAB-NEWUM EQ 'W'.PERFORM BDC_FIELDN       USING 'RF05A-NEWBS' ITAB-BSCHL."过账码PERFORM BDC_FIELDN       USING 'RF05A-NEWKO' ITAB-HKONT. "科目PERFORM BDC_FIELDN       USING 'RF05A-NEWUM' ITAB-NEWUM."特别总账标识PERFORM BDC_DYNPRON      USING 'SAPMF05A' '0320'.PERFORM BDC_FIELDN       USING 'BDC_CURSOR''RF05A-NEWBS'.PERFORM BDC_FIELDN       USING 'BDC_OKCODE''=BU'.PERFORM BDC_FIELDN       USING 'BSEG-WRBTR' WRBTR1 . "金额PERFORM BDC_FIELDN       USING 'BSEG-ZFBDT' ITAB-ZFBDT. "汇票到期日期PERFORM BDC_FIELDN       USING 'BSED-WNAME' ITAB-WNAME. "收款人名字
  •    PERFORM BDC_FIELD       USING 'BSED-WORT1' ."收款人城市
    
  •    PERFORM BDC_FIELD       USING 'BSED-REGIO' ."收款人城市码PERFORM BDC_FIELDN       USING 'BSED-WBZOG' ITAB-WBZOG."付款人
    
  •    PERFORM BDC_FIELD       USING 'BSED-WORT2' . "付款人城市PERFORM BDC_FIELDN      USING 'BSEG-ZUONR' ITAB-ZUONR."分配PERFORM BDC_FIELDN      USING 'BSEG-SGTXT' ITAB-SGTXT."文本PERFORM BDC_FIELDN      USING 'BSED-WBANK' ITAB-WBANK."指定支付地点PERFORM BDC_FIELDN      USING 'BSED-WLZBP' ITAB-WLZBP."中央银行位置PERFORM BDC_FIELDN       USING 'BSED-BOENO' ITAB-BOENO."Check Number
    ELSE .PERFORM BDC_FIELDN       USING 'RF05A-NEWBS' ITAB-BSCHL."过账码PERFORM BDC_FIELDN       USING 'RF05A-NEWKO' ITAB-HKONT. "科目        IF ITAB-BSCHL EQ '50'.PERFORM BDC_DYNPRON      USING 'SAPMF05A' '0300'.PERFORM BDC_FIELDN       USING 'BDC_OKCODE'   '/00'.PERFORM BDC_FIELDN       USING 'BSEG-WRBTR' WRBTR1 . "金额PERFORM BDC_FIELDN      USING 'BSEG-ZUONR' ITAB-ZUONR."分配PERFORM BDC_FIELDN      USING 'BSEG-SGTXT' ITAB-SGTXT."文本PERFORM BDC_FIELDN       USING 'BDC_OKCODE'  '/00'.PERFORM BDC_DYNPRON      USING 'SAPLKACB' '0002'.PERFORM BDC_DYNPRON      USING 'SAPMF05A' '0330'.PERFORM BDC_FIELDN      USING 'BSEG-RSTGR' ITAB-RSTGR."原因码PERFORM BDC_FIELDN       USING 'BDC_OKCODE'  '/00'.ELSE .PERFORM BDC_DYNPRON      USING 'SAPMF05A' '0302'.PERFORM BDC_FIELDN       USING 'BDC_OKCODE'   '/00'.PERFORM BDC_FIELDN       USING 'BSEG-WRBTR' WRBTR1 . "金额PERFORM BDC_FIELDN       USING 'BSEG-MWSKZ' '**'."税码PERFORM BDC_FIELDN       USING 'BSEG-ZFBDT' ITAB-ZFBDT. "付款起算日期PERFORM BDC_FIELDN      USING 'BSEG-ZUONR' ITAB-ZUONR."分配PERFORM BDC_FIELDN      USING 'BSEG-SGTXT' ITAB-SGTXT."文本PERFORM BDC_FIELDN       USING 'BDC_OKCODE'  '/00'.ENDIF.        ENDIF.
    CLEAR ITAB.
    

    ENDLOOP.

    PERFORM BDCFM TABLES BDCDATA MESSTAB USING ‘F-02’ ‘N’.
    READ TABLE MESSTAB WITH KEY MSGTYP = ‘E’.
    IF SY-SUBRC = 0.
    PERFORM BDCMSG TABLES MESSTAB CHANGING RTMSG.
    RTYPE = ‘E’.
    ELSE.
    RTMSG = ‘警告,未执行完’.
    RTYPE = ‘W’.
    READ TABLE MESSTAB WITH KEY MSGTYP = ‘S’ MSGID = ‘F5’ MSGNR = ‘312’ .
    IF SY-SUBRC = 0.
    BELNR = MESSTAB-MSGV1.
    GJAHR = BUDAT+0(4).
    RTMSG = ‘成功’.
    RTYPE = ‘S’.
    ELSE.
    RTMSG = ‘警告,执行完,但未生成记录’.
    RTYPE = ‘W’.
    ENDIF.

    ENDIF .
    ENDIF .
    ENDFUNCTION.

以下为数据结构====================



有些字段未放入录屏中,如有需求可自行添加。

ABAP使用BDC录屏实现供应商付款功能(F-02)相关推荐

  1. BDC录屏 EPIC_PROC,银企直连

    目的:用户希望用BDC实现,自动创建EPIC_PROC银企直连的"付款建议"按钮功能 (本想实现以下步骤,创建付款状态,但无法实现) 难点:EPIC_PROC事务码直接录屏没办法捕 ...

  2. 测试手机视频录屏并转GIF功能

    完美录屏大师配合抠抠视频秀,测试录制效果,还不错,找了好久~~~

  3. 录录(高清录屏) - Video321 剪辑功能介绍

    大家好,今天我们录录录屏又和大家见面啦- 之前已经跟大家介绍过录录录屏-Video321是一款通过视频录制.视频分享的方式提高办公效率的SaaS型产品.通过使用"录录录屏-Video321& ...

  4. 安卓10自带录屏_谷歌终于在Android 11版里原生支持屏幕录像功能(即录屏)和长截图功能...

    在谷歌面向开发者们推出 Android 11 开发者预览版后,关于新版本的越来越多的新增功能正在被逐渐发掘出来. 例如最新被发掘出来的新功能是谷歌终于添加所有用户期待已久的屏幕录像功能,同时还支持进行 ...

  5. abap如何找屏幕增强_因增强导致BDC录屏执行异常的梗

    最近呀,写一个使用BDC批量导入数据到MIRO的程序,遇到一个很有意思的问题,愣是折腾了半天才找到原因,具体是啥问题呢,且听我细细道来.Debug的时候发现,执行完CALLTRANSACTION 'M ...

  6. 因增强导致BDC录屏执行异常的梗

    最近呀,写一个使用BDC批量导入数据到MIRO的程序,遇到一个很有意思的问题,愣是折腾了半天才找到原因,具体是啥问题呢,且听我细细道来. Debug的时候发现,执行完CALLTRANSACTION ' ...

  7. Camtasia2021下载屏幕录屏记录视频软件功能教程

    Camtasia 2021使在Windows和Mac上录制和创建专业外观的视频变得简单.超过3600万人使用Camtasia制作视频,教程.演示.培训视频等你做!Camtasia学得快,不需要很大的预 ...

  8. 使用BDC进行Miro录屏时的公司代码弹窗问题

    最近这几个月手边头繁琐的事情比较多,所以在公众号推文方面有所懈怠.今天是21年的第一天,带孩子出去了一天,这阵找点时间来写一篇,鞭策自己新的一年努力努力再努力. 01 - 简要介绍 我们知道,有些事务 ...

  9. BDC 弹窗录屏解决办法(ABUMN)

    导语:最近在做一个资产价值转移的程序,没有找到合适的函数,就用了BDC,但是有个问题是,ABUMN这个事务码,第一次进入会弹窗让输入公司代码,第二次就不会了,会有参数ID的默认,这样没办法控制. 解决 ...

最新文章

  1. 腾讯汤道生:数实融合成为行业“必答题”,腾讯未来打造四大引擎
  2. 阿里云实现putty私钥登录全过程
  3. oracle替换表merge,sql – Oracle – 如何使用merge根据其他表和列中的值更新列
  4. matlab生成实指数序列、matlab茎状图
  5. c++枚举类型(二) c++11 枚举类
  6. 学习SAP项目成功实施的十大条件
  7. String字符串中获取所有匹配结果的索引值
  8. Window捕获消息机制-C#
  9. mysql外键约束分数_MySQL提高(外键约束)
  10. Nginx 常用配置,避坑指南!
  11. 【网络流24题】分配问题 最小最大费用最大流
  12. 如何高效的批量删除亿级大表数据
  13. 135编辑器中html使用方法,135编辑器使用小技巧 135编辑器特色功能使用技巧方法...
  14. # 开发 VR 多人游戏的技术挑战
  15. ZYNQ学习笔记PS部分【基本介绍】
  16. Ubuntu20.04更换系统默认启动内核
  17. 苏州Uber优步司机奖励政策(8月31日至9月6日)
  18. Python类和对象使用
  19. [hive 报错]:FAILED: SemanticException Line 0:-1 Partition not found
  20. 电磁场与电磁波(5)——静电场基本方程、分界面上的衔接条件

热门文章

  1. NavCat15安装教程
  2. 爬虫——爬取网页数据存入表格
  3. 利用JS实现简易ATM机
  4. JAVA实现彩色图片转黑白图片 (ImageIO类)
  5. 去除下拉框上向下的箭头
  6. 共享充电服务迭代背后,怪兽充电们走出“围城之困”?
  7. 【LeetCode】971. Flip Binary Tree To Match Preorder Traversal
  8. 华为c语言笔试形式,最新华为C语言笔试题目分享
  9. 羊毛党大揭秘:上亿黑卡在手,撸垮上市公司
  10. JavaScript 入门