WmsCodeActivity

WMS 2020 (1.0.3)

Die WmsCodeActivity ist eine Ableitung der herkömmlichen CodeActivity (System.Activities.CodeActivity). Unterschiede zur CodeActivity

  • Statt der Execute-Methode müssen Sie die ExectuteIntern-Methode implementieren

  • Zusätzliches Property "Disabled"


WmsCodeActivity (C#)

using System.Activities; using Accantum.Wms.ActivityContracts.Attributes; using Accantum.Wms.ActivityContracts.Properties; namespace Accantum.Wms.ActivityContracts.Base { /// <summary> /// Basisklasse für CodeActivities /// </summary> public abstract class WmsCodeActivity: CodeActivity, IWmsActivityBase { /// <summary> /// Kennzeichen, ob die Aktivität auskommentiert ist. Wenn Ja, wird die ExecuteMethode nicht aufgerufen. /// </summary> [ExcludeInAnnotation] [LocalizedDisplayName("Activity_Disabled", typeof(WmsActivityResources))] [LocalizedDescription("Activity_DisabledDesc", typeof(WmsActivityResources))] public bool Disabled { get; set; } /// <summary> /// Prüft die Aktivitätsversion (<see cref="SupersedesAttribute"/>) und das Disabled-Property /// </summary> protected override void CacheMetadata(CodeActivityMetadata a_oMetadata) { //Bei deaktivierten Aktivitäten Fehler nicht anzeigen if (Disabled) { a_oMetadata.SetValidationErrorsCollection(null); a_oMetadata.AddValidationError(CreateDisabledValidationWarning()); } else { base.CacheMetadata(a_oMetadata); } SupersedesAttribute.AddWarningIfIsSuperseded(GetType(), a_oMetadata); } /// <summary> /// Methode wird vor der Ausführung aufgerufen und prüft das Disabled-Kennzeichen. /// </summary> /// <returns>true, wenn die Aktivtät ausgeführt werden soll.</returns> protected virtual bool BeforeExecute(CodeActivityContext context) { if (!Disabled) return true; var wmsApi = context.GetExtension<IWmsApiExtension>(); wmsApi.TrackInfo(context, GetDisabledWarning()); return false; } protected sealed override void Execute(CodeActivityContext context) { if (!BeforeExecute(context)) return; ExecuteIntern(context); } protected abstract void ExecuteIntern(CodeActivityContext context); } }