diff --git a/serverlessworkflow/sdk/state_machine_generator.py b/serverlessworkflow/sdk/state_machine_generator.py index e9f98cb..d5aa914 100644 --- a/serverlessworkflow/sdk/state_machine_generator.py +++ b/serverlessworkflow/sdk/state_machine_generator.py @@ -178,6 +178,11 @@ def definitions(self): def parallel_state_details(self): if isinstance(self.state, ParallelState): + if self.state.name not in self.state_machine.states.keys(): + self.state_machine.add_states(self.state.name) + if self.is_first_state: + self.state_machine._initial = self.state.name + state_name = self.state.name branches = self.state.branches if branches: @@ -208,8 +213,8 @@ def data_based_switch_state_details(self): ... def operation_state_details(self): if self.state.name not in self.state_machine.states.keys(): self.state_machine.add_states(self.state.name) - if self.is_first_state: - self.state_machine._initial = self.state.name + if self.is_first_state: + self.state_machine._initial = self.state.name if isinstance(self.state, OperationState): self.generate_actions_info( @@ -264,11 +269,11 @@ def get_subflow_state( ) # Generate the state machine for the subflow - for index, state in enumerate(sf.states): + for state in sf.states: StateMachineGenerator( state=state, state_machine=new_machine, - is_first_state=index == 0, + is_first_state=sf.start == state.name, get_actions=self.get_actions, subflows=self.subflows, ).generate() diff --git a/serverlessworkflow/sdk/state_machine_helper.py b/serverlessworkflow/sdk/state_machine_helper.py index e0de9e4..c95158e 100644 --- a/serverlessworkflow/sdk/state_machine_helper.py +++ b/serverlessworkflow/sdk/state_machine_helper.py @@ -30,11 +30,11 @@ def __init__( auto_transitions=False, title=title, ) - for index, state in enumerate(workflow.states): + for state in workflow.states: StateMachineGenerator( state=state, state_machine=self.machine, - is_first_state=index == 0, + is_first_state=workflow.start == state.name, get_actions=self.get_actions, subflows=subflows, ).generate()