我需要将char(Char20特定)转换为十六进制值。
我想出了以下内容:
CALL FUNCTION 'CHAR_HEX_CONVERSION'
EXPORTING
input = character
IMPORTING
hexstring = character_hex.
但是,执行此操作时,我总是遇到运行时错误。 我做错了什么?
答案 0 :(得分:2)
将incomming值传递给fieldsymbol时会发生转储,fieldsymbol引用导出参数。在代码中,它是一个后面添加了类型“X”的赋值语句,我通常不会这样推荐。
我还对这个模块和它的函数组做了一个used-where检查,看起来似乎无处调用,至少不是直接调用。很可能,整个功能组从未发布过。
答案 1 :(得分:1)
我刚刚测试了CHAR_HEX_CONVERSION
,我得到了我认为同样的转储:
声明" WRITE src TO dest"只有扁平,字符型 参数位置支持数据对象" dest"。
在这种情况下,操作数" dest"有非字符类型或 非扁平型" X"。当前程序是Unicode程序。在里面 Unicode上下文,类型' X'或不仅含有的结构 字符类型的组件被视为非字符类型。
我认为使用X
类型会导致转储。我还没有找到另一个可以进行转换的已发布功能模块(手动编码很容易,但我很懒!),但我可以建议使用以下功能模块:CRM_EI_KB_CONV_DEC_TO_HEX
。尽管它在ECC 6.0系统中可以使用,但它应该可以满足您的需求。
答案 2 :(得分:1)
您可以尝试使用SCMS
功能模块 - 它们也会处理代码页转换。试试SCMS_TEXT_TO_BIN
或SCMS_STRING_TO_XSTRING
。