locked
How to combine multiple records with unique ID with Mapping in BizTalk? RRS feed

  • Question

  • Hello everyone,

    I have multiple files with multiple records, and I must combine all that fields (from different files) which Id's are same, as all files doesn't have the same filed I can't do it with correlation Type in parallel shape. All files can wait to each other, but after that I get stuck.I have Transform shape (MAP) which contains in one side all that files with multiple records and in other side the XML where i must store all records which unique filed ID's are the same.  In Mapping part i did something, but it can bring only the first record from one file and start to compare with others, but after the first record it stop.

    How to do Mapping that can Loop and compare from all field values?

    Would be glad for any help!

    Friday, April 21, 2017 9:49 AM

All replies

  • .....which Id's are same, as all files doesn't have the same filed.....

    This seems contradictory to me...  ID's are same but the fields are not ? Use different pipelines (or one pipeline with multiple FFDASM, each with a different schema) and map the fields containing the ID to the "same" promoted property (each schema will have to have the field containing the ID to be mapped as the promoted property). Having done that use the promoted property as the correlation id.

    Regards.

    Tuesday, April 25, 2017 5:06 AM
  • I meant that files should be chained.

    For example first file have FirstID unique field, second file have again FirstID field, third file have FirstID and SecondID unique fields but fourth  file have SecondID field but don't have FirstID field...In this case I can't combine them with one correlation set. It means that I can combine them only with that file which have both fields, but even in this case files will not come sequential.

    Thursday, April 27, 2017 12:46 PM
  • Since there are four files there would be FOUR Orchestration Receive Shapes. So within the orchestration, the first file will start a correlation type CT12 where the field will be First ID, the second receive will "follow" this correlation set, the third will follow the same correlation set BUT initialize a NEW Correlation CT34 where the field will be Second ID and then the fourth receive will simply follow the CT34.

    The pipeline components should have a property schema containing both FirstID and Second ID and the pipeline component should be promoting both across the receives.

    Regards.

    Friday, April 28, 2017 4:55 AM
  • This will work with sequential convoy, am I right? But in my case I don't know when which file will be received.I tried to do it in parallel convoy, but I get stuck in correlation. 
    Friday, April 28, 2017 5:24 AM
  • Then the simpler pattern for you to use would be to process all the files and store them in a DB and then once all the files are procesed execute a SP to get the combined results. To permit writes irrespective of the sequence, do not defines the unique ID's as KEYS and ensure that the SP deletes the processed records across the 4 tables post the fetch.

    Regards.

    Friday, April 28, 2017 5:51 AM