SAP-QM-UD决策取消

本文档描述了一个与SAPR/3系统相关的程序,用于处理单个批次的决策回滚和状态更新。它涉及选择屏幕操作、对象修改、状态检查和数据维护函数的调用,以实现特定业务流程的管理。
摘要由CSDN通过智能技术生成
*$*$----------------------------------------------------------------$*$*
*$ Correction Inst.         0120024545 0000018827                     $*
*$--------------------------------------------------------------------$*
*$ Valid for       :                                                  $*
*$ Software Component   SAP_APPL   SAP Application                    $*
*$  Release 30A          w/o Support Packages                         $*
*$  Release 30B          w/o Support Packages                         $*
*$  Release 30C          To SAPKH30C14                                $*
*$  Release 30D          All Support Package Levels                   $*
*$  Release 30F          Fm SAPKH30F98                                $*
*$  Release 300          w/o Support Packages                         $*
*$--------------------------------------------------------------------$*
*$ Changes/Objects Not Contained in Standard SAP System               $*
*$*$----------------------------------------------------------------$*$*
*&--------------------------------------------------------------------*
*& Object          REPS ZQEVAC40
*& Object Header   PROG ZQEVAC40
*&--------------------------------------------------------------------*
*& This object has been generated from an advance correction         *
*& attached to a R/3 note.                                           *
*&--------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Title: Taking back usage decision for single lots                   *
*&---------------------------------------------------------------------*
REPORT ZQEVAC40.

*----------------------------------------------------------------------*
*  Datendefinitionen
*----------------------------------------------------------------------*
* Tabellen
*----------------------------------------------------------------------*
TABLES SSCRFIELDS.
TABLES QALS.
TABLES QAVE.

*----------------------------------------------------------------------*
* Konstanten
CONSTANTS:
  C_RC_0  LIKE SY-SUBRC           VALUE 0,
  C_RC_4  LIKE SY-SUBRC           VALUE 4,
  C_RC_20 LIKE SY-SUBRC           VALUE 20,
*
  C_KREUZ LIKE QM00-QKZ           VALUE 'X'.
*

*----------------------------------------------------------------------*
* Eingabebildschirm
SELECTION-SCREEN SKIP 2.
PARAMETERS PRUEFLOS  LIKE QALS-PRUEFLOS MATCHCODE OBJECT QALS
                                        MEMORY ID QLS .
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK SEARCH WITH FRAME.
SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN PUSHBUTTON 3(20) TEXT-S01 USER-COMMAND SEAR.
SELECTION-SCREEN PUSHBUTTON 40(20) TEXT-S02 USER-COMMAND SHOW.

SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK SEARCH.


*----------------------------------------------------------------------*
AT SELECTION-SCREEN.

  IF SSCRFIELDS-UCOMM EQ 'SEAR'
    OR PRUEFLOS IS INITIAL.
    CALL FUNCTION 'QELA_START_SELECTION_OF_LOTS'
      EXPORTING
        I_SELID          = ' '
        I_STAT_AENDERUNG = 'X'
        I_STAT_ERO       = 'X'
        I_STAT_FREI      = 'X'
        I_STAT_VE        = ' '
      IMPORTING
        E_PRUEFLOS       = PRUEFLOS
      EXCEPTIONS
        NO_ENTRY         = 1
        NO_SELECTED      = 2
        OTHERS           = 3.
  ENDIF.


  IF SSCRFIELDS-UCOMM EQ 'SHOW'.
    CALL FUNCTION 'QSS1_LOT_SHOW'
      EXPORTING
        I_PRUEFLOS = PRUEFLOS.
  ENDIF.

  CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.

* ab hier mu? Prüflosnummer gefüllt sein.
  IF PRUEFLOS IS INITIAL.
    MESSAGE E164(QA).
  ENDIF.

* Lesen Los
  CALL FUNCTION 'ENQUEUE_EQQALS1'
    EXPORTING
      PRUEFLOS = PRUEFLOS.

  CALL FUNCTION 'QPSE_LOT_READ'
    EXPORTING
      I_PRUEFLOS = PRUEFLOS
    IMPORTING
      E_QALS     = QALS
    EXCEPTIONS
      NO_LOT     = 1.
  IF NOT SY-SUBRC IS INITIAL.
    MESSAGE E102(QA).
  ENDIF.
*-----------------
* Prüfen Status
  CALL FUNCTION 'QAST_STATUS_CHECK'
    EXPORTING
      I_OBJNR          = QALS-OBJNR
      I_STATUS         = 'I0218' "Status VE getroffen
    EXCEPTIONS
      STATUS_NOT_ACTIV = 1.
  IF NOT SY-SUBRC IS INITIAL.
    MESSAGE E102(QV) WITH QALS-PRUEFLOS.
  ENDIF.
*
  CALL FUNCTION 'QEVA_UD_READ'
    EXPORTING
      I_PRUEFLOS = QALS-PRUEFLOS
    IMPORTING
      E_QAVE     = QAVE.


*---------------------------------------------------------------------*
START-OF-SELECTION.
* Vorgaben sind ok.   1. Material Umlagern und Los ?ndern

  PERFORM QALS_AENDERN.
************************************************************************
*----------------------------------------------------------------------*
*       FORM QALS_aendern
*----------------------------------------------------------------------*
FORM QALS_AENDERN.
*
  PERFORM STATUS_FIX_SETZEN USING 'I0002' C_KREUZ.
  PERFORM STATUS_FIX_SETZEN USING 'I0216' SPACE.
  PERFORM STATUS_FIX_SETZEN USING 'I0217' SPACE.
  PERFORM STATUS_FIX_SETZEN USING 'I0218' SPACE.
  CLEAR: QALS-STAT14.
  CLEAR: QALS-STAT35.
  CLEAR: QAVE-VAUSWAHLMG,
       QAVE-VWERKS,
       QAVE-VERSIONAM,
       QAVE-VCODEGRP,
       QAVE-VCODE,
       QAVE-VBEWERTUNG,
       QAVE-VERSIONCD,
       QAVE-VFOLGEAKTI,
       QAVE-QKENNZAHL.
*--... verbuchen
  CALL FUNCTION 'QEVA_UD_UPDATE' IN UPDATE TASK
    EXPORTING
      QALS_NEW = QALS
      QAVE_NEW = QAVE.
  COMMIT WORK.
  MESSAGE S101(QA) WITH QALS-PRUEFLOS.
ENDFORM.
*----------------------------------------------------------------------*
*       Form  STATUS_FIX_SETZEN
*----------------------------------------------------------------------*
*   Setzen eines Status aufgrund von Voreinstellungen wie QMAT etc.    *
*----------------------------------------------------------------------*
*  -->  STATUS    Status der gesetzt werden soll
*  -->  AKTIV     Status wird aktiviert sonst deaktiviert
*----------------------------------------------------------------------*
FORM STATUS_FIX_SETZEN USING
            VALUE(STATUS) LIKE TJ02-ISTAT
            VALUE(AKTIV) LIKE C_KREUZ.
* lokale Tabelle fuer Statusfortschreibung
  DATA: BEGIN OF L_STATTAB OCCURS 0.
          INCLUDE STRUCTURE JSTAT.
  DATA  END OF L_STATTAB.
*
* Falls Objektnr. nicht gefüllt. --> Fehlermeldung !!!
  IF QALS-OBJNR EQ SPACE.
    MESSAGE E013(QV).
*   Fehlende Objektnr.: Problem fü
  ENDIF.
  MOVE STATUS TO L_STATTAB-STAT.
  IF AKTIV EQ SPACE.
    MOVE C_KREUZ TO L_STATTAB-INACT.
  ENDIF.
*
  APPEND L_STATTAB.
*
  CALL FUNCTION 'STATUS_CHANGE_INTERN'
    EXPORTING
      CHECK_ONLY = SPACE
      OBJNR      = QALS-OBJNR
    TABLES
      STATUS     = L_STATTAB.

ENDFORM.                               " STATUS_FIX_SETZEN

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小啊曼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值