SAP采购申请审批记录增强

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

 

EBAN中增强结构:CI_EBANDB

ANAME    1 类型    UNAME    CHAR    12    0    用户名 
ADATE    1 类型    AEDAT    DATS    8    0    更改日期
ATIME    1 类型    UZEIT    TIMS    6    0    时间
BNAME    1 类型    UNAME    CHAR    12    0    用户名 
BDATE    1 类型    AEDAT    DATS    8    0    更改日期
BTIME    1 类型    UZEIT    TIMS    6    0    时间

二级审批

 

 

ME54N的增强:

LMEREQF06

 

在函数:ME_UPDATE_REQUISITION 前加上

ENHANCEMENT 1  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 = 0.
    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 1  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 >= '20160408'
  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+13(5) = GW_EBAN-BNFPO.
      UPDATE EBAN SET BNAME = GW_CDHDR-USERNAME
                      BDATE = GW_CDHDR-UDATE
                      BTIME = GW_CDHDR-UTIME.
    ENDIF.
  ENDLOOP.
ENDLOOP.

酌情修改!!!!

转载于:https://www.cnblogs.com/sapSB/p/5482688.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
尊敬的领导/同事, 您好!根据您的要求,我在这封邮件中将为您详细解释SAP采购申请审批的步骤和流程。 SAP采购申请审批是一个重要的采购流程,用于确保采购行为的合规性和有效性。以下是SAP采购申请审批的一般流程: 1. 提交采购申请:在SAP系统中,员工可以通过相应的模块填写采购申请单,包括物料的数量、价格、供应商等信息。 2. 部门经理审批采购申请提交后,部门经理将收到审批通知。部门经理将审查申请单,确认申请的合理性、必要性和可行性。如果部门经理认可申请,他/她将批准该申请。 3. 跨部门审批:在某些情况下,采购申请可能需要跨部门审批。例如,如果采购申请涉及多个部门的资源或预算,那么每个相关部门的经理都需要审批申请。 4. 采购审批:一旦采购申请获得了所有相关部门的审批申请将发送给采购团队。采购团队将仔细审查申请,并决定是否继续采购流程。 5. 供应商选择和协商:如果采购团队决定继续采购流程,他们将开始与供应商进行协商和选择。这包括与供应商洽谈价格、付款方式和物流安排等。 6. 最终批准和采购订单:在所有谈判和协商完成后,采购团队将进行最后的审批,并在SAP系统中生成采购订单。此时,采购流程达到了最后阶段。 总而言之,SAP采购申请审批是一个复杂而重要的流程,确保组织内的采购行为合规性和效率。每个环节都有相应的管理层和团队负责审查和决定。希望这个简单的解释能够帮助您更好地理解SAP采购申请审批的过程。如果您需要进一步的信息或有任何问题,请随时与我联系。 谢谢! 您的名字

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值