我是ABAP代码和SAP编程的新手(实际上是3天的经验,周一首先听到了所有这些事情)。我目前正在使用ABAP代码编写报告。这就像将一些数据从特定的SAP数据库移动到商业智能临时区域......
讨论主题 - 因此核心难点是SAP服务器上的某些数据采用字典结构的格式(直接,数据来自FMOIX,FMCOX等)我需要将这些数据移到内部程序运行时期间的表。我被告知在这种情况下OPEN SQL不起作用。
如果你仍然不理解我的意思,我可以提出几种方法,实际上由我的主管给出。首先是使用GET事件,比方说 获得FMOIX。 IF FMOIX-zhdlt> From_dat和FMOIX-zhdlt< to_dat的。 将FMOIX附加到itab。 万一。 问题是我对这个GET事件仍然不太清楚。它只是一个事件处理程序,还是可以遍历数据记录?
我用Google搜索了两天以上的东西给了我类似的东西 循环在FMOIX。 移动FMOIX到itab。 ENDLOOP。
那么将事务结构(如FMOIX)移动到内部表中的方法是什么,比如说内部表名是ITAB? 非常感谢您的回答。虽然我有时间,但我还是全新的。 (更重要的是,我的SAP虚拟机仍然给我带来麻烦。) 非常感谢。
答案 0 :(得分:2)
如果您的主管建议您使用GET事件,则表示您的程序(或应该)使用逻辑数据库 - 在这种情况下可能是FMF或FMF_BCS。
执行GET FMOIX
读取逻辑数据库中定义的一组字段(作为节点)。在您的GET语句下面,您可以将FMOIX用作结构,例如WRITE FMOIX-field1
。程序将(隐含地,它不是像LOOP...ENDLOOP
那样在代码中明确定义)循环遍历根据您的选择标准返回的所有行。您应该能够使用MOVE-CORRESPONDING
将每行的内容移动到适当的结构中,然后将APPEND
结构移动到您的itab。
GET上的快速链接:SAP Library
注意:这个答案有点猜测,因为我只使用过一次逻辑数据库,与那里有关于标准SELECT
和s的卷相比,文档有点薄。内部表格。
答案 1 :(得分:0)
您可以在该结构的类型中创建内部表,例如:
data: itab like table of fmoix with header line.
您可以使用此内部表填充使用选择代码的任何位置。 如:
select * from ____
into corresponding fields of itab
where zhdlt gt from_dat
and zhdlt lt to_dat.
我不确定这是你在寻找什么,但我可以告诉你创建itab的结构类型可以填充来自你的选择的所有相应数据。你不能循环FMOIX因为它不是一个表,它是一个结构。那么有没有具体的理由将数据保存在结构中?
希望它有用。
塔尔哈