201704 F-02创建财务凭证
一、F-02 创建财务凭证-BDC 期初余额导入程序
程序:ZFIU_LDV_F_02_UPLOAD
创建F-02 凭证:
- *&----------------------------------------------------------------------------------------------------
- CALL TRANSACTION 'F-02'
- USING it_bdcdata
- MODE mode_f
- UPDATE 'S'
- MESSAGES INTO it_bdcmsge.
- READ TABLE it_bdcmsge INDEX .
- it_msg_tab-msgtyp = it_bdcmsge-msgtyp.
- it_msg_tab-msgid = it_bdcmsge-msgid.
- it_msg_tab-msgnr = it_bdcmsge-msgnr.
- IF it_bdcmsge-msgid NE space.
- CALL FUNCTION 'MESSAGE_TEXT_BUILD'
- EXPORTING
- msgid = it_bdcmsge-msgid
- msgnr = it_bdcmsge-msgnr
- msgv1 = it_bdcmsge-msgv1
- msgv2 = it_bdcmsge-msgv2
- msgv3 = it_bdcmsge-msgv3
- msgv4 = it_bdcmsge-msgv4
- IMPORTING
- message_text_output = msg_text.
- it_msg_tab-text = msg_text.
- ELSE.
- it_msg_tab-text = '======成功创建======'.
- ENDIF.
- * MOVE it_upload_data-col01 TO it_msg_tab-saknr.
- APPEND it_msg_tab.
- *&----------------------------------------------------------------------------------------------------
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
创建供应商,客户,总账凭证,
- *&----------------------------------------
- FUNCTION zfifm_receipt_posting .
- *"----------------------------------------------------------------------
- *"*"Local interface:
- *" EXPORTING
- *" VALUE(ERRCODE) TYPE CHAR8
- *" VALUE(ERRDESC) TYPE CHAR250
- *" TABLES
- *" IT_HEAD STRUCTURE ZSFI_DOC_HEAD OPTIONAL
- *" IT_ITEM STRUCTURE ZSFI_DOC_ITEM OPTIONAL
- *" OT_HEAD STRUCTURE ZSFI_DOC_HEAD_O OPTIONAL
- *"----------------------------------------------------------------------
- DATA: t_head TYPE STANDARD TABLE OF ztfi_doc_head WITH HEADER LINE,
- t_item TYPE STANDARD TABLE OF ztfi_doc_item WITH HEADER LINE.
- DATA: lt_item TYPE STANDARD TABLE OF ztfi_doc_item WITH HEADER LINE.
- g_datum = sy-datum.
- g_uzeit = sy-uzeit.
- *---- Mapping Data
- PERFORM frm_mapping_data TABLES t_head
- t_item
- it_head
- it_item.
- LOOP AT t_head.
- idx_tabix = sy-tabix.
- CLEAR: lt_item , lt_item[].
- LOOP AT t_item WHERE zsernr = t_head-zsernr.
- MOVE-CORRESPONDING t_item TO lt_item.
- APPEND lt_item.
- ENDLOOP.
- *---- 数据检查
- PERFORM frm_check_data1 TABLES lt_item USING t_head.
- IF t_head-proce <> ''.
- MODIFY t_head INDEX idx_tabix.
- CONTINUE.
- ENDIF.
- *---- 创建会计凭证
- PERFORM frm_create_fi_doc TABLES lt_item USING t_head.
- MODIFY t_head INDEX idx_tabix.
- ENDLOOP.
- LOOP AT t_head.
- MOVE-CORRESPONDING t_head TO ot_head.
- IF ot_head-proce = 'W' AND ot_head-belnr <> ''.
- ot_head-proce = 'S'.
- ENDIF.
- APPEND ot_head.
- ENDLOOP.
- *---- 自定义表更新
- MODIFY ztfi_doc_head FROM TABLE t_head.
- MODIFY ztfi_doc_item FROM TABLE t_item.
- COMMIT WORK AND WAIT.
- *---- 返回码
- IF t_head[] IS NOT INITIAL.
- READ TABLE t_head INDEX .
- IF t_head-proce = 'S'.
- errcode = 'S0000000'.
- ELSE.
- errcode = 'E0468001'.
- errdesc = t_head-message.
- ENDIF.
- ENDIF.
- ENDFUNCTION.
- *&----------------------------------------------------------------------------------------------------
- FORM frm_create_fi_doc TABLES lt_item STRUCTURE ztfi_doc_item
- USING wa_head STRUCTURE ztfi_doc_head.
- DATA: documentheader LIKE bapiache09.
- DATA: customercpd LIKE bapiacpa09.
- DATA: accountgl TYPE STANDARD TABLE OF bapiacgl09 WITH HEADER LINE,
- accountreceivable TYPE STANDARD TABLE OF bapiacar09 WITH HEADER LINE,
- accountpayable TYPE STANDARD TABLE OF bapiacap09 WITH HEADER LINE,
- accounttax TYPE STANDARD TABLE OF bapiactx09 WITH HEADER LINE,
- currencyamount TYPE STANDARD TABLE OF bapiaccr09 WITH HEADER LINE,
- criteria TYPE STANDARD TABLE OF bapiackec9 WITH HEADER LINE,
- lt_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
- DATA: obj_type LIKE bapiache09-obj_type,
- obj_key LIKE bapiache09-obj_key,
- obj_sys LIKE bapiache09-obj_sys.
- documentheader-username = sy-uname.
- documentheader-doc_type = wa_head-blart.
- documentheader-header_txt = wa_head-bktxt.
- documentheader-comp_code = wa_head-bukrs.
- documentheader-doc_date = wa_head-bldat.
- documentheader-pstng_date = sy-datum."wa_head-budat.
- documentheader-ref_doc_no = wa_head-xblnr.
- LOOP AT lt_item.
- documentheader-neg_postng = lt_item-xnegp.
- *---- 金额
- CLEAR: currencyamount.
- currencyamount-itemno_acc = lt_item-buzei.
- currencyamount-currency = wa_head-waers.
- currencyamount-amt_doccur = lt_item-wrbtr.
- currencyamount-exch_rate = wa_head-kursf.
- IF lt_item-shkzg ='H'." lt_item-bschl = '50' OR lt_item-bschl = '11' OR lt_item-bschl = '39' OR lt_item-bschl = '31'.
- currencyamount-amt_doccur = - currencyamount-amt_doccur.
- ENDIF.
- APPEND currencyamount.
- CASE lt_item-flag.
- WHEN 'D'.
- *---- 客户
- accountreceivable-itemno_acc = lt_item-buzei.
- accountreceivable-customer = lt_item-hkont.
- * ACCOUNTRECEIVABLE-gl_account = lt_item-hkont.
- accountreceivable-item_text = lt_item-sgtxt.
- accountreceivable-alloc_nmbr = lt_item-zuonr.
- accountreceivable-bline_date = lt_item-zfbdt.
- accountreceivable-sp_gl_ind = lt_item-umskz.
- * ACCOUNTRECEIVABLE-costcenter = lt_item-kostl.
- APPEND accountreceivable.
- *----- 一次性客户信息
- SELECT SINGLE * FROM kna1 WHERE kunnr = lt_item-hkont.
- IF kna1-xcpdk = 'X'.
- customercpd-name = lt_item-sgtxt.
- customercpd-city = lt_item-sgtxt.
- customercpd-country = 'CN'.
- customercpd-bank_ctry = 'CN'.
- ENDIF.
- WHEN 'K'.
- *---- 供应商
- accountpayable-itemno_acc = lt_item-buzei.
- accountpayable-vendor_no = lt_item-hkont.
- * ACCOUNTRECEIVABLE-gl_account = lt_item-hkont.
- accountpayable-item_text = lt_item-sgtxt.
- accountpayable-alloc_nmbr = lt_item-zuonr.
- accountpayable-bline_date = lt_item-zfbdt.
- accountpayable-sp_gl_ind = lt_item-umskz.
- * accountpayable-costcenter = lt_item-kostl.
- APPEND accountpayable.
- WHEN OTHERS.
- *---- 总帐科目
- accountgl-itemno_acc = lt_item-buzei.
- accountgl-gl_account = lt_item-hkont.
- accountgl-item_text = lt_item-sgtxt.
- accountgl-alloc_nmbr = lt_item-zuonr.
- accountgl-costcenter = lt_item-kostl.
- APPEND accountgl.
- ENDCASE.
- ENDLOOP.
- CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
- EXPORTING
- documentheader = documentheader
- customercpd = customercpd
- * CONTRACTHEADER = CONTRACTHEADER
- IMPORTING
- obj_type = obj_type
- obj_key = obj_key
- obj_sys = obj_sys
- TABLES
- accountgl = accountgl
- accountreceivable = accountreceivable
- accountpayable = accountpayable
- accounttax = accounttax
- currencyamount = currencyamount
- * CRITERIA = CRITERIA
- * VALUEFIELD = VALUEFIELD
- * EXTENSION1 = EXTENSION1
- return = lt_return
- * PAYMENTCARD = PAYMENTCARD
- * CONTRACTITEM = CONTRACTITEM
- * EXTENSION2 = EXTENSION2
- * REALESTATE = REALESTATE
- * ACCOUNTWT = ACCOUNTWT
- .
- READ TABLE lt_return WITH KEY type = 'E'.
- IF sy-subrc = .
- LOOP AT lt_return WHERE type = 'E'.
- wa_head-proce = 'E'.
- CONCATENATE wa_head-message lt_return-message INTO wa_head-message SEPARATED BY ' '.
- ENDLOOP.
- CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
- ELSE.
- wa_head-belnr = obj_key+().
- wa_head-gjahr = obj_key+().
- wa_head-proce = 'S'.
- wa_head-message = '凭证创建成功!'.
- CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
- EXPORTING
- wait = 'X'.
- ENDIF.
- 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 凭证 测试参数
- 运行第一个函数
得到 财务凭证:100000035
2.运行第二个函数,提交凭证,
201704 F-02创建财务凭证的更多相关文章
- 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框
视频地址:http://v.qq.com/page/m/8/c/m0150izlt8c.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...
- mysql笔记02 创建高性能的索引
创建高性能的索引 1. 索引(在MySQL中也叫做"键(key)")是存储引擎用于快速找到记录的一种数据结构. 2. 索引可以包含一个或多个列的值.如果索引包含多个列,那么列的顺序 ...
- pl/sql programming 02 创建并运行plsql代码
/* * chap 02 * ------------------------------------------------- */ create or replace function wordc ...
- 【Linux常用工具】02. 创建启动定时任务工具cron
一. cron 1. cron是一个守护程序,它提供定时器的功能,让用户在特定的时间得以执行默认的指令或程序.只要用户会编辑定时器的设置文件,就可以使用定时器的功能. 定时器文件格式: 2. cron ...
- Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli
1 创建模块失败 1.1 问题描述 利用 ng g m 模块名 创建新模块时出错 1.2 错误信息 1.3 问题原因 angular-cli 版本出现问题 1.4 解决办法 卸载掉之前使用的 angu ...
- Python小游戏——外星人入侵(保姆级教程)第一章 01创建Pygame窗口 02创建设置类Setting()
系列文章目录 第一章:武装飞船 01:创建Pygame窗口以及响应用户输入 02:创建设置类Setting() 一.前期准备 1.语言版本 Python3.9.0 2.编译器 Pycharm2022 ...
- Swift游戏实战-跑酷熊猫 02 创建熊猫类
要点: 如何继承SKSpriteNode :子类必须调用SKSpriteNode的一个指定构造器 init(){ super.init(texture:texture,color:UIColor.wh ...
- cxf的使用及安全校验-02创建简单的客户端接口
上一篇文章中,我们已经讲了如果简单的创建一个webservice接口 http://www.cnblogs.com/snowstar123/p/3395568.html 现在我们创建一个简单客户端接口 ...
- 【UiPath 中文教程】02 - 创建自定义 Activity
在 UiPath Studio 中,活动 (Activity) 是流程自动化的基石,是构成自动化程序的最小模块.它们被包含在一个个 NuGet 包中. UiPath Studio 中有 3 类包: 官 ...
随机推荐
- git服务器gitlab之搭建和使用
git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来稍微有些复杂,没有web页面,而gitlab则是类似于github的一个工具,github无法免费建立私有仓库,并且为了代 ...
- java序列化,二进制和数据流
类的序列化需要支持Serializable接口,如果类支持序列化,可以通过ObjectOutPutStream和ObjectInputStream将对象和Stream之间进行方便的转换. 首先来 看一 ...
- 李洪强iOS开发之OC[003] - 用钥匙串存储信息模拟登陆
- layui表格渲染中模板的使用举例
实例一: { field: 'status', align: 'center', title: '活动状态', templet: function (d) { if (d.status == &quo ...
- Windows Server 2008 R2入门之用户管理
一.用户账户概述: ”用户”是计算机的使用者在计算机系统中的身份映射,不同的用户身份拥有不同的权限,每个用户包含一个名称和一个密码: 在Windows中,每个用户帐户有一个唯一的安全标识符(Secur ...
- redis中毒
黑客用我们服务器挖矿了 新的一天的开始 周五早上刚到公司,同事来问我系统为啥打不开了?我第一反应就是肯定 Nginx 服务器挂了呗,立马就去登录服务器看看,但此时发现已经完全远程登录不上这台部署了 N ...
- 集合映射Set(使用xml文件)
如果持久类具有Set对象,可以在映射文件中使用set元素映射Set集合. set元素不需要索引元素. List和Set之间的区别是: Set只存储唯一的值. 我们来看看我们如何在映射文件中实现集合: ...
- day22模块和包
一.模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(. ...
- cocos2dx - 部署到android真机上错误整理
利用Cgywin编译工具来将cocos2dx 在Android运行所需要的C++文件编译 1. ./build_native.sh(最后一把执行出错) please define NDK_ROOT i ...
- 如何在Java的Filter中注入Service???
今天在做用户使用cookie自动登录的时候,发现在LoginFilter中读取到cookie以后要进行查询数据库然后进行用户名和密码的比对,查询数据库肯定要用到Service和Dao,一开始我以为在s ...