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();
|
|
activity := dataset.GetActivityExternal( this.ActivityObjectID() );
|
|
if( not isnull( activity ) )
|
{
|
// We only proceed with updating the attribute IF IsActive had been updated.
|
if( this.ActivityIsActiveExternal() <> activity.IsActive() )
|
{
|
activity.IsActiveExternal( this.ActivityIsActiveExternal() );
|
}
|
|
// We only proceed with the updating and sync IF the status IsCompleted had been updated.
|
if( this.ActivityIsCompleted() <> activity.IsCompleted() )
|
{
|
if( this.ActivityIsCompleted() )
|
{
|
activity.SetCompleted( this.ActivityLastStatusUpdatedBy() );
|
}
|
else
|
{
|
activity.SetIncomplete( this.ActivityLastStatusUpdatedBy() );
|
}
|
|
// Only proceed with IOSync if the caller request it to
|
if( this.ActivityIsRequireIOSync() and not isnull( dataset.IOSyncHandler() ) )
|
{
|
objs := construct( SWF_ActivityExternals );
|
activity := dataset.GetActivityExternal( this.ActivityObjectID() );
|
objs.Add( activity );
|
|
dataset.IOSyncHandler().O_SyncActivityExternal( objs, null( Strings ), null( Strings ), null( Strings ) );
|
}
|
}
|
|
activity.IsNew( this.ActivityIsNew() );
|
}
|
|
return true;
|
*]
|
}
|