ABAP FB03附件清单 创建外部凭证(URL)

代码如下:

DATA : url    TYPE string,    "地址
             dtitle TYPE string.	"标题
  DATA msg  TYPE string .
  DATA answer .
  DATA  lines  TYPE string .
  DATA folder_id          TYPE sofdk .
  DATA lt_objhead  TYPE  STANDARD  TABLE  OF soli .
  DATA lt_objcont  TYPE  STANDARD  TABLE  OF soli  WITH  HEADER  LINE .
  DATA l_obj_id    TYPE soodk .
  DATA l_obj_data  TYPE sood1 .
  DATA document_id        TYPE sofmk .
  DATA rel_doc   TYPE borident .
  DATA is_object  TYPE borident .
  DATA l_index  TYPE sy-index .
  CLEAR :msg ,answer , lines  ,folder_id  ,lt_objhead ,lt_objcont ,lt_objcont[] ,l_obj_id ,l_obj_data ,document_id  ,is_object ,rel_doc  ,l_index .


  SELECT SINGLE  * INTO @DATA(gs_out)
    FROM bkpf
    WHERE bukrs = '1000'
      AND gjahr = '2023'
      AND belnr = '0900000639'.
  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
    EXPORTING
      region    = 'B'
    IMPORTING
      folder_id = folder_id
    EXCEPTIONS
      OTHERS    = 1.

  DATA ls_objcont TYPE soli.
  DATA lt_urltab  TYPE STANDARD TABLE OF sood-objdes.
  DATA l_tab_size TYPE i.
  DATA l_url_id   TYPE so_url.

  l_url_id = url.
  CONCATENATE '&KEY&' 'WWW.BAIDU.COM'INTO ls_objcont.
  l_obj_data-objdes = dtitle. "内容的简短描述
  WHILE NOT l_url_id IS INITIAL.
    CONCATENATE '&KEY&' l_url_id(250) INTO ls_objcont.
    l_obj_data-objdes = dtitle.
    APPEND ls_objcont TO lt_objcont.
    SHIFT l_url_id LEFT BY 250 PLACES.
  ENDWHILE.

  l_obj_data-objsns = 'O'.
  l_obj_data-objla  = sy-langu.
  IF dtitle IS INITIAL.
    SPLIT url AT '/' INTO TABLE lt_urltab.
    DESCRIBE TABLE lt_urltab LINES l_tab_size.
    READ TABLE lt_urltab INDEX l_tab_size INTO dtitle.
  ENDIF.


  CALL FUNCTION 'SO_OBJECT_INSERT'
    EXPORTING
      folder_id             = folder_id
      object_type           = 'URL'
      object_hd_change      = l_obj_data
    IMPORTING
      object_id             = l_obj_id
    TABLES
      objhead               = lt_objhead
      objcont               = lt_objcont
    EXCEPTIONS
      active_user_not_exist = 35
      folder_not_exist      = 6
      object_type_not_exist = 17
      owner_not_exist       = 22
      parameter_error       = 23
      OTHERS                = 1000.

  IF sy-subrc = 0.
    document_id-foltp = folder_id-foltp.
    document_id-folyr = folder_id-folyr.
    document_id-folno = folder_id-folno.
    document_id-doctp = l_obj_id-objtp.
    document_id-docyr = l_obj_id-objyr.
    document_id-docno = l_obj_id-objno.

    CLEAR rel_doc .
    rel_doc-objkey   = document_id .
    rel_doc-objtype  =  'MESSAGE' .
    CONCATENATE gs_out-bukrs gs_out-belnr gs_out-gjahr  INTO is_object-objkey .
    is_object-objtype  =  'BKPF' .
    CALL FUNCTION 'BINARY_RELATION_CREATE'
      EXPORTING
        obj_rolea    = is_object
        obj_roleb    = rel_doc
        relationtype = 'URL' "'NOTE'
      EXCEPTIONS
        OTHERS       = 1.
    IF sy-subrc  =  0 .
      WRITE :/  'Line ' , l_index  , 'updated FI Document Note successfully' .
      COMMIT  WORK .

    ELSE .
      WRITE :/  'Line ' , l_index  , 'updated FI Document Note successfully' .
    ENDIF .

    CLEAR :lt_objhead ,lt_objcont ,lt_objcont[] ,l_obj_id ,l_obj_data ,document_id  ,is_object ,rel_doc  ,l_index .
    CLEAR gs_out .

  ENDIF.

结果如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值