question

Nivedita Ravi avatar image
1 Like"
Nivedita Ravi asked Nivedita Ravi commented

Intelligent merge control based on availability

@regan.blackett

I wanted to add a scenario to this merge. There is a source ahead of the merge that will create items at random every now and then. Now the round robin if available becomes round robin if available IF the spot is not occupied by an incoming item from ahead of the merge.

Can a decision point ahead of the beginning of the merge create en event triggered source that would remove the available spot from a list or is there a better way to do this.?

For example, the red item should have released in an ideal scenario but it has to wait until the 2 orange items pass before it can release.

Thank you,

Nivedita

merge-control.fsm

Choose One
merge
merge-control.png (15.3 KiB)
merge-control.fsm (30.5 KiB)
· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Logan Gold avatar image Logan Gold ♦♦ commented ·

@Nivedita Ravi,

I apologize for not getting an answer to you yet. I'm still working on the model, but I've run into a couple of issues getting a proper solution to work. I should have something working sometime tomorrow morning.

0 Likes 0 ·

1 Answer

Logan Gold avatar image
1 Like"
Logan Gold answered Nivedita Ravi commented

Here is an example model (merge-control-fs1.fsm) of how I might do what you are asking.

I added another Decision Point to the main section of Conveyor just prior to the merge section that helps control any orange flowitems (with a Type label of 5) coming through the merge. I also added another trigger to the "Item-Token Source" activity in the Process Flow that will create a token every time an orange flowitem arrives at the new Decision Point. I went ahead and made it so even the orange flowitems stop and wait on their Decision Point just like the other 4 lanes so there is only ever one flowitem in the merge section at any one time. If needed, the logic can be changed so all orange flowitems will not stop and just flow normally through the merge section as well.

I also added an On Entry trigger to all the Sources a label called priority is created and set on each flowitem. The label is set to either a 1 or 2 - orange flowitems will have a priority of 1 while the other four types have a priority of 2. I also added a Field to the List in the Process Flow that will keep track of the priority label for each flowitem pushed onto the list.

Finally, I changed the Pull from List activity so it will give priority to the orange flowitems. This was done by making two changes in the Query. First, I added to the WHERE statement so it went from this:

WHERE Type = puller.PullFromLane

To this:

WHERE Type = 5 OR Type = puller.PullFromLane

This just makes it so orange flowitems will always be pulled. Otherwise, the activity will pull the flowitem with the matching Type and still keep the round robin logic working.

Second, I added an ORDER BY statement that will order the priority label so any labels set to 1 will be pulled first.

WHERE Type = 5 OR Type = puller.PullFromLane ORDER BY priority ASC

This means the orange flowitems (with a priority label set to 1) will be pulled first. If an orange flowitem is not present, then the other flowitem types will be pulled with the same priority (they are all set to 2).

Let me know if anything is unclear or if there is anything else we can do to help.


· 1
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Nivedita Ravi avatar image Nivedita Ravi commented ·

@Logan Gold Thank you :) How does the logic change when I add a max wait timer of zero?

0 Likes 0 ·