One of my requirement is to send SOAP request, and receive response from Oracle UCM Cloud. I am using Java transformation to do the same. In one of the response, we receive a zip file as attachment, I am not able to capture and download the attachment.
Is there anyway to download the attachment and save to server. The code below captures the whole response into a file, but i want to capture the attachment only.
In Java, I send the below payload
payload = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:typ=\"http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/\">"+
"<soapenv:Header/>\n"+
"<soapenv:Body>\n"+
"<typ:downloadESSJobExecutionDetails>\n"+
"<typ:requestId>"+i_jobid+"</typ:requestId>\n"+
"<typ:fileType>log</typ:fileType>\n"+
"</typ:downloadESSJobExecutionDetails>\n"+
"</soapenv:Body>\n"+
"</soapenv:Envelope>";
System.out.println(payload);
returnstring=httpPost("https://<<localhost>>.oraclecloud.com/fscmService/ErpIntegrationService?invoke=",payload, "<<credentials>>");
Then i capture the response as :
InputStream in = conn.getInputStream();
InputStreamReader iReader = new InputStreamReader( in );
BufferedReader bReader = new BufferedReader(iReader);
String line;
String response = "";
String fresponse = "";
int lcount = 0;
while ((line = bReader.readLine()) != null)
{
lcount++;
response += line;
}
Then I cut out the xml response part and use only the attachment portion to perform the below tasks Convert it into bytes and then try and save as zip
byte buf[] = response.getBytes();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
ZipEntry entry = new ZipEntry("abclog.zip");
entry.setSize(buf.length);
zos.putNextEntry(entry);
zos.write(buf);
zos.closeEntry();
zos.close();
java.io.FileOutputStream out_zip_file = new java.io.FileOutputStream("abclogfin.zip");
out_zip_file.write(baos.toByteArray());
The raw response is:
------=_Part_2737_547225473.1557335354007Content-Type: application/xop+xml;charset=UTF-8;
type="text/xml"Content-Transfer-Encoding: 8bitContent-ID: <3196f51c-0526-4921-bde2-d8f8453a255a>
<?xml version="1.0" encoding="UTF-8" ?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Header><wsa:Action>http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService//
ErpIntegrationService/downloadESSJobExecutionDetailsResponse</wsa:Action><wsa:MessageID>urn:uuid:db614b6f-cee2-4218-9921-177fa5b71c32</wsa:MessageID>
</env:Header><env:Body><ns0:downloadESSJobExecutionDetailsResponse xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/
erpIntegrationService/types/"><ns2:result xmlns:ns2="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/"
xmlns:ns1="http://xmlns.oracle.com/adf/svc/types/" xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns0:DocumentDetails"><ns0:Content><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include"
href="cid:8a49811c-492b-4a51-aab2-16abdaf21ad3"/></ns0:Content><ns0:FileName xsi:nil="true"/><ns0:ContentType>zip</ns0:ContentType><ns0:DocumentTitle>ESS_L_13077
</ns0:DocumentTitle><ns0:DocumentAuthor>*****</ns0:DocumentAuthor><ns0:DocumentSecurityGroup>Attachments</ns0:DocumentSecurityGroup><ns0:DocumentAccount xsi:nil="true"/>
<ns0:DocumentName>13077.zip</ns0:DocumentName><ns0:DocumentId xsi:nil="true"/></ns2:result></ns0:downloadESSJobExecutionDetailsResponse></env:Body></env:Envelope>
------=_Part_2737_547225473.1557335354007Content-Transfer-Encoding: binaryContent-ID: <8a49811c-492b-4a51-aab2-16abdaf21ad3>PK
As per my understanding, the values after
<8a49811c-492b-4a51-aab2-16abdaf21ad3>PK
is the attachment, But I am not able to download it. After doing the above process, i get a zip file of 5KB but no contents inside the file.