It might be simplest to create your own object using a BasicFR and control the ports yourself.
Or you could use the pull to determine if you are taking items from the upstream object as described below using a Map.
In the attached model at reset I create a Map label 'portMapIn' that is keyed on the input objects so that you can look up the port number quickly - this is a user command 'createPortMapIn'.
There are two other commands closeConnection() and openConnection() that take the receiver and send objects as parameters and update a portClosed label array on the receiver that is referenced by the pull.
If you run to the stop point in the model and step past it you'll see Queue2 received an item from Processor1. If you then repeat that but run the script to close the connection between those two, the transfer does not take place when you perform a step. The transfer then takes place immediately when you open the connection.
portMapforReferencingInobjects.fsm