FUNCTION ZMMK_BAPI_PR_CREATE.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(ACCTASSCAT) LIKE BAPIMEREQITEMIMP-ACCTASSCAT
*" REFERENCE(MATERIAL) LIKE BAPIMEREQITEMIMP-MATERIAL
*" REFERENCE(SHORT_TEXT) LIKE BAPIMEREQITEMIMP-SHORT_TEXT
*" REFERENCE(QUANTITY) LIKE BAPIMEREQITEMIMP-QUANTITY
*" REFERENCE(UNIT) LIKE BAPIMEREQITEMIMP-UNIT
*" REFERENCE(DELIV_DATE) LIKE BAPIMEREQITEMIMP-DELIV_DATE
*" REFERENCE(PLANT) LIKE BAPIMEREQITEMIMP-PLANT
*" REFERENCE(ORDERID) LIKE BAPIMEREQACCOUNT-ORDERID
*" REFERENCE(PREQ_PRICE) LIKE BAPIMEREQITEMIMP-PREQ_PRICE
*" REFERENCE(PREQ_ITEM) LIKE BAPIMEREQITEMIMP-PREQ_ITEM
*" EXPORTING
*" VALUE(NUMBER) LIKE BAPIMEREQHEADER-PREQ_NO
*" REFERENCE(GV_RESULT) TYPE CHAR1
*" REFERENCE(GV_MESSAGE) TYPE BAPI_MSG
*" TABLES
*" RETURN STRUCTURE BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
DATA : S_HEADER LIKE BAPIMEREQHEADER OCCURS 0 WITH HEADER LINE.
S_HEADER-PR_TYPE = 'NB'.
* S_HEADER-CTRL_IND = 'X'.
* S_HEADER-GENERAL_RELEASE = 'X'.
* S_HEADER-CREATE_IND = 'B'.
APPEND S_HEADER.
DATA : S_HEADERX LIKE BAPIMEREQHEADERX OCCURS 0 WITH HEADER LINE.
S_HEADERX-PR_TYPE = 'X'.
* S_HEADER-CTRL_IND = 'X'.
* S_HEADER-GENERAL_RELEASE = 'X'.
* S_HEADERX-CREATE_IND = 'X'.
APPEND S_HEADERX.
DATA : S_ITEM LIKE BAPIMEREQITEMIMP OCCURS 0 WITH HEADER LINE.
S_ITEM-PREQ_ITEM = PREQ_ITEM.
S_ITEM-ACCTASSCAT = 'Z'.
S_ITEM-MATERIAL = MATERIAL.
S_ITEM-SHORT_TEXT = SHORT_TEXT.
S_ITEM-QUANTITY = QUANTITY.
S_ITEM-UNIT = UNIT.
S_ITEM-DELIV_DATE = DELIV_DATE.
S_ITEM-PLANT = PLANT.
S_ITEM-PREQ_PRICE = PREQ_PRICE.
APPEND S_ITEM.
DATA : S_ITEMX LIKE BAPIMEREQITEMX OCCURS 0 WITH HEADER LINE.
S_ITEMX-PREQ_ITEM = PREQ_ITEM.
S_ITEMX-PREQ_ITEMX = 'X'.
S_ITEMX-ACCTASSCAT = 'X'.
S_ITEMX-MATERIAL = 'X'.
S_ITEMX-SHORT_TEXT = 'X'.
S_ITEMX-QUANTITY = 'X'.
S_ITEMX-UNIT = 'X'.
S_ITEMX-DELIV_DATE = 'X'.
S_ITEMX-PLANT = 'X'.
S_ITEMX-PREQ_PRICE = 'X'.
APPEND S_ITEMX.
DATA : S_ITEMEXP LIKE BAPIMEREQITEM OCCURS 0 WITH HEADER LINE.
S_ITEMEXP-PREQ_ITEM = PREQ_ITEM.
*S_ITEMEXP-DOC_TYPE = 'NB'.
APPEND S_ITEMEXP.
DATA : S_ACCOUNT LIKE BAPIMEREQACCOUNT OCCURS 0 WITH HEADER LINE.
S_ACCOUNT-PREQ_ITEM = PREQ_ITEM.
S_ACCOUNT-SERIAL_NO = '01'.
S_ACCOUNT-ORDERID = ORDERID.
S_ACCOUNT-QUANTITY = QUANTITY.
APPEND S_ACCOUNT.
DATA : S_ACCOUNTX LIKE BAPIMEREQACCOUNTX OCCURS 0 WITH HEADER LINE.
S_ACCOUNTX-PREQ_ITEM = PREQ_ITEM.
S_ACCOUNTX-SERIAL_NO = '01'.
S_ACCOUNTX-PREQ_ITEMX = 'X'.
S_ACCOUNTX-ORDERID = 'X'.
S_ACCOUNTX-QUANTITY = 'X'.
APPEND S_ACCOUNTX.
CALL FUNCTION 'BAPI_PR_CREATE'
EXPORTING
PRHEADER = S_HEADER
PRHEADERX = S_HEADERX
* VERSIONS =
* TESTRUN =
IMPORTING
NUMBER = NUMBER
* PRHEADEREXP =
TABLES
RETURN = RETURN
PRITEM = S_ITEM
PRITEMX = S_ITEMX
PRITEMEXP = S_ITEMEXP
PRACCOUNT = S_ACCOUNT
PRACCOUNTX = S_ACCOUNTX .
IF RETURN[] IS INITIAL.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
TYPE = SY-MSGTY
CL = SY-MSGID
NUMBER = SY-MSGNO
PAR1 = SY-MSGV1
PAR2 = SY-MSGV2
PAR3 = SY-MSGV3
PAR4 = SY-MSGV4
IMPORTING
RETURN = RETURN
EXCEPTIONS
OTHERS = 1.
ENDIF.
READ TABLE RETURN WITH KEY TYPE = 'S'.
IF sy-subrc <> 0.
READ TABLE return WITH KEY type = 'E'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
GV_RESULT = RETURN-TYPE.
GV_MESSAGE = RETURN-MESSAGE.
ENDFUNCTION.
ABAP SAP
2015년 4월 10일 금요일
2015년 4월 9일 목요일
2015년 4월 5일 일요일
2015년 3월 9일 월요일
GOS download
DATA: GT_LIST LIKE SRGBTBREL OCCURS 0 WITH HEADER LINE.
DATA: LS_DOCUMENT_DATA LIKE SOFOLENTI1,
LT_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_CONTENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_PARA LIKE SOPARAI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_PARB LIKE SOPARBI1 OCCURS 0 WITH HEADER LINE,
LT_ATTACHMENT_LIST LIKE SOATTLSTI1 OCCURS 0 WITH HEADER LINE,
LT_RECEIVER_LIST LIKE SORECLSTI1 OCCURS 0 WITH HEADER LINE,
LT_CONTENTS_HEX LIKE SOLIX OCCURS 0 WITH HEADER LINE,
OBJCONT_TAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: LV_DOCID TYPE SOFOLENTI1-DOC_ID,
LV_PATH(255),
LV_STR1(255),
LV_STR2(255),
LV_TYPE(3).
*&---------------------------------------------------------------------*
*& MACRO *
*&---------------------------------------------------------------------*
DEFINE M_CLS.
CLEAR &1. REFRESH &1.
END-OF-DEFINITION.
SELECT * INTO TABLE GT_LIST
FROM SRGBTBREL
WHERE TYPEID_A = 'EQUI'.
LOOP AT GT_LIST.
M_CLS: LT_OBJECT_HEADER,
LT_OBJECT_CONTENT,
LT_OBJECT_PARA,
LT_OBJECT_PARB,
LT_ATTACHMENT_LIST,
LT_RECEIVER_LIST,
LT_CONTENTS_HEX,
OBJCONT_TAB.
CLEAR: LS_DOCUMENT_DATA.
LV_DOCID = GT_LIST-INSTID_B.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
DOCUMENT_ID = LV_DOCID
* FILTER = 'X '
IMPORTING
DOCUMENT_DATA = LS_DOCUMENT_DATA
TABLES
OBJECT_HEADER = LT_OBJECT_HEADER
OBJECT_CONTENT = LT_OBJECT_CONTENT
OBJECT_PARA = LT_OBJECT_PARA
OBJECT_PARB = LT_OBJECT_PARB
ATTACHMENT_LIST = LT_ATTACHMENT_LIST
RECEIVER_LIST = LT_RECEIVER_LIST
CONTENTS_HEX = LT_CONTENTS_HEX
EXCEPTIONS
DOCUMENT_ID_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
X_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CHECK LT_OBJECT_CONTENT[] IS NOT INITIAL.
LOOP AT LT_OBJECT_CONTENT.
OBJCONT_TAB-LINE = LT_OBJECT_CONTENT-LINE.
APPEND OBJCONT_TAB. CLEAR OBJCONT_TAB.
ENDLOOP.
LOOP AT LT_OBJECT_HEADER.
IF LT_OBJECT_HEADER-LINE CS 'SO_FILENAME'.
SPLIT LT_OBJECT_HEADER-LINE AT '=' INTO LV_STR1 LV_STR2.
CONCATENATE 'C:\TEMP\' GT_LIST-INSTID_A '\'LV_STR2 INTO LV_PATH.
ELSEIF LT_OBJECT_HEADER-LINE CS 'SO_FORMAT'.
SPLIT LT_OBJECT_HEADER-LINE AT '=' INTO LV_STR1 LV_STR2.
LV_TYPE = LV_STR2.
ENDIF.
ENDLOOP.
IF LV_TYPE IS INITIAL.
LV_TYPE = 'BIN'.
ENDIF.
CALL FUNCTION 'SO_OBJECT_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = 0
* DEFAULT_FILENAME = ' '
FILETYPE = LV_TYPE
PATH_AND_FILE = LV_PATH
* EXTCT = ' '
NO_DIALOG = 'X'
* CODEPAGE =
* IMPORTING
* FILELENGTH =
* F_CANCELLED =
* ACT_FILETYPE =
* ACT_FILENAME =
TABLES
OBJCONT = OBJCONT_TAB
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* INVALID_TYPE = 2
* X_ERROR = 3
* KPRO_ERROR = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDLOOP.
DATA: LS_DOCUMENT_DATA LIKE SOFOLENTI1,
LT_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_CONTENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_PARA LIKE SOPARAI1 OCCURS 0 WITH HEADER LINE,
LT_OBJECT_PARB LIKE SOPARBI1 OCCURS 0 WITH HEADER LINE,
LT_ATTACHMENT_LIST LIKE SOATTLSTI1 OCCURS 0 WITH HEADER LINE,
LT_RECEIVER_LIST LIKE SORECLSTI1 OCCURS 0 WITH HEADER LINE,
LT_CONTENTS_HEX LIKE SOLIX OCCURS 0 WITH HEADER LINE,
OBJCONT_TAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: LV_DOCID TYPE SOFOLENTI1-DOC_ID,
LV_PATH(255),
LV_STR1(255),
LV_STR2(255),
LV_TYPE(3).
*&---------------------------------------------------------------------*
*& MACRO *
*&---------------------------------------------------------------------*
DEFINE M_CLS.
CLEAR &1. REFRESH &1.
END-OF-DEFINITION.
SELECT * INTO TABLE GT_LIST
FROM SRGBTBREL
WHERE TYPEID_A = 'EQUI'.
LOOP AT GT_LIST.
M_CLS: LT_OBJECT_HEADER,
LT_OBJECT_CONTENT,
LT_OBJECT_PARA,
LT_OBJECT_PARB,
LT_ATTACHMENT_LIST,
LT_RECEIVER_LIST,
LT_CONTENTS_HEX,
OBJCONT_TAB.
CLEAR: LS_DOCUMENT_DATA.
LV_DOCID = GT_LIST-INSTID_B.
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
DOCUMENT_ID = LV_DOCID
* FILTER = 'X '
IMPORTING
DOCUMENT_DATA = LS_DOCUMENT_DATA
TABLES
OBJECT_HEADER = LT_OBJECT_HEADER
OBJECT_CONTENT = LT_OBJECT_CONTENT
OBJECT_PARA = LT_OBJECT_PARA
OBJECT_PARB = LT_OBJECT_PARB
ATTACHMENT_LIST = LT_ATTACHMENT_LIST
RECEIVER_LIST = LT_RECEIVER_LIST
CONTENTS_HEX = LT_CONTENTS_HEX
EXCEPTIONS
DOCUMENT_ID_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
X_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CHECK LT_OBJECT_CONTENT[] IS NOT INITIAL.
LOOP AT LT_OBJECT_CONTENT.
OBJCONT_TAB-LINE = LT_OBJECT_CONTENT-LINE.
APPEND OBJCONT_TAB. CLEAR OBJCONT_TAB.
ENDLOOP.
LOOP AT LT_OBJECT_HEADER.
IF LT_OBJECT_HEADER-LINE CS 'SO_FILENAME'.
SPLIT LT_OBJECT_HEADER-LINE AT '=' INTO LV_STR1 LV_STR2.
CONCATENATE 'C:\TEMP\' GT_LIST-INSTID_A '\'LV_STR2 INTO LV_PATH.
ELSEIF LT_OBJECT_HEADER-LINE CS 'SO_FORMAT'.
SPLIT LT_OBJECT_HEADER-LINE AT '=' INTO LV_STR1 LV_STR2.
LV_TYPE = LV_STR2.
ENDIF.
ENDLOOP.
IF LV_TYPE IS INITIAL.
LV_TYPE = 'BIN'.
ENDIF.
CALL FUNCTION 'SO_OBJECT_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = 0
* DEFAULT_FILENAME = ' '
FILETYPE = LV_TYPE
PATH_AND_FILE = LV_PATH
* EXTCT = ' '
NO_DIALOG = 'X'
* CODEPAGE =
* IMPORTING
* FILELENGTH =
* F_CANCELLED =
* ACT_FILETYPE =
* ACT_FILENAME =
TABLES
OBJCONT = OBJCONT_TAB
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* INVALID_TYPE = 2
* X_ERROR = 3
* KPRO_ERROR = 4
* OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDLOOP.
피드 구독하기:
글 (Atom)