如何读取目录,然后在InfoPackage中使用每个文件名?

2020-09-15 22:25发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个奇怪的项目,需要专家帮助...

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

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


我有一个奇怪的项目,需要专家帮助。 我确定我不是第一个尝试这样做的人。

1)100多个用户各自将文件拖放到名称为'File ####。xlsx'的公共目录中,其中'####'是用户所在的区域

2)在流程链中,我需要使用Abap(我认为)获得目录文件名的列表

3)然后,我需要遍历文件名列表,并使用InfoPackage或DTP中的每个文件名来加载文件的内容。

1条回答
吹牛啤
2020-09-15 23:06

库尔特

不是一个非同寻常的要求。 信息包比DTP更直接。

许多方法可以做到-但是这是一种方法:

流程链可以调用执行以下操作的程序:

1)读取文件列表的指定目录(以下示例)。

2)使用BAPI_IPAK_GETDETAIL,然后使用BAPI_IPAK_CHANGE更改链中每个信息包的信息包文件参数。 (BW/4HANA系统不支持这些功能模块,因为您需要其他解决方案。)

3)使用RSPC_API_CHAIN_START函数调度链,并在等待循环中使用RSPC_API_CHAIN_GET_STATUS对其进行监视,直到完成,然后移至下一组文件,直到所有文件加载完毕,并将结果报告回调用链...


要从文件系统中读取文件,可以围绕这些内核函数包装类或函数并返回列表:

 *准备从文件系统读取
     只是为了确保致电'C_DIR_READ_FINISH'"
            id'ERRNO'字段ls_file-errno
            id'ERRMSG'字段ls_file-errmsg。

 *评估目录中是否存在文件模式的文件
     致电" C_DIR_READ_START"
            id'DIR'字段id_longpath
            id"文件"字段" *。*"
            id'ERRNO'字段ls_file-errno
            id'ERRMSG'字段ls_file-errmsg。
   如果sy-subrc ne 0。
 * ...异常处理:未找到任何内容
   万一。

 *读取所有与文件模式匹配的文件
     做。
       呼叫" C_DIR_READ_NEXT"
            id'TYPE'字段ls_file-type
            id'NAME'字段ls_filen-filename
            id'ERRNO'字段ls_file-errno
            id'ERRMSG'字段ls_file-errmsg。
       如果sy-subrc ne 0。
         出口。
       万一。
 * ...根据要求将代码添加到过滤器列表中

一周热门 更多>