我是ABAP的新手。
我在abap中有一个要求。在我的演示服务器中,有头文本文件,我想将该文本文件中的数据上传到Header表。但是自定义表与文本文件具有不同的结构。 它包括额外的4个字段 - PO_CREATED_DATE,PO_CREATED_BY,PO_CHANGED_DATE,PO_CHANGED_BY 。 这些字段必须使用sy-datum和sy-uname从我们的报告程序中填充。 在这种情况下,我们必须检查,如果数据存在,则填充 PO_CHANGED_DATE,PO_CHANGED_BY ,如果数据不存在,则填充 PO_CREATED_DATE,PO_CREATED_BY 。请让我知道逻辑......
答案 0 :(得分:0)
首先将文件加载到内部表中,该表只有一个非常长的字段(足够长,至少包含文件中可能的最长行)。然后遍历itab并使用文件中使用的分隔符拆分各行。您将内容拆分为包含所有字段的工作区,包括可能包含或不包含在文件中的4个额外字段。在将线分成WA之前,务必清除工作区域。将工作区附加到具有与wa相同结构的itab,然后继续下一行。
之后,循环显示第二个itab并检查4个额外字段的初始行。这些是您需要按代码添加数据的行。之后,对itab中的数据执行任何操作。
答案 1 :(得分:0)
我使用gui_upload将文本文件头数据上传到it_input1但是 it_input1 没有额外的4个字段。我声明了另一个 it_header ,其结构与标题自定义表。现在我要检查it_input 1中的数据是否已存在。如果存在,请填充 it_header-po_changed_date 和 it_header-po_changed_by ,或者 it_header-po_created_date 和 it_header-po_created_by。
答案 2 :(得分:0)
看看"模式"按钮在上面。选择ABAP对象按输入。 现在您可以提供要调用的类和方法。
<强> CL_GUI_FRONTEND_SERVICES =&GT; GUI_UPLOAD 强>
GUI_UPLOAD 是一种静态方法。如果您是新手,这是查看必须提供哪些参数的最简单方法。使用向前导航(双击),您可以检查签名以输入参数变量。 然后,您只需转换数据(例如 SPLIT )。我只能建议使用F1-Help。
亲切的问候!