将String转换为N型-标准但非直观!

2020-08-16 20:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)好的,我们知道,如果您有数字类型...

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

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


好的,我们知道,如果您有数字类型并尝试为其分配字符串值,则任何非数字都将被忽略。 即

数据长度类型n长度4。
 数据mystring TYPE字符串值'DI01'.mynum = mystring。

mynum现在将包含值0001。

我们还知道,当您在带有键的内部表上使用READ时,提供的值将转换为键的类型。 我有一个内部表(HASHED),键入四个长度的数字字段。 它的记录为0001。我很困惑这段时间

使用表键numckey = mystring将表mytable读入DATA(record)。
具有sy-subrc = 0,并返回了一个record-numckey ='0001'的记录。

您将如何处理?
  1. 将哈希表键改为字符/字符串字段吗?
  2. 检查mystring仅包含数字吗?
  3. 还有什么?
8条回答
SAP砖家
2020-08-16 20:26

我喜欢您的解决方案-(>>已删除-尽管可能会让人感到惊讶,因为blah的类型为N--DELETED <<(根据马修评论)):

 如果是CO | 0123456789 |。 或'0123456789'

您也可以这样做(但我认为这比您的解决方案还差):

 TYPES:ty_n TYPE n LENGTH 4,
         ty开始
           TYPE ty_n键,
         ty of ty,
         tt使用"唯一键"键入哈希表。
 字段符号类型c。
 数据:mykey TYPE ty_n,
       mystring TYPE字符串。

 DATA(mytable)=值tt((key ='0001'))。

 mystring ='DI01'。
 将mykey分配到铸造。
  = mystring。  " <====类型N的mykey将包含无效值'DI01'

 使用表键key = mykey读取表mytable,不传送任何字段。

 确认sy-subrc <> 0。
 

一周热门 更多>