获利能力分析COPA的BAPI:BAPI_COPAACTUALS_POSTCOSTDATA 通过增强返回凭证号
用这个BAPI:BAPI_COPAACTUALS_POSTCOSTDATA 记录销售成本的时候,发现不能return生产的co凭证号,利用内存应该是最好的方法。
参照这个方法我做了第四代增强的开发
GV_CALL_COPA_BAPI_INDICATOR = 'Y' .
EXPORT GV_CALL_COPA_BAPI_INDICATOR TO MEMORY ID 'ZCOPA_UPD_BAPI1'.
。
。
。
IMPORT GV_MEMID_COPADOC FROM MEMORY ID 'ZCOPA_UPD_BAPI'.
RKE_SERVE_ACT_DOC_NUMBER

代码如下:
*$*$-Start: ZEHM_POINT_001----------------------------------------------------------------------$*$*
ENHANCEMENT ZFICO_COPA_EHMP_UPD_BY_BAPI. "active version
*EHM BY ZHAIMING 2016-10-20 23:39:29 bapi用
DATA: GV_MEMID_COPADOC TYPE RKE_BELNR,
GV_CALL_COPA_BAPI_INDICATOR TYPE CHAR1. DATA: BEGIN OF LW_LINE_ITEM,
BELNR TYPE RKE_BELNR,
END OF LW_LINE_ITEM.
FIELD-SYMBOLS <FS_COPADOC> TYPE ANY. IMPORT GV_CALL_COPA_BAPI_INDICATOR FROM MEMORY ID 'ZCOPA_UPD_#### . IF GV_CALL_COPA_BAPI_INDICATOR EQ 'Y'.
ASSIGN LINE_ITEM_TAB TO <FS_COPADOC>.
MOVE-CORRESPONDING <FS_COPADOC> TO LW_LINE_ITEM .
GV_MEMID_COPADOC = LW_LINE_ITEM-BELNR .
EXPORT GV_MEMID_COPADOC TO MEMORY ID 'ZCOPA_UPD####'.
ENDIF.
ENDENHANCEMENT.
*$*$-End: ZEHM_POINT_001----------------------------------------------------------------------$*$*
我同事没有看我写的代码也做了这个增强,思路就是在增强里调用使用BAPI程序的子程序,方法可以 但是针对某个程序做开发,不能广泛适用。
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT ZENH_####. "active version
*
PERFORM ######### IN PROGRAM ZFIR####
USING ERKRS
T_PALEDGER
LINE_ITEM_TAB[].
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
附原帖内容:

To get copa document number returned by “BAPI_COPAACTUALS_POSTCOSTDATA” posting
Abstract
While posting COPA document by BAPI “BAPI_COPAACTUALS_POSTCOSTDATA” , this BAPI
does not return successful records with generated copa document number.
But in case system need to capture generated copa doc number there is workaround with
implicit enhancement withing bapi as described in doc,
About the Domain
SAP ABAP/FICO module can use this document. This will help them to get generated COPA
document number which is posted by BAPI_COPAACTUALS_POSTCOSTDATA.
Steps involved
The step that needs to be followed is as below.
It’s divided mainly into 2 section .
A. custom program
B. Enhancement
Create a Custom Program like ZCOPA_UPDATE .
Please follow steps given below for this program.
- Export BAPI_Call indicator from your program to memory id
This indicator will make sure enhancement will be trigger only in case bapi will be called for custom program
gv_call_copa_bapi_indicator = ‘Y’ .
EXPORT gv_call_copa_bapi_indicator TO MEMORY ID ‘ZCOPA_UPD_BAPI1’.
- Call Bapi to post data
*To post Copa document
CALL FUNCTION ‘BAPI_COPAACTUALS_POSTCOSTDATA’
EXPORTING
operatingconcern = ip_operatingconcern
testrun = ip_testrun
TABLES
inputdata = lt_bapi_copa_data
fieldlist = lt_bapi_copa_field
return = lt_return.
- IF lt_return[] IS INITIAL ,means copa doc posted ,then only read copa document number .
In case there is any record in return with message type E or A it means there is an error while generating copa doc , so do not import doc numner from ID ‘ZCOPA_UPD_BAPI’
- CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.
- Importing copa document number from enhancement only if lt_return is initial
or have S,I,W message type.because doc number can be populated in error cases also as this enhancement from where exporting memory
ID ‘ZCOPA_UPD_BAPI’ is before actual posting , so always check return table (is initial or have S,I,W message type only)
IMPORT gv_memid_copadoc FROM MEMORY ID ‘ZCOPA_UPD_BAPI’ .
So gv_memid_copadoc will have copa document number which is generated.
Create a implicit enhancement like ZCOPA_ENH_UPDATE .
Please follow steps given below for this enhancement.
- Create implicit enhancement in FM “RKE_SERVE_ACT_DOC_NUMBER “ in the end of function.
Which will be used during BAPI posting as this FM function to get next available document number for COPA posting , But actual posting will happen after this FM .
So at this stage we will be able to get COPA doc number which will be generated later on and confirm if there is no error in return table of BAPI .
As Actual copa posting perform is refreshing inputdata table , and not returning success message we need to use this way .
- Import BAPI called by Custom Program indicator to make sure enhancement will be triggered only if BAPI call from custom program
IMPORT gv_call_copa_bapi_indicator FROM MEMORY ID ‘ZCOPA_UPD_BAPI1’ .
if gv_call_copa_bapi_indicator EQ ‘Y’ .
then only create following steps
- Define field-symbol with genric type as line item table which contain copa records is genric type and define workarea with field Belnr.
*As line item table type genric , so get doc no using field symbol
ASSIGN LINE_ITEM_TAB to <fs_copadoc>.
*As field symbol type any defined work area with belnr which contain copa doc no
MOVE-CORRESPONDING <fs_copadoc> to lw_line_item .
- Get copa document number in variable
GV_MEMID_COPADOC = lw_line_item–belnr .
- And Export Copa Doc number to memory id.
EXPORT GV_MEMID_COPADOC to memory id ‘ZCOPA_UPD_BAPI’.
Output
Copa document number will be retrieved successfully from BAPI.
Conclusion
This code could be used to get copa document number generated through BAPI psoting .
获利能力分析COPA的BAPI:BAPI_COPAACTUALS_POSTCOSTDATA 通过增强返回凭证号的更多相关文章
- springmvc 通过异常增强返回给客户端统一格式
在springmvc开发中,我们经常遇到这样的问题:逻辑正常执行时返回客户端指定格式的数据,比如json,但是遇NullPointerException空指针异常,NoSuchMethodExcept ...
- SAP BAPI创建批次 为保存内部对象号
使用BAPI:BAPI_BATCH_CREATE 创建批次时,能够保存成功,但是MCH1表和KSSK表中没有内部对象号. 无奈,查找源码. 最后在BAPI中调用的这个函数这里找到了问题.此处kzcla ...
- Wireshark分析实战:某达速递登录帐号密码提取
- 准备工作 首先,备好Wireshark,打开,在外网网卡上抓包. 其次,用浏览器访问http://www.yundaex.com/cn/index.php,并在手机上下载安装其APP,找到登录页面 ...
- 【MM系列】SAP MM模块-BAPI:BAPI_GOODSMVT_CREATE的CODE分析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-BAPI:BAPI ...
- SAP 常用增强记录文档
转自:http://blog.csdn.net/budaha 20170215需要一个PR 修改保存时候的增强,目的是同步PR的处理状态 EBAN-STATU 到一个自建表ZTPRTOPO,记得有个P ...
- Hadoop源代码分析
http://wenku.baidu.com/link?url=R-QoZXhc918qoO0BX6eXI9_uPU75whF62vFFUBIR-7c5XAYUVxDRX5Rs6QZR9hrBnUdM ...
- 大型服装集团BI决策系统的分析主题模块
一般BI商业智能解决方案都包含财务.销售.客户等分析模块,本文分享的是某大型服装集团通过帆软FineBI建设的BI决策系统.该决策系统主要针对财务.资金.采购.生产.库存.物流.销售.渠道.产品.客户 ...
- kafka系列四、kafka架构原理、高可靠性存储分析及配置优化
一.概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cl ...
- 扩增子分析QIIME2. 1简介和安装
原网站:https://blog.csdn.net/woodcorpse/article/details/75103929 声明:本文为QIIME2官方帮助文档的中文版,由中科院遗传发育所刘永鑫博士翻 ...
随机推荐
- 12月上旬poj其他题
poj3170 1,4两遍bfs: poj3171 改一改poj2376即可 poj3172 dfs+剪枝 其实增长速度很快,n<=40,题目吓你的: poj3661 比较经典的dp:设f[i, ...
- Hibernate4.x之Session--常用方法
接上篇文章继续学习Hibernate的Session(http://www.cnblogs.com/dreamfree/p/4111777.html) 持久化对象的状态; 站在持久化的角度,Hiber ...
- oracle server配置:监听程序未启动或数据库服务未注册到该监听程序
第一次安装oracle时,时完全没有任何问题的, 但是当我去配置oracle_home时,误按之下进入了Database Configuration Assistant, 然后配置已有的一个数据库,就 ...
- 如何使用UDP进行跨网段广播
广播域首先我们来了解一下广播域的概念.广播域是网络中能接收任一台主机发出的广播帧的所有主机集合.也就是说,如果广播域内的其中一台主机发出一个广播帧,同一广播域内所有的其它主机都可以收到该广播帧.广播域 ...
- 解析activity之间数据传递方法的详解
转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下 1 基于消息的通信机制 ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.5.4
If $\dim \scrH=3$, then $\dim \otimes^3\scrH =27$, $\dim \wedge^3\scrH =1$ and $\dim \vee^3\scrH =10 ...
- MySQL数据库的同步配置+MySql读写分离
使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...
- 2014 多校联合训练赛6 Fighting the Landlords
本场比赛的三个水题之一,题意是两个玩家每人都持有一手牌,问第一个玩家是否有一种出牌方法使得在第一回和对方无牌可出.直接模拟即可,注意一次出完的情况,一开始没主意,wa了一发. #include< ...
- linux操作系统cp命令
- SQL注入攻击及防范
一.什么是SQL注入1.SQL注入的定义 SQL注入(SQL Injection) 利用了程序中的SQL的漏洞,进行攻击的方法. 2.SQL注入举例 1)利用SQL语法错误获取数据库表的结构 ...