采购申请审批/保存增强

本文档介绍了一个ABAP代码段,该段在ME54N交易中用于检查当前日期加上计划交货时间和采购处理时间是否小于交货日期。如果满足条件,系统将显示警告信息提示用户提前审核订单。代码涉及到数据读取、条件判断及用户交互,确保了业务流程的正确性。
摘要由CSDN通过智能技术生成

需求:ME54N 审核时(当前日期+LT(计划交货时间)+采购处理时间(2天)≦  '交货日期' ), 提示警告信息;

一、使用步骤

1.查找增强

 

代码如下(示例):

*&---------------------------------------------------------------------*
*& 包含               ZXM02U12
*&---------------------------------------------------------------------*
**
*按照当前日期+ 计划交货时间+采购处理时间 < 交货日期,提示选择框供用户选择
*sy-DATUM+EBAN-PLIFZ+T399D-BZTEK < EBAN-LFDAT
DATA:gt_banfn LIKE TABLE OF eban WITH HEADER LINE ."修改后数据
DATA:gs_eban_pers LIKE LINE OF im_t_eban_pers."修改前数据
DATA:lv_bztek TYPE t399d-bztek.
DATA:lv_datum TYPE sy-datum.
DATA: lt_msg TYPE rs_t_msg,
      ls_msg TYPE bal_s_msg.
DATA: lf_one_msg_as_sys_msg TYPE flag.
DATA: zlb TYPE zlb.
DATA ls_exit_command TYPE  bal_s_excm .
DATA:ls_message TYPE bapiret2..
CLEAR: ls_msg,lv_bztek,lv_datum,lv_bztek,gs_eban_pers,gt_banfn[],gt_banfn[].
CHECK sy-tcode = 'ME54N'.

IF sy-ucomm = '&ONT' OR sy-ucomm = 'MECHECKDOC' ." 弹出信息点勾
  RETURN.
ENDIF.
IF sy-ucomm = '&F12' .
  LEAVE PROGRAM.
*  SET PARAMETER ID 'BAN' FIELD '1000535746'."im_t_eban-banfn.
*  CALL TRANSACTION 'ME54N' AND SKIP FIRST SCREEN.
*  ls_message-type = 'I'.
*  ls_message-number = '001'.
*  ls_message-id = 'ZPUB'."消息类
*  ls_message-row    = '400'.
*  ls_message-message_v1 = ';提前审核订单,请确认!'.
*  APPEND ls_message TO ex_messages.
*  RETURN.
ENDIF.
gt_banfn[] =  im_t_eban[]."修改后数据
SORT lt_msg BY msgv1.
LOOP AT gt_banfn.
  READ TABLE im_t_eban_pers INTO gs_eban_pers WITH KEY  banfn = gt_banfn-banfn  bnfpo = gt_banfn-bnfpo."修改前数据
  IF sy-subrc = 0  AND ( ( gs_eban_pers-frgzu = 'X' AND gt_banfn-frgzu = 'XX' ) OR   ( gs_eban_pers-frgzu = '' AND gt_banfn-frgzu = 'X' ) OR   ( gs_eban_pers-frgzu = '' AND gt_banfn-frgzu = 'XX' ) ).
    SELECT SINGLE bztek INTO  lv_bztek FROM t399d WHERE werks = gt_banfn-werks.
    IF sy-subrc <> 0.
      lv_bztek = 2.
    ENDIF.
    lv_datum =  sy-datum + gt_banfn-plifz + lv_bztek.
    IF lv_datum < gt_banfn-lfdat.
      ls_msg-msgty = 'W'.
      ls_msg-msgid = '00'.
      ls_msg-msgno = '001'.
      ls_msg-msgv1 = ';提前审核订单,请确认!'.
*      ls_msg-msgv2 = ';提前审核订单,请确认!'.
      APPEND ls_msg TO lt_msg.

    ENDIF.
  ENDIF.
  CLEAR: ls_msg,lv_bztek,lv_datum,lv_bztek,gs_eban_pers.
ENDLOOP.

IF lt_msg[] IS NOT INITIAL.
  DELETE ADJACENT DUPLICATES FROM lt_msg COMPARING msgv1.

  cl_epic_ui_services=>show_messages_with_alog("弹出提示信息

         it_messages       = lt_msg

         iv_one_msg_direct = lf_one_msg_as_sys_msg ).
ENDIF.
IF sy-ucomm = '&F12' ."点击取消

  CALL FUNCTION 'DEQUEUE_EMEBANE' "释放对象锁(SM12)查看
    EXPORTING
      banfn = gt_banfn-banfn.
  .
  SET PARAMETER ID 'BAN' FIELD gt_banfn-banfn.  "重新访问
  CALL TRANSACTION 'ME54N' AND SKIP FIRST SCREEN.
*  ls_message-type = 'E'.
*  ls_message-number = '001'.
*  ls_message-id = 'ZPUB'."消息类
*  ls_message-row    = '400'.
*  ls_message-message_v1 = '提前审核订单,请确认!'.
*  APPEND ls_message TO ex_messages.

*ELSEIF  sy-ucomm = '&ONT'." 弹出信息点勾
*  CLEAR:ex_messages[],ls_message.
*  RETURN.
ENDIF.


总结

  1.提示框函数

DATA: lt_msg TYPE rs_t_msg,
      ls_msg TYPE bal_s_msg. 
   ls_msg-msgty = 'W'.
      ls_msg-msgid = '00'.
      ls_msg-msgno = '001'.
      ls_msg-msgv1 = ';提前审核订单,请确认!'.
*      ls_msg-msgv2 = ';提前审核订单,请确认!'.
      APPEND ls_msg TO lt_msg.

IF lt_msg[] IS NOT INITIAL.
  DELETE ADJACENT DUPLICATES FROM lt_msg COMPARING msgv1.

  cl_epic_ui_services=>show_messages_with_alog("弹出提示信息

         it_messages       = lt_msg

         iv_one_msg_direct = lf_one_msg_as_sys_msg ).
ENDIF.
IF sy-ucomm = '&F12' ."点击取消
 RETURN.
ENDIF.

2.释放对象锁、事务代码重新访问

 CALL FUNCTION 'DEQUEUE_EMEBANE' "释放对象锁(SM12)查看
    EXPORTING
      banfn = gt_banfn-banfn.
ENDIF.
  SET PARAMETER ID 'BAN' FIELD gt_banfn-banfn.  "重新访问
  CALL TRANSACTION 'ME54N' AND SKIP FIRST SCREEN.

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值