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; 
 | 
  *] 
 | 
} 
 |