cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot view XML input using XSL style sheet. Please correct the error and..

Former Member
0 Kudos

Hi All,

Scenario XML to IDOC.

The interface determination decides whether to create IDOC X or IDOC Y based on a xml segment value.

I have an error in the SXMB_MONI:

<!-- Interface Determination

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">

<SAP:Category>XIServer</SAP:Category>

<SAP:Code area="IF_DETERMINATION">CX_ID_PLSRV</SAP:Code>

<SAP:P1>Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160).</SAP:P1>

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>Error when determining the inbound interface: Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Problem evaluating a condition: Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Exception CX_SWF_RLS_RULE occurred (program: CL_SWF_RLS_CONDITION==========CP, include: CL_SWF_RLS_CONDITION==========CM00Q, line: 160). Exception CX_SWF_RLS_OPERAND_MISSING occurred (program: CL_SWF_RLS_COMPARISON=========CP, include: CL_SWF_RLS_COMPARISON=========CM002, line: 63). Exception CX_SWF_RLS_OPERAND_MISSING occurred (program: SAPMSSY1, include: , line: 0). Exception CX_SWF_EXP_EVALUATE occurred (program: CL_SWF_EXP_EXPRESSION=========CP, include: CL_SWF_EXP_EXPRESSION=========CM027, line: 38). Exception CX_SWF_EXP_EXPRESSION occurred (program: CL_SWF_EXP_EXPRESSION=========CP, include: CL_SWF_EXP_EXPRESSION=========CM01Z, line: 520). Exception CX_SWF_EXP_EXPRESSION occurred (program: CL_SAI_SWF_RULE_ENGINE========CP, include: CL_SAI_SWF_RULE_ENGINE========CM00S, line: 42). Problem extracting values from the Payload: Check line 2 column 1 of the XML document</SAP:Stack>

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

From the SXMB_MONI, the inbound message payload is truncated with an error:

- <ProductIdentification>

<GlobalProductIdentifier />

- <PartnerProductIdentification>

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.

-


The following tags were not closed: Pip3B12ShippingOrderConfirmation, ShippingOrder, ShipmentLineItem, isContainsHazardousMa...

"> <GlobalPartnerClassificationCode />

<ProprietaryProductIdentifier>000000000000101369</ProprietaryProductIdentifier>

</PartnerProductIdentification>

</ProductIdentification>

- <QuantityInformation>

- <confirmedQuantity>

<ProductQuantity>1.00</ProductQuantity>

</confirmedQuantity>

I've checked that the xml format is OK.

As a matter of fact, if I try to resend the xml file from directory, the message is processed correctly and the payload shows all the xml file.

Thanks.

Daniele

Edited by: Daniele*Verdone on Feb 1, 2010 11:22 AM

Edited by: Daniele*Verdone on Feb 1, 2010 11:23 AM

Accepted Solutions (1)

Accepted Solutions (1)

former_member187339
Active Contributor
0 Kudos

Hi Daniele.

>>The interface determination decides whether to create IDOC X or IDOC Y based on a xml segment value.

The problem is there, can you tell how you are checking the condition..

Also just try to do a dummy change in the condition and activate the interface determination and try to do a end to end testing of the interface.. Sometimes this can be due to some issue in the cache

Regards

Suraj

Former Member
0 Kudos

The Interface determination, check if:

(/Pip3B12ShippingOrderConfirmation/ShippingOrder/OrderConfirmation/GlobalShippingOrderStatusCode = Picking)

then use an Inbound Interface with a specific interface mapping.

(/Pip3B12ShippingOrderConfirmation/ShippingOrder/OrderConfirmation/GlobalShippingOrderStatusCode = PostGoodsIssue)

then use another Inbound Interface with a specific interface mapping.

The strange thing, is that the payload (in the sxmb_moni) is truncated with an error. As if it was read incorrectly.

This error occurs sometimes and not ever.

It could be depend from xml size?

...Meanwhile I will try with dummy change...

Thanks

Daniele

former_member187339
Active Contributor
0 Kudos

Hi Daniele,

>>This error occurs sometimes and not ever. It could be depend from xml size?

If this occurs sometimes then your condition specified in Interface determination is correct. The problem might be with the PI cache or XML file size.. Have you seen any pattern foe file size when this problem occurs?

But somehow i feel this to be a cache issue rather than the size.

Also are you using you file sender adapter in NFS mode? If yes then try to use the option milliseconds to wait before message processing , so that the process which is creating the xml file will complete the creation and then sender adapter will pick and process the file.

Regards

Suraj

Former Member
0 Kudos

Have you seen any pattern foe file size when this problem occurs?

No, the files are OK. When the error occours, if I try to resend the xml file putting it again into the directory, the message is processed correctly and the payload shows all the xml file without error.

Also are you using you file sender adapter in NFS mode?

No, FTP mode. However I've just tried to use this option (milliseconds to wait before...)

But somehow i feel this to be a cache issue rather than the size.

Yes, I think that the problem is the cache.

Regards

Daniele

former_member187339
Active Contributor
0 Kudos

Hi Daniele,

>>No, FTP mode. However I've just tried to use this option (milliseconds to wait before...)

That option is not available in FTP mode..

Are you sure that the message is not getting picked in half-way (ie while the other process is in the process of creating the file). Try this:

1. Go to communication channel monitoring and see the payload of the XML data read.

2. Is it complete? If not then this is the problem with reading incomplete file

Regards

Suraj

Former Member
0 Kudos

Hi Suraj,

That option is not available in FTP mode..

This option is applicable only for the File adapter. If you enter a value in this field when configuring the sender FTP adapter, it will have no effect.

Yes, you're right !!

Are you sure that the message is not getting picked in half-way

Now, at this time, I can't see the XML data in the CC monitoring because the tool shows only the recent polling execute in the last 10 minutes. If the error recurs, I will check the payload of CC.

How can I solve the problem with reading incomplete file (FTP mode)?

...Meanwhile I will try with Full cache refresh.

Thanks

Daniele

former_member187339
Active Contributor
0 Kudos

Hi Daniele,

>>How can I solve the problem with reading incomplete file (FTP mode)?

Some options are there, but they are not related to PI.

1. You could ask the writing process to write the file in some othe extension say in .abc format and then by using a batch program try checking filesize of each file in the folder for every 60 seconds, if the file size doesn't changes then rename the file to .xml (in short we are try to accomplish the functionality of milliseconds to wait before file processing)

2. Use a batch program and move you .xml files from the placed folder to the PI folder. Schedule it in such a way that it shoudl be in sync with the process which creates the xml file

3. try to have some os level lock so that PI will not be able to read the file as long as it is under some other process control

See which suites you the best...

Regards

Suraj

Former Member
0 Kudos

Hi Suraj,

Thanks for yours suggestions.

In my XI scenarios with an FTP server involved I've already implemented the option 1 and 2 as a best practices.

I could check with my colleagues of sys-admin for the option 3.

So, I will give you a feedback about the solution at the problem as soon as I'll solve it.

(cache refresh or incomplete file reading).

Thanks a lot

Regards

Daniele

Former Member
0 Kudos

Hi Suraj,

Finally I've solved the problem regarding the incomplete file reading.

Because of the large size of files, the sender system takes long time to write them on the FTP folder.

Therefore XI reads the files during the writing and before the copy is actually completed.

To solve the problem, we ask the sender system to write files with .tmp extension and then rename its to .xml.

Thanks for yours suggestions.

Thanks a lot

Regards

Daniele

Answers (0)