[英]CHAR_HEX_CONVERSION results in ABAP dump
我需要将一个字符(具体是char20
)转换为一个十六进制值。 我想出了以下内容:
CALL FUNCTION 'CHAR_HEX_CONVERSION'
EXPORTING
input = character
IMPORTING
hexstring = character_hex.
但是,在执行此操作时,我总是会遇到运行时错误。
我究竟做错了什么?
我刚刚测试了CHAR_HEX_CONVERSION
并且我得到了我认为相同的转储:
对于语句“WRITE src TO dest”,参数位置“dest”仅支持扁平的字符类型数据对象。
在这种情况下,操作数“dest”具有非字符类型或非平面类型“X”。 当前程序是Unicode 程序。 在 Unicode 上下文中,类型“X”或不仅包含字符类型组件的结构被视为非字符类型。
我认为是使用X
类型导致了转储。 我还没有找到另一个可以进行转换的已发布功能模块(手动编码很容易,但我很懒!),但我可以建议使用以下功能模块: CRM_EI_KB_CONV_DEC_TO_HEX
。 尽管名称,它在 ECC 6.0 系统中可用,并且应该可以满足您的需求。
将传入值传递给字段符号时会发生转储,该字段符号指的是导出参数。 在代码中,它是一个赋值语句,后面添加了类型“X”,我通常不推荐这种方式。
我还对这个模块和它的功能组进行了 used-where 检查,它似乎没有被调用,至少没有被直接调用。 很可能,整个功能组从未发布。
您可以尝试改用SCMS
功能模块 - 它们还负责代码页转换。 尝试SCMS_TEXT_TO_BIN
或SCMS_STRING_TO_XSTRING
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.