Mapping error because of special characters

Hello,
We are extracting data from SAP system and sending it thru XI to 3rd party system (writing xml files on to file server).
Now, because of presence of few special characters in the data, there is a mapping exception error in XI.
The data which is causing the issue is "ABRANCENTRO   MEDIAÇÃO IMOBILIÁRIA".
In SXMB_MONI, i see that this is failing is Request Message mapping step.
We can not remove special characters as this is master data. How can i fix this issue?
DO i need to use any modules in communication channel for this purpose?
Any leads are highly appreciated.
Thanks,
Chandra

Hi Chandra,
an UDF cant help you assumedly coz that characters lead to "not wellformed" XML. Any parser would complain about that. So the PI parser would throw an error before executing the UDF.
The question is: what does the receiver expect? You wrote you like to write xml files to a server. But if the XML is not wellformed, the receiver would not be able to parse them, and therefore usually not able to process them.
If you really want to create such a file (not wellformed XML) you can create that with a not parsing mapping (ABAP or Java). So you map the message just with string operations. This is not very recommentable and only possible for very simple mapping cases.
Regards,
Udo

Similar Messages

  • Error while handling special characters ( and &) in Sender File adapter

    Dear All,
    Scenario: Third Party System --> (File adapter) SAP PI 7.1 (SP05) --> (Proxy) ECC
    We are receiving CSV file and no mapping is required in PI as all the processing is being done by third party tool. But we are receiving special characters like ',",>,< and & in the csv file.
    When we are using File Type as TEXT and File Encoding as ISO-8859-1 than we are getting error. We changed File Type to BINARY and than we are able to handle ',",> but having issue in handling < and &.
    Any idea how we can handle it.
    Please note trhere is no Mapping in SAP PI so cannot uise Java mapping.
    Thanks a lot
    Chanakya

    Hey,
    You can add ABAP Script in Receiver Proxy for eliminating or replacing with NULL or empty. Since you dont have mapping for formatting these kind of junks you can follow the above approach.
    Else, you can remove the junks at OS level while running a small script and make it available to PI.
    Or else, you need to create mapping for sender and recevier structure though it is same, then you add a very simple UDF for fine tune.
    Use this UDF
    Here a is the input value.
    String b = "";
    b = a.replaceAll(",", "0");
    b = a.replaceAll("@", "0");
    Like all the special characters you can take and replace with zero.
    return b;
    Thanx
    Pothana

  • Error in parsing special characters

    We are getting the following error when we parse a clob with special characters like \226(- special dash char), \231(the "TM"-Trademark logo), \256(the "R"-Registered logo )
    "Invalid char in text" when the parser is loaded in the db.
    But when we tried to parse this xml file as a file input (parser is now outside the db), it parses the file fine and inserts the data into the db.
    We are wondering if there is a difference in parser parsing special characters between inside and outside the db.
    We are running xml parser version 2.0.2.7 and if this is a bug and being fixed in later version, is there a workaround for this version

    Please try our latest 9.0.1 version

  • SOAP Adapter - Error because of special character (u00FC - Umlaut) in payload

    Hello,
    We have a SOAP sync scenario.
    SAP -> PI 7.0 -> 3rd Party system
    We have a special character (ü - Umlaut) as part of the payload.
    When the message enters message pipeline in PI, I can see the payload XML till message branching step.
    From Message mapping step, i get the message - "The XML page cannot be displayed. An invalid character was found in text content" in SXMB_MONI.
    In communication channel monitoring, I see the following error:
    SOAP: error occured: com.sap.aii.af.ra.ms.api.RecoverableException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)(:main:, row=2, col=2106) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106): java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)(:main:, row=2, col=2106) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)
    But, when I pass the same message(with special character) to the 3rd party system using SOAP UI, i get a valid response back.
    So, what is going wrong in PI?
    Thanks,
    Chandra

    Hi Gouri,
    you are right. My message is successful in SXMB_MONI, and the error is coming from comm channel monitoring with deliverin to target.
    My sender is a proxy, and we can not specify any encoding in proxy sender.
    I did not specify any encoding in SOAP Receiver aswell.
    This is the sequence in comm channel monitoring:
    Success: Delivering to channel: CI_SOAP_Receiver_Sync
    Success: MP: Entering module processor
    Success: MP: Processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
    Success: SOAP: request message entering the adapter with user J2EE_GUEST
    Error: SOAP: call failed: java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)
    Error SOAP: error occured: com.sap.aii.af.ra.ms.api.RecoverableException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046): java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)
    So, what can i do to fix this?
    Thanks,
    Chandra
    Edited by: Chandra Sekhar H on Mar 3, 2011 12:25 PM

  • OpenSSO 8 configurator error due to special characters in password

    We got the same AMSetupServlet StringIndexOutOfBoundsException described in thread 5356908 when running the GUI configurator in OpenSSO Enterprise 8.0 Update 1 Patch 1.
    As in that posting, the error was caused by a special character in the password ($ in this case).
    So it seems that the fixes mentioned by kujalli didn't address this issue.

    Hello All,
    the second issue is resolved as i replaced some other character and included the two necessary for me and the issue is solved.
    For first issue, i found an OSS notes 173241, which says character # cannot be loaded alone. But the OSS notes is for version 3.1 and i am not sure whether the issue is fixed in 7.0 version
    Regards
    Suresh Kumar

  • How to Handle Special Characters in PI7.1

    Hi Team,
    I need to handle some special characters like <,>,& etc.. from WS Adapter to CRM in PI 7.1.
    http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/9420 [original link is broken]
    By using the above blog i had implemented the Java Code as
    public void execute(InputStream in, OutputStream out){
    try{
    int read_data;
    while((read_data = in.read()) != -1){
    if (read_data == '&'){
    out.write("&amp;".getBytes());
    }else if (read_data == '>'){
    out.write("&gt;".getBytes());
    }else if (read_data == '<'){
    out.write("&lt;".getBytes());
    }else if (read_data == '/'){
    out.write("&frasl;".getBytes());
    }else if (read_data == '\''){
    out.write("&apos;".getBytes());
    else { out.write(read_data);
    out.flush();
    } catch (Exception e){}
    I had added this class file in Operational Mapping.
    It is working  if we have only one IF condition for & in while
    Any suggestion
    Thanks
    Sriram

    Hi Ramesh,
    Thanks for your inputs, I have tried your code but it is not working. The error message stays the same.
    Dear Stephane,
    To describe the error more, the requirement is the payload coming from source through WS Adapter consists of the special characters <, > , & which are basic sematics of XML syntax. I need PI to process this payload with special characters and successfully transfer it to target CRM system. I have created the Java class with code (ref: Blog 9420) as stated earlier and added this class to my existing Operation Mapping. I am expecting the java mapping to replace the special characters in payload like  < with "&gt;" . So as the case with the other characters >,&,'
    After activaton of my operation mapping, I triggered the test message with Soap UI client and I could able to get a successful mapping only When I put the logic for &ampersand symbol only. However when I am trying to add the logic for > or < or ' the mapping is failing . I am using UTF-8 encoding across the source and PI enviroments.
    Sample SOAP message :
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:abcabca.com">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:MT_ABCDEFG_Req>
         <activity>
              <id/>
              <type>ZEMA</type>
              <actionType>C</actionType>
              <firewall>10000003</firewall>
              <subject>small &gt; &lt; attachment test</subject>
              <location/>
              <startDate>2010-07-08T10:53:31.000Z</startDate>
              <endDate>2010-07-08T10:53:31.000Z</endDate>
              <mainClient>1000319</mainClient>
              <mainContact>1000003</mainContact>
              <isConfidential>false</isConfidential>
              <summary/>
              <fullText>test body  - small.txt</fullText>
              <owner>1000021</owner>
              <from>ABCDEDF</from>
              <sendTo>emailaddress</sendTo>
              <copyTo/>
              <keywords/>
              <referenceId/>
              <createdBy>1000021</createdBy>
              <additionalContacts/>
              <additionalClients/>
              <additionalParticipants/>
              <status>A0008</status>
              <attachments>
                   <fileUrl>20100708110053-XXXXXXXXX</fileUrl>
                   <fileName>small.txt</fileName>
              </attachments>
              <attachments>
                   <fileUrl>20100708110053-XXXXXXXXX</fileUrl>
                   <fileName>EMail 2010-07-08.pdf</fileName>
              </attachments>
         </activity>
          </urn:MT_ABCDEFG_Req>
       </soapenv:Body>
    </soapenv:Envelope>
    Output on the SOAP UI  client for the above request:
    <!--see the documentation-->
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: XIServer:NO_MAPPINGPROGRAM_FOUND:
         at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1160)
         at sun.reflect.GeneratedMethodAccessor342.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(
    What do you think where I am doing the wrong?
    Sriram

  • Mapping error in File to File Scenario.

    In a file to file scenario some times sender communication channel picked the file, before the file is completely copied to the directory Though the poling intervals is 300 seconds. To my assumption, assume that the sender communication channel lastly polled on 10:10:10 and i am coping a file after 285 sec that is 10:14:55 and file size is 20 mb that takes 50 sec to copy. but the next sender communication channel poling is 10:15:10. here the file is partially copied but the communication channel picked the file and process. The scenarios throws mapping error because of in correct input file. This rarely accords but how to handle this. i want the cc to wait until the file is completely copied to the dir and then poll.

    Hi ,
    But there is some problem with system i guess. Adapter engine first load the whole file and then send it to Integration engine where after receiver and interface determination , mapping is excuted. So the fact that adapter picked up half of the file and tried to process does not seem correct.
    Ideally this behaviour should not occurs.
    If you are observing similar with all the adapter , you should also cross check with SAP support team.
    Ranjeet Singh.

  • Load special characters in oracle by using informatica

    Hi All,  I'm trying to load data from flat file to oracle databse table using Informatica power center 9.1.0 and I have some special characters in source file. Data are loaded sucessfully without any errors but these special characters are loaded different way like 1) Planner – loaded as Planner ��������2) Háiréch  loaded as Hair��������ch  While same flatfile loaded into another flatfile,data loaded correctly including special characters.So,I am unable to understand problem with database or informatica.   SourceFlat File - comma ',' delimtedCode page is defined as UTF-8 encoding of Unicode Relational connectionI have tried by changing the code page while creating relational connection in Informatica to UTF-8, ISO 8859-1 Western European,  MS Windows Latin 1 etc.,didn't work. InformaticaIntegration Service and Repo code page is defined as UTF8Data movement code page of Integration server was set to UNICODE   TargetOracle databaseNLS_NCHAR_CHARACTERSET: AL16UTF16NLS_CHARACTERSET: AL32UTF8   ThanksSai

    Hi All,  I'm trying to load data from flat file to oracle databse table using Informatica power center 9.1.0 and I have some special characters in source file. Data are loaded sucessfully without any errors but these special characters are loaded different way like 1) Planner – loaded as Planner ��������2) Háiréch  loaded as Hair��������ch  While same flatfile loaded into another flatfile,data loaded correctly including special characters.So,I am unable to understand problem with database or informatica.   SourceFlat File - comma ',' delimtedCode page is defined as UTF-8 encoding of Unicode Relational connectionI have tried by changing the code page while creating relational connection in Informatica to UTF-8, ISO 8859-1 Western European,  MS Windows Latin 1 etc.,didn't work. InformaticaIntegration Service and Repo code page is defined as UTF8Data movement code page of Integration server was set to UNICODE   TargetOracle databaseNLS_NCHAR_CHARACTERSET: AL16UTF16NLS_CHARACTERSET: AL32UTF8   ThanksSai

  • MultiMapping (Mapping Error)

    Hi Guys,
    Scenario : Idoc --> JDBC (Should Insert into two Oracle DBs)
    Used multimapping for this and configured the scenario (Enhanced Interface Determination)
    But i get a mapping error because : IDOC imported donot have the Element "message1"
    which got reflected when i said my Target Interface is Two Messages.
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
          <ZIDOCPLANORDER>
             <IDOC BEGIN="">
                <EDI_DC40 SEGMENT="">
    Actual Should be
    <?xml version="1.0" encoding="UTF-8"?>
    <ZIDOCPLANORDER>
       <IDOC BEGIN="">
          <EDI_DC40 SEGMENT="">
             <TABNAM/>
             <MANDT/>
             <DOCNUM/>
             <DOCREL/>
    how to Achieve this advice please
    regards
    srinivas

    Hello,
    I'm guessing that you are getting mapping errors when using the test tab. You need to edit your IDOC (in XML form) in order to test it. Use notepad in editing the IDOC, add the following tags:
    1. after <?xml version="1.0" encoding="utf-8"?> add the tag <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"> <ns0:Message1>
    2. scroll down to the end of your message and add this tag: </ns0:Message1></ns0:Messages>
    Save the message as XML.
    This should work when you are testing your messages in Integration Repository only. When the actual scenario is needed (runtime), there is no need to add the tags in your IDOC.
    Hope this helps,
    Regards

  • Runtime mapping error due to the special characters in source XML

    Hi All,
    I am facing problem with the special characters coming in the source XML message. it is failing at runtime in the mapping level. when i test with the same XML message manually in graphical message mapping it works.
    it looks like a UNICODE problem which we face noramlly in ABAP as well. but looking for a solution.
    For your reference i am giving the data which i am recivieing and the error message below.
    the problem is with the character .
    Source payload error:-
    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
    An invalid character was found in text content. Error processing resource 'file:///C:/WINNT/profiles/CG1009/Local Settings/Temp/a173eb8_2721HTML000003'. Line 26, Position 22
    Early response is appreciated.
    Thank you

    If your message contains special chars and the encoding is not being set, then the error is of the system which is sending the message, not XI's. The webserver should return the correct encoding.
    At adapter engine, You can set the enconding for the messages you send (for example, in Soap adapter module, set XMBWS.XMLEncoding parameter with value iso-8859-1),  but not for the messages you receive.
    As a workaround, you could try using a Java Mapping to change the encoding manually. For that, set the encoding of the OutputFormat of the XML you'll serialize. Try the following code piece for the mapping (inside a try/catch declaration):
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = factory.newDocumentBuilder();
    Document input = documentBuilder.parse(in);
    OutputFormat format = new OutputFormat(XML, "ISO-8859-1", false);
    XMLSerializer serializer = new XMLSerializer(out, format);
    serializer.serialize(input);
    For that code to work, you'll need to import xercesImpl.jar and xml-apis.jar in Imported Archives of mapping objects, in Integration Repository. Both are available at http://xerces.apache.org/xerces2-j/ .
    Regards,
    Henrique.

  • Error during data load due to special characters in source data

    Hi Experts,
    We are trying to load Billing data into the BW using the billing item datasource. It seems that there are some special characters in the source data. When the record with these characters is encountered, the request turns red and the package is not loaded even into the PSA. The error we get in the monitor is something like
    'RECORD 5028: Contents from field ****  cannot be converted into type CURR',
    where the field **** is a key figure of type currency. We managed to identify the said record in RSA3 on the source system and found that one of the fields contains some invalid (special) characters that show up as squares in RSA3. The data in the rest of the fields, including the fields mentioned in the error  looks correct.
    Our source system is a non-unicode system wheras the BW system is unicode enabled. I figure that the data in the rest of the fields are getting misaligned due to the presence of the invalid characters in the above field. This was confirmed when we unassigned the field with the special characters from the transfer rules and removed the source field from the transfer structure. After doing this the data was loaded successfully and the request turned green.
    Can anyone suggest a way to either filter out such invalid characters from the source data or make some settings in the BW systems such that the special characters are no longer invalid in the BW system? We cannot write code in the transfer rules because the data package does not even come into the PSA. Is there any other method to solve this problem?
    Regards,
    Ted

    Hi Thad,
    I was wondering, if system is unicode or non unicode that should not matter the amount and currency field . As currencies are defined by SAP and it is in pure English at least a currency code part of 3 Chars. 
    Could this because of some incosistency of data ??
    I would like to know for Which currency  had some special characters it it in that particular record ??
    Hope that helps.
    Regards
    Mr Kapadia

  • JAVA Mapping: Handle Special characters like u00E4,u00FC an so on

    Hi everybody,
    we have a JAVA Mapping that gerenates text nodes with special characters.
    The generated XML is later used in an graphical message-mapping.
    During runtime we ge the trace/error:
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: Fatal Error:
    com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 31(:main:, row:1, col:2498) at
    com.sap.aii.mappingtool.tf3.Transformer.checkParserException
    Does anybody know, how to modify the JAVA-mapping to have a workaound for this problem?
    Thanks
    Regards Mario
    Edited by: Mario Müller on Jul 22, 2008 4:33 AM

    Hi Mario,
    As java mapping does not validate the xml,the output gets created but if u have to use the xml structure,the u will have to include the following.
    Assume u r using a write method to write the output xml,then
    check for tspecial charactters like &,<,>.' etc and replce them as shown below
    private void write(String s)
         //Traverse through the string
    for (int i=0 ; i < string.length();i++)
         String s1 = data.substring(i, i + 1);
              if (s1.equals("&"))
                   write ("&amp;");
              else if (s1.equals("<"))
              write("&lt;");
              else if (s1.equals(">"))
              write("&gt;");
              else if (s1.equals("\""))
              write("&quot;");
              else if (s1.equals("'"))
              write("&apos;");
              else
              write(s1);
    Should help u out
    Edited by: Mohd Tauseef Ibrahim on Jul 22, 2008 11:08 AM
    Edited by: Mohd Tauseef Ibrahim on Jul 22, 2008 11:09 AM

  • Adding users with special characters results in error

    Hi all,
    I know it is not best practice to implement a Active Directory with user names containing special characters.
    Unfortunately, we come across some sites that do have these special characters in their user names.
    So, maybe it is a reason to tell the customer to reevaluate their naming policy, but in some cases this is
    just not possible / desirable. What we see when you try to add a user in the Sun VDI portal (1801) with
    a special character in his or her name, the VDI Portal goes back to the main login screen of the portal and
    displays an error:
    Internal Error Occurred!
    You have been logged out because a consistent response could not be guaranteed.
    If the error continues to occur, contact your local technical support and provide .....
    Does anyone know a workaround / fix for this.
    We are running Sun VDI 3.1 Revenue Release.
    Kind regards,
    Sander

    Svanderpost
    Open a support call with Sun there is a fix for this issue.

  • How do I use a font variation in a pages document. I no longer have the "viewer" -glyph option in special characters pane only new mbPro with Lion. I know the variation is available because I can see it in the font book. so now what I just want to be

    How do I use a font variation in a pages document? or other app for that matter? I no longer have the "viewer" - glyph option in the special characters pane (under edit  in toolbar). I know the varaition ia available because I can see it in my font book. I depended on that alot so I need to find a way to still use character and embellishments. I don't want to have to go back to my od computer (from2007) Please Help!

    I really don't understand.
    The menu item is available :
    Maybe, you didn't activate the tool :
    Yvan KOENIG (VALLAURIS, France) mardi 2 août 2011 23:10:17
    iMac 21”5, i7, 2.8 GHz, 4 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.0
    My iDisk is : <http://public.me.com/koenigyvan>
    Please : Search for questions similar to your own before submitting them to the community
    To be the AW6 successor, iWork MUST integrate a TRUE DB, not a list organizer !

  • Error in PSA with special characters

    Hello,
    I'm having a problem with sprecial characters in PRD system.
    This happen with standard extractor for Confirmations in SRM module, 0BBP_TD_CONF_1.
    I have 5 records with error in PSA. The field that have the error is 0bbp_delref and it has the text: “GUIA ENTREGA Nº2”.
    The error message says that field OBBP_DELREF has special characters that are not supported by BW.
    The field is char 16 and in spro I have the characters:
    QWERTYUIOPASDFGHJKLǪNºZXCVBM/~^´`* '()"#$%&!?.-0123456789«»<>
    In QUA, I created confirmations with this text and it worked fine and the characters in SPRO are the same.
    Any idea?
    Thanks and best regards,
    Maria

    Hi Maria,
    There will be no issue with update rules as the issue is with Data..
    ALL_CAPITAL should resolve your issue, .otherwise try individually executing those spl characters in RSKC..
    have you tried in SPRO...
    Check in this table RSALLOWEDCHAR in SE11 and find what all characters allowed(permitted)  in PRD system...
    please go through the above mentioned blog once
    Thanks,
    Sudhakar.

Maybe you are looking for