cancel
Showing results for 
Search instead for 
Did you mean: 

Does SAP XI support international XML standards like OASIS UBL?

Former Member
0 Kudos

Hi All,

We are working with international XML standards like OASIS UBL. Some of these messagetypes have namespaces longer then 60 characters. Now we are getting errors that the XSD's are not accepted as external definitions and we get errors with content based routing:

"Cannot assign a java.lang.String object of lenght 61 to host variable 3 which has JDBC type VARCHAR(60)"

From OSS we got an answer of SAP, that indeed namespaces longer then 60 characters are not supported.

Has anyone the same problem and/or has anyone a sollution for this problem? (making the namespace shorter is no option, because we are using international XML standards)

Cheers,

Frank

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi ALL,

I just heard from SAP, that they support namespaces longer then 60 character (255 characters) from SP14 and we are at the moment at SP13. So we will have to upgrade.

Cheers,

Frank

frank_beunings
Employee
Employee
0 Kudos

Hi ALL,

to my knowledge, the ability to have namespaces up to 255 characters is a feature of the condition editor only (in the prefix-namespace-mapping-table) - the namespaces in the Integration Repository (and therefore the namespaces in the <b>keys</b> of all the Directory Objects) will NOT be extended in a Support Package.

Former Member
0 Kudos

Hi Frank,

I think this is only partially true.

This enhancement only affects the condition editor (i.e. the namespaces within xpathes). For External Definitions the restriction persists. However, there is a simple workaround.

When having defined your External Definition you will see a correct WSDL on the WSDL-tab. This WSDL contains the required message definitions. Unfortunately these message definitions are not displayed on the messages-tab because the target namespace of the WSDL is too long.

Here is what you can do in this situation: Download the WSDL to your local file system. Edit this WSDL with notepad. Thereby simply replace the target namespace of the WSDL (not of the XSDs in the types-section!) by a shorter one. Upload this WSDL as another External Definition (category WSDL). You may worl with this External Definition now.

This works because the target namespace of the WSDL has no influence on the structure of the message.

Greetings

Stephan

Remark: Frank Beunings has added his answer inbetween. My answer was to Frank Bakermans.

Message was edited by: Stephan Naundorf

Former Member
0 Kudos

Hi Stephan and Frank Beunings,

Stephan, of course this crossed my mind as well, but then the namespace of the message definition will be different from the actual messages that come into SAP XI. And this can give problems also with content based routing. My opion is that you can not change international standards.

So Frank Beunings, I have a question for you. When is SAP going to support in the Repository namespaces longer then 60 characters? For me it sounds very strange that SAP as organisation supports a international standard (OASIS UBL), but their products (SAP XI in this case) does not support the standard.

Cheers,

Frank

Former Member
0 Kudos

Hi Frank,

I did not suggest to 'change an international standard'. However, the WSDL I recommended to alter is generated by XI software anyway (as a representative of an international standard for internal purposes). I recommended to modify this to overcome a weakness in the current software by a simple workaround. I do not think that there are any problems with it (in content based routing or at other places), but surely you are free not to use my suggestion.

The question of support of special standards in certain SAP software solutions is political and neither Frank Beunings nor me are in the position to give comments on this. Indeed, I doubt whether this forum is the place where you will get any official comments on this.

The only thing I can say is that the namespace limit will be increased in a future NW release. But I can give no comments on when this release will be available.

Greetings

Stephan

Answers (3)

Answers (3)

Former Member
0 Kudos

I had the same problem.

Sap has created a note for this problem 870809.

/regards Daniel

Former Member
0 Kudos

Hi Daniel,

It is too bad that in this note SAP gives only the limitation and not a solution.

Cheers,

Frank

Former Member
0 Kudos

Hi Guy,

Same as Emile, we need content based routing and then you need to fill in the namespace in the prefix field of the condition editor and when you save it it gives the error mentioned above.

Anyone?

Cheers,

Frank

Former Member
0 Kudos

Maybe some clever tricks with XPath could server as a workaround.

/*[namespace-uri()="spaceX" and local-name()="elmY"]

The above expression will select a root node belonging to namespace "spaceX" and element "elmY"

Kind regards, Guy Crets

Former Member
0 Kudos

Thanks Guy,

For the XPath expression your solution works, but I still have the problem that XSD with namespace longer then 60 characters is not excepted (I do not see messages in the messages tab).

Anyone?

Cheers,

Frank

Former Member
0 Kudos

Hi All,

Very strange I just found out on the website of OASIS UBL that SAP is a Member

http://www.oasis-open.org/about/foundational_sponsors.php

Why does SAP not support namespaces longer then 60 characters, if the standard they sponser have them?

Cheers,

Frank

Former Member
0 Kudos

Frank,

I fully agree: it very likely that XML namespaces become much longer than 60 characters. And very weird that SAP XI has this limit of 60 charas.

Kind regards, Guy Crets

Former Member
0 Kudos

Frank,

Incredible. There will be many other XML Schema's that have namespaces longer than 60 chars. Didn't SAP respond that they would increase the maximum size in their next service pack are create a fix?

Anyway, if you are using a Java or XSLT mapping, you don't really need the XSD in the Integration Repository. It is not needed at runtime. Hope this helps.

Kind regards, Guy Crets

Former Member
0 Kudos

We are facing the same problem. It is a problem when you want to do content based routing and it does not work when the namespace-length > 60 characters.

Any clue???