我是ABAP的新手。
我在阿巴普有个要求。在我的演示服务器中,有一个头文本文件,我想将数据从该文本文件上传到头表。但自定义表的结构与文本文件不同。
它包括额外的4个字段-PO_CREATED_DATE、PO_CREATED _BY、PO_CHANGED_DATE和PO_CHANGE D_BY。这些字段必须使用sy datum和sy uname从我们的报告程序中填充。
在这种情况下,我们必须检查,如果数据存在,则填充PO_CHANGED_DATE,PO_CHANGE _BY,如果数据不存在,则填充PO_CREATED_DATE、PO_CREATED _BY。
请告诉我逻辑。。。
首先将文件加载到一个内部表中,该表只有一个非常长的字段(足够长,至少包含文件中最长的一行)。然后在该itab上循环,并使用文件中使用的分隔符分割各个行。您将内容拆分为一个包含所有字段的工作区,包括文件中可能包含或不包含的4个额外字段。在将线路拆分为WA之前,请确保清理工作区域。将工作区域附加到与wa结构相同的itab,然后继续下一行。
之后,在第二个itab上循环,检查4个额外字段的首字母行。这些是您需要通过代码添加数据的行。之后,对itab中的数据做任何需要做的事情。
我使用gui_upload将文本文件头数据上传到it_input1。但是it_input1没有额外的4个字段。我声明了另一个可重写的it_header,它与header自定义表具有相同的结构。现在我要检查it_input 1中的数据是否已经存在。如果存在,请填充it_header-po_changed_date和it_header-po_changed_by,否则填充it_header-po_created_date或it_header-po_created_by
查看顶部的"Pattern"按钮。选择ABAP对象,然后按enter键。现在你可以提供你想要调用的类和方法。
CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
GUI_UPLOAD是一种静态方法。如果您是新手,这是查看必须提供哪些参数的最简单方法。通过向前导航(双击),您可以检查用于键入参数变量的签名。然后您只需要转换数据(例如SPLIT)。我只能建议使用F1帮助。
谨致问候!