ABAP中的CHAR到HEX转换 - >运行时错误

时间:2015-07-02 10:53:04

标签: sap type-conversion abap

我需要将char(Char20特定)转换为十六进制值。

我想出了以下内容:

CALL FUNCTION 'CHAR_HEX_CONVERSION'
  EXPORTING
    input     = character
  IMPORTING
    hexstring = character_hex.

但是,执行此操作时,我总是遇到运行时错误。 我做错了什么?

3 个答案:

答案 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_BINSCMS_STRING_TO_XSTRING