Convert the InputStream to String in SAP PI/PO Java Mapping
Below is the code to convert the incoming input Stream to the String format and modify it as per the requirement and write it to output Stream.
Steps:
1. Read the input payload from in object to InputStream Variable.
2. Convert the input stream to String
3. perform the modification operations on string
4. write the output Stream
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
public class test extends AbstractTransformation {
public void transform(TransformationInput in, TransformationOutput out)
throws StreamTransformationException {
InputStream inputstream = in.getInputPayload().getInputStream();
OutputStream outputstream = out.getOutputPayload().getOutputStream();
//converting inputstream to String
String inputString = convertStreamToString(inputstream);
String output = \"output is\" + inputString;
//writing output payload
try {
outputstream.write(output.getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
public String convertStreamToString(InputStream in){
StringBuffer sb = new StringBuffer();
try
{
InputStreamReader isr = new InputStreamReader(in);
Reader reader =
new BufferedReader(isr);
int ch;
while((ch = in.read()) > -1) {
sb.append((char)ch);}
reader.close();
}
catch(Exception exception) { }
return sb.toString();
}
}
1 comment