点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我目前正在使用一些自定义字段扩展MARM和UNITOFMSR实体。
这就是我所做的:
- 扩展MARM
- 扩展了SMEINH(MARM的更改表)
- 扩展了MARM X和UI结构
- 将字段添加到T130F
- 将它们添加到数据模型
- 生成的结构
- SMT映射
- MM调整后的分期
- 清除了UI元数据缓冲区
- 已将字段添加到UI
- 在某些情况下在规则服务中添加了一些规则以默认字段(我知道这不是问题,因为我注释掉了所有新代码,并且该问题仍在发生)
问题来了-每当我尝试在MDG中启动或继续一个过程时,我都会得到简短的转储,内容如下:
两个内部表不兼容或不可转换
我以相同的方式扩展了数百个字段,但从未遇到过此问题。 转储在类CL_USMD_GOV_API的标准方法read_entity_buffer中发生:
创建 DATA lr_data就像et_data的线一样。
*分析请求的数据结构
*必须这样做,因为写缓冲区也需要组件表。
*出于这个原因,我们在此处获取并将结果提供给et_components
*,然后在WRITE_ENTITY_BUFFER中重复使用。
lr_data_struc?= cl_abap_typedescr => describe_by_data_ref(p_data_ref = lr_data)。
lt_components = lr_data_struc->组件。
*尝试从READ BUFFER中读取数据
使用KEY实体= iv_entity_name"键
的mt_entity_read_buffer读取表 entity_key =
版本= iv_版"密钥"
read_mode = iv_data_source" key
request_mode = iv_request_mode
组件= lt_components
分配
如果sy-subrc = 0。
ASSIGN
检查sy-subrc =0。 "未调用写操作-> READ/RETRIEVE_CHAR_VALUE引发的异常
et_data =
当它碰到UNITOFMSR缓冲区条目之一时,我以粗体突出显示了该问题。 在转储时,我看不到et_data和
关于什么可能导致该问题以及如何解决的任何想法?
你好本杰明,
您找到了解决该问题的方法。 除了材料实体,我在这里也面临着同样的问题。
最诚挚的问候,
Daniel
嗨,我面对计量单位实体的类似问题。
在运行时,调试模式-创建度量单位实体的引用结构,该引用结构与数据模型结构不匹配。 插入语句被调用,由于缺少匹配结构,我们在系统中转储。
这是在我们的一种情况下发生的,不是全部。.我在下面尝试过,还没有运气。
MDGIGM-清晰的UI metedata缓冲区
Bejamin,
最近你们对MDG系统进行的任何升级....
你好,丹尼尔,
按照承诺-现在是星期四,我可以从SAP访问我的笔记:
这是一个罕见的问题,仅发生在Unicode系统中,其中Include以奇数偏移量开始并且具有特定类型的字段,因此这就是为什么它不经常发生的原因。
Governance API的读取实体缓冲区存储从不同来源以及在代码堆栈的不同级别(便捷API,Governance API,模型等)创建的结构。 根据创建这些结构的位置,其中一些可以通过自定义数据模型的数据引用来创建(在本例中为Flat结构),而其他一些则可以通过诸如/MDGMM/_S_MM_PP_MATERIAL之类的主要持久性映射结构来创建
在ABAP包含结构中,由于使用Unicode系统而引入了对位要求,并且由于此原因,将插入对位间隙以满足这些要求。 相反,在这种情况下,平面结构会自动对齐,并且不会插入对齐间隙。
有关对齐的更多信息和规则,您可以检查以下链接:
对齐
https://help.sap.com/abapdocu_70/zh-CN/ABENALIGNMENT_GLOSRY .htm
Unicode系统中的对齐方式
https://help.sap.com/abapdocu_70/zh-CN/ABENUNICODE_ALIGNMENT .htm
数据对象对齐:
https://help.sap.com/abapdocu_70/zh-CN/ABENALIGNMENT .htm
在包含开始处使用数据类型P(或INT4?)将导致插入对齐间隙,直到对齐Include结构为止,而使用数据类型C将自动对齐 ,则不会插入任何空格。
为了检查结构/MDGMM/_S_MM_PP_MATERIAL的每个字段的偏移量,转到事务SE37并执行功能模块DD_SHOW_NAMETAB。 填写以下参数,单击"执行",然后单击"显示功能模块的输出列表"以显示详细的结构信息:
SHORTNT = <空白>
状态= A
TABNAME =/MDGMM/_S_MM_PP_MATERIAL
GETALL = X
将此与结构快照进行比较将显示由对齐间隙引起的任何未对齐。
正如我所说-为了防止这种情况的发生,我所做的就是在包含(在数据模型中)的开头创建一个伪字段ZZADUMMY。 此命名约定将其放在我的结构的Z字段顶部。 而且它是C型的(顺便说一下,我用了长度2,因为这是我对齐间隙的大小,但我认为这并不重要)
谢谢
Ben
嗨,我面临度量单位实体的类似问题。
在运行时,调试模式-创建了度量单位实体的引用结构 与数据模型结构不匹配。 会调用一条插入语句,由于缺少匹配结构,我们正在系统中转储。
这是在我们的情况之一中发生的,不是全部。 p>
运行报告-USMD_ADJUST_STAGING
运行报告-USMD_ADAPT_BRF
MDGIGM-清除UI元数据缓冲区
已排序的表没有任何条目。
标准表只有一个条目,其中包含MARM/UNITOFMSR的所有标准键。
所有生成的表都有添加的自定义字段。 即使我在调试器上执行该语句失败,我也可以查看两个表,以了解除表类型(排序标准)外,它们的结构完全相同。
我不理解它,因为我没有触摸该实体的标准键。
更重要的是,我已经将它们全部拿出并开始将它们一个一个地添加。 在9个字段中。 可以添加其中两个并保持其正常工作。 尽管在所有已生成的数据库表和数据库表中都使用相同的数据元素,其余的都导致转储。
你好,
即使我曾经遇到同样的错误。
请按照以下步骤操作,
1。 再激活一次数据模型。
2。 在MDGIMG中激活与您的实体相对应的结构。
3。 如果有SMT映射,请删除SMT映射,并节省更多时间。
4。 重新创建SMT映射,然后保存。
5。 运行调整阶段报告。
这将解决您的问题。
谢谢
Girish
一周热门 更多>