SAP CRM settype的创建,背后发生了什么

16次阅读

共计 3150 个字符,预计需要花费 8 分钟才能阅读完成。

来自我的同事 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_UPFollow 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 valueOne, is product guid in a structure.Two, is the set type name.It means that, any set type can read by this function.
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”:

正文完
 0