Bei komplexen Typen kann es für den Anwender nützlich sein, wenn die Aktivität automatisch eine Variable dazu anlegt. So muss der Anwender den Typ (den er erst einmal nicht kennt) nicht umständlich über das "Typ suchen"-Fenster suchen.
Gehen Sie wie folgt vor, wenn Ihre Aktivität eine Variable automatisch anlegen soll:
Die Aktivität muss das Interface " Accantum.Wms.ActivityContracts.IAutoCreateVariables" implementieren
(so wird gespeichert, ob die Variable bereits erstellt wurde)
public class MyActivity : WmsCodeActivity, IAutoCreateVariables
{
/// <summary>
///Kennzeichen, ob durch die Aktivität bereits automatisch eine Variable angelegt wurde (<see cref="IAutoCreateVariables"/>)
/// </summary>
[Browsable(false)]
[ExcludeInAnnotation]
public bool VariableCreated { get; set; }
public OutArgument<List<WmsFileInfo>> MyActivityResult { get; set; }
Die Variable selbst wird im Designer erzeugt. Überschreiben Sie dazu die Methode "OnModelItemChanged" dens ActivityDesigners in der CodeBehind.
protected override void OnModelItemChanged(OnModelItemChanged(object newItem)
{
//Eigenschaft finden, der die Variabel zugewiesen werden soll:
ModelProperty oResultProp = ModelItem.Properties[nameof(MyActivity.MyActivityResult];
//Methode aus der WmsActivityContracts (Namespace "Accantum.Wms.ActivityContracts.Utils") aufrufen, Typ und Name der Variable angeben
ModelItem.AddVariableAndAssignByType(oResultProp, new Variable<List<WmsFileInfo>>("aoFileInfos"));
base.OnModelItemChanged(newItem);
}