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

2020-08-25 16:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在维护旧产品。 在其功能模块...

         点击此处--->   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来查询此数据,它只是树形结构,并确保功能与需要时间的现有代码完全匹配。 这是不得已的选择,因为它需要一些时间。 但是我越来越倾向于这一点。