on 01-12-2010 3:12 PM
Hi Experts ,
I need to add this extra 2nd line in my generated xml output of graphical mapping.
<?xml version="1.0" encoding="UTF-8"?>
<?Siebel-Property-Set EscapeNames="false"?>
Is there any smart way to add this 2nd line? I have already created a graphical mapping for the message with complex lookups and do not wish change it much.
Thanks
Shamly.
my suggestion is a simple java mapping and use normal string functions to achieve the result
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Check if the java mapping thing works (when the xml has completed its java mapping part , the next steps may enforce the tag to be ignored ).
This happened to me when i tried inserting < ! -- /> tag.
So finally I was required to create an adapter module (which is the last phase of processing ) for inserting the tag.
Hi experts,
I am using the shabarish' blog
/people/shabarish.vijayakumar/blog/2009/12/07/parametrized-java-mapping-in-pi-71-plus-some-other-delicacies
i am using the reference java code given within
http://wiki.sdn.sap.com/wiki/display/XI/ParametrizedJavaMappinginPI+7.1
I have copied the code and trying to compile it in eclipse.
This is giving me lot of error messages in eclipse - like- import com.sap cannot be resolved.
and it is generating a number of class files.
Can these errors be ignored?
Do i need to import all the class files created?
Thanks,
Shamly
Hi,
Those errors are cannot be ignored.
For java mapping, you have to import the jars below..
com.sap.aii.af.cpa.svc.api
com.sap.aii.af.lib.mod
com.sap.aii.af.ms.ifc_api
com.sap.aii.af.svc_api
com.sap.xpi.ib.mapping.lib
sap.comtcloggingjavaimpl
Regards,
Swetha.
Edited by: Swetha Reddy on Jan 13, 2010 10:17 AM
Thank you very much for your answers and suggestions following which i got the desired result.
I used , second java mapping and compiled the code with NWDS.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I guess you can also do this by using a simple XSLT mapping after your grphical in the operation mapping. The cod efor the same is as given below:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Add the your desired field -->
<xsl:output method="xml" indent="no" omit-xml-declaration="no"
Siebel-Property-Set EscapeNames="false"/>
<!-- Identity Transform - copy the source XML to the output without any changes -->
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Warm Regards,
Anshul
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Shamly,
You are on right path.
Use your graphical mapping (for complex lookup and other logic) after that use another Java Mapping ( to add <? ?> line) in Operational Mapping.
Use this bolg to develop Java Mapping /people/carlosivan.prietorubio/blog/2007/12/21/implementing-a-java-mapping-in-sap-pi
Hope this code will help you
import java.io.*;
import java.util.*;
import com.sap.aii.mapping.api.*;
public class DynamicMapping implements StreamTransformation {
private Map param;
public void setParameter(Map param) {
this.param = param;
}
public void execute(InputStream in, OutputStream out) throws StreamTransformationException {
try {
byte[] b = new byte [in. available ()]; // in.available() is in square brackets
in.read(b);
StringBuffer input = new StringBuffer( new String(b));
/*note " ' ' " in double Quotes we can have single Quotes.
/Here we are inserting <?Siebel-Property-Set EscapeNames='false'?> after <?xml version="1.0" encoding="UTF-8"?> i.e after ?> */
input.insert(input.indexOf("?>")+2, "<?Siebel-Property-Set EscapeNames='false'?>");
out.write(b.toString().getBytes());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Edited by: Raghu Vamsee on Jan 13, 2010 7:22 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
aii_map_api.jar
"Where to get the libraries for XI development '
https://wiki.sdn.sap.com/wiki/display/XI/Where%20to%20get%20the%20libraries%20for%20XI%20development
The jar files required will be in your XI server (the wiki mentioned above will guide you through).....you need to have access to the folder/ machine where XI/ PI is installed.
Once you have the required jar file import it into the java compiler that you are using....in NWDS it can be done as follows:
NWDS --> Open your java mapping --> right-click on the mapping name in Project Explorer --> Properties --> JAVA Build Path --> Libraries --> Add External JAR --> select the jar and click OK......then compile....if there is no other error (syntax) then you will get the .class file.
Regards,
Abhsihek.
Hi Shamly,
you can achieve that very smart with a second, non parsing ABAP mapping:
-use fm ECATT_CONV_XSTRING_TO_STRING to convert the source to string,
- search for "<?Siebel-Property-Set EscapeNames="false"?>"
- concatenate the both header and the xml payload
- use fm ECATT_CONV_STRING_TO_XSTRING to convert the string to result (XSTRING)
just a view lines,
Regards,
Udo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.