package SR_SAP2VAN_RD_Package; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.Map; import com.sap.aii.mapping.api.StreamTransformationConstants; import com.sap.aii.mapping.api.StreamTransformation; import com.sap.aii.mapping.api.StreamTransformationException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; public class SR_SAP2VAN_RD_Class implements StreamTransformation { private Map param = null; public void setParameter (Map param) { this.param = param; if (param == null) { this.param = new HashMap(); } } public void execute(InputStream inStream, OutputStream outStream) throws StreamTransformationException { try{ BufferedReader in = new BufferedReader(new InputStreamReader(inStream)); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(outStream)); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); // Create the output DOM Document docOut = builder.newDocument(); Element node1 = docOut.createElement("Receivers"); docOut.appendChild(node1); node1.setAttribute("xmlns", "http://sap.com/xi/XI/System"); String strLine; String File_in_1,File_in_2,File_out_1,File_out_2; int Flag = 0; String senderService = (String) param.get(StreamTransformationConstants.SENDER_SERVICE); while ((strLine = in.readLine()) != null) { if ((strLine.substring(0,7)).equals("E2EDL24") && Flag == 0) { if ((strLine.substring(199,203)).equals("BR18") || (strLine.substring(199,203)).equals("BR1F") ) { Element node2 = docOut.createElement("Receiver"); node1.appendChild(node2); Element node3 = docOut.createElement("Service"); node2.appendChild(node3); if (senderService.equals("BS_SAP_D")) { Text node3_1Text = docOut.createTextNode("BS_SAP_D"); node3.appendChild(node3_1Text); } if (senderService.equals("BS_SAP_Q")) { Text node3_2Text = docOut.createTextNode("BS_SAP_Q"); node3.appendChild(node3_2Text); } if (senderService.equals("BS_SAP_P")) { Text node3_3Text = docOut.createTextNode("BS_SAP_P"); node3.appendChild(node3_3Text); } Element node4 = docOut.createElement("Receiver"); node1.appendChild(node4); Element node5 = docOut.createElement("Service"); node4.appendChild(node5); if (senderService.equals("BS_SAP_D")) { Text node5_1Text = docOut.createTextNode("BS_VAN_D"); node5.appendChild(node5_1Text); } if (senderService.equals("BS_SAP_Q")) { Text node5_2Text = docOut.createTextNode("BS_VAN_Q"); node5.appendChild(node5_2Text); } if (senderService.equals("BS_SAP_P")) { Text node5_3Text = docOut.createTextNode("BS_VAN_P"); node5.appendChild(node5_3Text); } Flag = 1; } else { Element node6 = docOut.createElement("Receiver"); node1.appendChild(node6); Element node7 = docOut.createElement("Service"); node6.appendChild(node7); Text node7Text = docOut.createTextNode("Business_Service_SAP"); node7.appendChild(node7Text); Flag = 1; } } } if (Flag == 0) { Element node6 = docOut.createElement("Receiver"); node1.appendChild(node6); Element node7 = docOut.createElement("Service"); node6.appendChild(node7); Text node7Text = docOut.createTextNode("Business_Service_SAP"); node7.appendChild(node7Text); Flag = 1; } // transform the new xml to the output stream TransformerFactory tf = TransformerFactory.newInstance(); Transformer transform = tf.newTransformer(); transform.transform(new DOMSource(docOut), new StreamResult(out)); } catch (Exception e) { e.printStackTrace(); } } } |