[ABAP]提取EDID4-SDATA字段的前四个字符

2020-09-05 09:02发布

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

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


尊敬的ABAP专家,

我在提取iDOC数据时遇到了一些问题。

EDID4-SDATA由于其长度而麻烦。

我要从EDID4表中提取的行是->此字段的前四个字符。

我可以毫无问题地检索idoc编号(DOCNUM),并且始终显示SEGNAM ='ZEDKARCHIVE'。

您能否详细说明ABAP-Wise如何实现?

最诚挚的问候

谢里夫·鲍德

(33.8 kB)

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

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


尊敬的ABAP专家,

我在提取iDOC数据时遇到了一些问题。

EDID4-SDATA由于其长度而麻烦。

我要从EDID4表中提取的行是->此字段的前四个字符。

我可以毫无问题地检索idoc编号(DOCNUM),并且始终显示SEGNAM ='ZEDKARCHIVE'。

您能否详细说明ABAP-Wise如何实现?

最诚挚的问候

谢里夫·鲍德

(33.8 kB)
付费偷看设置
发送
5条回答
Baoming ROSE
1楼-- · 2020-09-05 09:21

你好Sherif,

创建ZEDKARCHIVE类型的工作区。 然后,将SDATA字段移到ZEDKARCHIVE工作区。 然后,工作区将把SDATA中的所有值填充到工作区的相应字段中。 最后,访问第一个字段ZEDKARCHIVE工作区域field1。 然后,您可以在字段1上执行其他子字符串功能。

高级伪代码,

数据:wa_ZEDKARCHIVE类型ZEDKARCHIVE,

       lv_sdata类型为EDID4-sdata。


 案例EDID4-segnam

 当EDID4-segnam ='ZEDKARCHIVE'时。

   wa_ZEDKARCHIVE = lv_sdata

  获取wa_ZEDKARCHIVE-field1 

干杯!

Isuru

悻福寶寶
2楼-- · 2020-09-05 09:12

即使您已经回答了这个问题,我也要指出IDoc数据应与其他记录区别对待。 由于段和IDoc结构可以更改,因此数据以"原始"字符串存储在数据库中。 在IDoc方案中,数据本身(有意地)与其结构定义分开。 这就是为什么我们应该读取数据并将其放入与段定义相对应的结构中的原因。 在SE11中,您会找到一个与段名相同的结构(在本例中为ZEDKARCHIVE)。

我相信还有一些功能模块甚至可以为您完成所有读取和解析操作,但是

无论哪种方式,请不要将IDoc数据视为纯文本。 它与"前4个字符"无关,您需要查找一个细分字段(=细分结构中的字段)。

小熊yu生菜
3楼-- · 2020-09-05 09:26

非常简单-早期ABAP培训中的基本MOVE语法:

 DATA:l_edi_sdata TYPE edi_sdata,
       l_edi_dtint2 TYPE edi_dtint2,
       wa_sdata(2000)C型,
       wa_target TYPE char04。

 *从数据库填充L_EDI_SDATA,然后:
   将l_edi_sdata移动到wa_sdata。
   将wa_sdata(4)移动到wa_target。
 * 要么
   将l_edi_sdata移动到wa_target。  "预计会被截断。

Isuru,您好

请支持SDATA字段提取吗?

这实际上是我面临的症结所在。

关于

谢里夫

黑丝骑士
5楼-- · 2020-09-05 09:24
谢里夫·巴尔德您应该同时输入两个代码 以及您得到的简短转储,以便我们可以更好地帮助您。

一周热门 更多>