Einige Erfahrungen mit der Entwicklung von Workbench-Prozessen mit Adobe LiveCycle Workbench sind wünschenswert.
Alle
In diesem Artikel werden einige Best Practices zum Erstellen von LiveCycle-Prozessen mit Adobe LiveCycle Workbench erläutert. Dies gilt nicht für eine bestimmte Version von Workbench und sollte nicht als Schritt-für-Schritt-Anleitung zur Erstellung von LiveCycle-Prozessen betrachtet werden, sondern stellt allgemeine Verfahren zur Verbesserung und Standardisierung dar. Bevor Sie diese Best Practices umsetzen, stellen Sie sicher, dass diese in Ihre Gesamtstrategie für die Entwicklung von LiveCycle-Prozessen und zu Ihren organisatorischen Anforderungen passen.
Die Festlegung von Best Practices und deren Umsetzung in gängige Verfahren sind eine permanente Aktivität, da Einzelpersonen und Teams Erfahrungen mit der Erstellung von LiveCycle-Prozessen sammeln.
Wichtige Aspekte jedes LiveCycle-Prozesses sind seine Gestaltung und sein Layout. Idealerweise sollte ein Prozess übersichtlich, logisch aufgebaut und leicht zu implementieren und zu verstehen sein:
- Halten Sie das Design einfach. Die Prozessmanagementdiagramme stellen den Prozess visuell dar. Vermeiden Sie unübersichtliche Diagramme, die viele Schritte enthalten. Verwenden Sie zum Entwerfen klarer Prozessdiagramme, Swimlanes, Unterprozesse und eine saubere Dokumentation.
- Geben Sie für jeden Prozess, Vorgang und Ablauf eine korrekte Beschreibung ein. Sie können im Bedienfeld „Eigenschaften“ für jeden Prozess eine Beschreibung festlegen.
- Geben Sie für jede Variable einen Titel und eine Beschreibung ein. Der Titel wird immer dann verwendet, wenn die Variable für die Eingabe oder Ausgabe in einem Vorgang verwendet wird. Er liefert mehr Informationen über ihren Zweck liefert als nur den Namen der Variable. Die Beschreibung liefert dem Prozessentwickler wertvolle Hilfeinformationen. Dies ist besonders relevant für Unterprozesse und ihre Eingabe- und Ausgabevariablen.
- LiveCycle verfügt über keine umfassenden Möglichkeiten zum Anlegen neuer Datenbanktabellen und zum Bearbeiten von Datenquellen. Verwenden Sie Datenquellen von Drittanbietern zum Erstellen von Datenbankobjekten.
- Um die Erstellung von LiveCycle-Prozessen zu beschleunigen und gleichzeitig den Aufwand zu minimieren, sollten Sie das Anlegen von Unterprozessen in Erwägung ziehen. Mithilfe von Unterprozessen können Sie Prozesse in Ihrer Anwendung wiederverwenden und vereinfachen. Erstellen Sie Unterprozesse für ähnliche Funktionen, die an mehreren Stellen oder in mehreren Anwendungen verwendet werden.
Ein weiterer wichtiger Aspekt bei der Standardisierung von Prozessen bei der Erstellung von LiveCycle-Prozessen ist die Einhaltung einer Namenskonvention. Namenskonventionen sind in der Regel organisationsspezifisch und sollten daher unter Berücksichtigung der Anforderungen und Richtlinien festgelegt werden, bevor die Entwicklung von LiveCycle-Prozessen beginnt.
- Verwenden Sie anstelle der Standardnamen beschreibende Namen für Objekte, um die Funktion oder die Verwendung des Objekts zu beschreiben. Verwenden Sie Binnenmajuskeln für Variablennamen.
- Verwenden Sie für alle Prozesse, Unterprozesse und Anwendungen dieselbe Sprache. Mischen Sie nicht mehrere Sprachen.
- Legen Sie Standards zum Erstellen der Ordnerstruktur für Anwendungen und Prozesse fest.
- Verwenden Sie unterschiedliche Namen für jede Variable, jedes Objekt, jeden Prozess und jede Anwendung, um Benennungskonflikte zu vermeiden.
- Legen Sie Standards für benutzerdefinierte Komponenten fest, und setzen Sie die Verwendung dieser Standards durch.
- Legen Sie Standards für die Durchführung der Protokollierung fest, und setzen Sie die Verwendung dieser Standards durch.
Die optimale Leistung von Prozessen, Unterprozessen und Anwendungen reduziert die Ressourcenauslastung und die Rechenzeit und verhindert, dass Anwendungen zum Stillstand kommen.
Hier sehen Sie einige Best Practices zur Leistungssteigerung von LiveCycle-Prozessen:
- Implementieren Sie die Ausnahmebehandlung in allen Unterprozessen. Dadurch wird die Anzahl angehaltener Prozesse reduziert, die nicht wieder aufgenommen werden können.
- Die vordefinierten Komponenten bieten eine Möglichkeit, Fehlerrouten festzulegen. Wenn Sie mögliche Werte prüfen, implementieren Sie immer Standardrouten oder Fehlerrouten für alle Unterprozesse.
- Das executeScript kann LiveCycle-Prozesse verlangsamen. Erstellen Sie eine benutzerdefinierte Komponente oder verwenden Sie eine Kombination aus Unterprozessen, anstatt sich zu stark auf executeScript zu verlassen.
- Verwenden Sie bei der Überprüfung möglicher Werte Ausdrücke in Großbuchstaben oder in Kleinbuchstaben, um einen ausfallsicheren Mechanismus zu implementieren. Wenn Sie beispielsweise @nextStep = „PROC.001“ überprüfen, überprüfen Sie auch „proc.001“ und „Proc.001“.
- Achten Sie darauf, dass Ihr Code keine Warnungen enthält. Korrigieren Sie den Code, um die Anzahl der Warnungen zu reduzieren.
- Schreiben Sie den Code nicht in den Kommentarbereich. Das führt zu unleserlichem Code, und neue Entwickler haben Schwierigkeiten, den Code zu verstehen.
- Manchmal legen Entwickler nur wenige Klassen und Funktionen an, um einige Funktionalitäten testen, und diese Klassen/Funktionen werden später nicht mehr verwendet. Entfernen Sie nicht verwendeten Code, da dies das Lesen und Verstehen von Codes erleichtert.
- Manchmal verwenden mehrere Komponenten einen ähnlichen Code. Erstellen Sie .jar-Dateien mit solchem wiederverwendbaren Code, anstatt Code aus einer anderen Komponente zu kopieren.
- Legen Sie keine Ad-hoc-Datenbanktabellen an. Wenden Sie sich an das Datenbankteam, um ein genehmigtes und vereinheitlichtes Schema zu erhalten.
- Führen Sie in Ausnahmefällen ordnungsgemäße Prüfungen für die Bedingung durch, anstatt von einer bestimmten Situation auszugehen. Die Vermutung einer Situation kann zu mehrdeutigen Ergebnissen oder zum Anhalten von Prozessen führen.
- Jeder Knoten erhöht die Ausführungszeit und trägt bei langlebigen Prozessen zur Datenbankspeicherung bei. Vermeiden Sie irrelevante oder nicht verwendete Knoten/Vorgänge.
- Erwägen Sie die Verwendung von XSLT anstelle der Definition langer Listen einzelner Mapping-Ausdrücke für das Verschieben oder Kopieren mehrerer Elemente innerhalb von oder zwischen XML-Daten.
- Überprüfen Sie Prozesse, Unterprozesse und Anwendungen auf nicht verwendete Variablen. Verwenden Sie Workbench-Add-ons, um nicht verwendete Variablen zu erkennen. Entfernen Sie nicht verwendete Variablen, insbesondere in Prozessen mit langer Lebensdauer, da Prozesse Speicherplatz für Variablen zuweisen.
Im Folgenden finden Sie einige Best Practices für die Kodierung:
- Verwenden Sie Binnenmajuskeln für Variablennamen.
- Legen Sie immer die Variablentypen fest (int/string/Dokument).
- Verwenden Sie klare und beschreibende Namen für Aktivitäten, und verwenden Sie Namen wie „Set Search Variables“ anstelle von „setSearchVariables“. Diese Namen werden in der LiveCycle Administration Console verwendet.
- Die Prozesse sollten immer eine Standardroute haben.
- Führen Sie bei der Durchführung von Vergleichen immer eine explizite Konvertierung durch. Wandeln Sie bei Berechnungen die für die Berechnung verwendete Prozessvariable in eine Zahl um.
Fehler-Prone:
/process_data/dataXML/CandidateDataCaptureForm/dataCapture/pmiData/pmiForSelf = “1” oder /process_data/dataXML/CandidateDataCaptureForm/dataCapture/pmiData/pmiForSelf = 1
Best Practice:
Zahl(/process_data/dataXML/CandidateDataCaptureForm/dataCapture/pmiData/pmiForSelf) = 1
- Erwägen Sie immer, eine benutzerdefinierte Komponente zu erstellen, anstatt Code in ein executeScript-Objekt einzufügen. Dies ermöglicht Ihnen bessere Komponententests und die Wiederverwendung von Funktionen aus anderen benutzerdefinierten Komponenten.
- Implementieren Sie für Unterprozesse immer Rückgabewerte. Beim Aufrufen eines Unterprozesses (insbesondere eines synchronen Prozesses mit kurzer Lebensdauer) muss ein Wert zurückgegeben werden, der vom Hauptprozess überprüft werden kann. Auf diese Weise weiß der Hauptprozess, wie der Status des Unterprozesses ist. Der Hauptprozess sollte den Rückgabewert entsprechend verarbeiten.
- Vermeiden Sie hartkodierte literale Werte. Solche Werte erfordern das erneute Erstellen, Umpacken und Bereitstellen der Anwendung, wenn Sie die LiveCycle-Umgebung ändern. Verwenden Sie nach Möglichkeit Konfigurationswerte, damit Sie den Dienst außerhalb der Prozessdefinition konfigurieren können.
- Implementieren Sie die Standardroute an allen Checkpoints. Die Prozessrouten sind für fast alle möglichen Werte definiert; die Standardroute wird aufgerufen, wenn die Variable mit keinem der möglichen Werten übereinstimmt. Die Standardrouten verhindern die Entstehung angehaltener Prozesse.
- Die Protokollierung belegt viele Systemressourcen, selbst wenn sie ausgeschaltet ist. Vermeiden Sie eine übermäßige Protokollierung, um die Systemressourcen optimal zu nutzen.
Konsistenz und Vollständigkeit aller Prozesse machen diese verständlicher und verbessern die Leistung und die Übersichtlichkeit im Code.
Im Folgenden finden Sie eine Checkliste zur Gewährleistung von Konsistenz und Vollständigkeit der LiveCycle-Prozesse:
- Sie haben Ausnahmen verarbeitet.
- Sie haben Aufrufe von Unterprozessen und deren Rückgabewert ordnungsgemäß verarbeitet.
- Sie haben nicht verwendete Variablen entfernt.
- Sie haben irrelevante Vorgänge entfernt.
- Sie haben Ihre Prozesse korrekt kommentiert.
- Sie haben die Ausgangsrouten Ihrer Vorgänge auf Konsistenz überprüft.
- Sie haben Literale an den entsprechenden Orten durch Konfigurationsvariablen ersetzt.
- Sie haben Ihre Berechnungen und Vergleiche auf korrekte Datentypen und auf Vollständigkeit überprüft.
- Sie haben die Größe der einzelnen Variablen überprüft.
Wir haben kurz die Best Practices für das Anlegen von LiveCycle Workbench-Prozessen besprochen.
Weitere Informationen erhalten Sie im LiveCycle AEM Forms Developer Center. Die Dokumentation für die LiveCycle Workbench finden Sie auf der Seite LiveCycle ES3-Dokumentation.
Auch wenn die Dokumentation die meisten Ihrer Fragen beantworten sollte, zögern Sie nicht, Diskussionen einzuleiten und daran teilzunehmen.