none
Is there a way to suppress BizTalk R2 SAP adapter generated ORDERS05 IDoc schema segment default values...? RRS feed

  • Question

  • Hi,

    I generated the ORDERS05 IDoc schema using BizTalk R2 Consume adapter service feature and observed that the "DATAHEADERCOLUMN_SEGNAM" elements for all segments is set with a default value. Ex: E1EDK01 segment has a child element DATAHEADERCOLUMN_SEGNAM with a default value "E1EDK01" resulting, though the segment is populated by the BizTalk map or not the segment gets generated with DATAHEADERCOLUMN_SEGNAM element and default value. SAP is not happy with this dummy defaults. I'm trying to see if there is a way to suppress the defaults while generating the schema or any other workaround to overcome this issue.

    Thanks,
    Kiran
    Friday, April 3, 2009 7:12 PM

All replies

  • Hi Kiran,

    I presume that you're talking about BizTalk adapter pack SAP adapter. The schema that is generated does not contain any default values. It might be a good idea to double check the input XML you're sending to the map.

    Also, in order to suppress a node and all its children, you should create a logical functoid and send value 'false' to the node when you want it suppressed.

    Hope this helps.

    Manas

    Saturday, April 4, 2009 6:39 AM
  • Thanks for your response. And Yes, I'm talking about BizTalk adapter pack SAP adapter.

    I verified the main xsd file generated for this IDoc type and see that there are defaults set for a number of elements (<xs:element minOccurs="0" maxOccurs="1" default="E2EDK01005" name="DATAHEADERCOLUMN_SEGNAM" nillable="true" type="xs:string">) Resulting the runtime Xml instance will obviously have the defaults though the element is mapped or not.

    I'm already aware of your listed logic to suppress the nodes and my intension is not to suppress the nodes and as well ORDERS05 schema has around 50+ default element occurrences and I use this schema for multiple BizTalk interfaces that means I should impelemt this logic for all maps using this schema, which doesn't look feasible so, checking with you if there is an option to suppress these defaults while generating the schema itself.

    Thanks,
    Kiran
    Saturday, April 4, 2009 5:05 PM
  • Hi Kiran,

    The DATAHEADERCOLUMN_SEGNAM is set with the default value of the corresponding SegmentDefinition name. For eg. the DATAHEADERCOLUMN_SEGNAM under 'E1EDK01' segment will have a default value of E2EDK01005. They are not some dummy defaults and they will be used by adapter while sending/receiving the idocs.

    Can you provide us with the detailed information about the error you are getting?

    Thanks,
    Jeevitha

    Monday, April 6, 2009 9:13 AM
  • Thanks for your response and it's good to know that SAP adapter uses the defaults while sending/receiving IDocs. Is this the same case with other SAP adapters?

    I don't think SAP is logging any errors but they would like to receive the IDoc with only mapped fields and no blank segments. I need to interact with SAP team to get more details since I don't have SAP Frontend access.

    Thanks,
    Kiran

    Monday, April 6, 2009 3:55 PM
  • Hi Kiran,

    I’m sending ORDERS05 IDOC´s with the DATAHEADERREC elements to SAP and it works without any problems.

    Do you get any error messages in BizTalk?

    You can use custom XSLT to remove the DATAHEADERREC elements.

    Best regards

    Rasmus Jaeger

     

     

    Wednesday, April 8, 2009 1:03 PM