Search This Blog

SBL-EAI-04112: The XML Hierarchy cannot be converted to an XML Document.

Applies to:

Error Message Area:Application Integration Infrastructure, Enterprise Application Interfaces - EAI
Version: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 V8
Information 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>

NOTICE: There are 2 propertysets with IntObjectFormat="Siebel Hierarchical"

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>



NOTE: I just removed the part delimited by <SiebelMessageError></SiebelMessageError >


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: V7
Sun 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-04112

Errors 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 V8
Information 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.
In all of them it is necessary to handle special chars and escape sequences.

References

BUG:10474668 - [CR#12-KD5LXM][FR#12-KD5LXM+F] MISSING DOCUMENRATION ABOUNT THE BUSINESS SERVICE
NOTE: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-04266

Dear 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 - EAI
Version: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.

No comments:

Post a Comment