SAP采购申请审批记录增强
业务需要,开发就搞。。。。
EBAN中增强结构:CI_EBANDB
ANAME 类型 UNAME CHAR 用户名
ADATE 类型 AEDAT DATS 更改日期
ATIME 类型 UZEIT TIMS 时间
BNAME 类型 UNAME CHAR 用户名
BDATE 类型 AEDAT DATS 更改日期
BTIME 类型 UZEIT TIMS 时间
二级审批
ME54N的增强:
LMEREQF06
在函数:ME_UPDATE_REQUISITION 前加上
ENHANCEMENT ZME54N_PR. "active version
DATA:LY_EBAN TYPE UEBAN.
DATA:LU_EBAN TYPE UEBAN.
DATA:LV_TABIX TYPE I.
DATA:LT_EKPO TYPE TABLE OF EKPO.
CLEAR:LY_EBAN,LU_EBAN,LV_TABIX,LT_EKPO[].
LOOP AT LT_YEBAN INTO LY_EBAN.
READ TABLE LT_UEBAN INTO LU_EBAN WITH KEY BANFN = LY_EBAN-BANFN BNFPO = LY_EBAN-BNFPO.
IF SY-SUBRC = .
LV_TABIX = SY-TABIX.
IF LY_EBAN-FRGKZ = 'X' AND LU_EBAN-FRGKZ = 'A'."一审
LU_EBAN-ANAME = SY-UNAME.
LU_EBAN-ADATE = SY-DATUM.
LU_EBAN-ATIME = SY-UZEIT.
MODIFY LT_UEBAN FROM LU_EBAN INDEX LV_TABIX.
ENDIF.
IF LY_EBAN-FRGKZ = 'A' AND LU_EBAN-FRGKZ = 'B'."二审
LU_EBAN-BNAME = SY-UNAME.
LU_EBAN-BDATE = SY-DATUM.
LU_EBAN-BTIME = SY-UZEIT.
MODIFY LT_UEBAN FROM LU_EBAN INDEX LV_TABIX.
ENDIF.
* IF LY_EBAN-FRGKZ = 'B' AND LU_EBAN-FRGKZ = 'A'."取消二审
* SELECT * INTO TABLE LT_EKPO FROM EKPO WHERE BANFN = LU_EBAN-BANFN AND BNFPO = LU_EBAN-BNFPO.
* IF SY-SUBRC = 0.
* MESSAGE '已经产生采购订单,不能取消!' TYPE 'E'.
* EXIT.
* ENDIF.
* ENDIF.
ENDIF.
ENDLOOP.
ENDENHANCEMENT.
ME55或者自开发的都是在函数 BAPI_REQUISITION_RELEASE中
开头或者结尾
ENHANCEMENT ZME55_PR. "active version
*DATA:LT_EKPO TYPE TABLE OF EKPO,
* LS_EKPO TYPE EKPO.
*
*SELECT EBELN EBELP INTO CORRESPONDING FIELDS OF TABLE LT_EKPO
* FROM EKPO WHERE BANFN = NUMBER AND BNFPO = ITEM AND LOEKZ <> 'X'.
* IF SY-SUBRC = 0.
* MESSAGE E689(06).
* ENDIF. IF REL_CODE = 'Z1'.
UPDATE EBAN SET ANAME = SY-UNAME
ADATE = SY-DATUM
ATIME = SY-UZEIT
WHERE BANFN = NUMBER
AND BNFPO = ITEM.
COMMIT WORK.
ELSEIF REL_CODE = 'Z2'.
UPDATE EBAN SET BNAME = SY-UNAME
BDATE = SY-DATUM
BTIME = SY-UZEIT
WHERE BANFN = NUMBER
AND BNFPO = ITEM..
COMMIT WORK.
ENDIF. ENDENHANCEMENT.
如果已有审批记录,可通过下面代码批量更新
*****************************************************************
* System : 正业科技 ERP项目
* Module : BC
* Program ID : ZBCR001
* Program : 事业部核算利润表(新)
* Author : 李渊
* Date : 20160510
* Description :
*****************************************************************
* Modified Recorder :
* Date C#NO Author Content
* ----------- ------- ------------------ ---------------
* 修改日期 C票或变更文档ID 修改者 修改内容
REPORT ZBCR001. TYPES : BEGIN OF GS_CDHDR ,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS,
OBJECTID TYPE CDPOS-OBJECTID,
CHANGENR TYPE CDPOS-CHANGENR,
TABNAME TYPE CDPOS-TABNAME,
TABKEY TYPE CDPOS-TABKEY,
FNAME TYPE CDPOS-FNAME,
CHNGIND TYPE CDPOS-CHNGIND,
VALUE_NEW TYPE CDPOS-VALUE_NEW,
VALUE_OLD TYPE CDPOS-VALUE_OLD,
USERNAME TYPE CDHDR-USERNAME,
UDATE TYPE CDHDR-UDATE,
UTIME TYPE CDHDR-UTIME,
END OF GS_CDHDR . TYPES:BEGIN OF GS_EBAN,
BANFN TYPE CDOBJECTV, "EBAN-BANFN,
BNFPO TYPE EBAN-BNFPO,
FRGKZ TYPE EBAN-FRGKZ,
BADAT TYPE EBAN-BADAT,
END OF GS_EBAN. DATA:GT_CDHDR TYPE TABLE OF GS_CDHDR.
DATA:GW_CDHDR TYPE GS_CDHDR.
DATA:GT_EBAN TYPE TABLE OF GS_EBAN,
GW_EBAN TYPE GS_EBAN. SELECT BANFN AS BANFN "TYPE EBAN-BANFN,
BNFPO "TYPE EBAN-BNFPO,
FRGKZ "TYPE EBAN-FRGKZ,
BADAT "TYPE EBAN-BADAT,
INTO CORRESPONDING FIELDS OF TABLE GT_EBAN
FROM EBAN WHERE FRGKZ = 'B'
AND BADAT >= ''
AND BNAME = ''. CHECK GT_EBAN[] IS NOT INITIAL. SELECT
CDPOS~OBJECTCLAS
CDPOS~OBJECTID
CDPOS~CHANGENR
CDPOS~TABNAME
CDPOS~TABKEY
CDPOS~FNAME
CDPOS~CHNGIND
CDPOS~VALUE_NEW
CDPOS~VALUE_OLD
CDHDR~USERNAME
CDHDR~UDATE
CDHDR~UTIME
INTO TABLE GT_CDHDR
FROM CDPOS
INNER JOIN CDHDR
ON CDHDR~OBJECTCLAS = CDPOS~OBJECTCLAS
AND CDHDR~OBJECTID = CDPOS~OBJECTID
AND CDHDR~CHANGENR = CDPOS~CHANGENR
FOR ALL ENTRIES IN GT_EBAN
WHERE CDPOS~OBJECTID = GT_EBAN-BANFN
AND CDPOS~OBJECTCLAS = 'BANF'
AND CDPOS~TABNAME = 'EBAN'
AND CDPOS~FNAME = 'FRGKZ'
AND CDPOS~CHNGIND = 'U'
AND CDPOS~VALUE_NEW = 'B'
AND CDPOS~VALUE_OLD = 'A' .
SORT GT_CDHDR BY UDATE DESCENDING UTIME DESCENDING . LOOP AT GT_EBAN INTO GW_EBAN.
LOOP AT GT_CDHDR INTO GW_CDHDR WHERE OBJECTID = GW_EBAN-BANFN.
IF GW_CDHDR-TABKEY+() = GW_EBAN-BNFPO.
UPDATE EBAN SET BNAME = GW_CDHDR-USERNAME
BDATE = GW_CDHDR-UDATE
BTIME = GW_CDHDR-UTIME.
ENDIF.
ENDLOOP.
ENDLOOP.
酌情修改!!!!
SAP采购申请审批记录增强的更多相关文章
- SAP采购订单审批记录增强
采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...
- SAP MM 无料号采购申请单中'评估价格'之填写
SAP MM 无料号采购申请单中'评估价格'之填写 1),SAP系统中,采购申请里的'评估价格'来源有二, a)如果是有物料号的采购,则该价格来自于物料主数据里里的成本价(移动平均价或者标准价),自动 ...
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...
- SAP MM 根据采购订单反查采购申请?
SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...
- 【MM系列】SAP 采购订单收货后不能修改价格的增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- 详解EBS接口开发之采购申请导入
更多内容可以参考我的博客 详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...
- ERP采购申请管理(三十九)
获取当前表单在流程中的状态: /// <summary> /// 获取当前表单在流程表中的状态 /// </summary> /// <param name=" ...
- ERP产品采购申请管理(三十八)
BLL层代码: public class BioPurchaseBLL { /// <summary> /// 购进申请添加 /// </summary> /// <pa ...
随机推荐
- [HDOJ5791]Two(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791 题意:给两个数列,求有多少个公共子序列. dp(i,j)表示a1~ai和b1~bj的公共子序列个 ...
- STORM_0008_Structure-of-the-codebase_Storm的代码库的结构
http://storm.apache.org/releases/1.0.1/Structure-of-the-codebase.html Structure of the codebase 源码分成 ...
- 创建XML
//创建XML XElement xelement = new XElement("request", new XElement("head", new XEl ...
- MyEclipse JCO tomcat 提示查找不到sapjco3.dll
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path 1.system32添加sapjco3.dll 2.tomcat bin ...
- spring常用的工具类
spring给我们提供了很多的工具类, 应该在我们的日常工作中很好的利用起来. 它可以大大的减轻我们的平时编写代码的长度. 因我们只想用spring的工具类, 而不想把一个大大的spring工程给引入 ...
- web发展总结
- Mysql 允许null 与 default值
分为下面4种情况: 1.允许null, 指定default值. 2.允许null, 不指定default,这个时候可认为default值就是null 3.不允许null,指定default值,不能指定 ...
- XMLHttpRequest对象进行Ajax操作
XMLHttpRequest 对象的三个常用的属性: 1. onreadystatechange 属性 onreadystatechange 属性存有处理服务器响应的函数. 请求状态改变的事件触发器 ...
- 疯狂java讲义之流程控制与数组
while package ch4; /** * Created by Jiqing on 2016/11/6. */ public class While { public static void ...
- Android手机tcpdump抓包
在开发过程中遇到问题时,无法非常方便的获取到数据包,导致分析解决问题比较麻烦.这里介绍如何在Android手机上实现tcpdump抓包. 1.root机器 在用tcpdump抓包过程中,需要使用 ...