cancel
Showing results for 
Search instead for 
Did you mean: 

XSLT_ROOT_ERROR.....help~~

Former Member
0 Kudos

Hi everyone

We have the custom client which is developed by .NET CF.

I made the data object as upload only in DOE and tried to implement a creating scenario (Order Create)...

As well as, it has the BAPI wrapper (CREATE) we were in the test progress to send XML data using FM

MMW_POST_MESSAGES via HTTP handler(ICF) that we have developed....

But, we have issue that is format of XML.

Once we send the data as XML via ICF.....we could see the inbound queue via T-code: SMQ2...

However, it shows a DUMP message which is "XSLT_ROOT_ERROR" .... There is no clue how we got this error....

Also, I checked the attribute and character length....

This is one examlple XML format that we try to send

<?xml version="1.0" encoding="utf-8"?>

<Msg type="T" id="246" mod_usr="DVTEST03">

<ORDER_ROOT C0="123456789012345678901234567890AB" ty="I" C1="00012" tv="0123456789012345678901234567890JK" />

<ORDER_CHILD C0="123456789012345678901234567890BC" ty="I" C1="123456789012345678901234567890AB" C2="000000000001" C3="000000000001" C4="000000000000000002" C5="30" C6="000000000001" tv="0123456789012345678901234567890ML" />

</Msg>

Does anybody give us some help?

Thank you

Regard

Edited by: joosgood on Sep 10, 2009 2:19 PM

Accepted Solutions (0)

Answers (5)

Answers (5)

0 Kudos

Hi,

Please check the message in message monitoring tool, there might be error details logged apart from XSLT_ROOT_ERROR. If not, compare the length of uploaded field value (specially for c5, in this case) to corresponding DOE field length.

Regards,

Ashish

Former Member
0 Kudos

I am getting the same XSLT_ROOT_ERROR.

I am using the DOE's web admin portal, checking the Session Monitoring and believe to have found the message with no process id and thus causing the error.

When I go to Message Monitoring and put in the message id, it returns results that are not related to the data object.

ie - the message causing the error is Data Object Name "Notification", when I click on the entry and click on Message Monitoring, it goes to Data Object Name "Agent Config"

Is there another way to find the contents of the message?

I do not have easy access to the mobile device that created the error.

0 Kudos

Hi,

Do you have a BAPI_TRANSACTION_COMMIT?? if yes, then you have to put WAIT = 'X'. Also check if your date format's, time format's are correct..

Thanks and Regards,

Narayani

Former Member
0 Kudos

@Alan: Can you check the inbound queue of the device which caused the error?

It will probably be in error as well (with the same XSLT_ROOT_ERROR exception)

If you are in a test/dev environment you can probably see the XML by debugging the inbound queue which is in error.

How to do that? :

Open up NWMA, the Administration page & go to Device Administration

Search for your device click on it. Copy the Device Queue Name

Go to SMQ2 transaction and enter this queue name

If its in error, you can debug the queue entry and find the XML document sent by the device which is causing the error. I'm not sure but I think it will be in one of the variables right after you enter debug mode.

Former Member
0 Kudos

Hi Alan,

as you may have already seen by all answers above: XSLT_ROOT is most liklely due to wrong field length.

I had this error many times and I hate it - cause it is due to bad programming on our side (mine or yours) and if I do something wrng - I hate it!

Well, the issue is: you have a field length defined of 10. But on your client you enter a value with a length of 12.

In MI7.0 you got an exception - in MI7.1 you do not get any warning or so. Well, and if you sync - bang, it crashes.

Only save solution: bevore you save anything on mobile device, check if the length is <= defined length in SDOE_WB. This is the only way to avoid this issue on the future, cause there will always be a user entering more then 40chars in a short text field- for example.

Hope that helps to get down to the root cause of the issue - even if it means you have to do seom development still.

Regards,

Oliver

Former Member
0 Kudos

I realize it is most likely a length of message field going over what is defined for the Data Object.

The design of our data objects was not done properly as it was a rush job....and it was "released for shipment"

I am going to have to do some workaround coding on the mobile client side to truncate.

I am not familiar with the middleware configuration or using the workbench for debugging, but I will try it out next time.

I had to delete the job so the following message could be processed.

thank you all for your help,

i might be posting on this forum when i get to the better solution of addressing the design issue

Former Member
0 Kudos

Hi

as mentioned above the error comes during transformation of xml message into ABAP structures in DOE.

The error can be due to:

- illformed xml - eg - missing tag, improper nesting,

- length of value not matching the expected

To check you can compare the message sent from client with the corresponding data object structure .

regards

pradeep

former_member208564
Participant
0 Kudos

Hi,

As mentioned above check the length of each field of an xml with the doe data object field lengths. You can also debug the same from the smq2, when u debug there certain location in the code where it transform the xml to abap type. There it compares each and every field that is sent in the xml. There you can find the place or field which is causing the problem.

Regards,

Kiran.

former_member208564
Participant
0 Kudos

Hi,

If all the field lengths are ok and if you are unable to debug then try sending tv="" and see still xslt root error exists.

Regards,

Kiran.

Former Member
0 Kudos

Hi,

There is a mismatch between the field length and field value. Pls check the length of the values in the uploaded message.

Regards,

Shruthi R

Former Member
0 Kudos

Hi,

XSLT ROOT error could also occur if the field lenth is not matching in DOE and the client application.

Eg: In DOE the field length for a particular field is 10 and your passing more than 10 characters in the client application for this field, then XSLT_ROOT_ERROR will be thrown as the XML parsing would have failed.

Therefore, check the field lengths in DOE and Client application and make sure that you are passing the values within the field length maintained in DOE.

Regards,

Rahul

Former Member
0 Kudos

Hi,

This error occurs during converting XML to ABAP types in the inbound processing.

Can you check in the message monitoring (Admin and mon portal>monitoring>message monitoring)

search for this inbound message and see if there are any details of the error logged.

Please cross check all the fields that are sent from client are present in DOE for that dataobject node

Regards,

Liji