Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8581

Re: Convert the payload to Hexadecimal at PI mapping?

$
0
0

Hi Uday,

 

Here are examples based on the older java mapping API for StreamTransformation and the newer stuff for AbstractTransformation.

 

StreamTransformation:

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Map;
import com.sap.aii.mapping.api.StreamTransformation;
public class MapFileStream implements StreamTransformation
{  private byte[] bytes = new byte[4096];  private StringBuffer sb;  private String digits = "0123456789ABCDEF";  private Map map;    public void execute(InputStream in, OutputStream out)  {    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));    sb = new StringBuffer();    try    {      int len;      while ((len = in.read(this.bytes)) != -1)      {        for (int i = 0; i < len; i++)        {          int c = bytes[i] & 0xFF;          sb.append(digits.charAt(c >> 4));          sb.append(digits.charAt(c & 0x0F));        }      }      bw.write(sb.toString());      bw.flush();      bw.close();    }    catch (IOException e)    {      e.printStackTrace();    }  }  @Override  public void setParameter(Map param) {    this.map = param;  }
}

AbstractTranformation:

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
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 MapFileStream extends AbstractTransformation
{  private byte[] bytes = new byte[4096];  private StringBuffer sb;  private String digits = "0123456789ABCDEF";    @Override  public void transform(TransformationInput in, TransformationOutput out)          throws StreamTransformationException  {    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out.getOutputPayload().getOutputStream()));    InputStream is = in.getInputPayload().getInputStream();    sb = new StringBuffer();    try    {      int len;      while ((len = is.read(this.bytes)) != -1)      {        for (int i = 0; i < len; i++)        {          int c = bytes[i] & 0xFF;          sb.append(digits.charAt(c >> 4));          sb.append(digits.charAt(c & 0x0F));        }      }      bw.write(sb.toString());      bw.flush();      bw.close();    }    catch (IOException e)    {      e.printStackTrace();    }  }
}

Viewing all articles
Browse latest Browse all 8581

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>