如果正在运行一个transaction,这个时候系统有一个transport request import进来, 这个TR包含了一些DDIC object的change, 并且这些DDIC object正在被当前transaction使用,就会出现这个exception:
SAP的建议是在晚上user很少的时候import TR。用SGEN只能通过在user launch transaction之前预先生成最新的ABAP LOAD来避免这个问题,但是对于TR import之前已经load到memory开始执行的transaction则无能为例。
Hybris不会遇到类似的问题,因为其data type分为design time source和runtime artifact两种:
(1) There is a file-based representation that is spread across in the various items.xml files of Hybris extensions. This representation is not actively used by Hybris at runtime. You can modify this representation at any time by modifying the items.xml file of an extension. However, modifications of the items.xml files only take effect after an initialization or an update of Hybris.
(2) The database of Hybris also contains a representation of the type system. This representation is actually in use by Hybris at runtime. The representation in use reflects the state the type system was in when Hybris was last updated or initialized.
直接修改items.xml不会对runtime transaction造成任何影响 - items.xml的change必须重新build整个Hybris之后才会生效.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":