11-17-2008 11:58 AM
Hi..
I am using The ZBAPI for DMS creation, in which when i run in R/3 it is excecuting fine but when integrated with SAP XI it is throwing mapping response error.. when i tried to search in forums, i observe that the response handling and the bapi transaction commit is not well defined i am an XI guy where i am unable to explore this things, i request anyone of u to go through this code once and if found any corrections do it and revert back as a reply to this thread..
This is the BAPI code which i am using if u find any wrong in COMMIT.. revert back this code with correction..
FUNCTION ZBAPI_NPI_DMS.
*"----
""Local interface:
*" IMPORTING
*" VALUE(DOCUMENTDATA) LIKE BAPI_DOC_DRAW2 STRUCTURE
*" BAPI_DOC_DRAW2
*" VALUE(HOSTNAME) LIKE BAPI_DOC_AUX-HOSTNAME OPTIONAL
*" VALUE(DOCBOMCHANGENUMBER) LIKE BAPI_DOC_DRAW2-ECNUMBER OPTIONAL
*" VALUE(DOCBOMVALIDFROM) LIKE BAPI_DOC_DRAW2-VALIDFROMDATE
*" OPTIONAL
*" VALUE(DOCBOMREVISIONLEVEL) LIKE BAPI_DOC_DRAW2-REVLEVEL
*" OPTIONAL
*" VALUE(CAD_MODE) LIKE CSDATA-XFELD DEFAULT SPACE
*" VALUE(PF_FTP_DEST) LIKE RFCDES-RFCDEST DEFAULT SPACE
*" VALUE(PF_HTTP_DEST) LIKE RFCDES-RFCDEST DEFAULT SPACE
*" EXPORTING
*" VALUE(DOCUMENTTYPE) LIKE BAPI_DOC_AUX-DOCTYPE
*" VALUE(DOCUMENTNUMBER) LIKE BAPI_DOC_AUX-DOCNUMBER
*" VALUE(DOCUMENTPART) LIKE BAPI_DOC_AUX-DOCPART
*" VALUE(DOCUMENTVERSION) LIKE BAPI_DOC_AUX-DOCVERSION
*" TABLES
*" CHARACTERISTICVALUES STRUCTURE BAPI_CHARACTERISTIC_VALUES
*" OPTIONAL
*" CLASSALLOCATIONS STRUCTURE BAPI_CLASS_ALLOCATION OPTIONAL
*" DOCUMENTDESCRIPTIONS STRUCTURE BAPI_DOC_DRAT OPTIONAL
*" OBJECTLINKS STRUCTURE BAPI_DOC_DRAD OPTIONAL
*" DOCUMENTSTRUCTURE STRUCTURE BAPI_DOC_STRUCTURE OPTIONAL
*" DOCUMENTFILES STRUCTURE BAPI_DOC_FILES2 OPTIONAL
*" LONGTEXTS STRUCTURE BAPI_DOC_TEXT OPTIONAL
*" COMPONENTS STRUCTURE BAPI_DOC_COMP OPTIONAL
*" RETURN STRUCTURE BAPIRET2
*"----
TABLES : DRAW.
DATA : RETURN1 LIKE BAPIRETURN.
CALL FUNCTION 'API_DOCUMENT_MAINTAIN2'
EXPORTING: PF_TRANSACTION = C_CV01
DOCUMENTDATA = DOCUMENTDATA
HOSTNAME = HOSTNAME
CHANGE_NUMBER = DOCBOMCHANGENUMBER
VALID_FROM = DOCBOMVALIDFROM
REVISION_LEVEL = DOCBOMREVISIONLEVEL
PF_FTP_DEST = PF_FTP_DEST
PF_HTTP_DEST = PF_HTTP_DEST
CAD_MODE = CAD_MODE
IMPORTING: DOCUMENTTYPE = DOCUMENTTYPE
DOCUMENTNUMBER = DOCUMENTNUMBER
DOCUMENTPART = DOCUMENTPART
DOCUMENTVERSION = DOCUMENTVERSION
RETURN = RETURN
TABLES: CHARACTERISTICVALUES = CHARACTERISTICVALUES
CLASSALLOCATIONS = CLASSALLOCATIONS
DOCUMENTDESCRIPTIONS = DOCUMENTDESCRIPTIONS
OBJECTLINKS = OBJECTLINKS
DOCUMENTSTRUCTURE = DOCUMENTSTRUCTURE
DOCUMENTFILES = DOCUMENTFILES
LONGTEXT = LONGTEXTS
COMPONENTS = COMPONENTS.
PERFORM : DMS_GET_MESSAGE USING SY-SUBRC DOCUMENTDATA-DOCUMENTNUMBER CHANGING MESSAGE,
BAPI_RESPONSE USING MESSAGE CHANGING RETURN1.
IF MESSAGE-MSGNO EQ 0.
MOVE : MESSAGE-MSGTY TO RETURN-TYPE,
MESSAGE-MSGV1 TO RETURN-MESSAGE,
MESSAGE-MSGNO TO RETURN-NUMBER.
APPEND RETURN.CLEAR RETURN.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = RETURN.ENDFUNCTION.
&----
*& Form GET_MESSAGE
&----
text
-
-->P_DOCUMENTNUMBER text
-->P_MESSAGE text
-
FORM DMS_GET_MESSAGE USING P_SUBRC LIKE SY-SUBRC
P_DOCUMENTNUMBER LIKE BAPI_DOC_DRAW2-DOCUMENTNUMBER
CHANGING P_MESSAGE STRUCTURE MESSAGE.
DATA : DOCNO(25),
MSGV1 LIKE SY-MSGV1.
CLEAR : P_MESSAGE,MSGV1,DOCNO.
DOCNO = P_DOCUMENTNUMBER.
IF DOCNO NA SY-ABCDE.
PACK DOCNO TO DOCNO.
SHIFT DOCNO LEFT DELETING LEADING ' '.
ENDIF.
P_MESSAGE-SUBRC = P_SUBRC.
P_MESSAGE-MSGID = 'ZNPI'.
P_MESSAGE-MSGV1 = P_DOCUMENTNUMBER.
IF P_SUBRC EQ 0.
CONCATENATE DOCNO 'Have been Created' INTO MSGV1 SEPARATED BY SPACE.
P_MESSAGE-MSGNO = '000'.
P_MESSAGE-MSGTY = 'I'.
P_MESSAGE-MSGV1 = MSGV1.
ELSE.
CONCATENATE DOCNO 'Can not be Created' INTO MSGV1 SEPARATED BY SPACE.
P_MESSAGE-MSGNO = '001'.
P_MESSAGE-MSGTY = 'E'.
P_MESSAGE-MSGV1 = MSGV1.
ENDIF.
ENDFORM. "GET_MESSAGE
regards,
11-17-2008 12:06 PM
Hi
Try this .
Data:i_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
REFRESH i_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = i_return.
Hope it will help.
Regards
Neha
11-17-2008 12:10 PM
11-18-2008 5:57 AM
11-17-2008 12:08 PM
Hi..
Commented lines are removed to view easily ..
FUNCTION ZBAPI_NPI_DMS.
TABLES : DRAW.
DATA : RETURN1 LIKE BAPIRETURN.
CALL FUNCTION 'API_DOCUMENT_MAINTAIN2'
EXPORTING: PF_TRANSACTION = C_CV01
DOCUMENTDATA = DOCUMENTDATA
HOSTNAME = HOSTNAME
CHANGE_NUMBER = DOCBOMCHANGENUMBER
VALID_FROM = DOCBOMVALIDFROM
REVISION_LEVEL = DOCBOMREVISIONLEVEL
PF_FTP_DEST = PF_FTP_DEST
PF_HTTP_DEST = PF_HTTP_DEST
CAD_MODE = CAD_MODE
IMPORTING: DOCUMENTTYPE = DOCUMENTTYPE
DOCUMENTNUMBER = DOCUMENTNUMBER
DOCUMENTPART = DOCUMENTPART
DOCUMENTVERSION = DOCUMENTVERSION
RETURN = RETURN
TABLES: CHARACTERISTICVALUES = CHARACTERISTICVALUES
CLASSALLOCATIONS = CLASSALLOCATIONS
DOCUMENTDESCRIPTIONS = DOCUMENTDESCRIPTIONS
OBJECTLINKS = OBJECTLINKS
DOCUMENTSTRUCTURE = DOCUMENTSTRUCTURE
DOCUMENTFILES = DOCUMENTFILES
LONGTEXT = LONGTEXTS
COMPONENTS = COMPONENTS.
PERFORM : DMS_GET_MESSAGE USING SY-SUBRC DOCUMENTDATA-DOCUMENTNUMBER CHANGING MESSAGE,
BAPI_RESPONSE USING MESSAGE CHANGING RETURN1.
IF MESSAGE-MSGNO EQ 0.
MOVE : MESSAGE-MSGTY TO RETURN-TYPE,
MESSAGE-MSGV1 TO RETURN-MESSAGE,
MESSAGE-MSGNO TO RETURN-NUMBER.
APPEND RETURN.CLEAR RETURN.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = RETURN.ENDFUNCTION.
&----
*& Form GET_MESSAGE
&----
text
-
-->P_DOCUMENTNUMBER text
-->P_MESSAGE text
-
FORM DMS_GET_MESSAGE USING P_SUBRC LIKE SY-SUBRC
P_DOCUMENTNUMBER LIKE BAPI_DOC_DRAW2-DOCUMENTNUMBER
CHANGING P_MESSAGE STRUCTURE MESSAGE.
DATA : DOCNO(25),
MSGV1 LIKE SY-MSGV1.
CLEAR : P_MESSAGE,MSGV1,DOCNO.
DOCNO = P_DOCUMENTNUMBER.
IF DOCNO NA SY-ABCDE.
PACK DOCNO TO DOCNO.
SHIFT DOCNO LEFT DELETING LEADING ' '.
ENDIF.
P_MESSAGE-SUBRC = P_SUBRC.
P_MESSAGE-MSGID = 'ZNPI'.
P_MESSAGE-MSGV1 = P_DOCUMENTNUMBER.
IF P_SUBRC EQ 0.
CONCATENATE DOCNO 'Have been Created' INTO MSGV1 SEPARATED BY SPACE.
P_MESSAGE-MSGNO = '000'.
P_MESSAGE-MSGTY = 'I'.
P_MESSAGE-MSGV1 = MSGV1.
ELSE.
CONCATENATE DOCNO 'Can not be Created' INTO MSGV1 SEPARATED BY SPACE.
P_MESSAGE-MSGNO = '001'.
P_MESSAGE-MSGTY = 'E'.
P_MESSAGE-MSGV1 = MSGV1.
ENDIF.
ENDFORM. "GET_MESSAGE
regards,
sai