/
Aktivitäten - Versionierung bei Änderungen

Aktivitäten - Versionierung bei Änderungen

Sobald Änderungen an der Aktivität notwendig sind, stellt sich die Frage, ob bestehende Workflows kompatibel und lauffähig bleiben müssen. Möchten Sie nur Anpassung in der Execute-Methode vornehmen, ist keine neue Version notwendig (außer sie wünschen, dass bestehende Workflows noch die alte Ausführungslogik verwenden). Schwieriger ist es, wenn Argumente oder Namen geändert werden - dann ist eine neue Version notwendig.

Technischer Hintergrund: Workflows mit der Aktivität sind serialisiert in der WMS-Datenbank gespeichert. Um diese Workflows öffnen zu können, müssen alle Aktivitäten gefunden und wiederhergestellt werden können.

Wann ist eine neue Version notwendig?

In der Regel gilt: Die alte Aktivität muss wieder deserialisiert werden können.

  • Bei Änderung des Names oder des Namespaces

  • Bei Änderung eines Arguments der Aktivität (Name oder Datentyp)

  • Bei Löschen eines Arguments

  • Bei Hinzufügen eines neuen Arguments:

    • NativeActivity: neue Version ist notwendig

    • CodeActivity: keine neue Version notwendig, achten Sie darauf, einen Standardwert zu vergeben, sonst könnte es zu Validierungsfehlern in “CacheMethada” kommen.

Wie erstelle ich eine neue Version?

Wir empfehlen die Versionierung im WMS über den Namespace. z.B. Accantum.MyActivities.V01.MyFirstActivity → Accantum.MyActivities.V02.MyFirstActivity

  • Neuen Ordner V02 für die Aktivität erstellen

  • Kopieren der Aktivität (und des Designers) von V01 in V02

  • Namespaces anpassen (ggf können Sie auch den Namen ändern, dann ist aber eine Info an Accantun notwendig, um die LIzenz anzupassen)

  • In der neuen V02-Aktivität ist nun das Attribut “Supersedes-Attribute” notwendig.
    Damit wird festgelegt, dass nur die neuste Aktivität in der Liste im Workflow Designer erscheint. Zusätzlich erscheint bei alten Versionen in bestehenden Workflows eine Warnung und ein Hinweise, dass diese Version ausgetauscht werden soll.

    [Supersedes(typeof(V02.WriteTextFileActivity), typeof(V01.WriteTextFileActivity))] //Diese Aktivität löst die alte Aktivität ab. [LocalizedDescription("WriteTextFile_Description", typeof(ResCommon), 2)] // Die Versionsnummer kann auch im Beschreibungsattribut gesetzt werden public class WriteTextFileActivity : WmsCodeActivityBase { //Das ist Version 2 der Aktivität }
  • Achten Sie auch im Designer darauf, die neue Version zu verwenden und die Namespaces anzupassen

  • Ggf können Sie in der alten Aktivität eine Warnung oder einen Fehler ausgeben, damit diese nicht mehr ausgeführt werden kann

Die neue Version der Lizenz ist automatisch lizensiert, falls sie dem empfohlenen Schema enspricht. Sollten Sie Namespace oder Namen ändern müssen, ist eine Info an Accantum notwendig, um den neuen Namen bekannt zugeben. Nur so können wir die Lizenz enstsprechend anpassen, damit die Aktivität weiterhin lizensiert bleibt.