ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Sales order的Enhancement (MV45AFZZ)

Sales order的Enhancement (MV45AFZZ)

原创 Linux操作系统 作者:ytfsrs2008 时间:2009-11-04 11:35:13 0 删除 编辑
*---------------------------------------------------------------------*
*       FORM. USEREXIT_SAVE_DOCUMENT_PREPARE                           *
*---------------------------------------------------------------------*
*       This userexit can be used for changes or checks, before a     *
*       document is saved.                                            *
*                                                                     *
*       If field T180-TRTYP contents 'H', the document will be        *
*       created, else it will be changed.                             *
*                                                                     *
*       This form. is called at the beginning of form. BELEG_SICHERN    *
*                                                                     *
*---------------------------------------------------------------------*
FORM. USEREXIT_SAVE_DOCUMENT_PREPARE.
DATA: g_ans TYPE c.
DATA: g_msg(70) TYPE c.
DATA: g_org LIKE vbak-vkorg.
DATA: g_ettyp like vbep-ettyp.
*DATA: g_status(100) TYPE c.
data: g_status like BSVX-STTXT.
DATA: g_wo  LIKE afpo-aufnr.
data:r_wo like JEST-OBJNR.
data:g_stonr like TJ30-STONR.
DATA: g_qty TYPE vbap-kwmeng.
CLEAR g_ans.CLEAR g_msg.
CLEAR g_org.CLEAR g_status.
CLEAR g_wo.

IF sy-mandt = '101' OR sy-mandt = '201'
   OR sy-mandt = '501' OR sy-mandt = '601'
   OR sy-mandt = '701' OR sy-mandt = '801'.
  IF sy-tcode = 'VA02'.
    LOOP AT xvbap.
      SELECT SINGLE vkorg INTO g_org
      FROM zsd_apd_005
      WHERE vkorg = vbak-vkorg
            AND vtweg = vbak-vtweg
            AND auart = vbak-auart.
*************        control by order type     ***************
      IF sy-subrc = 0.
*        SELECT SINGLE aufnr INTO g_wo
        SELECT  aufnr INTO g_wo
          FROM afpo
          WHERE kdauf = xvbap-vbeln
          AND kdpos = xvbap-posnr.
          r_wo = 'OR'.
          r_wo+2 = g_wo.
****************WO status-------------------------
        CALL FUNCTION 'STATUS_TEXT_EDIT'
             EXPORTING
                  objnr         = r_wo
                  only_active   = 'X'
                  spras         = 'E'
                  bypass_buffer = '1'
             IMPORTING
                  line          = g_status.
****************WO status-------------------------
        SELECT SINGLE kwmeng INTO g_qty FROM vbap
        WHERE vbeln = xvbap-vbeln
        AND posnr = xvbap-posnr.
        select single ettyp into g_ettyp from vbep
        where vbeln eq xvbap-vbeln
        and  posnr eq xvbap-posnr.
        IF  g_status cs 'REL' AND
*          g_qty <> xvbap-kwmeng .
            ( g_qty <> xvbap-kwmeng OR
             g_ettyp <> xvbep-ettyp ).
          CONCATENATE 'Sales Order:' xvbap-vbeln
                      'Item:' xvbap-posnr
                      'WO:' g_wo
                      'has been released!'
          INTO  g_msg.
          CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
               EXPORTING
                    textline1      = 'Error ocurrs:'
                    textline2      = g_msg
                    titel          = 'Error'
                    cancel_display = ''
               IMPORTING
                    answer         = g_ans.
          MESSAGE e888(sabapdocu)
             WITH  g_msg.
        ENDIF.
      ENDSELECT.

ENDFORM.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15117617/viewspace-618089/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-31

  • 博文量
    52
  • 访问量
    63017