SAP Attachment 附加URL

DATA L_RFCDEST  TYPE RFCDEST .
CASE SY -MANDT .
   WHEN  '130' .
    L_RFCDEST  'A' .
   WHEN  '500' .
    L_RFCDEST  'B' .
   WHEN  '800' .
    L_RFCDEST  'C' .
   WHEN  OTHERS .
     CLEAR L_RFCDEST .
ENDCASE .
IF L_RFCDEST  IS  NOT  INITIAL .
   IF SY -TCODE  EQ  'ME33'  OR SY -TCODE  EQ  'ME33K'  OR SY -TCODE  EQ  'ME32'  OR SY -TCODE  EQ  'ME32K' .
     DATA L_FLAG .
     DATA L_URL  TYPE STRING .
     DATA LS_URL  TYPE Z02MM_PO_URL .
     DATA :LS_EKKO  TYPE EKKO .
     DATA IS_OBJECT  TYPE BORIDENT .
     DATA :LS_SOOD  TYPE SOOD .
     CLEAR :LS_EKKO L_FLAG ,LS_URL  ,L_URL ,IS_OBJECT ,LS_SOOD .

     SELECT  SINGLE EBELN  INTO LS_EKKO  FROM EKKO  WHERE EBELN  EKKO -EBELN .
     IF SY -SUBRC  NE  0 .
      L_FLAG  'X' .
     ELSE .
       SELECT  SINGLE FROM Z02MM_PO_URL  INTO LS_URL   WHERE EBELN  EKKO -EBELN .
       IF SY -SUBRC  EQ  0 .
        L_FLAG  'X' .
       ENDIF .
     ENDIF .
     IF  L_FLAG  IS  INITIAL .
       DATA LT_OBJHEAD  TYPE  STANDARD  TABLE  OF SOLI .
       DATA LT_OBJCONT  TYPE  STANDARD  TABLE  OF SOLI .
       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 .
       DATA L_OBJ_ID    TYPE SOODK .
       DATA L_OBJ_DATA  TYPE SOOD1 .
       DATA FOLDER_ID          TYPE SOFDK .
       DATA REL_DOC   TYPE BORIDENT .
       DATA DOCUMENT_ID        TYPE SOFMK .


       CALL  FUNCTION  'ZSRM_CONTRACT_ATTACHMENT_RFC' DESTINATION L_RFCDEST
         EXPORTING
          I_CONTRACT  EKKO -EBELN
         IMPORTING
          E_URL       L_URL .
       IF L_URL  IS  NOT  INITIAL .
         CALL  FUNCTION  'SO_FOLDER_ROOT_ID_GET'
           EXPORTING
            REGION     'B'
           IMPORTING
            FOLDER_ID  FOLDER_ID
           EXCEPTIONS
             OTHERS     1 .


        L_URL_ID  L_URL .



         WHILE  NOT L_URL_ID  IS  INITIAL .
           CONCATENATE  '&KEY&' L_URL_ID ( 250 INTO LS_OBJCONT .
           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 .

         CONCATENATE  'Scancopy Of Contract' EKKO -EBELN  INTO L_OBJ_DATA -OBJDES   SEPARATED  BY SPACE .

         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' .
          IS_OBJECT -OBJKEY  EKKO -EBELN .
          IS_OBJECT -OBJTYPE  'BUS2014' .
           CALL  FUNCTION  'BINARY_RELATION_CREATE'
             EXPORTING
              OBJ_ROLEA     IS_OBJECT
              OBJ_ROLEB     REL_DOC
              RELATIONTYPE  'URL'
             EXCEPTIONS
               OTHERS        1 .
           IF SY -SUBRC  0 .
            LS_URL -EBELN  EKKO -EBELN .
             INSERT Z02MM_PO_URL  FROM LS_URL .
             COMMIT  WORK .
             SELECT  SINGLE FROM SOOD  INTO LS_SOOD  WHERE OBJTP  DOCUMENT_ID -DOCTP  AND OBJYR  DOCUMENT_ID -DOCYR  AND OBJNO  DOCUMENT_ID -DOCNO .
            LS_SOOD -OWNNO  LS_SOOD -CRONO  '000000000001' .
            LS_SOOD -OWNNAM  LS_SOOD -CRONAM  'ADMIN' .
             UPDATE SOOD  FROM LS_SOOD .
             COMMIT  WORK .
           ELSE .
             ROLLBACK  WORK .
           ENDIF .
         ENDIF .
       ENDIF .
     ENDIF .
   ENDIF .
ENDIF .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值