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.
(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.
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:
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:
Execute the following report to fill the content into this table:
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.
Use this report to fill content into it:
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:
Execute this report to fill content into it:
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.
The table content is filled by this report:
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:
And you get a list of all 993 usages: