BizTalk: Basetype.Any message in Orchestration RRS feed

  • Question

  • Hi,

    I'm receiving EDI messages in orchestration using "Basetype.Any" as the message type and EDIReceive as receive pipeline. My task is to get the ISA6 value in a string within the orchestration. I have tried using varTest = msg(EDI.ISA_Segment). Is there any other way to get the ISA6 value without using the EDI promoted properties? And it should work for all the inbound EDI schemas. 

    ** Can't use EDI promoted because we have made changes to default EDI schemas due to business requirement.

    Thanks in advance!!

    Wednesday, September 20, 2017 7:21 AM

All replies

  • You can use xpath function, to retrieve the value from the message:

    isa6Value = xpath(BizTalkMessage,”string(//yourCustomIsa6Xpath)”);

    Wednesday, September 20, 2017 7:49 AM
  • Yeah, But the same orchestration is used to receive different versions of EDI files. Lets say i'm receiving different versions of EDI orders. So orchestration should be able to get the ISA6 value. No matter what version file it receives. How can proceed to get the ISA6 value?
    Wednesday, September 20, 2017 8:40 AM
  • Then you can in your modified schemas, promote those values to the same Property Schema value and then get inside the orchestration this promoted property with the ISA6 value.
    Wednesday, September 20, 2017 9:17 AM
  • Hi Prashant,

    Have a look at following article, see if it helps you - BizTalk Server 2010: Fetching ISA and GS Segment Values From Interchange Envelope and Mapping


    Maheshkumar S Tiwari|User Page|Blog|Getting Started with Logic Apps - File Routing

    Wednesday, September 20, 2017 9:21 AM
  • Will I be able to access ISA6 using msg(EDI.ISA_Segment) after promoting the properties in the schema?
    Wednesday, September 20, 2017 9:24 AM
  • If you assign in your modified schemas the ISA6 element to that Property Schema or even a new Property Schema, you will be able to access that value.
    Wednesday, September 20, 2017 9:33 AM
  • HOLD ON!

    Let's try to clear this up. 

    EDI.ISA06 is available an any X12 message processed by the EDIDisassembler.  Is doesn't matter what schema is used, modified or not.

    For clarity, modifying the EDI schemas is fully supported and should make no meaningful difference in how the app process the messages vs the OOB schemas.

    So, MyIncomingMessage(EDI.ISA06) should return ISA06 already.  You shouldn't need parse EDI.ISA_Segment.

    Wednesday, September 20, 2017 2:14 PM
  • Thank You, John! MyIncomingMessage(EDI.ISA06) works perfectly. But I'm not able to get the entire ISA segment. Throws error saying,  There is no value associated with the property 'EDI.ISA_Segment' in the message. What might be the reason?

    Thursday, September 21, 2017 3:42 AM
  • Hmm...if EDI.ISA06 is there, EDI.ISA_Segment should be there also.

    Now you have to look at the message in Tracking to see if it's there.

    Thursday, September 21, 2017 1:56 PM