@startuml (*) --> "Process State Change Message" if "All Automation Composition Elements with my Participant ID processed?" then --> [yes] "Send State Change Ack Message" --> (*) else --> [no] "Process next Automation Composition Element with my ID" if "State Change Message Start Phase equals Automation Composition Element start phase" then [true] if "Current State is DEPLOYED?" then [true] if "Change to UNDEPLOYED?" then --> [true] "Change Automation Composition Element to state UNDEPLOYED" --> "Wait for DEPLOYED->UNDEPLOYED State Change to complete" if "State Change?" then --> [success] "Record Success for State Change Ack message" --> "Process State Change Message" else --> [fail] "Record Error for State Change Ack message" --> "Process State Change Message" endif else --> [false] "Record Error for State Change Ack message" --> "Process State Change Message" endif else [false] if "Current State is UNDEPLOYED?" then [true] if "Change to DEPLOYED?" then --> [true] "Change Automation Composition Element to state DEPLOYED" --> "Wait for UNDEPLOYED->DEPLOYED State Change to complete" if "State Change?" then --> [success] "Record Success for State Change Ack message" --> "Process State Change Message" else --> [fail] "Record Error for State Change Ack message" --> "Process State Change Message" endif else --> [false] "Record Error for State Change Ack message" --> "Process State Change Message" endif else --> [false] "Record Error for State Change Ack message" --> "Process State Change Message" endif endif else --> [false] "Skip Automation Composition Element" --> "Process State Change Message" endif @enduml