现在的位置: 首页 > 综合 > 正文

SAP Attachment 附加URL

2013年10月19日 ⁄ 综合 ⁄ 共 3904字 ⁄ 字号 评论关闭

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_EKKOL_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(250INTO 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.

抱歉!评论已关闭.