使用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 条评论
登录 后参与评论

相关文章

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

关于奇怪的并行进程分析(三)(r6笔记第47天)

在前两篇的基础上,对于一个环境中存在的奇怪并行进程问题进行了初步的分析。 初步排除了是通过scheduler的job运行导致的,一方面因为运行的时间会有延迟,甚...

2774
来自专栏数据和云

书接上文:薛定谔的猫是如何诞生的?

编辑手记:注重细节,是DBA必要的基本素质要求。 书接上文(参考:空与非空 - 数据库中也有薛定谔的猫?),其实CBO的判断本身是没有问题的,问题在于,为什...

29310
来自专栏数据和云

循序渐进:Oracle 12.2的Sharding基础概念解读

张大朋(Lunar)Oracle 工程师 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 O...

2854
来自专栏乐沙弥的世界

PL/SQL --> DBMS_DDL包的使用

为了便于建立性能良好的PL/SQL程序,Oracle提供了大量的系统包供使用。Oracle提供的这些包扩展并增强了数据库的一些功能,以及突

1014
来自专栏白驹过隙

MySQL - MySQL++在c++11环境下接口设计

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

走索引扫描的慢查询(r3笔记45天)

今天查看awr报告的时候,发现一条sql语句异常。 Elapsed Time (s) Executions Elapsed Time per Exec (s)...

3668
来自专栏乐沙弥的世界

收集统计信息导致索引被监控

      对于索引的调整,我们可以通过Oracle提供的索引监控特性来跟踪索引是否被使用。尽管该特性并未提供索引使用的频度,但仍不失为我们参考的方式之一。然而...

642
来自专栏乐沙弥的世界

Oracle大表清理truncate .. reuse storage

a、通过上述测试,当使用reuse storage与普通方式并无明显差异 b、truncate table 是ddl操作,无法回滚 c、尽管无明显性能差...

1084
来自专栏白驹过隙

MySQL - MySQL++在c++11环境下接口设计

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

SQL Server通过整理索引碎片和重建索引提高速度

本文章转载:http://database.51cto.com/art/201108/282408.htm

2201

扫码关注云+社区