2012-01-18 82 views
2

我在SAP中學習/工作了近4個月。我一直在做這方面的一些報告和增強功能,但最近我開始處理與移動數據輸入或RF有關的需求,它基本上包括將EAN和一些其他數據添加到dynpro 2502中。更改ABAP標準代碼

我將程序SAPLLMOB中的dynpro 2502複製到SAPLXLRF 9502中,與用戶出口MWMRF502相關,並編寫了它的基本功能,但它沒有像我期望的那樣工作,因爲此退出非常有限,它只允許我導入和導出一小部分數據難以完全按標準執行。

我一直在搜索整個互聯網和很多人做自己的實現和其他只是簡單地改變標準。我不知道如何製作自己的執行程序,因爲我不瞭解所有程序,更改標準代碼的替代方法會更有利於性能和開發時間,但正如我所引用的,我必須更改標準代碼,這是我想要做的事情,只有當沒有其他選擇。

但問題是可以改變標準嗎? ¿SAP實施中標準代碼的更改頻率如何? ¿什麼是更好的選擇?

在此先感謝。

回答

3

你在問正確的問題,而且你不僅沒有考慮到你正在做什麼的後果,而是在前進,繼續研究!

就改變SAP標準而言,你通常不想複製一個對象來改變它。對於屏幕來說,SAP通常會創建一個用戶出口,並帶有可由客戶修改的子屏幕。對於Web-Dynpro,您可以使用增強點和/或bADI來擴展功能。

嘗試尋找下列之一:

  • 一個SAP巴迪在你想改變(事務SE18)的區域,
  • 用戶退出讓你改變了必要的屏幕( S)(SMOD交易),該功能內
  • 明確的增強點,
  • 在功能上隱含的增強點的一個

關於sdn.sap.com以及SAP幫助中有很多關於上述主題的文檔。

如果沒有可用的選項,您可能別無選擇,只能修改(修復)SAP標準對象。爲了能夠更改SAP標準,您需要註冊您必須在SAP OSS上進行更改的對象,並獲取系統所需的修復密鑰以允許您進行更改。始終確保SAP修改助理在進行更改時處於打開狀態,這會在您修補或升級系統時讓您的生活更輕鬆。

如果可能的話嘗試找一位有經驗的ABAP程序員來幫助你。

另見this question關於改變SAP標準代碼:

編輯:於SDN托馬斯·韋斯對增強和開關架構一個有用的blog series

+0

嗨,感謝您的回覆,SAP允許我爲此創建隱式增強,但它需要一個鍵(我輸入了該鍵),現在我也可以修改dynpro。如果我繼續改變我需要的所有內容並修改dynpro,這是否會被視爲改變標準? ¿是否會得到SAP的支持? –

+0

根據最近與SAP的維護協議,即使您已經做出更改,實際上也必須支持您的整個系統。但最好始終保持您的更改儘可能孤立。更改屏幕仍將被視爲改變標準,但只要您使用修改助手,稍後升級通常不會有問題。 SAP支持隱式增強點,我相信如果需要進行故障排除,他們可以將其關閉。儘管如此,儘可能謹慎地使用它。 – Esti

+0

作爲附加說明:您是否需要密鑰才能更改屏幕或添加隱式增強點?隱含的增值點應該已經存在,因此不需要修復密鑰。 – Esti

3

務必確保絕對沒有其他方法來實現您需要的功能。如果您確信這一點,那麼可以從零開始編寫自己的實施,或者更改SAP的代碼。只需就不要複製將SAP的程序複製到客戶名稱空間,因爲我可以向你保證這將變成維護的噩夢。您必須決定自己的實施是否值得進行更改,或者更改SAP的時間。

如果您決定更改SAP的代碼,請記住系統升級時將會彈出所有更改以供審覈,這需要花時間來評估和調整爲新的SAP代碼。

+0

我會對此進行修改 - 如果您正在討論像報告一樣簡單的事情,克隆SAP程序就可以了。從維護角度來看,克隆數據錄入程序是非常危險的。 –

+3

克隆永遠都不是正確的方法。修補程序,增強包和升級不會應用於您的克隆對象,導致它們開始表現出與SAP標準不同的地方,而沒有使用像SPAU這樣的SAP工具來找到已經/應該更改的好處。 – Esti