on 09-22-2015 1:52 PM
HI Experts,
I have requirement to convert the XML payload to Hexa decimal(contains numaric,alphabitical and coma aswell ).
Please suggest how can i convert.?
Regards,
Uday.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Thanks for quick responce.
Issue got solved by doing modifications in UDF.
Regads,
Uday.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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();
}
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.