Hi friends,
I implemented Soap to Proxy synchronous scenario. when i tested from SOAP UI Message processed successfully but the response message empty.
SOAP Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:npcl.com:UploadPlotedNW_Design_GIS_TO_SAP">
<soapenv:Header/>
<soapenv:Body>
<urn:MT_DesignPDF_REQ>
<!--Zero or more repetitions:-->
<PATH_DETAILS>
<BP_NUMBER>2000100646</BP_NUMBER>
<!--Optional:-->
<DESIGN_NUMBER>design1</DESIGN_NUMBER>
<!--Optional:-->
<PROJECT_NAME>prj1</PROJECT_NAME>
<DESIGN_PATH>D:\usr\sap\APLL.PDF</DESIGN_PATH>
</PATH_DETAILS>
</urn:MT_DesignPDF_REQ>
</soapenv:Body>
</soapenv:Envelope>
Response:
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header/>
<SOAP:Body>
<ns0:MT_Design_RES_GIS xmlns:ns0="urn:npcl.com:UploadPlotedNW_Design_GIS_TO_SAP">
<Path_Details>
<BP_NUMBER>String 5</BP_NUMBER>
<URL>String 6</URL>
</Path_Details>
</ns0:MT_Design_RES_GIS>
</SOAP:Body>
</SOAP:Envelope>
In the place of BP_Number and URL i should get the bp number and path details from ECC system.
I tested proxy from SPROXY but it giving BP Number and path in response.
The Messages in SXMB_MONI showing chek flags for both request and response.
The code in SPROXY:
method ZII_SI_DESIGN_PDF_SAP~SI_DESIGN_PDF_SAP.
DATA: it_final TYPE TABLE OF ZDT_DESIGN_PDF_REQ_PATH_DETAIL,
wa_final TYPE ZDT_DESIGN_PDF_REQ_PATH_DETAIL,
IT_OUT TYPE TABLE OF ZDT_DESIGN_PDF_RES_DMS_PATH,
WA_OUT TYPE ZDT_DESIGN_PDF_RES_DMS_PATH,
gv_ABSOLUTE_URI TYPE SAPB-URI.
if input IS NOT INITIAL.
move INPUT-MT_DESIGN_PDF_REQ-PATH_DETAILS to it_final.
endif.
sort it_final by bp_number.
LOOP at it_final INTO wa_final.
CLEAR: wa_out.
EXPORT wa_final-BP_NUMBER FROM wa_final-BP_NUMBER to MEMORY id 'BPNO'.
EXPORT wa_final-DESIGN_PATH FROM wa_final-DESIGN_PATH TO MEMORY ID 'PATH'.
SUBMIT ZPDFATTACH_NEWCONN_RS_PDF AND RETURN.
IMPORT gv_ABSOLUTE_URI = gv_ABSOLUTE_URI FROM MEMORY ID 'URL'.
IF gv_ABSOLUTE_URI IS NOT INITIAL.
WA_OUT-PATH = gv_ABSOLUTE_URI.
WA_OUT-BP_NUMBER = wa_final-BP_NUMBER.
ENDIF.
APPEND WA_OUT TO IT_OUT.
CLEAR: wa_final-BP_NUMBER,wa_final-DESIGN_PATH.
FREE MEMORY ID 'URL'.
ENDLOOP.
IF IT_OUT IS NOT INITIAL.
MOVE IT_OUT TO OUTPUT-MT_DESIGN_PDF_RES-DMS_PATH.
ENDIF.
call method lcl_fill_data=>ZMT_DESIGN_PDF_RES
importing
out = OUTPUT.
endmethod.
class lcl_fill_data implementation.
method ZMT_DESIGN_PDF_REQ.
call method ZDT_DESIGN_PDF_REQ
importing
out = out-MT_DESIGN_PDF_REQ.
endmethod.
method ZDT_DESIGN_PDF_REQ.
call method ZDT_DESIGN_PDF_REQ_PATH_DE_TAB
importing
out = out-PATH_DETAILS.
endmethod.
method ZDT_DESIGN_PDF_REQ_PATH_DE_TAB.
data: ls_out like line of out.
call method ZDT_DESIGN_PDF_REQ_PATH_DETAIL
importing
out = ls_out.
do 3 times.
append ls_out to out.
enddo.
endmethod.
method ZDT_DESIGN_PDF_REQ_PATH_DETAIL.
out-BP_NUMBER = `String 1`. "#EC NOTEXT
out-DESIGN_NUMBER = `String 2`. "#EC NOTEXT
out-PROJECT_NAME = `String 3`. "#EC NOTEXT
out-DESIGN_PATH = `String 4`. "#EC NOTEXT
endmethod.
method ZMT_DESIGN_PDF_RES.
call method ZDT_DESIGN_PDF_RES
importing
out = out-MT_DESIGN_PDF_RES.
endmethod.
method ZDT_DESIGN_PDF_RES.
call method ZDT_DESIGN_PDF_RES_DMS_PAT_TAB
importing
out = out-DMS_PATH.
endmethod.
method ZDT_DESIGN_PDF_RES_DMS_PAT_TAB.
data: ls_out like line of out.
call method ZDT_DESIGN_PDF_RES_DMS_PATH
importing
out = ls_out.
do 3 times.
append ls_out to out.
enddo.
endmethod.
method ZDT_DESIGN_PDF_RES_DMS_PATH.
out-BP_NUMBER = `String 5`. "#EC NOTEXT
out-PATH = `String 6`. "#EC NOTEXT
endmethod.
endclass.