I am a new bie to BPMN world. I have the main BPMN process for the order processing which takes the order through different stages and the end event is Order Completed(Like any other process model). There is a non interrupting sub-process (message event) to consume the invoice but it can also happen that the invoice is received after the main process has reached ‘Order Completed’ state. I want to create a fall back process to consume the invoice even if the process has reached end state(Order Completed)
two things you don’t need to cascade the XOR at the beginning. I’m not sure why you did your invoice handling as a subprocess. Depending on your requirements you have different options:
Just put your invoice handing as a own process which can be started whenever an invoice is created.
Under the assumption that every message-start-event gets an invoice, just use a paralell gateway to wait for the invoice.