Applies to:
Error Message Area:Application Integration Infrastructure, Enterprise Application Interfaces - EAIVersion:Siebel 8.1
Purpose
This document is intended to provide cause and corrective action information about Siebel Error Message SBL-EAI-04112: The XML hierarchy cannot be converted to an XML document.Scope
This document is informational and intended for any user.SBL-EAI-04112: The XML hierarchy cannot be converted to an XML document.
Explanation
The EAI Integration Object to XML Hierarchy Converter business service returned an error.Corrective Action
Examine the log file and determine what error the EAI Integration Object to XML Hierarchy Converter business service encountered.Applies to:
Siebel System Software - Version: 7.5.2 [15051] to 8.0.0.4 SIA [20417] - Release: V7 to V8Information in this document applies to any platform.
Product Release: V8 (Enterprise)
Version: 8.0 [20405] Fin Svcs
Database: Oracle 10.2.0.2
Application Server OS: Microsoft Windows 2003 Server SP2
Database Server OS: IBM AIX 5L 5.1
This document was previously published as Siebel SR 38-3414054301.
""""Checked for relevance on 20-DEC-2010""""
Symptoms
Conversion from propertyset to XML of the raw output of "Read CSV File" fails with the following error:"The XML Hierarchy cannot be converted to an XML Document(SBL-EAI-04112)
Input Property Set should have only ONE child of type XMLHierarchy.
Cause
This is expected.
The conversion from propertyset to XML of the raw output of "Read CSV File" fails because the output contains actually 2 hierarchies.
One is an integration object with data from the file.
The other is an integration object too, with error information.
Both have type = hierarchy.
EAI XML Converter expects as input only one propertyset with type = hierarchy.
A sample output of running Read CSV file, method CsvToPropSet follows:
<?xml version="1.0" encoding="UTF-8"?>
<?Siebel-Property-Set EscapeNames="true"?>
<PropertySet NumRecords="1">
<SiebelMessage MessageId="" MessageType="Integration Object" IntObjectName="EAI Account" IntObjectFormat="Siebel Hierarchical">
<ListOfEAI_spcAccount>
<Account Location="My Account Location4" Name="My Account Name4">
</Account>
</ListOfEAI_spcAccount>
</SiebelMessage>
<SiebelMessageError MessageId="" MessageType="Integration Object" IntObjectName="EAI Account" IntObjectFormat="Siebel Hierarchical">
<ListOfEAI_spcAccount>
</ListOfEAI_spcAccount>
</SiebelMessageError>
</PropertySet>
The reason is this business service was not designed for general use.
It is used internally by some specialyzed Siebel Marketing functionality.
It is ok to use it for EAI, but you have to accept it as it is and adequate its outputs to your needs.
When you attempt to run EAI XML Converter on this propertyset, it will complain that
"The XML Hierarchy cannot be converted to an XML Document(SBL-EAI-04112)
Input Property Set should have only ONE child of type XMLHierarchy.
That is correct. The input has 2 IntObjectFormat="Siebel Hierarchical".
Solution
Whenever you intend to use the output of Read CSV file, please make sure to edit the output and separate just the integration object.
E.g: the following message works ok with EAI XML Converter.
<?xml version="1.0" encoding="UTF-8"?>
<?Siebel-Property-Set EscapeNames="true"?>
<PropertySet NumRecords="1">
<SiebelMessage MessageId="" MessageType="Integration Object" IntObjectName="EAI Account" IntObjectFormat="Siebel Hierarchical">
<ListOfEAI_spcAccount>
<Account Location="My Account Location4" Name="My Account Name4">
</Account>
</ListOfEAI_spcAccount>
</SiebelMessage>
</PropertySet>
To edit the output, you can explore the alternatives of scripting or data mapping.
BUG: 12-CZ0RGP Please document how to use the ' Read CSV File ' business service.
has been previously logged to request additional documentation about Read CSV File business service.
Additional information about Read CSV File is available at
NOTE: 483970.1 parsing CSV file
References
BUG:12-CZ0RGP - PLEASE DOCUMENT HOW TO USE THE ' READ CSV FILE ' BUSINESS SERVICE.NOTE:483970.1 - parsing CSV file
NOTE:1275189.1 - Read CSV File Master Note
Applies to:
Siebel System Software - Version: 7.8.2.3 [19221] - Release: V7Sun Solaris SPARC (64-bit)
Product Release: V7 (Enterprise)
Version: 7.8.2.3 [19221]
Database: Oracle 9.2.0.7
Application Server OS: Sun Solaris 10
This document was previously published as Siebel SR 38-3320024241.
Symptoms
SBL-UNU-00245, SBL-EAI-04112Errors are reported when converting hierarchy data to XML :-
e.errText: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112)e.errCode: 33409; e.message: SiebelError: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112) Character '0x0013' cannot be represented in XML(SBL-UNU-00245) Error near no filename:1110 [InvokeMethod()].
from no filename:1110 [SimulateWorkflow()]
from no filename:1301 [Service_PreInvokeMethod()]
.errText: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112)e.errCode: 33409; e.message: SiebelError: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112) Character '0x0007' cannot be represented in XML(SBL-UNU-00245) Error near no filename:1110 [InvokeMethod()].
from no filename:1110 [SimulateWorkflow()]
from no filename:1301 [Service_PreInvokeMethod()]
e.errText: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112)e.errCode: 33409; e.message: SiebelError: The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112) Character '0x000b' cannot be represented in XML(SBL-UNU-00245) Error near no filename:1110 [InvokeMethod()].
from no filename:1110 [SimulateWorkflow()]
from no filename:1301 [Service_PreInvokeMethod()]
Cause
As per unicode standards, see http://www.w3.org/TR/REC-xml/ (section 2.2 Characters), control characters '0x0013','0x0007' and '0x000b' are outside the allowed range, and should not be present in an XML string.
Solution
These characters should be escaped before submitting them to XML manipulations.Key Words: Unicode , Special Character
Applies to:
Siebel CRM Call Center - Version: 7.5.2 SIA [16007] to 8.1 SIA [21039] - Release: V7 to V8Information in this document applies to any platform.
Purpose
The purpose of this document is to provide details on business service "Read CSV File".Scope and Application
all audiences.Read CSV File Master Note
A comma-separated values or character-separated values (CSV) file is a very simple and popular file format because it allows one to easily represent data in a database table.Siebel provides "Read CSV File" business service, method 'CsvToPropSet' for reading in CSV files and output it in the form of an integration object.
Documentation enhancement request 12-KD5LXM has been raised to get more description and information in Siebel Bookshelf.
File Format
Assume for example your integration object is named "MyIO" and its root integration component is named MyIC.Assume MyIC has fields : CountryCD,Country,CurrencyCD,Currency
In Siebel version 7.5, the expected csv structure is as follows :
# MyIO
<blank line 2>
<blank line 3>
# MyIC.CountryCD,MyIC.Country,MyIC.CurrencyCD,MyIC.Currency
USA,United States,USD,Dollars
UK,United Kingdom,GPB,Pound Sterling
In Siebel version 7.7 and higher, the structure is as follows :
# MyIO
# MyIC.CountryCD,MyIC.Country,MyIC.CurrencyCD,MyIC.Currency
USA,United States,USD,Dollars
UK,United Kingdom,GPB,Pound Sterling
The 2 arbitray blank lines #2 and #3 are no longer required for Siebel versions 7.7 and higher versions.
Delimiters and escape characters:
- The only field delimiter accepted by the business service is "comma".
This is not configurable as seen in “Business Service "Read CSV File" (Doc ID 490975.1) - Fields with embedded commas must be escaped with enclosing double-quote characters.
e.g: "John, Doe" needs to be enclosed by double quotes due to an embedded comma. - Fields containing a double quote: The double quote must be escaped by replacing the single double quote with two double quotes.
e.g: O"Malleys would be : "O""Malleys" - Fields with leading or trailing spaces must be escaped with double-quote characters.
e.g: " Hello World" - Fields may always be delimited with double quotes.
Known Limitations:
- Read CSV File can only work on a single integration component at a time.
- Importing parent-child data and assigning a primary is a 3 step process: Import parent. Import child. Set primary flag at parent.
Common issues:
- Invalid header field ''.(SBL-MKT-00316)
Root integration component 'Comp' not found in the file.(SBL-MKT-00318) - See document: 'Read CSV File' Business Service Errors With :- Root integration component 'Comp' not found in the file.(SBL-MKT-00318) (Doc ID 512441.1)
- "The XML Hierarchy cannot be converted to an XML Document(SBL-EAI-04112)
- see document :Convert Read CSV File output to XML with EAI XML Converter raises SBL-EAI-04112 (Doc ID 494343.1)
- Read CSV File produces empty output (Doc ID 518692.1)
- Business Service "Read CSV File" - Would Like to Use a Different Delimiter Than the Default, which is a Comma. (Doc ID 490975.1)
- Cannot select CsvToPropSet method on Read CSV File business service due to duplicate Display Name. (Doc ID 536988.1)
Alternatives to read a file´s contents :
- EIM : you can use any tool of your choice to read the file and load the EIM tables.
- XML: EAI File Transport + EAI XML Converter + EAI Siebel Adapter could be used to read the file and insert or update the database.It is easier if the XML is already generated by the external system in Siebel Message format as that is already an integration object (IO) representation and IO is what EAI Siebel Adapter will need as input anyway.If your XML is in any other format, you will need some extra effort mapping the resulting property set to IO format.
- Custom business service: If you go the route of coding yourself, there is an example at “Importing data using csv file (Doc ID 507576.1)”.
You will have to pick a delimiter and an escape char and increment the logic to check for the escape chars and delimiters .
The code sample simply searches for the next delimiter in the line that has been just read.
References
BUG:10474668 - [CR#12-KD5LXM][FR#12-KD5LXM+F] MISSING DOCUMENRATION ABOUNT THE BUSINESS SERVICENOTE:490975.1 - Business Service "Read CSV File" - Would Like to Use a Different Delimiter Than the Default, which is a Comma.
NOTE:494343.1 - Convert Read CSV File output to XML with EAI XML Converter raises SBL-EAI-04112
NOTE:507576.1 - Importing data using csv file
NOTE:512441.1 - 'Read CSV File' Business Service Errors With :- Root integration component 'Comp' not found in the file.(SBL-MKT-00318)
NOTE:518692.1 - Read CSV File produces empty output
NOTE:536988.1 - Cannot select CsvToPropSet method on Read CSV File business service due to duplicate Display Name.
Applies to:
Product Release: V7 (Professional)Version: 7.8.2.2 [19219] DEU
Database: Oracle 10g
Application Server OS: Microsoft Windows 2003 Server SP1
Database Server OS: HP-UX 11.0
This document was previously published as Siebel SR 38-3010916231.
Symptoms
SBL-EAI-04112, SBL-EAI-04266Dear Support,
we received a WSDL from a third party system we need to integrate to. By
trying to import the WSDL into Tools (New Object -> Web Service) we received the following
errors:
'EAI XML Write to File' service with method 'WriteEAIMsg' failed while generating
XML to be written to file 'C:\Dokumente und Einstellungen\isteller\Eigene
Dateien\Bronco\Fault.xml'.
(SBL-EAI-04266)
The XML Hierarchy cannot be converted to an
XML Document.(SBL-EAI-04112)
Character '0xdefe' cannot be represented in
XML(SBL-UNU-00245)
I analyzed the WSDL and could reduce the error to the tag <operation
name>. Whenever we tried to use a string like "xxx_defect" the error occures. Operation names
like "_defect", "defect" or "xxx_yyy" are working fine. As soon as the operation name ends on
"_defect" the error occures. the effect is also indepent of the length of the
string.
Attached for you are good.wsdl and fault.wsdl file so that you can easily
reproduce the issue.
We need a solution urgently to continue with our project.
Kind
Regards.
Solution
Message 1
For benefit of other Users:Following errors are observed while trying to create new webservice using wsdl file where the operation name is like xyz_defect:
XMLConversion EAIXMLCnvDetail 4 0 2006-04-20 15:33:11 Adding field 'Operation Name' element 'OperationName' with value 'xyz[]ct' to XML hierarchy of element 'OperationBinding'.
****i am unable to paste the exact value in above, it is like xyzSQUAREBOXct
ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 Begin: Business Service 'XML Hierarchy Converter' invoke method: 'HierToDoc' at 8eab2f8
XMLConversion XMLCnvWarning 3 0 2006-04-20 15:33:11 Character '0xdefe' cannot be represented in XML
ObjMgrLog Error 1 0 2006-04-20 15:33:11 (xmlcnv.cpp (981)) SBL-UNU-00245: Character '0xdefe' cannot be represented in XML
ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 Business Service 'XML Hierarchy Converter' invoke method 'HierToDoc' Execute Time: 0.016 seconds.
ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 End: Business Service 'XML Hierarchy Converter' invoke method: 'HierToDoc' at 8eab2f8
ObjMgrBusServiceLog Error 1 0 2006-04-20 15:33:11 (eaixmlcnvsv.cpp (197)) SBL-EAI-04112: The XML Hierarchy cannot be converted to an XML Document.
[Continued]
Message 2
[Continued from previous activity]Looks like the word is being split / changed when the format is xxxxx_defect for the operation name.
It looks the XML parser used by EAI XML Hierarchy Converter BusSvc recognizes the value "x_defe" as the UTF-16 sequence so it throws the error.
The workaround to import the wsdl file that has operation name in the format xxx_defect is as follows:
If you change the value from "a_defect" to "a_unddefect" in the WSDL, it should not cause any error while creating the web service in Siebel tools. The idea is we tell the XML parser that the operation name include the "underscore" + "defect" rather than a whole character "x_defe".
Indeed the method/operation name will not be changed. It will be inserted into Siebel tools as "a_defect".
Even in the XML file it will be created as "a_defect" which is right.
It is just that you are clarifying the usage of underscore “_” in the WSDL file. Instead of just “_” you will use “_und”.
These are some typical changes to wsdl files recommended for special character usage.
Sujatha Illa
Siebel Technical Support
Applies to:
Error Message Area:Application Integration Infrastructure, Enterprise Application Interfaces - EAIVersion:Siebel 8.1
No comments:
Post a Comment