on 03-30-2010 5:16 AM
Hi Experts,
We have created a Java mapping in PI 7.0. Now we have migrated all the java mapping code to PI 7.1. While conducting regression test on the Interface, the java mapping is not working as per the expected results.
Can you please tell me if i need to modify the Java mapping, If yes can you tell the step by step procedure.
I do have :
- NWDS
- PI 7.1 Mapping Jar file (com.sap.xpi.ib.mapping.lib)
- Old Java Mapping (zip file)
Thanks
Edited by: Ramani Thota on Mar 30, 2010 6:18 AM
Hi,
The existing code what you have written in PI7.0 will work fine in PI7.1 without any issues.
But chnaging the code as per PI7.1 it is good,it is very simple,when you import new jar file for java mapping it is not going to support Streamtrasformation method any more,so use Trasformethod,and use JDK1.5 version in NWDS,.
thats it...
REFER BELOW LINK FOR CODE SINNPET IN PI7.1
http://help.sap.com/saphelp_nwpi71/helpdata/EN/43/bc2fd4da1e1bbce10000000a1553f7/content.htm
Regards,
Raj
Edited by: Raja Sekhar Reddy T on Mar 30, 2010 6:22 AM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Raj,
I'm having JDK 1.6, Can you please let me know where i need to modify the below code wrt to PI 7.1
Code:
package mappin1;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.helpers.DefaultHandler;
import com.sap.aii.mapping.api.MappingTrace;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
public class XMLHeaderGenerator extends DefaultHandler implements StreamTransformation {
private Map map;
// private static OutputStream out ;
private static MappingTrace trace;
private static String noProgressToken = "RR";
private String tokenOne = null;
private String tokenOne1 = null;
private String tokenTwo = null;
private String tokenThree = null;
private String fileContent = null;
public static void main(String args[]) throws Exception {
FileInputStream inDataFile1 =
new FileInputStream("C:
Documents and Settings
ram
Desktop
ram
xi_input.txt");
XMLHeaderGenerator xml = new XMLHeaderGenerator();
FileOutputStream outFile =
new FileOutputStream("C:
Documents and Settings
ram
Desktop
hemant
output
ram.xml");
//xml.setParameter(map);
xml.execute(inDataFile1, outFile);
System.out.println("Success");
}
public void setParameter (Map param) {
trace = (MappingTrace) param.get(StreamTransformationConstants.MAPPING_TRACE);
}
public void execute(InputStream in, OutputStream out)
throws com.sap.aii.mapping.api.StreamTransformationException {
// /* **********************Code To Generate The XML Parsing Objects****************************//
//XMLHeaderGenerator xml = new XMLHeaderGenerator();
Document docin = null;
Element root = null;
String keytagvalueTokenOne = null;
String keytagvalueTokenTwo = null;
String keytagvalueTokenThree = null;
String line = null;
BufferedReader inpxml = null;
if(null != trace ){
trace.addInfo("Process Started");
}
try{
if(null != in){
inpxml = new BufferedReader(new InputStreamReader(in));
}
if(null != inpxml){
line = inpxml.readLine();
if(line.equals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")){
line = inpxml.readLine();
//line = inpxml.readLine();
}
this.fileContent = line;
if(null != line){
int index = line.indexOf(noProgressToken);
if(index != -1){
this.tokenOne1 = line.substring(index + 2, index + 17);
this.tokenOne = tokenOne1.substring(0,tokenOne1.indexOf(" "));
this.tokenTwo = line.substring(index + 17, index + 23);
this.tokenThree = line.substring(index + 37, index + 39);
line = line.substring(index + 0, index + 2);
//this.tokenOne = LTrim(tokenOne1);
// tokenOne = tokenOne1.replaceAll("^
s+","");
}
}
}
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("11111111111111111111111111111");
}
try{ //remove ltr
if((null != line) && (line.equals(this.noProgressToken))){
DocumentBuilderFactory dbf = null;
DocumentBuilder db = null;
TransformerFactory tf = null;
Transformer transform = null;
InputStream inPropFile1 = null;
// InputStreamReader inPropFile1 = null;
String inptxml = null;
try{ //remove ltr
String nextLine;
while((nextLine = inpxml.readLine()) != null ){
this.fileContent = this.fileContent + "\n" + nextLine;
}
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("77777777777777777777777777777777");
}
try{ //remove ltr
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
tf = TransformerFactory.newInstance();
transform = tf.newTransformer();
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("?????????????????????????????");
}
try{ //remove ltr
InputStream is;
URL url = new URL("ftp://ram:anon@50.222.100.133/Input/prjLog2KNpBeOut.properties");
URLConnection connection = url.openConnection();
//is = connection.getInputStream();
inPropFile1 = connection.getInputStream();
//InputStreamReader reader = new InputStreamReader(is);
// inPropFile1= new InputStreamReader(is);
//BufferedReader buffer = new BufferedReader(reader);
// Read properties file.
//BufferedReader bf = new BufferedReader(new InputStreamReader(inPropFile1));
Properties properties = new Properties();
try {
properties.load(inPropFile1);
// String key = bf.readLine();
keytagvalueTokenOne = properties.getProperty(this.tokenOne);
keytagvalueTokenTwo = properties.getProperty(this.tokenTwo);
keytagvalueTokenThree = properties.getProperty(this.tokenThree);
} catch (IOException e) {
}
//inPropFile1 = (FileInputStream) is;
// inPropFile1 = new FileInputStream("C:
Documents and Settings
ram
Desktop
ram
input_prop.xml");
}//remove ltr
catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
trace.addInfo("{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{");
trace.addInfo(e.getMessage());
}
// try{ //remove ltr
//
// if(null != inPropFile1){
// docin = db.parse(inPropFile1);
//
// }
// if(null != docin){
// root = docin.getDocumentElement();
// }
//
// NodeList children = null;
// if(null != root){
// children = root.getChildNodes();
// }
//
// NodeList list = children;
// int ctr = 0;
// for (int i=0; i < list.getLength(); i++) {
// Node subnode = list.item(i);
// if ((null != subnode) && subnode.getNodeType() == Node.ELEMENT_NODE) {
// if (subnode.getNodeName().equals(tokenOne)){
// keytagvalueTokenOne = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// else if((null != subnode) && subnode.getNodeName().equals(tokenTwo)){
// keytagvalueTokenTwo = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// else if((null != subnode) && subnode.getNodeName().equals(tokenThree)){
// keytagvalueTokenThree = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// if(ctr == 3){
// i = list.getLength();
// }
// }
// }
//
// }//remove ltr
// catch (Exception e) {
// e.printStackTrace();
// trace.addInfo("222222222222222222222222222222222222");
// }
try{ //remove ltr
String BlobHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><BlobFF Version=\"1.3\"><Header>";
BlobHeader = BlobHeader + "<ThisDocumentIdentifier><DocumentIdentifier>";
Date today;
SimpleDateFormat formatter;
today = new Date();
formatter = new SimpleDateFormat("yyyyMMddhhmmss");
BlobHeader = BlobHeader + this.tokenOne + "_" + this.tokenTwo + "_" + formatter.format(today);
BlobHeader = BlobHeader + "</DocumentIdentifier></ThisDocumentIdentifier><ThisDocumentDateTime><DateTime>";
BlobHeader = BlobHeader + formatter.format(today);
BlobHeader = BlobHeader + "</DateTime></ThisDocumentDateTime>";
BlobHeader = BlobHeader + "<From><PartnerInformation><PartnerIdentifier><Code>";
BlobHeader = BlobHeader + keytagvalueTokenTwo;
BlobHeader = BlobHeader + "</Code></PartnerIdentifier></PartnerInformation></From>";
BlobHeader = BlobHeader + "<To><PartnerInformation><PartnerIdentifier><Code>";
BlobHeader = BlobHeader + keytagvalueTokenOne;
BlobHeader = BlobHeader + "</Code></PartnerIdentifier></PartnerInformation></To>";
BlobHeader = BlobHeader + "</Header><BlobFFBody EncodeMethod=\"\">";
BlobHeader = BlobHeader + "<DocumentFormat FormatDesc=\"LOG2000\">Flat File</DocumentFormat>";
BlobHeader = BlobHeader + "<DocumentType TypeDesc=\"" + this.tokenThree + "\">";
BlobHeader = BlobHeader + keytagvalueTokenThree;
BlobHeader = BlobHeader + "</DocumentType>";
BlobHeader = BlobHeader + "<DocumentBody><![CDATA[";
this.fileContent = this.fileContent.substring(103,this.fileContent.indexOf("</documentbody>"));
//this.fileContent = this.fileContent.substring(this.fileContent.indexOf("<"),this.fileContent.lastIndexOf(">"));
BlobHeader = BlobHeader + this.fileContent;
BlobHeader = BlobHeader + "]]></DocumentBody></BlobFFBody></BlobFF>";
StringBuffer buffer = new StringBuffer();
buffer.append(BlobHeader);
inptxml=buffer.toString();
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("333333333333333333333333333333333");
}//remove ltr
try {
out.write(inptxml.getBytes());
}
catch (Exception e) {
e.printStackTrace();
trace.addInfo("444444444444444444444444444444");
}
}
else {
System.out.println("Unrecognized beginning to file");
}
}
catch (Exception e) {
e.printStackTrace();
trace.addInfo("Process Terminated: Error in writing out payload");
}
}
}
Hi,
Logic point of view no changes required,just change executemthod statement to trasform as i already mentioned,organize your imports accordingly,when you import new java mapping jar file it asks for new imports.
> xml.execute(inDataFile1, outFile);
method to
xml.trasform(inDataFile1, outFile);
> public void execute(InputStream in, OutputStream out)
> throws com.sap.aii.mapping.api.StreamTransformationException {
>
public void transform(TransformationInput in,TransformationOutput out) throws StreamTransformationException
Regards,
Raj
Try this one,i havnt tested...
package mappin1;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.helpers.DefaultHandler;
import com.sap.aii.mapping.api.MappingTrace;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
public class XMLHeaderGenerator extends DefaultHandler implements StreamTransformation {
private Map map;
// private static OutputStream out ;
private static MappingTrace trace;
private static String noProgressToken = "RR";
private String tokenOne = null;
private String tokenOne1 = null;
private String tokenTwo = null;
private String tokenThree = null;
private String fileContent = null;
public static void main(String args[]) throws Exception {
FileInputStream inDataFile1 = new FileInputStream("C:
Documents and Settings
ram
Desktop
ram
xi_input.txt");
XMLHeaderGenerator xml = new XMLHeaderGenerator();
FileOutputStream outFile =
new FileOutputStream("C:
Documents and Settings
ram
Desktop
hemant
output
ram.xml");
//xml.setParameter(map);
xml.transform(inDataFile1, outFile);
System.out.println("Success");
}
public void setParameter (Map param) {
trace = (MappingTrace) param.get(StreamTransformationConstants.MAPPING_TRACE);
}
public void transform(
TransformationInput in,
TransformationOutput out)
throws StreamTransformationException {
// /* **********************Code To Generate The XML Parsing Objects****************************//
//XMLHeaderGenerator xml = new XMLHeaderGenerator();
Document docin = null;
Element root = null;
String keytagvalueTokenOne = null;
String keytagvalueTokenTwo = null;
String keytagvalueTokenThree = null;
String line = null;
BufferedReader inpxml = null;
if(null != trace ){
trace.addInfo("Process Started");
}
try{
if(null != in){
inpxml = new BufferedReader(new InputStreamReader(in));
}
if(null != inpxml){
line = inpxml.readLine();
if(line.equals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")){
line = inpxml.readLine();
//line = inpxml.readLine();
}
this.fileContent = line;
if(null != line){
int index = line.indexOf(noProgressToken);
if(index != -1){
this.tokenOne1 = line.substring(index + 2, index + 17);
this.tokenOne = tokenOne1.substring(0,tokenOne1.indexOf(" "));
this.tokenTwo = line.substring(index + 17, index + 23);
this.tokenThree = line.substring(index + 37, index + 39);
line = line.substring(index + 0, index + 2);
//this.tokenOne = LTrim(tokenOne1);
// tokenOne = tokenOne1.replaceAll("^
s+","");
}
}
}
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("11111111111111111111111111111");
}
try{ //remove ltr
if((null != line) && (line.equals(this.noProgressToken))){
DocumentBuilderFactory dbf = null;
DocumentBuilder db = null;
TransformerFactory tf = null;
Transformer transform = null;
InputStream inPropFile1 = null;
// InputStreamReader inPropFile1 = null;
String inptxml = null;
try{ //remove ltr
String nextLine;
while((nextLine = inpxml.readLine()) != null ){
this.fileContent = this.fileContent + "\n" + nextLine;
}
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("77777777777777777777777777777777");
}
try{ //remove ltr
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
tf = TransformerFactory.newInstance();
transform = tf.newTransformer();
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("?????????????????????????????");
}
try{ //remove ltr
InputStream is;
URL url = new URL("ftp://ram:anon@50.222.100.133/Input/prjLog2KNpBeOut.properties");
URLConnection connection = url.openConnection();
//is = connection.getInputStream();
inPropFile1 = connection.getInputStream();
//InputStreamReader reader = new InputStreamReader(is);
// inPropFile1= new InputStreamReader(is);
//BufferedReader buffer = new BufferedReader(reader);
// Read properties file.
//BufferedReader bf = new BufferedReader(new InputStreamReader(inPropFile1));
Properties properties = new Properties();
try {
properties.load(inPropFile1);
// String key = bf.readLine();
keytagvalueTokenOne = properties.getProperty(this.tokenOne);
keytagvalueTokenTwo = properties.getProperty(this.tokenTwo);
keytagvalueTokenThree = properties.getProperty(this.tokenThree);
} catch (IOException e) {
}
//inPropFile1 = (FileInputStream) is;
// inPropFile1 = new FileInputStream("C:
Documents and Settings
ram
Desktop
ram
input_prop.xml");
}//remove ltr
catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
trace.addInfo("{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{");
trace.addInfo(e.getMessage());
}
// try{ //remove ltr
//
// if(null != inPropFile1){
// docin = db.parse(inPropFile1);
//
// }
// if(null != docin){
// root = docin.getDocumentElement();
// }
//
// NodeList children = null;
// if(null != root){
// children = root.getChildNodes();
// }
//
// NodeList list = children;
// int ctr = 0;
// for (int i=0; i < list.getLength(); i++) {
// Node subnode = list.item(i);
// if ((null != subnode) && subnode.getNodeType() == Node.ELEMENT_NODE) {
// if (subnode.getNodeName().equals(tokenOne)){
// keytagvalueTokenOne = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// else if((null != subnode) && subnode.getNodeName().equals(tokenTwo)){
// keytagvalueTokenTwo = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// else if((null != subnode) && subnode.getNodeName().equals(tokenThree)){
// keytagvalueTokenThree = subnode.getChildNodes().item(0).getNodeValue();
// ctr++;
// }
// if(ctr == 3){
// i = list.getLength();
// }
// }
// }
//
// }//remove ltr
// catch (Exception e) {
// e.printStackTrace();
// trace.addInfo("222222222222222222222222222222222222");
// }
try{ //remove ltr
String BlobHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><BlobFF Version=\"1.3\"><Header>";
BlobHeader = BlobHeader + "<ThisDocumentIdentifier><DocumentIdentifier>";
Date today;
SimpleDateFormat formatter;
today = new Date();
formatter = new SimpleDateFormat("yyyyMMddhhmmss");
BlobHeader = BlobHeader + this.tokenOne + "_" + this.tokenTwo + "_" + formatter.format(today);
BlobHeader = BlobHeader + "</DocumentIdentifier></ThisDocumentIdentifier><ThisDocumentDateTime><DateTime>";
BlobHeader = BlobHeader + formatter.format(today);
BlobHeader = BlobHeader + "</DateTime></ThisDocumentDateTime>";
BlobHeader = BlobHeader + "<From><PartnerInformation><PartnerIdentifier><Code>";
BlobHeader = BlobHeader + keytagvalueTokenTwo;
BlobHeader = BlobHeader + "</Code></PartnerIdentifier></PartnerInformation></From>";
BlobHeader = BlobHeader + "<To><PartnerInformation><PartnerIdentifier><Code>";
BlobHeader = BlobHeader + keytagvalueTokenOne;
BlobHeader = BlobHeader + "</Code></PartnerIdentifier></PartnerInformation></To>";
BlobHeader = BlobHeader + "</Header><BlobFFBody EncodeMethod=\"\">";
BlobHeader = BlobHeader + "<DocumentFormat FormatDesc=\"LOG2000\">Flat File</DocumentFormat>";
BlobHeader = BlobHeader + "<DocumentType TypeDesc=\"" + this.tokenThree + "\">";
BlobHeader = BlobHeader + keytagvalueTokenThree;
BlobHeader = BlobHeader + "</DocumentType>";
BlobHeader = BlobHeader + "<DocumentBody><![CDATA[";
this.fileContent = this.fileContent.substring(103,this.fileContent.indexOf("</documentbody>"));
//this.fileContent = this.fileContent.substring(this.fileContent.indexOf("<"),this.fileContent.lastIndexOf(">"));
BlobHeader = BlobHeader + this.fileContent;
BlobHeader = BlobHeader + "]]></DocumentBody></BlobFFBody></BlobFF>";
StringBuffer buffer = new StringBuffer();
buffer.append(BlobHeader);
inptxml=buffer.toString();
}//remove ltr
catch (Exception e) {
e.printStackTrace();
trace.addInfo("333333333333333333333333333333333");
}//remove ltr
try {
out.write(inptxml.getBytes());
}
catch (Exception e) {
e.printStackTrace();
trace.addInfo("444444444444444444444444444444");
}
}
else {
System.out.println("Unrecognized beginning to file");
}
}
catch (Exception e) {
e.printStackTrace();
trace.addInfo("Process Terminated: Error in writing out payload");
}
}
Regards,
Raj
Answered .. Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.