业务需要,开发就搞。。。。

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采购申请审批记录增强的更多相关文章

  1. SAP采购订单审批记录增强

    采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...

  2. SAP MM 无料号采购申请单中'评估价格'之填写

    SAP MM 无料号采购申请单中'评估价格'之填写 1),SAP系统中,采购申请里的'评估价格'来源有二, a)如果是有物料号的采购,则该价格来自于物料主数据里里的成本价(移动平均价或者标准价),自动 ...

  3. SAP MM已经转成PO的采购申请Item依旧可以被删除?

    SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...

  4. SAP MM 根据采购订单反查采购申请?

    SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...

  5. 【MM系列】SAP 采购订单收货后不能修改价格的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...

  6. 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...

  7. 详解EBS接口开发之采购申请导入

    更多内容可以参考我的博客  详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...

  8. ERP采购申请管理(三十九)

    获取当前表单在流程中的状态: /// <summary> /// 获取当前表单在流程表中的状态 /// </summary> /// <param name=" ...

  9. ERP产品采购申请管理(三十八)

    BLL层代码: public class BioPurchaseBLL { /// <summary> /// 购进申请添加 /// </summary> /// <pa ...

随机推荐

  1. [转]Linux下的暴力密码破解工具Hydra详解

    摘自:http://linzhibin824.blog.163.com/blog/static/735577102013144223127/ 这款暴力密码破解工具相当强大,支持几乎所有协议的在线密码破 ...

  2. Mybatis+struts2+spring整合

    把student项目改造成ssm  struts2 +mybatis+spring 1,先添加spring支持:类库三个,applicationContext.xml写在webinf下四个命名空间,监 ...

  3. 键盘unicode值对照表

    A:65 B:66 C:67 D:68 E:69 F:70 G:71 H:72 I:73 J:74 K:75 L:76 M:77 N:78 O:79 P:80 Q:81 R:82 S:83 T:84 ...

  4. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  5. 在Yii用createUrl中明明白白生成网址

    在Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接.下面对Yii中的URL生成做了一个总结.提示:以下controllerX代表控制器X,actionX代表方法X.在Controller ...

  6. iOS - CoreMotion

    前言 NS_CLASS_AVAILABLE(NA,4_0) @interface CMMotionManager : NSObject @available(iOS 4.0, *) public cl ...

  7. iOS - UIActionSheet

    前言 NS_CLASS_DEPRECATED_IOS(2_0, 8_3, "UIActionSheet is deprecated. Use UIAlertController with a ...

  8. 学习日记day7:代码结构规范

    1:绝对定位不是随便用的. 2:一定要用相对定位控制文档流,在相对定位里面使用绝对定位控制具体的位置. 3:代码结构尽量简化. 不要加不必要的span: 不要加不必要的类: 4:控制字体样式的类尽量写 ...

  9. Oracle 中union的用法

    UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果. 例如: SELECT Date FROM Store_Information UNION SELECT Date ...

  10. JavaWeb学习总结(四)—ServletConfig和ServletContext

    一.ServletConfig 1. ServletConfig介绍: ServletConfig是Servlet中的init()方法的参数类型,服务器会在调用init()方法时传递ServletCo ...