關於採購收貨時觸發系統發送內部SAP郵件給指定接收用戶的功能詳解

關於採購收貨時觸發系統發送內部SAP郵件給指定接收用戶的功能詳解

作者:袁雲飛(AlbertYuan)- 微信號yuanalbert

以下內容均爲原創,希望對初學者有一些輔助作用,本人主要從事MM/QM/WM的相關工作,不專業處請多多指點,十足乾貨,碼字不易,且行且珍惜,你們的關注就是我努力的動力,轉載請引用出處,感激不盡;

小夥伴們是否碰到過類似的用戶的一些想法,比如採購員會需要,如果他創建的PO在到貨收貨記賬後,能發個什麼消息給他的話,那將是非常方便的事情;又比如,庫房的領導有時候也在諮詢,能不能當PO收貨記賬後,給他提供一個信息說明什麼東西多少數量等等以及入庫;這些用戶其實都有一個共同的願望,就是當收貨後能觸發一個信息給他們,讓他們能得到一個提醒,以便進行後續處理;

這些想法其實實現起來很多方式,小到實時滾動報表,信息週期性獲取自動推送,大到於郵箱,手機進行信息集成;都能比較好的解決這些需求;而我們這裏討論的是其中一個辦法,這個辦法是SAP標準功能,所以不需要開發,不需要額外的實現週期,比較適合於過渡性質的或功能單一的信息提醒需求;

我們的實現思路是利用條件技術,加上消息類型MLGR來實現的;通過條件技術,我們可以實現針對特定的PO在MIGO收貨的時候發送一條內部郵件到指定SAP賬號的郵箱裏;還可以實現針對入庫的不通過工廠,不同庫存組合發送到不同負責人SAP賬戶的郵箱裏;對於採購員來說,雖然不能發送到採購組對應的用戶郵箱裏,但我們可以針對不同採購員管理的供應商來實現折中處理;

下面我們就來具體講解實現的主要過程;
在這裏插入圖片描述
我們創建兩個條件表;注意這裏的條件表對應的透明表都是B開頭的;例如901=B901;
在這裏插入圖片描述
在這裏插入圖片描述
這兩個條件表,分別是兩個獨立的用途,一個可以通過收貨的工廠和庫位來確定將本次收貨消息發送給哪個SAP用戶,比較適用於發送給倉庫主管等領導;另一個可以通過供應商來進行區分,比較適用於發送給採購人員;

在這裏插入圖片描述
然後將條件表分配給對應的存取順序,並設定好查找的先後順序;

在這裏插入圖片描述
在這裏插入圖片描述
然後維護好輸出類型MLGR的郵件內容,這裏可以利用變量去手機EKKO,EKPO,MSEG等數據作爲變量,方便消息生產的時候動態產生這些郵件數據;
在這裏插入圖片描述
接着就是將消息類型的確定過程維護好;
在這裏插入圖片描述
小夥伴們要注意一下這個放置在MLGR消息類型後面的171 routine程序;

FORM KOBED_171.
  SY-SUBRC = 0.
ENDFORM.
FORM KOBEV_171.
  SY-SUBRC = 4.
  IF KOMPBME-SHKZG = 'S' AND KOMPBME-KZWES NE 'S'.
    SY-SUBRC = 0.
  ENDIF.
ENDFORM.

這裏有一個重要的判斷,PO一定是收貨記賬,借貸字段SHKZG是S,表示進入庫存,退貨自動被排除,會直接移除掉MLGR消息類型的條件記錄搜索的;當然啦其還判斷了KZWES這個字段啦,這個字段就是是否該PO被記賬到GR凍結庫存,如果是則字段值=S,這種情況下會自動將MLGR排除在條件確定之外,從業務上說就是如果該PO是先GR到GR凍結庫存的,就不會發郵件;

最後就是創建條件記錄了,確定那些人能接受SAP內部郵件;
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
郵件內容裏可以進行註釋文本的添加,郵件標題的編輯,以及指定SAP用戶作爲接收用戶,還能設置快件接收方式;以及添加附加,比如圖片,報告PDF等;
在這裏插入圖片描述
最後,要觸發這個消息確定及輸出過程,我們只需要將PO擡頭對應GR MESSAGE指示器勾選即可;如下圖;
在這裏插入圖片描述
在SBWP郵箱裏可以看到系統發給用戶的SAP內部郵件;
在這裏插入圖片描述
基本上就講完這個功能的所有內容了;不過這裏小夥伴們可能會有一個小疑問,爲什麼我們在編輯郵件文本的時候,使用&EKKO-EBELN&,運行的時候就會自動替換爲對應的PO號碼呢;

主要是這個程序在爲我們找實時數據;
在這裏插入圖片描述
我們剛纔的這種輸入形式&&,其實是在輸入文本符號,這個FORM就是將數據找出來去替換對應變量裏的具體文本值的;

*----------------------------------------------------------------------*
*       Die MSEG-Zeilen werden zur Verfügung gestellt, um die         *
*       MAIL-Textvariablen zu ersetzen.                               *
*       Diese Routine wird in den Nachrichtenarten MLGR/MLMD gesetzt. *
*---------------------------------------------------------------------*
FORM TEXT_WEMAIL_FUELLEN TABLES XTLINES STRUCTURE TLINE
                        USING XTHEAD STRUCTURE THEAD
                              SNAST  STRUCTURE NAST.
* tables: ekko, lfa1.
  DATA: NAME1 LIKE ADDR1_VAL-NAME1.

ENHANCEMENT-POINT TEXT_WEMAIL_FUELLEN_01 SPOTS ES_SAPMM07M.
*$*$-Start: TEXT_WEMAIL_FUELLEN_01--------------------------------------------------------------$*$*
ENHANCEMENT 9  OI0_SAPMM07M.    "active version
* CLEAR: EKKO, EKAN, LFA1.            "del SO6K014263 MMU "SO3K002006
  CLEAR: EKKO, LFA1.                                     "SO6K014263 MMU
ENDENHANCEMENT.

 DATA: BEGIN OF MSEG_KEY,
          MANDT LIKE MSEG-MANDT,
          MBLNR LIKE MSEG-MBLNR,
          MJAHR LIKE MSEG-MJAHR,
          ZEILE LIKE MSEG-ZEILE,
        END OF MSEG_KEY.
  MSEG_KEY-MANDT = SNAST-MANDT.
  MSEG_KEY-MBLNR = SNAST-OBJKY(10).
  MSEG_KEY-MJAHR = SNAST-OBJKY+10(4).
  MSEG_KEY-ZEILE = SNAST-OBJKY+14(4).

  READ TABLE XMSEG  WITH KEY MSEG_KEY BINARY SEARCH.
  MSEG = XMSEG.
  IF T158-TRTYP = H.
    READ TABLE XVM07M INDEX XMSEG-ZEILE.
    VM07M = XVM07M.
    READ TABLE YMBUZ  INDEX XMSEG-ZEILE.
    READ TABLE YDM07M INDEX YMBUZ-ZEILE.
    DM07M = YDM07M.
  ENDIF.

  IF EKKO-EBELN NE MSEG-EBELN.
    SELECT SINGLE * FROM EKKO WHERE EBELN = MSEG-EBELN.
  ENDIF.
  SELECT SINGLE * FROM EKPO WHERE EBELN = MSEG-EBELN
                              AND   EBELP = MSEG-EBELP.
  CALL FUNCTION 'MM_ADDRESS_GET'
       EXPORTING
            I_EKKO  = EKKO
       IMPORTING
            E_NAME1 = NAME1
       EXCEPTIONS
            OTHERS  = 1.
  AM07M-NAME1 = NAME1.
  MKPF = XMKPF.
  PERFORM TEXT_SYMBOL_REPLACE TABLES XTLINES
                              USING XTHEAD
                                    SNAST.
ENDFORM.

從標準代碼裏可以看出,其正在將物料憑證和PO裏的相關字段數據找出,並替換對應的文本變量;所以MKPF,MSEG,EKKO,EKPO裏的字段都是可以使用的;不過這裏要注意,供應商描述可只能用這個文本變量哦&AM07M-NAME1&

以上爲本章全部內容,希望對小夥伴們有所幫助;

發佈了102 篇原創文章 · 獲贊 1 · 訪問量 8436
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章