‎2007 Jun 20 6:56 AM
Requist example code : BAPI_REQUIREMENT_CREATE (very urgent)
my email : yfliu3@idthk.com
thanks
GodSpeed
‎2007 Jun 21 3:35 AM
‎2007 Jun 20 7:13 AM
Hi,
check this,This is sytem generated code.
INCLUDE <OBJECT>.
BEGIN_DATA OBJECT. " Do not change.. DATA is generated
only private members may be inserted into structure private
DATA:
" begin of private,
" to declare private attributes remove comments and
" insert private attributes here ...
" end of private,
BEGIN OF KEY,
NUMBER LIKE EBAN-BANFN,
ITEM LIKE EBAN-BNFPO,
END OF KEY,
PURCHASEORDER TYPE SWC_OBJECT OCCURS 0,
_EBAN LIKE EBAN.
END_DATA OBJECT. " Do not change.. DATA is generated
BEGIN_METHOD SINGLERELEASE CHANGING CONTAINER.
DATA:
PURCHASEREQUISITION LIKE EBAN-BANFN,
RELEASECODE LIKE RM06B-FRGAB.
DATA: CALL_UPDKZ,
AUTO.
DATA: BEGIN OF BAT OCCURS 10.
INCLUDE STRUCTURE EBAN.
DATA: UPDKZ.
DATA: END OF BAT.
tables: rm06b.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
SET PARAMETER ID 'BAN' FIELD OBJECT-KEY-PURCHASEREQUISITION.
SET PARAMETER ID 'BAP' FIELD OBJECT-KEY-ITEM.
SET PARAMETER ID 'BFC' FIELD RELEASECODE.
CALL TRANSACTION 'ME54' AND SKIP FIRST SCREEN.
-- Aufruf Einzelfreigabe -
REFRESH BAT.
CLEAR BAT.
CALL_UPDKZ = 'W'.
AUTO = 'X'.
RM06B-REFBN = OBJECT-KEY-NUMBER.
rm06b-frgab = releasecode.
call dialog 'ME_REQUISITION_RELEASE'
exporting rm06b-refbn
rm06b-frgab call_updkz auto
importing bat call_updkz.
EXPORT RM06B-REFBN RM06B-FRGAB CALL_UPDKZ AUTO
TO MEMORY ID 'ME5'.
CALL TRANSACTION 'ME54' AND SKIP FIRST SCREEN.
IMPORT BAT CALL_UPDKZ FROM MEMORY ID 'ME5'.
free memory id 'ME5'. "H489326
if call_updkz ne space.
if call_updkz eq 'N'.
clear call_updkz.
endif.
SWC_SET_ELEMENT CONTAINER RESULT call_updkz.
else.
exit_cancelled.
endif.
END_METHOD.
TABLES EBAN.
*
GET_TABLE_PROPERTY EBAN.
DATA SUBRC LIKE SY-SUBRC.
Fill TABLES EBAN to enable Object Manager Access to Table Properties
PERFORM SELECT_TABLE_EBAN USING SUBRC.
IF SY-SUBRC NE 0.
EXIT_OBJECT_NOT_FOUND.
ENDIF.
END_PROPERTY.
*
Use Form also for other(virtual) Properties to fill TABLES EBAN
FORM SELECT_TABLE_EBAN USING SUBRC LIKE SY-SUBRC.
Select single * from EBAN, if OBJECT-_EBAN is initial
IF OBJECT-_EBAN-MANDT IS INITIAL
AND OBJECT-_EBAN-BANFN IS INITIAL
AND OBJECT-_EBAN-BNFPO IS INITIAL.
SELECT SINGLE * FROM EBAN CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND BANFN = OBJECT-KEY-NUMBER
AND BNFPO = OBJECT-KEY-ITEM.
SUBRC = SY-SUBRC.
IF SUBRC NE 0. EXIT. ENDIF.
OBJECT-_EBAN = EBAN.
ELSE.
SUBRC = 0.
EBAN = OBJECT-_EBAN.
ENDIF.
ENDFORM.
BEGIN_METHOD INFORELEASEEFFECTED CHANGING CONTAINER.
DATA:
RELEASECODE LIKE RM06B-FRGAB.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
END_METHOD.
BEGIN_METHOD INFORELEASEREJECTED CHANGING CONTAINER.
DATA:
RELEASECODE LIKE RM06B-FRGAB.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
SET PARAMETER ID 'BAN' FIELD OBJECT-KEY-NUMBER.
SET PARAMETER ID 'BAP' FIELD OBJECT-KEY-ITEM.
CALL TRANSACTION 'ME52' AND SKIP FIRST SCREEN.
END_METHOD.
BEGIN_METHOD DISPLAY CHANGING CONTAINER.
SET PARAMETER ID 'BAN' FIELD OBJECT-KEY-NUMBER.
SET PARAMETER ID 'BAP' FIELD OBJECT-KEY-ITEM.
CALL TRANSACTION 'ME53' AND SKIP FIRST SCREEN.
END_METHOD.
GET_PROPERTY PURCHASEORDER CHANGING CONTAINER.
SWC_SET_TABLE CONTAINER 'PurchaseOrder' OBJECT-PURCHASEORDER.
END_PROPERTY.
BEGIN_METHOD INFORELEASERESET CHANGING CONTAINER.
DATA:
RELEASECODE LIKE RM06B-FRGAB.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
END_METHOD.
BEGIN_METHOD GETLIST CHANGING CONTAINER.
DATA:
REQUISITIONER LIKE BAPIMMPARA-PREQ_NAME,
DATE LIKE BAPIMMPARA-PREQ_DATE,
OPENITEMS LIKE BAPIMMPARA-SELECTION,
CLOSEDITEMS LIKE BAPIMMPARA-SELECTION,
RELEASEGROUP LIKE BAPIMMPARA-REL_GROUP,
RELEASECODE LIKE BAPIMMPARA-REL_CODE,
ITEMSFORRELEASE LIKE BAPIMMPARA-SELECTION,
ITEMDATA LIKE BAPIEBAN OCCURS 0.
SWC_GET_ELEMENT CONTAINER 'Requisitioner' REQUISITIONER.
SWC_GET_ELEMENT CONTAINER 'Date' DATE.
SWC_GET_ELEMENT CONTAINER 'OpenItems' OPENITEMS.
SWC_GET_ELEMENT CONTAINER 'ClosedItems' CLOSEDITEMS.
SWC_GET_ELEMENT CONTAINER 'ReleaseGroup' RELEASEGROUP.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
SWC_GET_ELEMENT CONTAINER 'ItemsForRelease' ITEMSFORRELEASE.
IF SY-SUBRC <> 0.
MOVE 'X' TO ITEMSFORRELEASE.
ENDIF.
SWC_GET_TABLE CONTAINER 'ItemData' ITEMDATA.
CALL FUNCTION 'BAPI_REQUIREMENT_GET_LIST'
EXPORTING
ITEMS_FOR_RELEASE = ITEMSFORRELEASE
REL_CODE = RELEASECODE
REL_GROUP = RELEASEGROUP
CLOSED_ITEMS = CLOSEDITEMS
OPEN_ITEMS = OPENITEMS
PREQ_DATE = DATE
PREQ_NAME = REQUISITIONER
TABLES
REQUIREMENT_ITEMS = ITEMDATA
EXCEPTIONS
PREQ_NAME_MISSING = 1001
STATUS_MISSING = 1002
REL_CODE_MISSING = 1003
REL_AUTH_CHECK_FAILED = 1004
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN 1001. " PREQ_NAME_MISSING
EXIT_RETURN 1001 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1002. " STATUS_MISSING
EXIT_RETURN 1002 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1003. " REL_CODE_MISSING
EXIT_RETURN 1003 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1004. " REL_AUTH_CHECK_FAILED
EXIT_RETURN 1004 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS. " to be implemented
ENDCASE.
SWC_SET_TABLE CONTAINER 'ItemData' ITEMDATA.
END_METHOD.
BEGIN_METHOD SINGLERELEASENODIALG CHANGING CONTAINER.
DATA:
RELEASECODE LIKE BAPIMMPARA-REL_CODE.
SWC_GET_ELEMENT CONTAINER 'ReleaseCode' RELEASECODE.
CALL FUNCTION 'BAPI_REQUISITION_RELEASE'
EXPORTING
ITEM = OBJECT-KEY-ITEM
REL_CODE = RELEASECODE
NUMBER = OBJECT-KEY-NUMBER
EXCEPTIONS
AUTHORITY_CHECK_FAIL = 1001
REQUISITION_NOT_FOUND = 1002
ENQUEUE_FAIL = 1003
PREREQUISITE_FAIL = 1004
RELEASE_ALREADY_POSTED = 1005
RESPONSIBILITY_FAIL = 1006
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN 1001. " AUTHORITY_CHECK_FAIL
EXIT_RETURN 1001 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1002. " REQUISITION_NOT_FOUND
EXIT_RETURN 1002 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1003. " ENQUEUE_FAIL
EXIT_RETURN 1003 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1004. " PREREQUISITE_FAIL
EXIT_RETURN 1004 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1005. " RELEASE_ALREADY_POSTED
EXIT_RETURN 1005 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1006. " RESPONSIBILITY_FAIL
EXIT_RETURN 1006 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS. " to be implemented
ENDCASE.
END_METHOD.
BEGIN_METHOD EXISTENCECHECK CHANGING CONTAINER.
DATA: LV_BANFN LIKE OBJECT-KEY-NUMBER.
SELECT SINGLE BANFN FROM EBAN INTO LV_BANFN
WHERE BANFN EQ OBJECT-KEY-NUMBER
AND BNFPO EQ OBJECT-KEY-ITEM.
IF SY-SUBRC NE 0.
EXIT_OBJECT_NOT_FOUND.
ENDIF.
END_METHOD.
BEGIN_METHOD CREATEFROMDATA CHANGING CONTAINER.
DATA:
REQUIREMENTITEMS LIKE BAPIEBAN OCCURS 0,
REQUIREMENTACCOUNTAS LIKE BAPIEBKN OCCURS 0,
REQUIREMENTITEMTEXT LIKE BAPIEBANTX OCCURS 0,
RETURN LIKE BAPIERRORS OCCURS 0.
SWC_GET_TABLE CONTAINER 'RequirementItems' REQUIREMENTITEMS.
SWC_GET_TABLE CONTAINER 'RequirementAccountAs' REQUIREMENTACCOUNTAS.
SWC_GET_TABLE CONTAINER 'RequirementItemText' REQUIREMENTITEMTEXT.
SWC_GET_TABLE CONTAINER 'Return' RETURN.
CALL FUNCTION 'BAPI_REQUIREMENT_CREATE'
IMPORTING
NUMBER = OBJECT-KEY-NUMBER
ITEM = OBJECT-KEY-ITEM
TABLES
RETURN = RETURN
REQUIREMENT_ITEM_TEXT = REQUIREMENTITEMTEXT
REQUIREMENT_ACCOUNT_ASSIGNMENT = REQUIREMENTACCOUNTAS
REQUIREMENT_ITEMS = REQUIREMENTITEMS
EXCEPTIONS
NO_OBJECT_ID = 1001
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN 1001. " NO_OBJECT_ID
EXIT_RETURN 1001 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS. " to be implemented
ENDCASE.
SWC_SET_TABLE CONTAINER 'RequirementItems' REQUIREMENTITEMS.
SWC_SET_TABLE CONTAINER 'RequirementAccountAs' REQUIREMENTACCOUNTAS.
SWC_SET_TABLE CONTAINER 'RequirementItemText' REQUIREMENTITEMTEXT.
SWC_SET_TABLE CONTAINER 'Return' RETURN.
END_METHOD.
BEGIN_METHOD RELEASE CHANGING CONTAINER.
DATA:
RELCODE LIKE BAPIMMPARA-REL_CODE,
USEEXCEPTIONS LIKE BAPIMMPARA-SELECTION,
RELSTATUSNEW LIKE BAPIMMPARA-REL_STATUS,
RELINDICATORNEW LIKE BAPIMMPARA-REL_IND,
RETURN LIKE BAPIRETURN OCCURS 0.
SWC_GET_ELEMENT CONTAINER 'RelCode' RELCODE.
SWC_GET_ELEMENT CONTAINER 'UseExceptions' USEEXCEPTIONS.
IF SY-SUBRC <> 0.
MOVE 'X' TO USEEXCEPTIONS.
ENDIF.
SWC_GET_TABLE CONTAINER 'Return' RETURN.
CALL FUNCTION 'BAPI_REQUISITION_RELEASE'
EXPORTING
USE_EXCEPTIONS = USEEXCEPTIONS
ITEM = OBJECT-KEY-ITEM
REL_CODE = RELCODE
NUMBER = OBJECT-KEY-NUMBER
IMPORTING
REL_INDICATOR_NEW = RELINDICATORNEW
REL_STATUS_NEW = RELSTATUSNEW
TABLES
RETURN = RETURN
EXCEPTIONS
AUTHORITY_CHECK_FAIL = 1001
REQUISITION_NOT_FOUND = 1002
ENQUEUE_FAIL = 1003
PREREQUISITE_FAIL = 1004
RELEASE_ALREADY_POSTED = 1005
RESPONSIBILITY_FAIL = 1006
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN 1001. " AUTHORITY_CHECK_FAIL
EXIT_RETURN 1001 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1002. " REQUISITION_NOT_FOUND
EXIT_RETURN 1002 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1003. " ENQUEUE_FAIL
EXIT_RETURN 1003 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1004. " PREREQUISITE_FAIL
EXIT_RETURN 1004 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1005. " RELEASE_ALREADY_POSTED
EXIT_RETURN 1005 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1006. " RESPONSIBILITY_FAIL
EXIT_RETURN 1006 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS. " to be implemented
ENDCASE.
SWC_SET_ELEMENT CONTAINER 'RelStatusNew' RELSTATUSNEW.
SWC_SET_ELEMENT CONTAINER 'RelIndicatorNew' RELINDICATORNEW.
SWC_SET_TABLE CONTAINER 'Return' RETURN.
END_METHOD.
BEGIN_METHOD RESETRELEASE CHANGING CONTAINER.
DATA:
RELCODE LIKE BAPIMMPARA-REL_CODE,
USEEXCEPTIONS LIKE BAPIMMPARA-SELECTION,
RELSTATUSNEW LIKE BAPIMMPARA-REL_STATUS,
RELINDICATORNEW LIKE BAPIMMPARA-REL_IND,
RETURN LIKE BAPIRETURN OCCURS 0.
SWC_GET_ELEMENT CONTAINER 'RelCode' RELCODE.
SWC_GET_ELEMENT CONTAINER 'UseExceptions' USEEXCEPTIONS.
IF SY-SUBRC <> 0.
MOVE 'X' TO USEEXCEPTIONS.
ENDIF.
SWC_GET_TABLE CONTAINER 'Return' RETURN.
CALL FUNCTION 'BAPI_REQUISITION_RESET_RELEASE'
EXPORTING
USE_EXCEPTIONS = USEEXCEPTIONS
REL_CODE = RELCODE
ITEM = OBJECT-KEY-ITEM
NUMBER = OBJECT-KEY-NUMBER
IMPORTING
REL_INDICATOR_NEW = RELINDICATORNEW
REL_STATUS_NEW = RELSTATUSNEW
TABLES
RETURN = RETURN
EXCEPTIONS
AUTHORITY_CHECK_FAIL = 1001
REQUISITION_NOT_FOUND = 1002
ENQUEUE_FAIL = 1003
PREREQUISITE_FAIL = 1004
RELEASE_ALREADY_POSTED = 1005
RESPONSIBILITY_FAIL = 1006
NO_RELEASE_ALREADY = 1007
NO_NEW_RELEASE_INDICATOR = 1008
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN 1001. " AUTHORITY_CHECK_FAIL
EXIT_RETURN 1001 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1002. " REQUISITION_NOT_FOUND
EXIT_RETURN 1002 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1003. " ENQUEUE_FAIL
EXIT_RETURN 1003 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1004. " PREREQUISITE_FAIL
EXIT_RETURN 1004 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1005. " RELEASE_ALREADY_POSTED
EXIT_RETURN 1005 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1006. " RESPONSIBILITY_FAIL
EXIT_RETURN 1006 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1007. " NO_RELEASE_ALREADY
EXIT_RETURN 1007 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 1008. " NO_NEW_RELEASE_INDICATOR
EXIT_RETURN 1008 sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS. " to be implemented
ENDCASE.
SWC_SET_ELEMENT CONTAINER 'RelStatusNew' RELSTATUSNEW.
SWC_SET_ELEMENT CONTAINER 'RelIndicatorNew' RELINDICATORNEW.
SWC_SET_TABLE CONTAINER 'Return' RETURN.
END_METHOD.
BEGIN_METHOD EDIT CHANGING CONTAINER.
SET PARAMETER ID 'BAN' FIELD OBJECT-KEY-NUMBER.
SET PARAMETER ID 'BAP' FIELD OBJECT-KEY-ITEM.
CALL TRANSACTION 'ME52' AND SKIP FIRST SCREEN.
END_METHOD.
‎2007 Jun 20 7:21 AM
hi muralikrishna ,
I need the example code is how to call the : BAPI_REQUIREMENT_CREATE
do you have another ?
‎2007 Jun 21 3:08 AM
‎2007 Jun 21 3:35 AM