使用ABAP代码返回S/4HANA Material上维护的Attachment明细

在事务码 MM02里为ID为16的material维护附件:

如何使用ABAP代码获得如下附件的名称和文件内容?

REPORT zgos_api.

DATA ls_appl_object     TYPE gos_s_obj.

DATA lo_gos_api         TYPE REF TO cl_gos_api.

DATA lt_attachment_list TYPE gos_t_atta.

DATA lt_role_filter     TYPE gos_t_rol.

DATA ls_attachment   TYPE gos_s_atta.

DATA ls_attachm_cont TYPE gos_s_attcont.

DATA ls_atta_key     TYPE gos_s_attkey.

DATA: lv_id  TYPE matnr VALUE '16',

      lt_att TYPE TABLE OF sibflporb.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

  EXPORTING

    input  = lv_id

  IMPORTING

    output = lv_id.

ls_appl_object-typeid = 'BUS1001006'.

ls_appl_object-instid = lv_id.

ls_appl_object-catid  = 'BO'.

START-OF-SELECTION.

  TRY.

      lo_gos_api = cl_gos_api=>create_instance( ls_appl_object ).

      APPEND cl_gos_api=>c_attachment TO lt_role_filter.

      lt_attachment_list = lo_gos_api->get_atta_list( lt_role_filter ).

    CATCH cx_gos_api INTO DATA(error).

      WRITE:/ error->get_text( ).

      RETURN.

  ENDTRY.

  DATA: ls_key TYPE gos_s_attkey.

  LOOP AT lt_attachment_list ASSIGNING FIELD-SYMBOL(<id>).

    ls_key-atta_id = <id>-atta_id.

    ls_key-atta_cat = <id>-atta_cat.

    DATA(ls) = lo_gos_api->get_al_item( ls_key ).

  ENDLOOP.

执行结果:

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏转载gongluck的CSDN博客

后台进程(守护进程)自动备份PostgreSQL数据库

从当前目录中读取ini配置文件的登录数据库必要的参数,登录数据库后获取两次备份的间隔天数,然后启动一个线程隔1分钟检查一下是否需要备份。 之前查资料查了好久,才...

2754
来自专栏mwangblog

开始使用MySQL

1532
来自专栏Jerry的SAP技术分享

如何利用BAPI SD_SALESDOCUMENT_CHANGE修改一个Sales Order的字段

假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE:

373
来自专栏跟着阿笨一起玩NET

SQL将本地图片文件插入到数据库

992
来自专栏杨建荣的学习笔记

oracle坏块修复实例

最近几天发现库里有坏块了,环境是11gR2, linux平台的64位的库。以下是我的修复办法,基于dbms_repair做的在线修复,也可以基于备份rman来修...

3209
来自专栏闵开慧

phpmyadmin中导入文件时显示 No database selected

错误 SQL 查询: -- 数据库: `7789_pay` -- -- -------------------------------------...

3856
来自专栏Netkiller

数据库安全·为数据安全而分库

以下节选择《Netkiller Architect 手札》地址 http://www.netkiller.cn/architect/ 接下来几周的话题是数据库安...

3348
来自专栏乐享123

Mysql Cheat

1576
来自专栏互联网开发者交流社区

SQL一次查出相关类容避免长时间占用表(上)

1252
来自专栏lgp20151222

Mysql 如何设置字段自动获取当前时间,附带添加字段和修改字段的例子

ALTER TABLE `table_name` ADD COLUMN  `CreateTime` datetime NULL DEFAULT CURRENT...

811

扫码关注云+社区