Status | ||||
---|---|---|---|---|
|
Die WmsNativeActivity ist eine Ableitung der herkömmlichen NativeActivity (System.Activities.NativeActivity).
...
- Deaktivieren von Aktivitäten über das Disabled-Property
- Prüfen, ob es eine neuere Version der Aktivität gibt (SupersedesAttribute)
...
Unterschiede zur NativeActivity
Statt der Execute-Methode müssen Sie die ExectuteIntern-Methode implementieren
Zusätzliches Property "Disabled"
...
...
WmsNativeActivity (C#)
...
Codeblock |
---|
...
|
...
| |
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); } } |