SAP-ABAP 读取billing document以及其它订单附件的实例(GOS)

 在SAP中不管是采购订单、销售订单、交货单还是发票等,左上角都有一个按钮用来操作附件,包括对它的创建删除更新等。这个附件是一种Generic的,存储在服务器的,我们在获取的时候需要通过链接来下载。这其实就是SAP的一种GOS(Generic Object Service)技术。

要达到这种目的需要用到两个关键FM

BDS_GOS_CONNECTIONS_GET:(Business Document Service: Object Links)获取GOS的链接,它有两个必输import,其一是CLASSNAME,用来标注Business type,指定你的订单是采购订单还是销售订单等。其二是OBJKEY,即传入你的订单号

至于说如何确定CLASSNAME的值可以通过domain里面的 Value Table在(BDS_LOCL)来去查看

('BUS2012' :"用来标识采购订单) 

SO_DOCUMENT_READ_API1:SAPoffice: (View object from folder using RFC)通过以上GOS链接读取具体的附件的具体信息,文件名,文件内容以及Binary Content等,按需获取

following code

  DATA lv_buffer TYPE xstring .
  DATA lv_len TYPE i .
  DATA lv_string TYPE string .
  DATA:lv_logical_system  LIKE  bapibds01-log_system,
       classname          LIKE  bapibds01-classname,
       gos_objkey         LIKE  swotobjid-objkey,
       lt_gos_connections LIKE bdn_con OCCURS 1 WITH HEADER LINE.
  DATA:lv_id             TYPE sofolenti1-doc_id,
       ls_doc_data       TYPE sofolenti1,
       lt_object_header  TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,
       lt_object_content TYPE STANDARD TABLE OF solisti1 WITH HEADER LINE,
       lt_hex            TYPE STANDARD TABLE OF solix WITH HEADER LINE.
  CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
    IMPORTING
      own_logical_system                = lv_logical_system
    EXCEPTIONS
      own_lv_logical_system_not_defined = 1
      OTHERS                            = 2.
  .
  gos_objkey = '0000130597'.

  CALL FUNCTION 'BDS_GOS_CONNECTIONS_GET'
    EXPORTING
      logical_system     = lv_logical_system
      classname          = 'VBRK'  "billing document
      objkey             = gos_objkey
      client             = sy-mandt
    TABLES
      gos_connections    = lt_gos_connections
    EXCEPTIONS
      no_objects_found   = 1
      internal_error     = 2
      internal_gos_error = 3
      OTHERS             = 4.
  LOOP AT lt_gos_connections.

    lv_id = lt_gos_connections-loio_id.
    CALL FUNCTION 'SO_DOCUMENT_READ_API1'
      EXPORTING
        document_id                = lv_id
      IMPORTING
        document_data              = ls_doc_data
      TABLES
        object_header              = lt_object_header
        object_content             = lt_object_content
        contents_hex               = lt_hex
      EXCEPTIONS
        document_id_not_exist      = 1
        operation_no_authorization = 2
        x_error                    = 3
        OTHERS                     = 4.
  ENDLOOP.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gong JX

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值