Download presentation
Presentation is loading. Please wait.
Published byLeslie Watts Modified 5년 전
1
GOS – In Background GOS(Generic Object Services) – In Backgroud
a. 구매요청(Tcode: ME51N) 시 GOS를 이용하여 첨부파일이나 제품의 도면을 Backgroud로 첨부할 수 있는 예제를 소개합니다. b. 도면뿐만 아니라 구매요청 시 관련 문서를 첨부할 수도 있습니다. 상품코드와 도면번호를 DMS(Tcode: CV01N)에서 연결하면 프로그램을 이용하여 자동으로 첨부할 수 있습니다. c. 관련테이블 - SRGBTBREL : Relationships in GOS Environment - SOOD : SAPoffice: Object definition d. 참고 사이트 ☞ 구매요청에 도면 파일이 첨부된 예 4
2
☞ GOS를 이용하여 Background 작업으로 파일을 첨부하는 예제( Subroutine으로 생성함)
인터널 테이블에서 LOOP를 이용하여 작업하여 여러 건의 구매요청에 도면첨부 가능 FORM ATTCH_FILE_TO_GOS USING P_BANFN P_DOKNR CHANGING P_ATTCH P_INSTID. INCLUDE : <CNTN01>. CLASS CL_BINARY_RELATION DEFINITION LOAD. CLASS CL_OBL_OBJECT DEFINITION LOAD. DATA: LV_FILE TYPE STRING, LV_FILELENGTH TYPE I, LV_XFNAME(255), LV_XDOCTYPE TYPE C LENGTH 3 VALUE 'pdf'. DATA: LV_FULLNAME LIKE RLGRAP-FILENAME, LV_FILEPATH LIKE RLGRAP-FILENAME. DATA: P_BOTYPE LIKE OBL_S_PBOR-TYPEID VALUE 'BUS2105', " e.g. ‘구매요청' P_DOCTY LIKE OBL_S_PBOR-TYPEID VALUE 'MESSAGE', P_MSGTYP LIKE SOFM-DOCTP VALUE 'ATTA', “첨부파일 P_RELTYP LIKE MDOBLREL-RELTYPE VALUE 'ATTA'. TYPES: BEGIN OF TY_MESSAGE_KEY, FOLTP TYPE SO_FOL_TP, FOLYR TYPE SO_FOL_YR, FOLNO TYPE SO_FOL_NO, DOCTP TYPE SO_DOC_TP, DOCYR TYPE SO_DOC_YR, DOCNO TYPE SO_DOC_NO, FORTP TYPE SO_FOR_TP, FORYR TYPE SO_FOR_YR, FORNO TYPE SO_FOR_NO, END OF TY_MESSAGE_KEY. DATA : LV_MESSAGE_KEY TYPE TY_MESSAGE_KEY. DATA : LO_MESSAGE TYPE SWC_OBJECT. DATA : LT_DOC_CONTENT TYPE STANDARD TABLE OF SOLIX WITH HEADER LINE.
3
SWC_CREATE_OBJECT LO_MESSAGE 'MESSAGE' LV_MESSAGE_KEY.
예제 P_DOCTY = 'MESSAGE'. CASE P_RELTYP. WHEN 'URL'. P_MSGTYP = 'URL'. WHEN 'NOTE' OR 'PNOT'. P_MSGTYP = 'RAW'. WHEN 'ATTA' “파일첨부 P_MSGTYP = 'EXT'. WHEN OTHERS. EXIT. ENDCASE. SWC_CREATE_OBJECT LO_MESSAGE 'MESSAGE' LV_MESSAGE_KEY. CONCATENATE 'C:\PSGOSUPLOAD\' P_DOKNR '.pdf' INTO LV_FILE. CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST EXPORTING FILE = LV_FILE RECEIVING RESULT = RESULT. IF RESULT <> 'X' "파일이 없으면 넘어감 ENDIF. CALL FUNCTION 'GUI_UPLOAD‘ “PC에서 업로드 FILENAME = LV_FILE FILETYPE = 'BIN' IMPORTING FILELENGTH = LV_FILELENGTH TABLES DATA_TAB = LT_DOC_CONTENT.
4
SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTTITLE' P_DOKNR. “첨부문서명
예제 SWC_CONTAINER LT_MESSAGE_CONTAINER. SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTTITLE' P_DOKNR. “첨부문서명 SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTLANGU' '3'. SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'NO_DIALOG' 'X'. SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTNAME' '메시지'. SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTTYPE' LV_XDOCTYPE. SWC_SET_TABLE LT_MESSAGE_CONTAINER 'CONTENT_HEX' LT_DOC_CONTENT. SWC_SET_ELEMENT LT_MESSAGE_CONTAINER 'DOCUMENTSIZE' LV_FILELENGTH. SWC_CALL_METHOD LO_MESSAGE 'CREATE' LT_MESSAGE_CONTAINER. SWC_REFRESH_OBJECT LO_MESSAGE. SWC_GET_OBJECT_KEY LO_MESSAGE LV_MESSAGE_KEY. DATA: LO_IS_OBJECT_A TYPE SIBFLPORB. LO_IS_OBJECT_A-INSTID = P_BANFN. LO_IS_OBJECT_A-TYPEID = P_BOTYPE. LO_IS_OBJECT_A-CATID = 'BO'. DATA: LO_IS_OBJECT_B TYPE SIBFLPORB. LO_IS_OBJECT_B-INSTID = LV_MESSAGE_KEY. LO_IS_OBJECT_B-TYPEID = P_DOCTY. LO_IS_OBJECT_B-CATID = 'BO'. CALL METHOD CL_BINARY_RELATION=>CREATE_LINK EXPORTING IS_OBJECT_A = LO_IS_OBJECT_A IS_OBJECT_B = LO_IS_OBJECT_B IP_RELTYPE = P_RELTYP. COMMIT WORK. P_ATTCH = '첨부완료'. P_INSTID(46) = LV_MESSAGE_KEY(46). ENDFORM " ATTCH_FILE_TO_GOS
5
2. GOS(Generic Object Services) – 구매요청 시 GOS 테이블 사용 결과 확인
a. SOOD 테이블 - SAPoffice: 오브젝트 정의 - 문서 클래스 코드(OBJTP): EXT – PC문서 - KPRO(Knowledge Provider) 의 참조 :SAP Note SAPoffice: Where are documents physically stored? b. SRGBTBREL 테이블 - GOS 환경의 관계 구매요청번호 첨부파일명 저장방법 (KPRO를 사용)
Similar presentations