BAPI

news/2025/1/9 16:20:41/文章来源:https://www.cnblogs.com/coderfarmer/p/18662358

预制发票:BAPI_INCOMINGINVOICE_PARK

   DATA: ls_header     TYPE bapi_incinv_create_header,lt_itemdata   TYPE TABLE OF bapi_incinv_create_item,ls_itemdata   TYPE bapi_incinv_create_item,lt_taxdata    TYPE TABLE OF bapi_incinv_create_tax,ls_taxdata    TYPE bapi_incinv_create_tax,bapi_return_t TYPE TABLE OF bapiret2,bapi_return_s TYPE bapiret2,lv_belnr      TYPE belnr_d,lv_gjahr      TYPE gjahr,lv_rblgp      TYPE rblgp,lv_meins      LIKE ekpo-meins,lt_save TYPE TABLE OF znymmt00620,ls_save TYPE znymmt00620.CLEAR: ls_header, lt_itemdata, lt_taxdata, bapi_return_t,lv_rblgp,lv_meins,ls_save,lt_save,ls_tmp,lt_tmp.LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_alv>).lv_rblgp = lv_rblgp + 10.
*   如果是第一个行项目,填充表头IF lv_rblgp = '10'.ls_header-invoice_ind = 'X'.ls_header-doc_type    = 'RE'.ls_header-doc_date    = <fs_alv>-bldat.ls_header-ref_doc_no  = <fs_alv>-xblnr."参考凭证号ls_header-pstng_date  = <fs_alv>-budat.ls_header-comp_code   = <fs_alv>-bukrs.ls_header-bline_date  = <fs_alv>-zfbdt.*   读取供应商SELECT SINGLE lifnr INTO ls_header-diff_inv  FROM ekko WHERE ebeln = <fs_alv>-ebeln.
*   抬头文本IF <fs_alv>-ztext IS INITIAL.ls_header-header_txt = 'MIS发票预制'.ELSE.ls_header-header_txt = <fs_alv>-ztext.ENDIF.
*   读取币别SELECT SINGLE waers  INTO ls_header-currency FROM t001 WHERE bukrs = <fs_alv>-bukrs.ENDIF.*   总金额
*    ls_header-gross_amount =  ls_header-gross_amount + <fs_alv>-wrbtr.ls_header-gross_amount =  <fs_alv>-wrbtr.
*   行项目ls_itemdata-invoice_doc_item = lv_rblgp.  "发票行项目号ls_itemdata-po_number        = <fs_alv>-ebeln.ls_itemdata-po_item          = <fs_alv>-ebelp.*    ls_itemdata-item_amount      = <fs_alv>-wrbtr1.  "changed by gxsk_guoyp 20250106ls_itemdata-quantity         = <fs_alv>-menge.
*   单位SELECT SINGLE meins INTO ls_itemdata-po_unit FROM ekpo WHERE ebeln = <fs_alv>-ebeln AND ebelp = <fs_alv>-ebelp.ls_itemdata-po_unit_iso   = ls_itemdata-po_unit.ls_itemdata-tax_code         = <fs_alv>-mwskz1.APPEND  ls_itemdata TO lt_itemdata.CLEAR: ls_itemdata.
*&-----  税额ls_taxdata-tax_code     = <fs_alv>-mwskz1.ls_taxdata-tax_amount   = <fs_alv>-wmwst.APPEND ls_taxdata TO lt_taxdata.**&   处理税码
*  DATA: ws_taxdata LIKE ls_taxdata.
*  SORT lt_taxdata BY tax_code.
*  CLEAR ws_taxdata.
*  LOOP AT lt_taxdata INTO ls_taxdata.
*    ws_taxdata-tax_code  = ls_taxdata-tax_code.
*    ws_taxdata-tax_amount = ws_taxdata-tax_amount + ls_taxdata-tax_amount.
*    AT END OF tax_code.
*      MODIFY lt_taxdata FROM ws_taxdata TRANSPORTING tax_amount
*                        WHERE tax_code = ws_taxdata-tax_code.
*      CLEAR ws_taxdata.
*    ENDAT.
*  ENDLOOP.DELETE ADJACENT DUPLICATES FROM lt_taxdata COMPARING tax_code.MOVE-CORRESPONDING <fs_alv> TO ls_save.ls_save-i_date = sy-datum.ls_save-i_uzeit = sy-uzeit.ls_save-uname = sy-uname.APPEND ls_save TO lt_save.AT END OF HBFLG.
*  调用BAPI 生成预制凭证CLEAR:lv_belnr,lv_gjahr.CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'EXPORTINGheaderdata       = ls_header
*     ADDRESSDATA      =IMPORTINGinvoicedocnumber = lv_belnrfiscalyear       = lv_gjahrTABLESitemdata         = lt_itemdata
*     ACCOUNTINGDATA   =
*     GLACCOUNTDATA    =
*     MATERIALDATA     =taxdata          = lt_taxdata
*     WITHTAXDATA      =
*     VENDORITEMSPLITDATA       =return           = bapi_return_t
*     EXTENSIONIN      =
*     TM_ITEMDATA      =
    .READ TABLE bapi_return_t INTO bapi_return_s WITH KEY type = 'E'.IF sy-subrc = 0.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.<fs_alv>-status = icon_red_light.LOOP AT bapi_return_t INTO bapi_return_s WHERE type = 'E'.CONCATENATE <fs_alv>-msg '/' bapi_return_s-message INTO <fs_alv>-msg.ENDLOOP.ELSE.<fs_alv>-status = icon_green_light.<fs_alv>-msg = '发票创建成功'.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGWAIT          = 'X'.WAIT UP TO 1 SECONDS.<fs_alv>-belnr = lv_belnr.<fs_alv>-gjahr = lv_gjahr.ENDIF.MOVE-CORRESPONDING <fs_alv> TO ls_tmp.APPEND ls_tmp TO lt_tmp.CLEAR:ls_tmp,ls_header,ls_itemdata,lt_itemdata,ls_taxdata,lt_taxdata,bapi_return_t,lv_belnr,lv_rblgp.ENDAT.ENDLOOP.
View Code

发票过账:BAPI_INCOMINGINVOICE_POST

 DATA:message   TYPE c LENGTH 200.DATA:lv_awkey  TYPE bkpf-awkey.DATA:lt_return LIKE TABLE OF bapiret2 WITH HEADER LINE.DATA:lt_save TYPE TABLE OF znymmt00620,ls_save TYPE znymmt00620.CLEAR:lt_tmp,ls_tmp.SORT gt_alv BY belnr.LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_alv>) WHERE status = icon_green_light.AT END OF belnr.CALL FUNCTION 'BAPI_INCOMINGINVOICE_POST'EXPORTINGinvoicedocnumber = <fs_alv>-belnrfiscalyear       = <fs_alv>-gjahrTABLESreturn           = lt_return.CLEAR:message.LOOP AT lt_return WHERE type = 'A' OR type = 'E' .CONCATENATE message lt_return-message INTO message SEPARATED BY  '/'.ENDLOOP.IF  sy-subrc <> '0'.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.CLEAR lv_awkey.CONCATENATE <fs_alv>-belnr <fs_alv>-gjahr INTO lv_awkey.SELECT SINGLE belnrINTO @DATA(lv_belnr)FROM bkpfWHERE awkey = @lv_awkey.CONCATENATE '凭证:' lv_belnr '创建成功' INTO message.<fs_alv>-status = icon_green_light.<fs_alv>-msg = message.<fs_alv>-belnr1 = lv_belnr.ELSE.<fs_alv>-status = icon_red_light.<fs_alv>-msg = message.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ENDIF.
View Code

 

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

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

相关文章

车云远程诊断系统 - DRS

INTEWORK-DRS(Diagnostic Remote-Service System)是由经纬恒润自主研发的一款基于车云远程的诊断解决方案产品,具备整车级或单ECU级的如参数读写、故障读清、例程标定、动作测试和程序升级等传统常见诊断功能,并且支持基于云任务的车端主动诊断如车辆故障主动预警、关键数据…

Kubernetes集群运维生产常见问题解析与解决方案

前言:在Kubernetes集群的日常运维工作中,我们难免会遇到各种各样的问题。这些问题可能涉及到集群的部署、配置、监控、性能优化等多个方面。为了解决这些问题,我们需要不断地学习和积累经验。在这里,我打算收集并整理一些网友曾经提出的问题,并提供相应的解析和解决方案,…

Vue-i18n 多语言中包含特殊字符出现异常Message compilation error: Invalid linked format

异常: 解决方法 方式一: 翻译文件中,将含有特殊字符的字符串使用“”双引号包裹,特殊字符外加花括号{},且用单引号包裹,如“{‘@’}”Message:"也可以通过使用最新版xxxx{@}xxxx扫描右侧二维码获取"方式二: 使用占位符Message:"也可以通过使用最新版xxxx…

使用docker部署的禅道怎么升级

参考 https://www.zentao.net/book/zentaopms/586.html备份数据 本次升级使用的是pvc挂载的禅道数据,使用docker启动的也是一样的 数据是挂载在nfs动态存储盘,进入到pvc目录备份一份即可 为以防万一MySQL数据也是有mysqldump备份一份 使用新镜像启动 修改启动镜像,把镜像从原…

CDS标准视图:催款冻结描述 I_DunningBlockingReasonText

视图名称:催款冻结描述 I_DunningBlockingReasonText 视图类型:基础视图 视图代码:点击查看代码 @EndUserText.label: Dunning Blocking Reason - Text @Analytics.dataExtraction.enabled: true @VDM.viewType: #BASIC @AbapCatalog.sqlViewName: IFIDUNBLREASONT @AbapCat…

六层PCB板是怎么拼出来的?

转载----工程师看海 2021-12-25 08:01 本篇文章主要分享六层PCB板是怎么拼出来的,目录和结构如下: 1. 前言 2. PCB基础框架 3. PCB材料组成 4. PCB叠层设计 5. PCB阻抗计算 整篇文章阅读预计10分钟。 1.前言 求职面试时,大多数人都会在一个问题上纠结:去大公司还是小公司?这…

产品经理必看——产品开发中如何解决任务划分不清?

在产品开发过程中,尤其是敏捷开发模式下,团队通常需要面对多个迭代和版本的开发任务。每个迭代都涉及需求分析、任务分配、开发、测试和发布等多个环节,这对团队的沟通效率和协作能力提出了极高的要求。然而,传统的沟通方式(如邮件、会议)往往难以应对快速迭代的需求,容…

CDS标准视图:催款范围描述 I_DunningAreaText

视图名称:催款范围描述 I_DunningAreaText 视图类型: 视图代码:点击查看代码 @EndUserText.label: Dunning Area - Text @Analytics.dataExtraction.enabled: true @VDM.viewType: #BASIC @AbapCatalog.sqlViewName: IFIDUNAREATEXT @AbapCatalog.preserveKey:true @AbapCat…

深度剖析淘宝 API:《从接入到实战的全流程技术指南》

淘宝详情接口是淘宝开放平台提供的一种API接口,用于获取商品详细信息。 通过调用该接口,可以获取商品的标题、价格、图片、描述、规格等详细信息,帮助卖家和买家更好地了解商品情况。目录淘宝详情接口概述商品信息获取与展示用户体验优化与转化率提升数据监控、分析与优化调…

CDS标准视图:催款范围 I_DunningArea

视图名称:催款范围 I_DunningArea 视图类型:基础 视图代码:点击查看代码 @AccessControl.authorizationCheck: #CHECK //authority check is wrong, for compatibility reasons DCL remains but is always true @EndUserText.label: Dunning Area @Analytics: { dataCatego…

使用一条命令扫描CORS漏洞

命令 使用前请安装如下程序,kali中请指定httpx位置(例如:/root/Desktop/httpx)。 assetfinder httpx rush assetfinder fitbit.com | httpx -threads 300 -follow-redirects -silent | rush -j200 curl -m5 -s -I -H "Origin: evil.com" {} | [[ $(grep -c "…

如何提升学校行政管理中的沟通效率?3个协作工具推荐

在教育行业中,项目管理通常涉及教学计划的制定、课程安排、学生考核、教师培训等复杂任务。这些任务不仅需要教师和教务人员的紧密协作,还需要行政管理人员的支持与监督。然而,传统的管理方式往往依赖于纸质文件、电子邮件或简单的电子表格,这种方式效率低下且容易出错。通…