Skip to Content
avatar image
Former Member

IDoc validation with integrated configuration

Hello all,
I have a PI 7.31 with SP 13 in place and have set up an integrated configuration receiving custom Idoc messages in PI from
an SAP system and sending them to a receiver. Message exchange works fine with IDoc_AAE adapter type in sender channel.

The issue is now that sometimes the IDoc structure is changed in SAP and nobody is notifying us to refresh the IDoc metadata in PI.
This can lead to shifted data within received IDoc messages. Also the SAP guys sometimes manage to have an inconsistent IDoc
definition and still create an IDoc message. This IDoc message fails already in SAP with corresponding status messages,
but still can be sent to PI using BD87 or a job for RSEOUT00 program. In that case the IDoc goes to PI and is processed with no errors or warnings.

I was able to reproduce this by creating a custom IDoc, defining a mandatory segment and creating the IDoc message with WE19,
without providing this segment. Sending message from WE19 fails, but a resend of failed IDoc with BD87 is sent to PI and not blocked in SM58
(as it happens for same IDoc with classic Idoc adapter in integration engine and without integrated configuration)

To make a long story short, I would like to validate the IDoc messages in PI before processing them.
I have imported the current IDoc structure into ESB and activated the schema validation in IB of corresponding integrated configuration
on "Inbound Processing" tab. The software component is set as well, so the IDoc definition can be found.

When I send another wrong IDoc with BD87 to PI, the message is validated successfully.
In the audit log I see a validation step and it says it was successful.
When validating with an online validator against xsd, I get the expected error that a mandatory element is missing.

Any idea why PI validation is not working correctly or did I miss anything to set up?

Any hints are welcome.

For your reference I have attached the xsd and my test xml message. The missing, mandatory segment would be "ZRRTST1".

In the xsd I had to change some maxoccurences from 999999 to 50, because some online validators do not accept such high values.

This change should not have an impact.

The attached document has to be renamend to .zip.

Thanks and best regards
Robert

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Sep 09, 2015 at 03:19 PM

    Hi Robert,

    My few cents,

    Any idea why PI validation is not working correctly or did I miss anything to set up?

    I was thinking the issue could be in the cache, may be the cache had not the current schema. However if you activate the schema validation after the XSD the cache should have the last schema. Try to refresh the caches and to mark again the validation.

    Check also (XML Validation - Integration Engine - SAP Library):

    The parser cannot handle maxOccurs > 5.000. The IDoc type editor cannot handle definition unbounded. Runtime access to external links in xml.xsds is not possible.

    Regards.

    Add comment
    10|10000 characters needed characters exceeded

  • Sep 10, 2015 at 02:12 AM

    Robert,

    My opinion, if a message fails in XML validation or Message Mapping, it is same; there will be change in PI to fix it.

    Please reactivate ID objects when structure changes in ESR.

    Michal's PI tips: XML validation - changes in 7.3

    Add comment
    10|10000 characters needed characters exceeded