这两天需要实现一个idoc的查询功能,也就是类似于WE09那样的功能能,于是学习了一下如何实现。简单记录如下:
一,Idoc的Control record信息存储在EDIDC这个表中,从这个表中我们可以根据IDoc number,Status of IDoc,IDoc Type,Message type,Partner Number等信息读取idoc。
二,通过SEGMENT_READ这个function module读取segment信息。该function module返回一个EDISEGSTRU类型的segment结果的table。在该table中存放着segment下包含了那些field、每个field的长度等等等信息。
三,通过 IDOC_READ_COMPLETELY这个function module可以读取idoc的数据信息。该function module以iodc number为参数返回一个int_edidd的table。在该table中,每一个segment最为一行信息输出,segment下所有field的值都存储在sdata这一字段中。可以根据第二步获取的每个field在segment中的长度以及起始位置读取每个segment下field的值。
大概就是以上一些知识点吧,我也是通过查看WE09的原代码才知道的,还没有深入的研究,就只记录这些了!