一、F-02 创建财务凭证-BDC 期初余额导入程序

程序:ZFIU_LDV_F_02_UPLOAD

创建F-02 凭证:

  1. *&----------------------------------------------------------------------------------------------------
  2.  
  3. CALL TRANSACTION 'F-02'
  4. USING it_bdcdata
  5. MODE mode_f
  6. UPDATE 'S'
  7. MESSAGES INTO it_bdcmsge.
  8. READ TABLE it_bdcmsge INDEX .
  9. it_msg_tab-msgtyp = it_bdcmsge-msgtyp.
  10. it_msg_tab-msgid = it_bdcmsge-msgid.
  11. it_msg_tab-msgnr = it_bdcmsge-msgnr.
  12. IF it_bdcmsge-msgid NE space.
  13. CALL FUNCTION 'MESSAGE_TEXT_BUILD'
  14. EXPORTING
  15. msgid = it_bdcmsge-msgid
  16. msgnr = it_bdcmsge-msgnr
  17. msgv1 = it_bdcmsge-msgv1
  18. msgv2 = it_bdcmsge-msgv2
  19. msgv3 = it_bdcmsge-msgv3
  20. msgv4 = it_bdcmsge-msgv4
  21. IMPORTING
  22. message_text_output = msg_text.
  23. it_msg_tab-text = msg_text.
  24. ELSE.
  25. it_msg_tab-text = '======成功创建======'.
  26. ENDIF.
  27. * MOVE it_upload_data-col01 TO it_msg_tab-saknr.
  28. APPEND it_msg_tab.
  29. *&----------------------------------------------------------------------------------------------------

SAPMF05A

100

X

   
 

0

 

BDC_OKCODE

/00

 

0

 

BKPF-BLDAT

20170411

 

0

 

BKPF-BLART

SA

 

0

 

BKPF-BUKRS

CV00

 

0

 

BKPF-BUDAT

20170411

 

0

 

BKPF-MONAT

4

 

0

 

BKPF-WAERS

CNY

 

0

 

BKPF-XBLNR

参照

 

0

 

BKPF-BKTXT

凭证抬头文本

 

0

 

BKPF-KURSF

1

 

0

 

RF05A-NEWBS

40

 

0

 

RF05A-NEWKO

6608990200

 

0

 

RF05A-NEWUM

SAPMF05A

300

X

   
 

0

 

BDC_OKCODE

/00

 

0

 

BSEG-WRBTR

30

 

0

 

BSEG-ZUONR

 

0

 

BSEG-SGTXT

 

0

 

RF05A-NEWBS

 

0

 

RF05A-NEWKO

SAPLKACB

2

X

   
 

0

 

BDC_OKCODE

#NAME?

SAPMF05A

300

X

   
 

0

 

BDC_OKCODE

#NAME?

 

0

 

BSEG-WRBTR

 

0

 

BSEG-ZUONR

 

0

 

BSEG-SGTXT

SAPLKACB

2

X

   
 

0

 

BDC_OKCODE

#NAME?

二、BAPI_ACC_DOCUMENT_POST

创建供应商,客户,总账凭证,

  1. *&----------------------------------------
  2.  
  3. FUNCTION zfifm_receipt_posting .
  4. *"----------------------------------------------------------------------
  5. *"*"Local interface:
  6. *" EXPORTING
  7. *" VALUE(ERRCODE) TYPE CHAR8
  8. *" VALUE(ERRDESC) TYPE CHAR250
  9. *" TABLES
  10. *" IT_HEAD STRUCTURE ZSFI_DOC_HEAD OPTIONAL
  11. *" IT_ITEM STRUCTURE ZSFI_DOC_ITEM OPTIONAL
  12. *" OT_HEAD STRUCTURE ZSFI_DOC_HEAD_O OPTIONAL
  13. *"----------------------------------------------------------------------
  14. DATA: t_head TYPE STANDARD TABLE OF ztfi_doc_head WITH HEADER LINE,
  15. t_item TYPE STANDARD TABLE OF ztfi_doc_item WITH HEADER LINE.
  16. DATA: lt_item TYPE STANDARD TABLE OF ztfi_doc_item WITH HEADER LINE.
  17. g_datum = sy-datum.
  18. g_uzeit = sy-uzeit.
  19.  
  20. *---- Mapping Data
  21. PERFORM frm_mapping_data TABLES t_head
  22. t_item
  23. it_head
  24. it_item.
  25.  
  26. LOOP AT t_head.
  27. idx_tabix = sy-tabix.
  28.  
  29. CLEAR: lt_item , lt_item[].
  30. LOOP AT t_item WHERE zsernr = t_head-zsernr.
  31. MOVE-CORRESPONDING t_item TO lt_item.
  32. APPEND lt_item.
  33. ENDLOOP.
  34.  
  35. *---- 数据检查
  36. PERFORM frm_check_data1 TABLES lt_item USING t_head.
  37.  
  38. IF t_head-proce <> ''.
  39. MODIFY t_head INDEX idx_tabix.
  40. CONTINUE.
  41. ENDIF.
  42.  
  43. *---- 创建会计凭证
  44. PERFORM frm_create_fi_doc TABLES lt_item USING t_head.
  45.  
  46. MODIFY t_head INDEX idx_tabix.
  47. ENDLOOP.
  48.  
  49. LOOP AT t_head.
  50. MOVE-CORRESPONDING t_head TO ot_head.
  51. IF ot_head-proce = 'W' AND ot_head-belnr <> ''.
  52. ot_head-proce = 'S'.
  53. ENDIF.
  54. APPEND ot_head.
  55. ENDLOOP.
  56.  
  57. *---- 自定义表更新
  58. MODIFY ztfi_doc_head FROM TABLE t_head.
  59. MODIFY ztfi_doc_item FROM TABLE t_item.
  60. COMMIT WORK AND WAIT.
  61.  
  62. *---- 返回码
  63. IF t_head[] IS NOT INITIAL.
  64. READ TABLE t_head INDEX .
  65. IF t_head-proce = 'S'.
  66. errcode = 'S0000000'.
  67. ELSE.
  68. errcode = 'E0468001'.
  69. errdesc = t_head-message.
  70. ENDIF.
  71. ENDIF.
  72.  
  73. ENDFUNCTION.
  74.  
  75. *&----------------------------------------------------------------------------------------------------
  76.  
  77. FORM frm_create_fi_doc TABLES lt_item STRUCTURE ztfi_doc_item
  78. USING wa_head STRUCTURE ztfi_doc_head.
  79. DATA: documentheader LIKE bapiache09.
  80. DATA: customercpd LIKE bapiacpa09.
  81. DATA: accountgl TYPE STANDARD TABLE OF bapiacgl09 WITH HEADER LINE,
  82. accountreceivable TYPE STANDARD TABLE OF bapiacar09 WITH HEADER LINE,
  83. accountpayable TYPE STANDARD TABLE OF bapiacap09 WITH HEADER LINE,
  84. accounttax TYPE STANDARD TABLE OF bapiactx09 WITH HEADER LINE,
  85. currencyamount TYPE STANDARD TABLE OF bapiaccr09 WITH HEADER LINE,
  86. criteria TYPE STANDARD TABLE OF bapiackec9 WITH HEADER LINE,
  87. lt_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
  88.  
  89. DATA: obj_type LIKE bapiache09-obj_type,
  90. obj_key LIKE bapiache09-obj_key,
  91. obj_sys LIKE bapiache09-obj_sys.
  92.  
  93. documentheader-username = sy-uname.
  94. documentheader-doc_type = wa_head-blart.
  95. documentheader-header_txt = wa_head-bktxt.
  96. documentheader-comp_code = wa_head-bukrs.
  97. documentheader-doc_date = wa_head-bldat.
  98. documentheader-pstng_date = sy-datum."wa_head-budat.
  99. documentheader-ref_doc_no = wa_head-xblnr.
  100.  
  101. LOOP AT lt_item.
  102.  
  103. documentheader-neg_postng = lt_item-xnegp.
  104.  
  105. *---- 金额
  106. CLEAR: currencyamount.
  107. currencyamount-itemno_acc = lt_item-buzei.
  108. currencyamount-currency = wa_head-waers.
  109. currencyamount-amt_doccur = lt_item-wrbtr.
  110. currencyamount-exch_rate = wa_head-kursf.
  111. IF lt_item-shkzg ='H'." lt_item-bschl = '50' OR lt_item-bschl = '11' OR lt_item-bschl = '39' OR lt_item-bschl = '31'.
  112. currencyamount-amt_doccur = - currencyamount-amt_doccur.
  113. ENDIF.
  114. APPEND currencyamount.
  115.  
  116. CASE lt_item-flag.
  117. WHEN 'D'.
  118. *---- 客户
  119. accountreceivable-itemno_acc = lt_item-buzei.
  120. accountreceivable-customer = lt_item-hkont.
  121. * ACCOUNTRECEIVABLE-gl_account = lt_item-hkont.
  122. accountreceivable-item_text = lt_item-sgtxt.
  123. accountreceivable-alloc_nmbr = lt_item-zuonr.
  124. accountreceivable-bline_date = lt_item-zfbdt.
  125. accountreceivable-sp_gl_ind = lt_item-umskz.
  126. * ACCOUNTRECEIVABLE-costcenter = lt_item-kostl.
  127. APPEND accountreceivable.
  128.  
  129. *----- 一次性客户信息
  130. SELECT SINGLE * FROM kna1 WHERE kunnr = lt_item-hkont.
  131. IF kna1-xcpdk = 'X'.
  132. customercpd-name = lt_item-sgtxt.
  133. customercpd-city = lt_item-sgtxt.
  134. customercpd-country = 'CN'.
  135. customercpd-bank_ctry = 'CN'.
  136. ENDIF.
  137. WHEN 'K'.
  138. *---- 供应商
  139. accountpayable-itemno_acc = lt_item-buzei.
  140. accountpayable-vendor_no = lt_item-hkont.
  141. * ACCOUNTRECEIVABLE-gl_account = lt_item-hkont.
  142. accountpayable-item_text = lt_item-sgtxt.
  143. accountpayable-alloc_nmbr = lt_item-zuonr.
  144. accountpayable-bline_date = lt_item-zfbdt.
  145. accountpayable-sp_gl_ind = lt_item-umskz.
  146. * accountpayable-costcenter = lt_item-kostl.
  147. APPEND accountpayable.
  148.  
  149. WHEN OTHERS.
  150. *---- 总帐科目
  151. accountgl-itemno_acc = lt_item-buzei.
  152. accountgl-gl_account = lt_item-hkont.
  153. accountgl-item_text = lt_item-sgtxt.
  154. accountgl-alloc_nmbr = lt_item-zuonr.
  155. accountgl-costcenter = lt_item-kostl.
  156. APPEND accountgl.
  157.  
  158. ENDCASE.
  159. ENDLOOP.
  160.  
  161. CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
  162. EXPORTING
  163. documentheader = documentheader
  164. customercpd = customercpd
  165. * CONTRACTHEADER = CONTRACTHEADER
  166. IMPORTING
  167. obj_type = obj_type
  168. obj_key = obj_key
  169. obj_sys = obj_sys
  170. TABLES
  171. accountgl = accountgl
  172. accountreceivable = accountreceivable
  173. accountpayable = accountpayable
  174. accounttax = accounttax
  175. currencyamount = currencyamount
  176. * CRITERIA = CRITERIA
  177. * VALUEFIELD = VALUEFIELD
  178. * EXTENSION1 = EXTENSION1
  179. return = lt_return
  180. * PAYMENTCARD = PAYMENTCARD
  181. * CONTRACTITEM = CONTRACTITEM
  182. * EXTENSION2 = EXTENSION2
  183. * REALESTATE = REALESTATE
  184. * ACCOUNTWT = ACCOUNTWT
  185. .
  186.  
  187. READ TABLE lt_return WITH KEY type = 'E'.
  188. IF sy-subrc = .
  189. LOOP AT lt_return WHERE type = 'E'.
  190. wa_head-proce = 'E'.
  191. CONCATENATE wa_head-message lt_return-message INTO wa_head-message SEPARATED BY ' '.
  192. ENDLOOP.
  193. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  194. ELSE.
  195. wa_head-belnr = obj_key+().
  196. wa_head-gjahr = obj_key+().
  197. wa_head-proce = 'S'.
  198. wa_head-message = '凭证创建成功!'.
  199. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  200. EXPORTING
  201. wait = 'X'.
  202.  
  203. ENDIF.
  204. ENDFORM. "FRM_CREATE_FI_DOC

三、SE37 函数创建凭证,测试使用

1.SE37初始界面,

2.菜单:FUNCTION MODULE-> TEST-> TEST sequences

3. BAPI_ACC_DOCUMENT_POST

+BAPI_TRANSACTION_COMMIT  (提交数据)
*&------------------------------------------------------------------------------------------------

BAPI_TRANSACTION_COMMIT  (测试)

*&------------------------------------------------------------------------------------------------

创建F-02 凭证 测试参数

  1. 运行第一个函数

得到 财务凭证:100000035

2.运行第二个函数,提交凭证,

201704 F-02创建财务凭证的更多相关文章

  1. 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框

    视频地址:http://v.qq.com/page/m/8/c/m0150izlt8c.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

  2. mysql笔记02 创建高性能的索引

    创建高性能的索引 1. 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数据结构. 2. 索引可以包含一个或多个列的值.如果索引包含多个列,那么列的顺序 ...

  3. pl/sql programming 02 创建并运行plsql代码

    /* * chap 02 * ------------------------------------------------- */ create or replace function wordc ...

  4. 【Linux常用工具】02. 创建启动定时任务工具cron

    一. cron 1. cron是一个守护程序,它提供定时器的功能,让用户在特定的时间得以执行默认的指令或程序.只要用户会编辑定时器的设置文件,就可以使用定时器的功能. 定时器文件格式: 2. cron ...

  5. Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli

    1 创建模块失败 1.1 问题描述 利用 ng g m 模块名 创建新模块时出错 1.2 错误信息 1.3 问题原因 angular-cli 版本出现问题 1.4 解决办法 卸载掉之前使用的 angu ...

  6. Python小游戏——外星人入侵(保姆级教程)第一章 01创建Pygame窗口 02创建设置类Setting()

    系列文章目录 第一章:武装飞船 01:创建Pygame窗口以及响应用户输入 02:创建设置类Setting() 一.前期准备 1.语言版本 Python3.9.0 2.编译器 Pycharm2022 ...

  7. Swift游戏实战-跑酷熊猫 02 创建熊猫类

    要点: 如何继承SKSpriteNode :子类必须调用SKSpriteNode的一个指定构造器 init(){ super.init(texture:texture,color:UIColor.wh ...

  8. cxf的使用及安全校验-02创建简单的客户端接口

    上一篇文章中,我们已经讲了如果简单的创建一个webservice接口 http://www.cnblogs.com/snowstar123/p/3395568.html 现在我们创建一个简单客户端接口 ...

  9. 【UiPath 中文教程】02 - 创建自定义 Activity

    在 UiPath Studio 中,活动 (Activity) 是流程自动化的基石,是构成自动化程序的最小模块.它们被包含在一个个 NuGet 包中. UiPath Studio 中有 3 类包: 官 ...

随机推荐

  1. git服务器gitlab之搭建和使用

    git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来稍微有些复杂,没有web页面,而gitlab则是类似于github的一个工具,github无法免费建立私有仓库,并且为了代 ...

  2. java序列化,二进制和数据流

    类的序列化需要支持Serializable接口,如果类支持序列化,可以通过ObjectOutPutStream和ObjectInputStream将对象和Stream之间进行方便的转换. 首先来 看一 ...

  3. 李洪强iOS开发之OC[003] - 用钥匙串存储信息模拟登陆

  4. layui表格渲染中模板的使用举例

    实例一: { field: 'status', align: 'center', title: '活动状态', templet: function (d) { if (d.status == &quo ...

  5. Windows Server 2008 R2入门之用户管理

    一.用户账户概述: ”用户”是计算机的使用者在计算机系统中的身份映射,不同的用户身份拥有不同的权限,每个用户包含一个名称和一个密码: 在Windows中,每个用户帐户有一个唯一的安全标识符(Secur ...

  6. redis中毒

    黑客用我们服务器挖矿了 新的一天的开始 周五早上刚到公司,同事来问我系统为啥打不开了?我第一反应就是肯定 Nginx 服务器挂了呗,立马就去登录服务器看看,但此时发现已经完全远程登录不上这台部署了 N ...

  7. 集合映射Set(使用xml文件)

    如果持久类具有Set对象,可以在映射文件中使用set元素映射Set集合. set元素不需要索引元素. List和Set之间的区别是: Set只存储唯一的值. 我们来看看我们如何在映射文件中实现集合: ...

  8. day22模块和包

       一.模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(. ...

  9. cocos2dx - 部署到android真机上错误整理

    利用Cgywin编译工具来将cocos2dx 在Android运行所需要的C++文件编译 1. ./build_native.sh(最后一把执行出错) please define NDK_ROOT i ...

  10. 如何在Java的Filter中注入Service???

    今天在做用户使用cookie自动登录的时候,发现在LoginFilter中读取到cookie以后要进行查询数据库然后进行用户名和密码的比对,查询数据库肯定要用到Service和Dao,一开始我以为在s ...