Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CopyDatasetConditionally (String componentpositionname, LibOpt_Task task, Boolean hastocreaterobustcopy)
|
{
|
Description:
|
[*
|
This method checks if a `LibOpt_DatasetCopyConditional` is attached to the `componentpositionname` component position of `task.Component()`.
|
If this `LibOpt_DatasetCopyConditional` object can be found, then a dataset copy is created if:
|
1: `LibOpt_Run.IsCreatingDatasetCopiesEnabled` is `true`. (This attribute can be set in the 'Toggles' context menu item in the 'Runs' form.)
|
2: And the `CreateCondition` method returns `true`. This method is extensible.
|
3: And the `LibOpt_DatasetCopyConditional.IsEnabled()` attribute is `true`.
|
*]
|
TextBody:
|
[*
|
component := task.Component();
|
componentposition := select( component,
|
ComponentPosition,
|
componentposition,
|
componentposition.Name() = componentpositionname );
|
|
if( not isnull( componentposition ) )
|
{
|
datasetcopyconditional := componentposition.DatasetCopyConditional();
|
|
// The AE can modify the CreateCondition method himself. This means that a user error might occur there.
|
// Any error that occurs here will result in a rollback of the current component.
|
// It would be nice if the rollback can be avoided.
|
if( not isnull( datasetcopyconditional )
|
and datasetcopyconditional.IsEnabled()
|
and component.Run().IsCreatingDatasetCopiesEnabled()
|
and datasetcopyconditional.CreateCondition( task )
|
)
|
{
|
snapshot := LibOpt_DatasetCopyConditional::CopyDataset( task,
|
componentpositionname,
|
hastocreaterobustcopy
|
);
|
snapshot.DatasetCopyConditional( relset, datasetcopyconditional );
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|