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.