Benutzerdefinierte Skripte
Scripts are the lightest-weight entry point into Behavior Extensibility – Python code that runs on the platform server and can be triggered, scheduled, or called from within larger automation flows.
Im Rahmen des Behavior Extensibility Frameworks sind Skripte serverseitige Python-Skripte, die im Kontext der Altium 365-Plattform ausgeführt werden. Im Gegensatz zu kompilierten Erweiterungen oder vollständiger Workflow-Automatisierung sind Skripte bewusst leichtgewichtig: eine einzelne Datei, ein definierter Eingabe-/Ausgabevertrag und ein klar umrissener Zweck. Sie können manuell ausgelöst, aus Hooks aufgerufen, als Schritte in Workflows eingebettet oder so geplant werden, dass sie regelmäßig ausgeführt werden.
Skripte nutzen dieselbe Erweiterungsinfrastruktur wie Checks, Hooks und Workflow-Blöcke – sie haben Zugriff auf Workspace-Daten, können externe Systeme aufrufen, und ihre Ergebnisse können in andere Teile der Automatisierungspipeline einfließen. Der Unterschied liegt im Umfang: Ein Skript erledigt genau eine Aufgabe, erledigt sie sauber und kann schnell weiterentwickelt werden.
Wofür Skripte in diesem Kontext verwendet werden
-
Targeted automation – ein Skript, das nach dem Auslösen einmal ausgeführt wird – Komponentenparameterwerte über eine Bibliothek hinweg normalisieren, einen benutzerdefinierten Bericht aus Workspace-Daten erzeugen, einen Datensatz nach einem Release an ein externes System übertragen. Fokussierte Operationen, die nicht in das vollständige Check- oder Workflow-Framework eingebunden werden müssen.
-
Data transformation – Skripte sind das richtige Werkzeug, wenn Daten zwischen Systemen umgeformt werden müssen – beispielsweise beim Konvertieren von Altium-Datenstrukturen in ein Format, das eine externe API erwartet, oder beim Transformieren eingehender Daten, bevor sie in den Workspace geschrieben werden. Saubere Transformationslogik in einem Skript ist einfacher zu testen und zu warten als Transformationen, die in einem größeren Workflow verborgen sind.
-
Policy enforcement, lightweight – für Durchsetzungsregeln, die nicht an automatischen Prüfpunkten ausgeführt werden müssen – Regeln, die ein Teamleiter vor einer Meilensteinprüfung ausführt, Prüfungen, die bei Bedarf statt bei jedem Commit aufgerufen werden – ist ein Skript besser geeignet als ein vollständiger Check, der an einem Plattformereignis registriert ist. Der Aufwand einer vollständigen Check-Infrastruktur ist nicht gerechtfertigt, wenn das Auslösen bewusst und manuell erfolgt.
-
Building blocks for larger automation – Skripte können aus Hooks und Workflow-Blöcken aufgerufen werden und sind damit wiederverwendbare Einheiten innerhalb größerer Automatisierungen. Ein Skript, das beispielsweise eine externe Liste freigegebener Lieferanten abfragt, kann von mehreren unterschiedlichen Checks und Hooks aufgerufen werden, ohne dass die Logik dupliziert werden muss. Das Skript übernimmt die Interaktion mit dem externen System; der Check oder Hook übernimmt die Richtlinienentscheidung.
Skripte im Vergleich zu anderen Behavior Extensibility-Primitiven
Skripte sind kein Ersatz für Checks, Hooks oder Workflow-Blöcke – sie sind ein ergänzendes Primitive mit einer anderen Rolle:
Checks sind an Plattformvalidierungsereignisse gebunden und werden an definierten Prüfpunkten automatisch ausgeführt. Skripte werden ausgeführt, wenn sie ausdrücklich aufgerufen werden.
Hooks reagieren auf Plattform-Lebenszyklusereignisse und werden automatisch ausgelöst. Skripte werden bewusst aufgerufen – durch einen Benutzer, nach Zeitplan oder aus einem anderen Automatisierungs-Primitive heraus.
Workflow-Blöcke sind wiederverwendbare Schritte innerhalb von Workflow-Definitionen. Skripte können die Logik implementieren, die von einem Workflow-Block aufgerufen wird, aber ein Skript allein ist kein Workflow-Schritt.
Beginnen Sie mit einem Skript, wenn die Anforderung eine fokussierte, bedarfsorientierte oder geplante Operation ist. Verlagern Sie die Logik in einen Check oder Hook, wenn sie bei Plattformereignissen automatisch ausgeführt werden muss. Verpacken Sie sie in einen Workflow-Block, wenn sie in strukturierte, mehrstufige Prozesse eingebunden werden soll.
Wartung und Iteration
Skripte sind Python-Dateien – sie liegen wie jeder andere Code in der Versionskontrolle. Da sie interpretiert werden und keinen Build-Schritt erfordern, ist die Iteration schnell: Skript ändern, bereitstellen, testen. Das macht Skripte zum richtigen Ausgangspunkt, wenn die genauen Anforderungen noch nicht vollständig definiert sind oder wenn sich die Logik als Reaktion auf die tatsächliche Nutzung schnell weiterentwickeln muss.
Ein Skript, das als Hilfswerkzeug für eine einzelne Person beginnt, entwickelt sich oft zu gemeinsam genutzter Team-Infrastruktur. Wenn ein Skript diesen Punkt erreicht – von mehreren Personen genutzt wird, einen kritischen Prozess abdeckt und zuverlässig sein soll – lohnt es sich, in eine saubere Struktur zu investieren: Eingabevalidierung, Fehlerbehandlung, Logging und gegebenenfalls die Migration in einen formelleren Check oder Hook, wenn automatisches Auslösen erforderlich wird.