关于PM_HIERARCHY_CALL导出表et_hier的问题。 如何避免使用偏移量?

2020-08-25 16:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在维护旧产品。 在其功能模块之一中,调用了" PM_HIERARCHY_CALL"以获取层次结构数据并创建树结构。 它取决于导出参数" et_hier",其结构类型为" ihie_s_hier"。

ihie_s_hier上有一个名为" data"的字段,它是一个2000个字符的字段,仅将所有功能位置,物料或设备数据连接在一起。 在代码中,有很多硬编码的偏移量来解析此数据。 在s4系统中,材料编号从18个字符更改为40个字符。 这完全消除了"数据"字段以及"对象"和"前身"字段中的所有偏移量。 我知道有一些方法可以检查要使用的偏移量,但很快就会变得混乱。

我正在寻找一种更好的方法来处理这些数据并完全避免偏移。 我正在玩的一些选项:

  • 为每个材料,功能位置和设备创建一个结构,这些结构的字段按照在ihie_s_hier-data字段中串联的确切顺序排列。 然后,我可以根据对象类型将数据字段盲目地移入该结构类型。
  • 在将数据移至结构时,在处理此错误时遇到了错误。 " ...在Unicode程序中不可相互转换。" 我不知道这是因为结构的字段不完全匹配,还是因为2000字符字段永远无法直接移入结构? 我也许可以使用结构的长度来创建偏移量,以将2000个字符字段中的所有数据解析为一个单独的字段,然后将其与字段一起移入结构中。
  • 我可以在任何地方或任何地方找到一个列表,该列表向我展示如何从'PM_HIERARCHY_CALL'到et_hier的'data'字段中对字段进行排序。

另一个选择:

  • 废弃整个功能模块,然后从头开始重写它,而无需pm_hierarchy_call。 我之前已经编写了rfc来查询此数据,它只是树形结构,并确保功能与需要时间的现有代码完全匹配。 这是不得已的选择,因为它需要一些时间。 但是我越来越倾向于这一点。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在维护旧产品。 在其功能模块之一中,调用了" PM_HIERARCHY_CALL"以获取层次结构数据并创建树结构。 它取决于导出参数" et_hier",其结构类型为" ihie_s_hier"。

ihie_s_hier上有一个名为" data"的字段,它是一个2000个字符的字段,仅将所有功能位置,物料或设备数据连接在一起。 在代码中,有很多硬编码的偏移量来解析此数据。 在s4系统中,材料编号从18个字符更改为40个字符。 这完全消除了"数据"字段以及"对象"和"前身"字段中的所有偏移量。 我知道有一些方法可以检查要使用的偏移量,但很快就会变得混乱。

我正在寻找一种更好的方法来处理这些数据并完全避免偏移。 我正在玩的一些选项:

  • 为每个材料,功能位置和设备创建一个结构,这些结构的字段按照在ihie_s_hier-data字段中串联的确切顺序排列。 然后,我可以根据对象类型将数据字段盲目地移入该结构类型。
  • 在将数据移至结构时,在处理此错误时遇到了错误。 " ...在Unicode程序中不可相互转换。" 我不知道这是因为结构的字段不完全匹配,还是因为2000字符字段永远无法直接移入结构? 我也许可以使用结构的长度来创建偏移量,以将2000个字符字段中的所有数据解析为一个单独的字段,然后将其与字段一起移入结构中。
  • 我可以在任何地方或任何地方找到一个列表,该列表向我展示如何从'PM_HIERARCHY_CALL'到et_hier的'data'字段中对字段进行排序。

另一个选择:

  • 废弃整个功能模块,然后从头开始重写它,而无需pm_hierarchy_call。 我之前已经编写了rfc来查询此数据,它只是树形结构,并确保功能与需要时间的现有代码完全匹配。 这是不得已的选择,因为它需要一些时间。 但是我越来越倾向于这一点。
付费偷看设置
发送
3条回答
zhangjiyang1323
1楼-- · 2020-08-25 16:44

CL_ABAP_CONTAINER_UTILITIES => FILL_CONTAINER_C

CL_ABAP_CONTAINER_UTILITIES => READ_CONTAINER_C

我想我找到了一个解决方案,read方法使我可以将连接的字符数据传输回结构化数据。

CJones
2楼-- · 2020-08-25 16:46

在您的结构中,您仅声明了Character字段吗?

这正是SAP管理Idoc的方式

Climb_Ma
3楼-- · 2020-08-25 16:59

我知道,这很有意义。 好吧,请考虑该结构将只包含字符字段,是否在网上或树液中有一个地方可以看到这些字段如何连接到数据字段中?

我看到它的顺序可能与仅字符字段返回的stpo表(RIHSTPX)相同。 尽管我看到的是,menge会去哪里,但只有" ####",这不是menge的长度。

我真的不喜欢这种方法,除非我可以确定地确定非字符字段的字符字段和伪字段的字段顺序。

一周热门 更多>