Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**------------------------------------------------------------------------------*
- * Interface ID : SWIFTFIN02
- * Description : Inbound FIN MT Messages
- *
- * Input: SwiftMessage
- * Input Format: XML File
- *
- * Output: SwiftMessage
- * Output Format: XML File
- *
- * Desription : This mapping program will retrieve information from the PDU data
- * to generate a filename and set it via Dynamic Configuration
- * - Uses StAX Reader
- * - Uses Dynamic Configuration to set the Filename
- *------------------------------------------------------------------------------*/
- import java.io.*;
- import java.util.*;
- import javax.xml.stream.XMLInputFactory;
- import javax.xml.stream.XMLStreamConstants;
- import javax.xml.stream.XMLStreamException;
- import javax.xml.stream.XMLStreamReader;
- 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;
- import com.sap.aii.mapping.api.DynamicConfiguration;
- import com.sap.aii.mapping.api.DynamicConfigurationKey;
- public class MappingImplementation extends AbstractTransformation {
- private static final DynamicConfigurationKey KEY_FILENAME =
- DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
- String format = null;
- String messageID = null;
- String senderBIC = null;
- /**--------------------------------------------*
- * Transform : called by PI 7.1 IE *
- *---------------------------------------------*/
- public void transform (TransformationInput input, TransformationOutput output)
- throws StreamTransformationException {
- getTrace().addInfo("Java Mapping started.");
- // Build filename using the following values separated by '_'
- // 1. Format
- // 2. Message Identifier
- // 3. Sender BIC - Institution Code (first 4 characters)
- // 4. Date Time
- // 5. Counter - to be added by File Adapter
- //
- // Sample: MT_fin.199_CITI_20110627_152658_NNNNN
- this.execute(input.getInputPayload().getInputStream(), output.getOutputPayload().getOutputStream());
- DynamicConfiguration conf = input.getDynamicConfiguration();
- String dateTime = String.format("%tY%<tm%<td_%<tH%<tM%<tS", new Date());
- String filename = format + "_" +
- messageID + "_" +
- senderBIC.substring(0,4) + "_" +
- dateTime + "_.out" ;
- getTrace().addInfo("Generating filename: " + filename);
- conf.put(KEY_FILENAME, filename);
- // return the same payload
- String inData = convertStreamToString(input.getInputPayload().getInputStream());
- try {
- output.getOutputPayload().getOutputStream().write(inData.getBytes("UTF-8"));
- } catch(Exception exception1) { }
- getTrace().addInfo("Java Mapping finished.");
- } // transform
- /**--------------------------------------------*
- * convertStreamToString *
- *---------------------------------------------*/
- 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();
- }
- /**--------------------------------------------*
- * execute *
- *---------------------------------------------*/
- public void execute(InputStream in, OutputStream out)
- throws StreamTransformationException {
- XMLInputFactory inputFactory = XMLInputFactory.newInstance();
- inputFactory.setProperty(XMLInputFactory.IS_COALESCING, true);
- try {
- XMLStreamReader xmlStreamReader = inputFactory.createXMLStreamReader(in);
- while (xmlStreamReader.hasNext()) {
- int event = xmlStreamReader.next();
- if (event == XMLStreamConstants.START_ELEMENT) {
- if ( xmlStreamReader.getLocalName().equals("Format") ) {
- event = xmlStreamReader.next();
- if (event == XMLStreamConstants.CHARACTERS) {
- format = xmlStreamReader.getText();
- System.out.println("Format : " + format);
- continue;
- }
- }
- if ( xmlStreamReader.getLocalName().equals("MessageIdentifier") ) {
- event = xmlStreamReader.next();
- if (event == XMLStreamConstants.CHARACTERS) {
- messageID = xmlStreamReader.getText();
- System.out.println("Message ID : " + messageID );
- continue;
- }
- }
- if ( xmlStreamReader.getLocalName().equals("SenderBIC12") ) {
- event = xmlStreamReader.next();
- if (event == XMLStreamConstants.CHARACTERS) {
- senderBIC = xmlStreamReader.getText();
- System.out.println("Sender BIC : " + senderBIC );
- continue;
- }
- }
- }
- } // while (xmlStreamReader.hasNext())
- } catch ( XMLStreamException x ) {
- x.printStackTrace();
- }
- }
- /*
- * main method for testing
- */
- public static void main(String[] args) {
- try {
- InputStream in = new FileInputStream(new File("in.xml"));
- OutputStream out = new FileOutputStream(new File("out.xml"));
- MappingImplementation myMapping = new MappingImplementation();
- myMapping.execute(in, out);
- System.out.print("Success!");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement