一、創建報表(TCODE:SE80)
1、確定報表的輸入和輸出字段
2、了解前台操作,找到開發時需要用到的字段(方法:F1幫助;通過相關文檔查詢數據庫表;ST05跟蹤;/H跟蹤SAP標准程序)
3、根據輸入字段確定報表邏輯流
4、確定邏輯流后寫出代碼程序初稿
5、進行測試
6、數據沒有問題則進行翻譯和分配TCODE
7、若測試后數據不正確,回到數據庫表中查看是否取數錯誤或有邏輯運算處出錯
8、修改錯誤並翻譯和分配TCODE
二、修改已存在報表(TCODE:SE80或SE38)
1、了解報表的基本邏輯流(方法:設置斷點跟蹤)
2、找到出錯的字段值或內表處
3、根據出錯處倒查報表邏輯在哪里出現問題
4、修正錯誤
三、WORKFLOW開發(TCODE:SE80,SWDD,SWU3,PPOMW)
1、必須現在SWU3中定義Prefix number,否則WF不能在SWDD編輯器中激活
2、了解WORKFLOW的程序代碼的邏輯(方法:使用斷點跟蹤)
3、根據已制定的業務來畫出工作流的初稿
4、進入SWDD工作流編輯器
5、邏輯流中ACTIVITY查看每一步之中的TASK字段(在這中含有和此個ACTIVITY的具體執行事件),再檢查AGENTS處,此處表明由哪些人員或群組執行此個ACTIVITY
6、根據已定的業務流程畫出業務中循環,條件的工作流步驟,並根據需求,將工作流程序的OBJECT中字段賦給循環和條件步驟的參數
7、進行工作流測試,可在SWDD中直接進行執行測試
8、若測試沒有問題,創建工作流的開始點(觸發點),通常,此處會與工作流程序的代碼相對應,函數是:SWE_EVENT_CREATE
9、進行測試
10、測試沒有問題后,使用TCODE:PPOMW 定義ACTIVITY的角色和人物
四、BAPI和FUNCTION(TCODE:SE37,BAPI)
BAPI和FUNCTION類似與普通程序的PERFORM,不同之處在於,BAPI和FUNTION已經被封裝好,有獨立和標准的輸入輸出
1、尋找BAPI和FUNCTION,可以使用SE37中輸入“*函數名*”來尋找或者直接在網上搜索相關的函數
2、找到函數后,先查看他的IMPORT,了解函數的輸入設置和每一個輸入字段的意思
3、查看完輸入流的字段后,進入EXPORT和TABLES兩個選項,一般輸出時使用內表較多,所以TABLES選項需要查看更為仔細
4、在SE37中點擊運行進行測試,將預先找到的輸入值填入相應的字段,運行,查看結果,如果結果和在SAP系統標准TCODE中有差異,則回到輸入狀態,檢查輸入值是否填錯;也可以在已開發程序或標准程序中跟蹤查看被調用函數的輸入情況進行更改
5、在自定義的程序中定義完輸入輸出值進行系統測試
6、部分BAPI或FUNCTION可能不能被連續調用,之間可以加上WAIT語句進行等待
五、ENHANCEMENT開發(TCODE:CMOD,SMOD,SE37)
1、了解業務需求,知道是需要編寫的是增強中的哪一種開發(菜單出口,屏幕出口,功能模塊出口,關鍵字出口)
2、根據需求通過MODX_FUNCTION_ACTIVE_CHECK函數中設置斷點查看到已經存在的用戶出口(增強);也可根據現在《SAP出口(增強)》文檔進行查找用戶所需要的出口增強
3、找到增強以后,進入CMOD創建一個PROJECT,並把增強分配到創建的PROJECT中,再使用部件組,填入函數的出口名,並雙擊函數進入SE37界面進行增強代碼的編寫
4、若通過文檔直接找到了出口名稱(USER EXIT),則可在CMOD中填入名稱,查看到用戶出口下的所有增強,選中需要的增強函數進行代碼的編寫
六IDOC開發
IDOC是一種類似XML的SAP系統與SAP系統或其他系統之間相互傳遞消息的工具
1、設置IDOC類型
WE31創建SEGMENT(類似XML的結點屬性),WE30創建IDOC類型(定義結點之間的關系)
2、創建消息類型(MESSAGE TYPE)
WE81創建消息類型,WE82關聯消息類型和IDOC類型
3、創建對方的端口
首先需要確定系統內已有R/3的連接,可用SM59進行檢查和添加
4、創建邏輯系統
使用TCODE:SALE創建和分配邏輯系統(這將和后來的公司間傳遞用到的PARTNER有關)
5、使用WE20定義需要傳輸的PARTNER PROFILE,並未每個PARTNER定義好INBOUND數據或者OUTBOUND數據的消息類型
6、同時,為INBOUND和OUTBOUND的輸入輸出數據進行配置IDOC傳輸時的邏輯(如VOE4定義銷售INBOUND的配置和VOE2定義轉換成銷售單后的基本銷售區域等值)
7、當配置都完成后,使用SAP增強,則根據<五、ENHANCEMENT增強>中查找增強並進行代碼的編寫
七、BADI開發(TCODE:SE18,SE19)
BADI對象的信息一般存儲在SXS_INTER,SXC_EXIT,SXC_CLASS和SXC_ATTR這四個表里,SAP程序使用CL_EXITHANDLER=>GET INSTANCE來判斷BADI對象是否存在(GET INSTANCE就是對上面四張表的視圖V_EXT_IMP和V_EXT_ACT)進行查詢和搜索
1、BADI的尋找,先用SE38進入標准程序,全局搜索CL_EXITHANDLER,可以找到BADI相關的值(即可能需要用到的BADI),也可以通過SPRO中的幫助文檔進行查找
2、找到BADI后,使用SE18創建增強點(ENHANCEMENT SPOT)
3、在創建'增強點元素定義'中創建'BADI DEFINITION和相對應的描述',
4、並未BADI的接口創建描述
5、創建完接口之后,為BADI創建METHODS事件,並為METHODS事件創建傳輸值(以上步驟即為BADI的定義,均可在SE18中定義完成)
6、進入SE19,為剛剛創建的BADI增強點創建BADI的執行(Enhancement Implementation),
創建完保存后,回到SE18中,能夠看到BADI的Implementation已經被創建完成
7、為BADI Implementation創建執行類,如正確,則能在實例類中看到剛剛在METHODS創建的輸入數據,雙擊執行類中的MOTHODS,便進入了BADI的代碼增強界面,在這之中輸入需要增加的代碼即可。
8、最后使用程序調用BADI,如有問題,可在BADI和程序中加入斷點進行調試跟蹤