Parallel Action With Many Correlation Sets? RRS feed

  • Question

  • Hello BizTalk gurus !

    I have a problem with combining files. I have many files, which must combine with each other with correlation sets, but not all files can be combined with each other ...

    Is there any way to solve this problem with parallel shape with multiple correlations ? Each message must wait others, and after receiving all messages, map must combine them...


    Friday, April 14, 2017 11:23 AM

All replies

  • First very important the value to correlate all the incoming files the same?

    Meaning the exact same value, not field name or such.

    Friday, April 14, 2017 1:56 PM
  • The use of correlation is to correlate messages with specific Orchestration instance. You can use correlation to route specific messages to your Orch instance and then you can create map to combine the messages. Have all the receive in parallel shape branch and then after that have conditional maps i.e. one condition/map for each type of file combination you are looking for.

    Are you facing any issue or error while trying to achieve this?

    Regards, Ajeet Kumar MCTS Biztalk Server

    Friday, April 14, 2017 2:01 PM
  • Hi friend,

    You can refer following link .



    Friday, April 14, 2017 3:09 PM
  • for correlation to happen, all messages must have a common value , if you have same value even though it may occur across different fields, you can correlate them

    Mandar Dharmadhikari

    Friday, April 14, 2017 4:28 PM
  • Hi Edgar,

    first of all you need to find is there any field values is same across all the files which you want to combine into a single file.If yes then you can use here Parallel convoy.

    You can refer the below link to understand what is parallel convoy and how implement this:


    Abhay Giri

    Mark this reply as answered or vote if this help you.

    Monday, April 17, 2017 11:12 AM
  • thanks it helps me. I just had to add a correlation type with BTS.ReceivePortName for all receive shapes...

    But it works for only single record in the file, I need to combine multiple records. For example there is a file which contains 5 records, I need to divide them into single messages, and after that combine each with another messages which have the same IDs...When i use BTS.ReceivePortName it works for single record, and if there are many records, it takes only first one and the other divided messages become Suspended.

    How can i create Correlation Type for all receive shapes for multiple records if messages have different unique fields?

    Tuesday, April 18, 2017 10:31 AM
  • First very important the value to correlate all the incoming files the same?

    Meaning the exact same value, not field name or such.

    So we understand better, can you answer this question?
    Tuesday, April 18, 2017 2:05 PM
  • First very important the value to correlate all the incoming files the same?

    Meaning the exact same value, not field name or such.

    So we understand better, can you answer this question?

    Value to correlate is not same for all files, some files have the same field with same ID's but there are files that don't have that field, instead of this they have other ID's. 

    Let me explain: There are files that have unique PortfolioID field, and there are files which have unique AccountID, this files can be combined together only with another file, which have both unique fields (AccountID and PortfolioID), but we don't know when and which file will be received first.

    Wednesday, April 19, 2017 6:12 AM
  • Dear Johns-305,

    As I am new in BizTalk, based on my research I understood that if we want to combine multiple files, we need to correlate that field which will be the same for all files. As my files doesn't have same comman field (foreign key), I think that i must create correlation type which will be the same for all files. In my opinion BTS.ReceivePortName can be correlation Type, but in this case when i drop files with multiple records, i can see that it can divide records into multiple messages, and they are dehydrate state. But when i receive the last file, it divides it into multiple records and it combines only one record correctly, and the other records became Suspended (not resumable) state.

    How can I solve my problem in easy way, is that a right way to do this in parallel shape with correlation, or I can do this in easy way?

    Thanks for Help



    Thursday, April 20, 2017 5:53 AM
  • This is a wonky one.  Is there no way to get the file with both ID first?

    That's the problem.  And, to be clear, this is problem with the app production the data, this is just a really lousy pattern on their part.  It is not a problem with BizTalk Server, you or your app.

    Thursday, April 20, 2017 2:01 PM
  • No, we don't know which file will be received first...They will come at the same time approximately. I tried to divide file records after receiving, but what about if I won't divide them and at that time I can combine them with for instance with BTS.ReceivePortName correlation type (files are with headers and header will decide to take or not), but after combining I have to do mapping, which must combine that multiple rows (records) with unique ID.

    How can I do that kind of Mapping ?

    If it's not clear I can send screenshot of files (or file sample) and how I want to combine them.

    Friday, April 21, 2017 5:36 AM