cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

update ESTRI record for REAL_SUB after change in LIST_SUB

Former Member
0 Likes
853

Dear all,

We use real substances which inherit their identifiers from list substances.

When an identifier of the list substance is added or deleted, the changes are passed through to the real substance in transaction CG02 and can be seen in table ESTRI.

When en identifier of the list substance is modified, the changed identifier can be seen using transaction CG02. However, in table ESTRI the record has not been changed.

Is this normal behaviour of the ESTRI table or should we reconfigure something?

Cheers,

Luk

Accepted Solutions (0)

Answers (1)

Answers (1)

christoph_bergemann
Active Contributor
0 Likes

Hello Luk

generally identifiers are stored in ESTRI as indicated by you. Using inheritance there is no "direct" link between one specification to the other. The inheritance topic is not easy to understand and there are a number of potential risks in using this techniques (in my opinion).

I did not get "precisely" your question. I hope that my answer fits your question.

The REAL_SUB ia available in ESTRH as a data record

The LIST_SUB is available in ESTRH as well

Identifers are stored in ESTRI. If the identifier is directly maintained on REAL_SUb level (without inheritance) the link between ESTRH REAL_SUB to ESTRI REAL_SUb is" direct". The same is true on the level of LIST_SUB. Therefore identfiers maintained on LIST_SUB level have in ESTRI a direct reference to the corresponding ESTRH of LIST_SUB.

As far as I remember the data model of inheritance the story is "diiferent". That means you enter an identifier in ESTRI on LIST_SUB level. Now in this table there is a further link to the REAL_SUB ESTRH if inheritance is activated but no link from ESTRH on REAL_SUB level to ESTRI on LIST_SUB level. (pay attention because you need for the relation between the objects the inheritance template; this is a further table in EH&S)

I am sorry to say that I have no information regarding potential changes in data model which might happened in ECC 6.0 and or ECC 6.0 with Enhancement Package 3 activated. I know only that the inheritance techniques has been improved a lot especially in ECC 6.0 with Enhancement PAckage 3 activated.

Hope this helps.

With best regards

CB

Pay attention: the inheritance links (I believe) are only there if the inheritance report hs done the job. I assume the job is scheduled in jour system.

Former Member
0 Likes

Hi Christophe,

Thanks for your feedback.

generally identifiers are stored in ESTRI as indicated by you. Using inheritance there is no "direct" link between one specification to the other. The inheritance topic is not easy to understand and there are a number of potential risks in using this techniques (in my opinion).

I did not get "precisely" your question. I hope that my answer fits your question.

I'll try to clarify my question.

We have a list_sub and a real_sub that have an inheritance relation.

In the identifiers of the list_sub, the flg_inhsrc is X. In the real_sub, recntri_src, recntri_orig and recnroot_orig are copied from the list_sub records.

Now, when the inheritance relation is just set, the identifiers of the real_sub are an exact copy of the identifiers of the list_sub.

When we modify the identifiers from the list_sub by adding or deleting one or more, these changes are copied exactly to the real_sub.

Now, when we modify an identifier from the list_sub (change a CAS number for instance or make en product name longer so you get a long text for instance), this change is not copied to the relevant ESTRI-record of the real_sub.

Using transaction CG02 the identifiers are allways modified in a correct way, on the database we get differences between the identifiers of the list_sub and the real_sub.

example

List_sub after change :

220 1484160 0 01.01.0001 31.12.9999 27.11.2009 VMDSMET 10.12.2009 VMDSMET EH&S 365708 1484157 NAM PROD 0,01 MOL HYDROCHLORIC ACID FIXANAL ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 001MOLHYDROCHLORICACIDFIXANALTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT X X 1 X 0 0 0 0 0

real_sub after change :

220 1601991 0 01.01.0001 31.12.9999 09.12.2009 LUDCLERC 09.12.2009 LUDCLERC EH&S 365710 1601987 NAM PROD 0,01 MOL HYDROCHLORIC ACID FIXANAL 001MOLHYDROCHLORICACIDFIXANAL 0 1 1484160 1484160 1484157 0

The REAL_SUB ia available in ESTRH as a data record

The LIST_SUB is available in ESTRH as well

Identifers are stored in ESTRI. If the identifier is directly maintained on REAL_SUb level (without inheritance) the link between ESTRH REAL_SUB to ESTRI REAL_SUb is" direct". The same is true on the level of LIST_SUB. Therefore identfiers maintained on LIST_SUB level have in ESTRI a direct reference to the corresponding ESTRH of LIST_SUB.

As far as I remember the data model of inheritance the story is "diiferent". That means you enter an identifier in ESTRI on LIST_SUB level. Now in this table there is a further link to the REAL_SUB ESTRH if inheritance is activated but no link from ESTRH on REAL_SUB level to ESTRI on LIST_SUB level. (pay attention because you need for the relation between the objects the inheritance template; this is a further table in EH&S)

I am sorry to say that I have no information regarding potential changes in data model which might happened in ECC 6.0 and or ECC 6.0 with Enhancement Package 3 activated. I know only that the inheritance techniques has been improved a lot especially in ECC 6.0 with Enhancement PAckage 3 activated.

We're working on ECC 6.0 (sps15) EhP4 (sps03)

Pay attention: the inheritance links (I believe) are only there if the inheritance report hs done the job. I assume the job is scheduled in jour system.

For as far as I know, the job is triggerd the moment you set an inheritance relation.

Cheers,

Luk

Edited by: Luk Declerck on Dec 17, 2009 11:48 AM

christoph_bergemann
Active Contributor
0 Likes

Hello Luk

my experience with inheritance is quite old as we have decided not to use this option (because of the many problemes we have detected in using this technique).

Now coming back to your informations:

"We're working on ECC 6.0 (sps15) EhP4 (sps03) " => congratulation!! therefore you should be able to profit (if enhancement package 4 has been activated in EH&S area) by the most recent EH&S development and therefore by the optimizations which are present in this release in the area of inheritance

Further on:

I'll try to clarify my question. We have a list_sub and a real_sub that have an inheritance relation. In the identifiers of the list_sub, the flg_inhsrc is X.

In the real_sub, recntri_src, recntri_orig and recnroot_orig are copied from the list_sub records. Now, when the inheritance relation is just set, the identifiers of the real_sub are an exact copy of the identifiers of the list_sub. When we modify the identifiers from the list_sub by adding or deleting one or more, these changes are copied exactly to the real_sub. Now, when we modify an identifier from the list_sub (change a CAS number for instance or make en product name longer so you get a long text for instance), this change is not copied to the relevant ESTRI-record of the real_sub.

As mentioned above my experience with inheritance is quite old. But I believe this is the story:

a.) you create the inheritance relation for the frist time and the tables are linked as explained by you

b.) now you change something on the source. Now in doing so you do not delete or insert an ESTRI data record but you update it. This update can be seen directly (after job has run) in the target (because of inheritance relation) using cg02 (but I believe there is no "real" change in relation of data records on table level.

Only if you add a new identifer in the source (which should be inheritated because of inheritance template) there will be a new table relation and if you delete one identifier the "del" flag is set and that is it.

Inheritance is a great option in EH&S and it solve a number of topics but on the other hand it create many new ones (on one specification you can not mix reference and inheritance) and the business logic must be prepared in the inheritance templates and it is not easy to understand the logic behind these templates and the managing of these is not easy too.

One can wrote "books" regarding the "optimal" use of inheritance.

With best regards

CB

PS: if you take a look deeper into EH&S you will find some "central" function modules which are used in cg02 and which are the important key to understand EH&S and inheritance, referencing etc. The most important function module in this context is C1f2_substanes_read_with_REF