FICO 所有的创建会计凭证的bapi都是: BAPI_ACC_DOCUMENT_POST

F-37/F-47创建的预收/预付款,只有一行

一般来说都是借贷项平衡。所以直接去函数里面填数据,会报错

查阅资料后得知,如果创建的凭证只有一行的,那么需要打上特定的标识,

函数的入参中 sp_gl_ind  和 bus_act 我分别填写的是F 和 'RFST'

并且增强:BADI_ACC_DOCUMENT

代码如下,供大家参考

  DATA:ls_documentheader    LIKE bapiache09,lt_accountgl         LIKE TABLE OF bapiacgl09,ls_accountgl         LIKE bapiacgl09,lt_currencyamount    LIKE TABLE OF bapiaccr09,ls_currencyamount    LIKE bapiaccr09,lt_return            LIKE TABLE OF bapiret2,ls_return            TYPE bapiret2,lt_accountpayable    LIKE TABLE OF bapiacap09,ls_accountpayable    LIKE bapiacap09,lt_accountreceivable LIKE TABLE OF bapiacar09,ls_accountreceivable LIKE  bapiacar09,lt_extension         LIKE TABLE OF bapiparex,ls_extension         LIKE bapiparex.DATA: lv_num           TYPE posnr_acc.DATA: ls_exten         TYPE zsfi_acc_document_ex1.DATA: ls_celtab        TYPE lvc_s_styl.LOOP AT gt_data INTO gs_data WHERE box IS NOT INITIAL.CLEAR:lt_return,gs_data-message."凭证抬头CLEAR ls_documentheader.ls_documentheader-username   = sy-uname.            "用户名ls_documentheader-bus_act   = 'RFST'.               "必填,且必定为此值,不填报错ls_documentheader-comp_code  = gs_data-bukrs.       "公司代码ls_documentheader-doc_date   = sy-datum.            "凭证日期   收款日期ls_documentheader-pstng_date = sy-datum.            "过账日期   收款日期ls_documentheader-doc_type   = 'DZ'.                "凭证类型ls_documentheader-header_txt = gs_data-bktxt.       "抬头文本CLEAR: ls_accountreceivable,lt_accountreceivable.lv_num = lv_num + 1.ls_accountreceivable-itemno_acc  = lv_num.            "会计凭证行项目编号ls_accountreceivable-customer    = gs_data-kunnr.     "临时客户ls_accountreceivable-item_text   = gs_data-bktxt.     "行项目文本ls_accountreceivable-sales_ord   = gs_data-vbeln.ls_accountreceivable-s_ord_item  = gs_data-posnr.ls_accountreceivable-comp_code   = gs_data-bukrs.ls_accountreceivable-bline_date  = gs_data-zdate.ls_accountreceivable-sp_gl_ind   = 'F'.ls_accountreceivable-tax_code    = 'X0'.ls_accountreceivable-gl_account = '2205010000'.APPEND ls_accountreceivable TO lt_accountreceivable."金额CLEAR: ls_currencyamount,lt_currencyamount.ls_currencyamount-itemno_acc   = lv_num.ls_currencyamount-currency     = gs_data-waers.ls_currencyamount-amt_doccur   = gs_data-zwrbtr.APPEND ls_currencyamount TO lt_currencyamount.CLEAR: ls_exten,ls_extension,lt_extension.ls_exten-posnr                = lv_num.                           "凭证行项目ls_exten-bschl                = '09'.                             "凭证行项目过账码ls_exten-zumsk                = 'A'.                              "ls_exten-umskz                = 'F'.                              "ls_extension-structure       = 'ZSFI_ACC_DOCUMENT_EX1'.ls_extension-valuepart1      = ls_exten.APPEND ls_extension TO lt_extension."应收CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'EXPORTINGdocumentheader    = ls_documentheaderTABLESaccountgl         = lt_accountglaccountreceivable = lt_accountreceivablecurrencyamount    = lt_currencyamountreturn            = lt_returnextension2        = lt_extension.LOOP AT  lt_return INTO ls_return WHERE type = 'E'.CONCATENATE gs_data-message ls_return-message  INTO gs_data-message.ENDLOOP.

增强中的代码如下:

  DATA: wa_extension   TYPE bapiparex,ext_value(960) TYPE c,wa_accit       TYPE accit,l_ref          TYPE REF TO data.FIELD-SYMBOLS: <l_struc> TYPE any,<l_field> TYPE any.SORT c_extension2 BY structure.LOOP AT c_extension2 INTO wa_extension.AT NEW structure.CREATE DATA l_ref TYPE (wa_extension-structure).ASSIGN l_ref->* TO <l_struc>.ENDAT.CONCATENATE wa_extension-valuepart1 wa_extension-valuepart2wa_extension-valuepart3 wa_extension-valuepart4INTO ext_value.MOVE ext_value TO <l_struc>.ASSIGN COMPONENT 'POSNR' OF STRUCTURE <l_struc> TO <l_field>.READ TABLE c_accit WITH KEY posnr = <l_field>INTO wa_accit.IF sy-subrc IS INITIAL.MOVE-CORRESPONDING <l_struc> TO wa_accit.
*此处为创建单行项目的会计凭证的特殊逻辑。为了不影响标准的会计凭证创建,
*需要根据传入的增强结构判断,并将BSTAT设置为'S',这样就不会校验借贷平衡了IF wa_extension-structure = 'ZSFI_ACC_DOCUMENT_EX1'.wa_accit-bstat = 'S'.ENDIF.MODIFY c_accit FROM wa_accit INDEX sy-tabix.ENDIF.ENDLOOP.

ABAP FICO F-37/F-47创建预收/预付款相关推荐

  1. ABAP 数据类型 P 和 F

    文章目录 1. I : integer 2. P:packed number 3. F :float 大家都是搞计算的数字咯,那大家有啥区别? 1. I : integer 整形,就整数呗.有正整数和 ...

  2. R语言F分布函数F Distribution(df, pf, qf rf )实战

    R语言F分布函数F Distribution(df, pf, qf & rf )实战 目录 R语言F分布函数F Distribution(df, pf, qf & rf )实战 #生成 ...

  3. tail -f 和 -F 的用法

    -f 是--follow[=HOW]的缩写, 可以一直读文件末尾的字符并打印出来. "[=HOW]"有两个写法,一个"=descriptor",另一个是&quo ...

  4. python练习笔记——面试题 F(n) = F(n-1)+F(n-2)

    已知:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) 其中(n≥2,n∈N*) 求:求10以内的函数值分别是多少 方法一: def F(n):if n <= ...

  5. mips语言实现 f(n) = f(n-1) + 2*f(n-2) + 3*f(n-3)

    这是计算机组成的一个任务,原来拿别人的交了,现在补上! 首先,了解 f(n) = f(n-1) + 2*f(n-2) + 3*f(n-3) 的基本条件:f(0) = 0, f(1) = 1, f(2) ...

  6. 创建预编译头 Debug 正常 Release Link Error:预编译头已存在,使用第一个 PCH

    创建预编译头 Debug 正常 Release Link Error Main.obj : error LNK2005: ___@@_PchSym_@00@UmfilkilqUdrmzkkUkilqU ...

  7. c语言利用fun求最小值,c语言:请编写函数fun(),他的功能是:求f(0)到f(50)的最小值,已知:f(0)=f(1)=1,f(2)=0,f...

    #include #include int f(int n) { if (n == 0 || n == 1) { return 1; } if (n == 2) { return 0; } retur ...

  8. 鏡頭上的 F 與 f 之區別

    http://zip.nvp.com.tw/forum.php?mod=viewthread&tid=603&extra=page%3D2 鏡頭上的 F 與 f 之區別: ‧ F 代表 ...

  9. 设f(x)=∑x^n/n^2,证明f(x)+f(1-x)+lnxln(1-x)=∑1/n^2

    题目 设 f ( x ) = ∑ n = 1 ∞ x n n 2 ,证明: f ( x ) + f ( 1 − x ) + ln ⁡ x ln ⁡ ( 1 − x ) = ∑ n = 1 ∞ 1 n ...

最新文章

  1. Java:假设车库有3个车位(可以通过boolean[]数组来表示车库)可以停车,写一个程序模拟多个用户开车离开,停车入库的效果。注意:车位有车时不能停车。
  2. FTP(File Transfer Protocol)搭建文件传输服务器vsftp(vsftpd)(FTP和SFTP区别)(未完成)
  3. Ubuntu16.04怎样安装Python3.6
  4. 程序员面试题准备(1)单链表逆置
  5. 如何使用CDR智能填充工具
  6. mysql 日期型中文报错_mysql日期类型默认值'0000-00-00' 报错,是什么问题?
  7. 敏捷 - #1 原则:早期和持续交付有价值的软件 (#1 Agile Principle)
  8. 剑指offer——6.从尾到头打印链表
  9. 阶段3 1.Mybatis_09.Mybatis的多表操作_4 完成account一对一操作-建立实体类关系的方式...
  10. Atitit mysql insert perf enhance 批量插入数据库性能 目录 1.1. 案一:使用ignore关键字 1 2. 异步插入 2 2.1. 其它关键:DELAYED  做为
  11. delphi10.2.1下载地址
  12. Arduino与Proteus仿真实例-AD5242数字电位器驱动仿真
  13. f5 系统损坏,重新安全系统
  14. 爬去当当热销图书信息
  15. linux命令ftps,Linux下FTP服务器应用之FTPS(FTP+SSL)
  16. HTML实现倒计时插件
  17. 计算机音乐蜗牛与黄鹂鸟,音乐教材《蜗牛与黄鹂鸟》教案
  18. vue 使用swper组件
  19. 没“硬货”!不卖手机的苹果做起了信用卡和脱口秀
  20. Java毕设_装修公司业务流程管理系统的设计与实现

热门文章

  1. 中国计算机软件专业技术,中国计算机软件专业技术资格考试-20210325012847.doc-原创力文档...
  2. ab压力测试工具-批量压测脚本
  3. 服务器系统事件日志删除部分,web 服务器的系统事件日志
  4. ubuntu清理挖矿病毒
  5. 远程连接多台电脑做压力性能测试
  6. 天津市百畅网络科技有限公司----微信代运营服务细则
  7. wordpress主题基本文件配置
  8. java 调用 docker 中的 HBase 服务 卡死 不报错 不报异常 卡着不动 但 服务ip是能ping通
  9. leetcode(68)_1436_easy_旅行终点站_python
  10. 前端HTML学习笔记(一)