BAPI创建会计凭证和冲销凭证

目录

  • BAPI创建会计凭证和冲销凭证
    • 组件 利润中心冲销不可能
    • 原因
      • 由于一个变量为空导致不可以冲销
    • 代码附上
      • 创建会计凭证代码
      • 冲销会计凭证代码

BAPI创建会计凭证和冲销凭证

在使用冲销会计凭证的BAPI,即BAPI_ACC_DOCUMENT_REV_POST时,遇到下面的问题:
在这里插入图片描述

组件 利润中心冲销不可能

在这里插入图片描述

原因

由于一个变量为空导致不可以冲销

最后追查到一个底表,有一个select语句,查询TKA00PCA表,有个字段是空,在程序里面有对这个字段进行判断,如果是空,则无法冲销,所以不能使用BAPI对其进行冲销了!
在这里插入图片描述

在这里插入图片描述
之后,换了一个工厂的数据,发现可以成功冲销,说明是配置的问题,不是代码的问题,而且由于FICO模块不是很懂,就没有去配置,是直接换了一个工厂进行测试,测试通过。

代码附上

创建会计凭证代码

*&---------------------------------------------------------------------*
*& Report Z_BAPI_ACC_DOCUMENT_LHY
*&---------------------------------------------------------------------*
*& Type:Report
*& Creator:LiuHongyu
*& Create On:2024.2.2
*& Description:创建会计凭证的BAPIBAPI_ACC_DOCUMENT_POST
*&---------------------------------------------------------------------*
REPORT z_bapi_acc_document_lhy.DATA documentheader    TYPE bapiache09.
*DATA CUSTOMERCPD       TYPE BAPIACPA09.
*DATA CONTRACTHEADER    TYPE BAPIACCAHD.
*DATA OBJ_TYPE          TYPE BAPIACHE09-OBJ_TYPE.
*DATA OBJ_KEY           TYPE BAPIACHE09-OBJ_KEY.
*DATA OBJ_SYS           TYPE BAPIACHE09-OBJ_SYS.DATA accountgl         TYPE STANDARD TABLE OF bapiacgl09 WITH HEADER LINE.
*DATA ACCOUNTRECEIVABLE TYPE STANDARD TABLE OF BAPIACAR09.
*DATA ACCOUNTPAYABLE    TYPE STANDARD TABLE OF BAPIACAP09.
*DATA ACCOUNTTAX        TYPE STANDARD TABLE OF BAPIACTX09.DATA currencyamount    TYPE STANDARD TABLE OF bapiaccr09 WITH HEADER LINE.
*DATA CRITERIA          TYPE STANDARD TABLE OF BAPIACKEC9.
*DATA VALUEFIELD        TYPE STANDARD TABLE OF BAPIACKEV9.
*DATA EXTENSION1        TYPE STANDARD TABLE OF BAPIACEXTC.DATA return            TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
*DATA PAYMENTCARD       TYPE STANDARD TABLE OF BAPIACPC09.
*DATA CONTRACTITEM      TYPE STANDARD TABLE OF BAPIACCAIT.DATA extension2        TYPE STANDARD TABLE OF bapiparex WITH HEADER LINE.
*DATA REALESTATE        TYPE STANDARD TABLE OF BAPIACRE09.
*DATA ACCOUNTWT         TYPE STANDARD TABLE OF BAPIACWT09.DATA lv_datum TYPE d.DATA ls_zsacc_document TYPE zsacc_document.lv_datum = sy-datum.documentheader-comp_code = 1000.  "公司代码documentheader-doc_date = lv_datum. "凭证中的凭证日期documentheader-pstng_date = lv_datum. "凭证的过账日期documentheader-doc_type = 'SA'. "凭证日期documentheader-username = sy-uname. "用户documentheader-header_txt = '产线报销费用凭证测试-lhy'.IF accountgl-costcenter IS INITIAL."accountgl-costcenter = lt_data-kostl."accountgl-costcenter = |{ '17101301' ALPHA = IN }|. "成本中心,这个要有ENDIF.accountgl-itemno_acc = '1'. "会计凭证行项目编号accountgl-material = |{ '5913'  ALPHA = IN }|."物料号accountgl-plant = '1000'. "工厂"accountgl-orderid = |{ '1001754'  ALPHA = IN }|. "订单号accountgl-gl_account = |{ '1001010000'  ALPHA = IN }|. "借方总账科目"accountgl-gl_account = |{ '11001010'  ALPHA = IN }|. "总账科目11001010,用这个试试accountgl-value_date = sy-datum. "起息日,一定要有APPEND accountgl.CLEAR: accountgl.accountgl-itemno_acc = '2'. "会计凭证行项目编号accountgl-material = |{ '5913'  ALPHA = IN }|."物料号accountgl-plant = '1000'. "工厂"accountgl-orderid = |{ '1001754'  ALPHA = IN }|. "订单号accountgl-gl_account = |{ '1001010001'  ALPHA = IN }|. "贷方科目"accountgl-costcenter = |{ '17101301' ALPHA = IN }|. "成本中心,这个要有"accountgl-gl_account = '10010000' . "总账科目accountgl-value_date = sy-datum."起息日,一定要有APPEND accountgl.CLEAR: accountgl.currencyamount-itemno_acc = '1'.currencyamount-curr_type = '00'."评估视图currencyamount-currency = 'CNY'. "申请币别currencyamount-amt_doccur = 9999.  "金额APPEND currencyamount.CLEAR:currencyamount.currencyamount-itemno_acc = '2'.currencyamount-curr_type = '00'."评估视图currencyamount-currency = 'CNY'. "申请币别currencyamount-amt_doccur = -9999.  "金额APPEND currencyamount.CLEAR:currencyamount.
"--------------借贷方过账码增强相关的信息------------------------------CLEAR ls_zsacc_document.ls_zsacc_document-posnr = 1. "凭证行项目ls_zsacc_document-bschl = '40'."记账码CLEAR extension2.APPEND extension2.CLEAR ls_zsacc_document.ls_zsacc_document-posnr = 2. "贷方行项目ls_zsacc_document-bschl = '50'. "记账码CLEAR extension2.extension2-structure = 'ZSACC_DOCUMENT'.extension2-valuepart1 = ls_zsacc_document.APPEND extension2.CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'EXPORTINGdocumentheader          = documentheader
*     CUSTOMERCPD             = CUSTOMERCPD
*     CONTRACTHEADER          = CONTRACTHEADER
*   IMPORTING
*     OBJ_TYPE                = OBJ_TYPE
*     OBJ_KEY                 = OBJ_KEY
*     OBJ_SYS                 = OBJ_SYSTABLESaccountgl               = accountgl
*     ACCOUNTRECEIVABLE       = ACCOUNTRECEIVABLE
*     ACCOUNTPAYABLE          = ACCOUNTPAYABLE
*     ACCOUNTTAX              = ACCOUNTTAXcurrencyamount          = currencyamount
*     CRITERIA                = CRITERIA
*     VALUEFIELD              = VALUEFIELD
*     EXTENSION1              = EXTENSION1return                  = return
*     PAYMENTCARD             = PAYMENTCARD
*     CONTRACTITEM            = CONTRACTITEMextension2              = extension2
*     REALESTATE              = REALESTATE
*     ACCOUNTWT               = ACCOUNTWT.IF line_exists( return[ type = 'E'] ). "如果有E的错误行cl_demo_output=>write( '错误消息:' ).cl_demo_output=>write( return ).cl_demo_output=>display(  ).ELSE."DATA wait   TYPE bapita-wait.DATA return_transaction TYPE bapiret2.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait          =  'X'IMPORTINGreturn        = return_transaction.cl_demo_output=>display( return ).ENDIF.

冲销会计凭证代码

*&---------------------------------------------------------------------*
*& Report Z_BAPI_ACC_CANCEL_LHY
*&---------------------------------------------------------------------*
*& Type:Report
*& Creator:LiuHongyu
*& Create On:2024.2.2
*& Description:冲销会计凭证的BAPIBAPI_ACC_DOCUMENT_REV_POST
*&---------------------------------------------------------------------*
REPORT z_bapi_acc_cancel_lhy.DATA reversal TYPE bapiacrev.DATA bus_act  TYPE bapiache09-bus_act.
*    DATA OBJ_TYPE TYPE BAPIACREV-OBJ_TYPE.DATA obj_key  TYPE bapiacrev-obj_key.
*    DATA OBJ_SYS  TYPE BAPIACREV-OBJ_SYS.DATA lt_return   TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.DATA i_return   TYPE bapiret2.DATA ls_bkpf TYPE bkpf.DATA l_belnr TYPE bkpf-belnr.DATA : l_message TYPE string."l_gjahr = |{ '100000217' ALPHA = IN }|.l_belnr = |{ '100000022'  ALPHA = IN }|.SELECT SINGLE * FROM bkpf INTO ls_bkpf WHERE bukrs = '1000'AND belnr = l_belnrAND gjahr = '2024'AND xreversal = ''.IF sy-subrc <> 0.MESSAGE '表:BKPF(会计核算凭证标题)没有数据或该凭证已冲销!请核查数据!' TYPE 'E'.ENDIF."bapi参数赋值reversal-obj_type = ls_bkpf-awtyp.    "参考过程:BKPFFreversal-obj_key_r = ls_bkpf-awkey.   "取消: 对象码"reversal-obj_key = ls_bkpf-awkey.     "对象键值"reversal-pstng_date = ls_bkpf-budat.      "凭证中的过账日期"reversal-fis_period = ls_bkpf-monat.  "会计期间reversal-comp_code = ls_bkpf-bukrs.   "公司代码:1710"reversal-reason_rev = '02'.           "原因代码
*  reversal-ac_doc_no = ls_bkpf-belnr. "会计凭证号码
*   取得系统 LOGICAL SYSTEMCALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'IMPORTINGown_logical_system = reversal-obj_sys."调用bapi函数,冲销会计凭证CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'EXPORTINGreversal       = reversalbus_act        = ls_bkpf-glvorIMPORTING
*     OBJ_TYPE       = OBJ_TYPEobj_key        = obj_key
*     OBJ_SYS        = OBJ_SYSTABLESreturn         = lt_return.
*  IF sy-subrc NE 0. "如果sy-subrc 不等于0
*    cl_demo_output=>display( lt_return ).
*  ENDIF.
*  IF sy-subrc EQ 0. "如果sy-subrc 等于0
*    cl_demo_output=>display( lt_return ).
*  ENDIF.READ TABLE lt_return WITH KEY type = 'E'.IF sy-subrc NE 0.
*     提交凭证过账CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait   = 'X'IMPORTINGreturn = i_return.IF i_return IS INITIAL.l_message = |会计凭证冲销成功!会计凭证号:{ obj_key(10) }|.MESSAGE l_message TYPE 'E'.COMMIT WORK AND WAIT."<fs_alv>-icon = '@08@'.ELSE."<fs_alv>-icon = '@0A@'.l_message = '过账失败,请用事务代码ST22查看详细信息'.ENDIF.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'."<fs_alv>-icon = '@0A@'.LOOP AT lt_return WHERE type = 'A' OR type = 'E'.l_message = l_message && lt_return-message.ENDLOOP.MESSAGE l_message TYPE 'E'.ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/251625.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue(二十):ElementUI 扩展实现表格组件的拖拽行

效果 源码 注意&#xff1a; 表格组件必须添加 row-key 属性&#xff0c;用来优化表格的渲染 <template><el-row :gutter"10"><el-col :span"12"><el-card class"card"><el-scrollbar><span>注意: 表格组件…

【数据库】关系型和非关系型数据库的区别?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 正文 关系型数据库的优点 非关系型数据库&#xff08;NOSQL&#xff09;的优点 我的其他博客 正文 关系型数据库的优点 容易理解&#xff0c…

Python 数据可视化:配色方案

1、引言 在这篇文章中&#xff0c;我们将研究Python的一些配色方案&#xff0c;主要是Seaborn库。这将采用 Python Notebook 格式&#xff0c;其中包括绘图的代码。 2、实验数据 首先导入必要的库&#xff1a; import pandas as pd import seaborn as sns import matplotlib…

基于springboot篮球竞赛预约平台源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;篮球竞赛预约平台也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

虚幻UE 特效-Niagara特效实战-魔法阵

回顾Niagara特效基础知识&#xff1a;虚幻UE 特效-Niagara特效初识 其他四篇实战&#xff1a;UE 特效-Niagara特效实战-烟雾、喷泉、 虚幻UE 特效-Niagara特效实战-火焰、烛火、 虚幻UE 特效-Niagara特效实战-雨天、 虚幻UE 特效-Niagara特效实战-眩晕。 本篇笔记记录了使用空模…

Matplotlib热力图的创意绘制指南【第54篇—python:Matplotlib热力图】

文章目录 Matplotlib热力图的创意绘制指南1. 简介2. 基本热力图3. 自定义颜色映射4. 添加注释5. 不同形状的热力图6. 分块热力图7. 多子图热力图8. 3D热力图9. 高级颜色映射与颜色栏设置10. 热力图的动态展示11. 热力图的交互性12. 标准化数据范围13. 导出热力图 总结&#xff…

动态颗粒背景,适合VUE、HTML前端显示

动态颗粒背景&#xff0c;适合做背景使用&#xff0c;VUE、HTML前端显示直接看效果 废话不多说直接上代码&#xff1b; 一、html 代码部分 <template><div id"login"><div class"container"><div class"login-form"&g…

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)

OpenCV是一个强大的计算机视觉库&#xff0c;使用C作为主要编程语言&#xff0c;对于图像处理和计算机视觉领域具有重要意义。其提供了丰富的功能和算法&#xff0c;使得开发者能够快速实现各种图像处理和计算机视觉应用。OpenCV C为图像处理和计算机视觉领域的开发者提供了一个…

[Vue3]父子组件相互传值数据同步

简介 vue3中使用setup语法糖&#xff0c;父子组件之间相互传递数据及数据同步问题 文章目录 简介父传子props传递值 使用v-bind绑定props需要计算toRefcomputed emit传递方法 使用v-on绑定 子传父expose v-model总结 父传子 props传递值 使用v-bind绑定 父组件通过props给子…

【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命

【前沿技术杂谈&#xff1a;开源软件】引领技术创新与商业模式的革命 开源软件如何推动技术创新开源软件的开放性和协作精神促进知识共享和技术迭代推动关键技术的发展开源软件与新技术的融合 开源软件的商业模式开源软件的商业模式将开源软件与商业软件相结合 开源软件的安全风…

三维可视化助力船舶制造:大数据处理、实时协作更高效!

随着科技的不断发展&#xff0c;船舶制造行业也在不断寻求创新和提高效率的途径。其中&#xff0c;HOOPS技术作为一种先进的三维可视化和工程协作技术&#xff0c;正逐渐成为船舶制造领域的关键工具。 本文将深入探讨HOOPS技术在船舶制造行业的应用&#xff0c;探讨其带来的优…

张维迎《博弈与社会》威胁与承诺(4)宪政与民主

有限政府 动态博弈理论对我们理解民主与法治具有重要的意义。 自人类进入文明时代以来&#xff0c;政府就是社会博弈重要的参与人。任何社会要有效运行&#xff0c;都需要赋予政府一些自由裁量权。但如果政府的自由裁量权太大&#xff0c;政府官员为所欲为&#xff0c;不仅老百…

Python详细教程

一、Python简历 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性&#xff0c;相比其他语言经常使用英文关键字&#xff0c;其他语言的一些标点符号&#xff0c;它具有比其他语言更有特色语法结构。 Python 是一种解…

flask+pyinstaller实现mock接口,并打包到exe运行使用postman验证

flask代码 from flask import Flask, request, jsonifyapp Flask(__name__)app.route("/login", methods[POST]) def login():username request.json.get("username").strip() # 用户名password request.json.get("password").strip() # 密…

【从0上手Cornerstone3D】如何使用CornerstoneTools中的工具之工具介绍

简单介绍一下在Cornerstone中什么是工具&#xff0c;工具是一个未实例化的类&#xff0c;它至少实现了BaseTool接口。 如果我们想要在我们的代码中使用一个工具&#xff0c;则必须实现以下两个步骤&#xff1a; 使用Cornerstone的顶层addTool函数添加未实例化的工具 将工具添…

小白水平理解面试经典题目LeetCode 21. Merge Two Sorted Lists【Linked List类】

21. 将两个有序列表融合 Linked List 数据结构也在面试中经常出现&#xff0c;作为很好处理客户信息存储的结构很方便&#xff0c;也是重点必会项目之一&#xff0c;看看我们如何教懂白月光&#xff0c;成功邀约看电影吧。 小白渣翻译 你将获得两个排序链表 list1 和 list2 …

【蓝桥杯选拔赛真题64】python数字塔 第十五届青少年组蓝桥杯python 选拔赛比赛真题解析

python数字塔 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要求 (注:input()输入函数的括号中不允许添加任何信息) 提示信息: 数字塔是由 N 行数堆积而成,最顶层只有一个数,次顶层两个数,以此类推。相邻层之间的数用线连接,下一层的每个数与它上一层左上…

幻兽帕鲁服务器怎么搭建?Palworld多人联机教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

网络层 IP协议(1)

前置知识 主机:配有IP地址,但是不进行路由控制的设备 路由器:既配置了IP地址,又能进行路由控制的设备 节点:主机和路由器的总称 IP协议主要完成的任务就是 地址管理和路由选择 地址管理:使用一套地址体系,将网络设备的地址描述出来 路由选择:一个数据报如何从源地址到目的地址 …

Unity_修改天空球

Unity_修改天空球 Unity循序渐进的深入会发现可以改变的其实很多&#xff0c;剖开代码逻辑&#xff0c;可视化的表现对于吸引客户的眼球是很重要的。尤其对于知之甚少的客户&#xff0c;代码一般很难说服客户&#xff0c;然表现确很容易。 非代码色彩通才&#xff0c;持续学习…