1. 程式人生 > >SAP-MM:物料採購訂單的客製化開發與對應列印/預覽的配置

SAP-MM:物料採購訂單的客製化開發與對應列印/預覽的配置

Preface

由於之間工作的轉變,從原來相對純粹單一的SAP本地化薪酬方案的實施與維護,變成了現在企業內部新增的業務需求在SAP系統上的配置與再開發。這個轉變確實有了很大的變化,也伴隨著相當大的挑戰。不過既然是興趣使然,對於這些新的未知的領域都會抱著一顆學習的心去那摸爬滾打一番,即便可能那樣事物是個很入門的級別,我也覺得值得我去一步一步積累。

好吧,引入正題,因為前一陣子都在搞企業的一些採購訂單表樣調整的工作所以也就順帶寫了那一篇關於Adobe Form的文章(上一篇),不過這次我一直在好奇這個採購訂單到底是如何通過後臺配置與SAP標準的採購訂單建立/修改時繫結的(ME21N,ME22N)。畢竟每個企業自己用的採購訂單表肯定是各自有個各自的格式,所以這個配置肯定是非常通用的(可能網上已經有了,我還是硬著頭皮自己摸索了一遍)。

Introduction to Purchase Order Output

通常在SAP上下完一筆採購訂單,相應的業務人員肯定也得把這個採購訂單從系統上把自己下的訂單給打印出來給供應商,財務部的AP人員等等。總之,這份憑證必然是需要一個紙質證明的,而且這份憑證的格式肯定也是根據企業的特定要求來設計的,例如所需的公司logo啊,供應商的地址,買方公司地址等等。在有了這個格式的表單之後,就可以通過系統的後臺配置把這個格式的表單與前臺的訂單建立的過程進行綁定了。最終在一個訂單的資訊被完整建立好之後,我們就可以通過列印預覽看到這個在系統上被創建出來的採購訂單了。

Step to Customize Purchase Order Ouput

  1. 第一步就是要建立這麼一個具有特定格式的表樣,我們可以通過SFP去建立一個對應的Adobe Form,當然也可以用SAP Smart Form甚至用SAP Script去畫這個Form。總之在SAP裡建立Form的技術很多,只是眼下比較流行的還是Adobe Form,另外的兩個已經快要漸漸地被淘汰在歷史的長河裡了。所以這裡步主要介紹的就是通過Adobe Form去設計出一張對應的採購訂單樣表,因此對應的格式啊所需的內容啊基本就在這裡定好了。那麼這個Adobe Form是如何建立的呢?具體可看上一篇內容(繼續廣告),只不過這裡的Interface需要更多的Import Parameter,同時也要宣告一些本地自身所需的Global Data跟Types。畢竟採購訂單上的相關資訊肯定還是很多的,尤其是地址與各種文字資訊,需要設計開發人員事前根據需求好好整理一遍。在定好了所有輸入欄位與相關型別之後,這裡就需要在Interface內部寫一點資料獲取的邏輯來把對應的資訊顯示在表單對應的位置上。這裡就跟上一篇的通過寫Report來填充表單內容的方法就有區別了,因為採購訂單不是通過某個具體報表去獲取資訊內容的,而是在生成的過程中通過自身的Interface中的邏輯,預先把內容就獲取到了。具體可以參考下圖的預覽:
  2. 讓開發完成了上述的Form建立之後(這種搬磚的活就外包給外面的開發去畫吧,好吧,現在就是有問題讓我來改,果然還是底層搬磚工啊),接下來就通過後臺配置去把這個新的Adobe Form與前臺的Purchase Order建立進行綁定了。其實所需的配置都集中在一個地方,直接T-code:SM34 -> VVC_T685B_EF 找到這個View Cluster進行配置,IMG入口是在: IMG -> Materials Management -> Purchasing -> Messages -> Output Control -> Message Types -> Define Message Types for Purchase Order (真是好深的路徑啊!我覺得一般第一次倒騰這個人必然是很難發現的)。進入到這個View Cluster,我們就可以進行相應的配置了,具體介面如下:
  3. 那麼第一就要建立自己所需的Output Types, 當然也可以用原先的,只是建議建立一個新的以Z開頭的型別,可便於以後的維護與開發。這裡的分類就主要為了區分一個大公司下的不同區域可能有不同採購訂單的格式,比如某跨國企業,在中國的採購訂單肯定是中文形式的Form,在英國的採購訂單就是英文的Form了,而且格式上也可能會有相應的不同。建立好了新的Output  Type,雙擊進入具體的配置選單(這裡建立了一個ZNEW的新型別):
  4. 在這個配置選單裡,其實對於General Data我還真不太清楚具體有什麼用途,只能按下F1看看每個欄位的描述了(課後作業吧,我也會再去看看)。然後在左上角雙擊Process Routines,這裡就可以繫結我們在第一步建立的Adobe Form。通過New Entries可以建立對應的輸出方式的配置,既然我們這裡要做的是列印預覽,那麼就直接建立一個 'Print Output' 的 Medium型別,別問我為什麼(因為我也不太清楚,只知道SAP提供了一個專門負責顯示Adobe Form的子程式),直接在Processing1的Sub-windows裡填上對應的內容, Program:SAPFM06P  Form Routine: ADOBE_ENTRY_NEU, 接著隔一行在PDF/Smart Form裡面填上剛才在第一步裡建立的Adobe Form的名字, 類似: ZXXX_FRM, 既然是Adobe Form那麼對應的Type就是PDF了。建立好的記錄儲存好以後應該就如下圖:
  5. 最後一步就是在對應的建立採購訂單的Transcation裡(ME21N)對Output的型別進行對應的設定,具體就是點選Goto->Messages,在裡面填上剛才建立的Output Type以及對應的Vendor號碼,好了之後可以通過Print Preview來預覽相應的採購訂單了。如果預覽發現沒啥問題,那麼就可以慶賀一下,這個採購訂單的自定義創建於繫結就算完成了。Message裡的設定資訊:

Summary

總結一下就是初期先搞一個Form的開發,然後開發完了之後做一個配置工作。我覺得這應該是採購訂單配置中很通用的一步,入門級別的。所以我也就是記錄一下自己看看,也算是自己對MM這塊的一個初期積累吧。

謝謝閱讀

nw