| Quintiq file version 2.0 | 
| #parent: #root | 
| MethodOverride Execute ( | 
|   DSP_ServiceCommitterBase local_committer, | 
|   output String soft_error_o | 
| ) as Boolean | 
| { | 
|   TextBody: | 
|   [* | 
|     dataset := local_committer.astype( SWF_ServiceCommitter).Service().WorkflowDataset(); | 
|      | 
|     value         := dataset.GetStepDefinition( this.StepDefinitionObjectID() ); | 
|     parent        := dataset.GetStepDefinition( this.StepDefinitionParentID() ); | 
|     authorization := dataset.GetAuthorizationObject( this.StepDefinitionAuthorizationID() ); | 
|      | 
|     if( not isnull( value ) ) | 
|     { | 
|       value.Update( parent | 
|                   , this.StepDefinitionName() | 
|                   , this.StepDefinitionDueOffset() | 
|                   , this.StepDefinitionIconName() | 
|                   , authorization | 
|                   ); | 
|     } | 
|     else | 
|     { | 
|       value := SWF_StepDefinition::Create ( dataset.WorkflowDefinition() | 
|                                           , dataset.GetNewGlobalID() //this.StepDefinitionObjectID() | 
|                                           , this.StepDefinitionName() | 
|                                           , this.StepDefinitionDueOffset() | 
|                                           , this.StepDefinitionIconName() | 
|                                           , parent | 
|                                           , authorization | 
|                                           );  | 
|     } | 
|      | 
|     if( not isnull( dataset.IOSyncHandler() ) ) | 
|     { | 
|       updatedObjs := construct( SWF_StepDefinitions ); | 
|       updatedObjs.Add( value ); | 
|        | 
|       dataset.IOSyncHandler().O_SyncStepDefinition( updatedObjs, null( Keys ) ); | 
|     } | 
|      | 
|     return true; | 
|   *] | 
| } |