天天看点

增强版本的自开发SAP WebClient UI Repository Information System

My original tool introduced in blog Repository Information System for WebClient UI Component does not satisfy my colleagues, they have more requirement, as always

Some key requirements:

(1) I would like to know how many UI Component has used component set for example PROD_ALL defined in runtime repository.

增强版本的自开发SAP WebClient UI Repository Information System

(2) I have a data element for example COMT_PRODUCT_ID, I know it is used as context node attribute PRODUCT_ID in context node PRODUCT.

Now I would like to have a list of all WebClient UI component where the given data element is used as a certain context node attribute.

增强版本的自开发SAP WebClient UI Repository Information System

Here below is how I fulfill this requirement via some development.

Step 1

Create a database table CRMD_WEBUI_COM_H to store the relationship between a WebClient UI component and its assigned Genil component set

The technical definition of this table:

增强版本的自开发SAP WebClient UI Repository Information System

With this table, now it is easy for me to figure out how many UI component are using for example Genil component set PROD_ALL, that is 85:

增强版本的自开发SAP WebClient UI Repository Information System

Execute the following report to fill the content into this table:

增强版本的自开发SAP WebClient UI Repository Information System

Step 2

Create a table CRMD_WUI_PROPERT to store the metadata of all Genil Component set.

The table contains Genil component model name, model node name and the DDIC structure used by the model node.

增强版本的自开发SAP WebClient UI Repository Information System

Use this report to fill content into it:

增强版本的自开发SAP WebClient UI Repository Information System

Step 3

Now it is time to extract needed information from each WebClient UI component. The information I need is:

Context node class name

the name of view where the context node is defined

the name of WebClient UI component where the context node is defined

the name of context node itself

the name of Genil Model node which is bound to the current context node

the DDIC structure used by the bound Genil Model node

Create a table CRMD_WUI_CONTX_H to store those information:

增强版本的自开发SAP WebClient UI Repository Information System

Execute this report to fill content into it:

增强版本的自开发SAP WebClient UI Repository Information System

Step 4

As the last step, now we need to provide the data type for each context node attribute. As a result I create this table CRMD_WUI_CN_ATTR to store the context node name, the component where it is defined, and each attribute name and data element name used by this context node attribute.

增强版本的自开发SAP WebClient UI Repository Information System

The table content is filled by this report:

增强版本的自开发SAP WebClient UI Repository Information System
增强版本的自开发SAP WebClient UI Repository Information System

Once done, now it is very easy to answer the second question raised in the beginning of this blog:

How many UI Component have context node which uses data element COMT_PRODUCT_ID as context node attribute type?

Just query field ATTR_TYPE with value COMT_PRODUCT_ID:

增强版本的自开发SAP WebClient UI Repository Information System

And you get a list of all 993 usages:

增强版本的自开发SAP WebClient UI Repository Information System

继续阅读