1. 程式人生 > >SAP CRM settype的建立,背後發生了什麼

SAP CRM settype的建立,背後發生了什麼

來自我的同事Sara。

當我們在CRM系統裡建立一個settype之後,其實系統後臺悄悄的幫我們建立了很多ABAP物件,比如對應的database tables, other ABAP Dictionary objects, function groups, function modules, and screens等等。
Create set types:

     
     

DB check:自動建立了一個和settype ID同名的資料庫表

   

問題:How this DB generate?
How to check what function groups, function modules, and screens are created? Especially which screens?
When we assign the attributes to the set type, I guess it will insert lines into the table.

Jerry的解答:

當你建立一個新的settype時,product框架會自動生成針對該settype的structure和儲存Table, 以及對應的用於CRUD的function module。但是瞭解框架本身如何實現我前面說的這些事情,對我們接下來做的co deployment沒有直接幫助。你的這個問題可以轉換成:

假設我只知道product的description欄位是通過某個settype實現的,我想不問別人,自己弄清楚該settype的名字和訪問該settype的CRUD的function module名字,該如何做?

I got one information from my colleague, the Product Description function is implemented by the SAP standard set type. Then I want to make clear:
(1) Which standard set type implement Product Description and it's DB table?
(2) Which function module (API) implement the CRUD of Product Description?

寫在前面:本文提及的方法只限一種思路,不排除個別Assignment Block 不適用的情景,請大家廣開思路,積極探索更多的方法來研究,希望能總結出更多的具體API,簡化每一個功能的實現。

Product ID: SZIPC (in QHD)
After this self study, I can get a general knowledge of how the product fields implemented in the SAP System.

Then I will start this self study step-by-step by question driven.

(1) Which standard set type implement Product Description?

Try Google it first. Wow, got some information. set type name COMM_PR_SHTEXT.

       

(2) Is it right? How can I display set type?
One way, Google.

Second way, I would like to use SE93 to find transaction code by transaction description, got it!
TCODE: COMM_SETTYPE

   

There is some issue, you can not display set type by TCODE: COMM_SETTYPE directly, you can only use COMM_ATTRSET input the set type COMM_PR_SHTEXT first the sue TCODE: COMM_SETTYPE to dispaly.

(3) Then how can I find the DB for this set type and the CRUD function model?

There is 2 ways.

The first way, is to use TCODE: ST05 trace.
I update the description from Material_Sara to Material_SaraZhang. I search with key words 'Material_SaraZhang', then I find the DB--COMM_PORTEXT.

       

The second way, I would like to use TCODE: SE93 find the package of TCODE COMM_SETTYPE.--
Assume,I do not know, Most of the Set Type name = DB Table name.

There must be a table include all the Set Type name and DB Table names, how can I find it?
This is an important thinking point, for every TCODE in SAP, it's a collection of multiple functions /tables/views. Which should be packaged in a package.

   

In the package, there is multiple DB, from the DB description, you can know COMC_SETTYPE is the admin table which include all information we want.--Admin table and header table always as the start and base point of DB relationship.

   

Filter by the set type name** COMM_PR_SHTEXT**, we found the set type DB COMM_PRSHTEXT and related function module.

   

(4) How the function module work when I read the product description?

TCODE: SE37 find COM_COMM_PR_SHTEXT_READ_WITH_P and set breakpoint.

   

search Product ID: SZIPC

   

in WebClient UI.

Follow the call stack, find the key API for read product set types.


       

(5) How the function module work when I Update the product description?

Function Module: COM_COMM_PR_SHTEXT_MAINTAIN_UP
Follow the call stack, find the key API for update product set types.

   

(6) I will try to simplify this function module, pick this function into a report for confirming how does this CALL FUNCTION 'CRM_PRODUCT_UI_GETDETAIL' work?

This is the key function for processing product set types.

We'd better to understand it's indeed input value
One, is product guid in a structure.
Two, is the set type name.
It means that, any set type can read by this function.

   

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

 

作者:JerryWangSAP
連結:https://www.jianshu.com/p/313662186bd3
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。