WmsNativeActivity

WMS 2020 (1.0.3)

Die WmsNativeActivity ist eine Ableitung der herkömmlichen NativeActivity (System.Activities.NativeActivity). Unterschiede zur NativeActivity

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

  • Zusätzliches Property "Disabled"

 

WmsNativeActivity (C#)
using System.Activities; using Accantum.Wms.ActivityContracts.Attributes; using Accantum.Wms.ActivityContracts.Properties; namespace Accantum.Wms.ActivityContracts.Base { /// <summary> /// Basisklasse für NativeActivities /// </summary> public abstract class WmsNativeActivity: NativeActivity, 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"/>) /// Prüft das Disabled-Property /// </summary> protected override void CacheMetadata(NativeActivityMetadata 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 Aktivität ausgeführt werden soll.</returns> protected virtual bool BeforeExecute(NativeActivityContext context) { if (!Disabled) return true; var wmsApi = context.GetExtension<IWmsApiExtension>(); wmsApi.TrackInfo(context, GetDisabledWarning()); return false; } protected sealed override void Execute(NativeActivityContext context) { if (!BeforeExecute(context)) return; ExecuteIntern(context); } protected abstract void ExecuteIntern(NativeActivityContext context); } }