Anhangsfelder
Ein von Pneumatic unterstützter Datentyp ist das Anhangsfeld. Diese erwarten, dass der Benutzer eine Datei zu Pneumatic hochlädt:
Zum Beispiel könnte in einem Fehlerbericht SOP vom Benutzer verlangt werden, einen Screenshot des Fehlers hochzuladen. Natürlich ermöglicht Ihnen die API von Pneumatic auch das Hochladen von Dateien, der Prozess hier ist jedoch etwas esoterischer. Pneumatic hat einen sicheren branchenüblichen Prozess für das Hochladen und Teilen von Dateien über die öffentliche API.
Es besteht aus zwei Hauptschritten:
- Zuerst laden Sie Ihre Datei hoch
- Dann “veröffentlichen” Sie sie
Im zweiten Schritt generiert das System einen teilbaren Link zur hochgeladenen Datei und eine Anhangs-ID, die Sie dann programmgesteuert in Anhangsfelder in Ihren Pneumatic-Prozessen einfügen können, die Sie über die API starten.
Die Benutzerseite
Schauen wir uns an, wie es in Google Sheets funktionieren könnte. Wir werden unser Launch Workflows Example Spreadsheet als Ausgangspunkt verwenden.
Wir werden unsere Bug Reporting-Vorlage verwenden (Vorlagen-ID - 3026), löschen Sie einfach alle Zeilen ab Zeile 4 und klicken Sie auf Kick-off-Felder abrufen
Ich habe einige PNGs in meinem Google Drive, also werden wir eines davon verwenden:
Fügen wir einfach eine Zeile zu unserer Tabelle hinzu, um das System nicht mit gefälschten Fehlerberichten zu überfluten:
Wenn ich jetzt auf Workflows starten klicke, bekomme ich das in Pneumatic:
Wie Sie sehen können, wurde ein neuer Fehlerberichts-Workflow gestartet und meine Datei “BugReport3.png” wurde als Anhang hochgeladen, wenn auch mit einem etwas seltsamen internen Namen.
Mehrere Workflows aus Google Sheets starten
Erfahren Sie, wie Sie die API von Pneumatic verwenden können, um mehrere Workflows in Pneumatic programmgesteuert auf der Grundlage von tabellarischen Daten in einem Google Sheets-Spreadsheet zu starten.
Der Code
Schauen wir uns also an, was dort vor sich geht. Ich verwende immer noch die gleiche launchWorkflows
Funktion mit nur einer kleinen Änderung:
Ich überprüfe, ob der String in der dritten Zelle meiner Zeile auf “png” endet und wenn das der Fall ist, rufe ich die uploadFile
Funktion auf, der ich den Inhalt der dritten Zellenzeile und den apiKey
übergebe. Schauen wir uns jetzt die Funktion selbst an:
Die Funktion abstrahiert den oben genannten mehrstufigen Anhangs-Upload-Prozess. Zuerst erhalten wir die Dateidaten als Byte-Array mit der Funktion getFileData
.
Dann bestimmen wir den Content-Typ basierend auf der Dateierweiterung mit der Funktion getContentType
:
Wir verwenden dann den Pneumatic API-Upload-Endpunkt, um Anhangsinformationen für unsere Datei zu erhalten. Um diese Informationen zu generieren, müssen wir Pneumatic unseren Dateinamen, die Content-Zeit und die Größe unserer Datei senden (die wir auch in der Funktion getFileData
erhalten)
AttachmentInfo
ist ein Objekt, das Informationen über unseren Anhang enthält, einschließlich seiner ID. Wir verwenden diese ID im untenstehenden Code, um die Datei tatsächlich hochzuladen, und dann geben wir sie an die aufrufende Funktion zurück.
Der allerletzte Schritt in der aufrufenden Funktion (launchWorkflows
) besteht darin, die Anhangs-ID im Feldwert des neuen Workflows, den wir in diesem Schritt starten, aufzuzeichnen:
Für Anhangsfelder müssen wir Arrays übergeben, und natürlich können wir mehrere Anhänge hinzufügen, was wir hier nicht tun, aber die Option besteht, wenn Sie sie benötigen.
Im Grunde genommen, wenn Sie Dateien hochladen müssen, können Sie mit der Funktion uploadFile
beginnen, die Sie in diesem Beispiel finden, zusammen mit den Hilfsfunktionen getFileData
, getContentType
und getExtension
. Auf diese Weise müssen Sie sich nicht um den mehrstufigen Prozess für das Hochladen und Veröffentlichen von Dateien auf Google Cloud kümmern. Die Funktion gibt einfach die Anhangs-ID für Ihre Datei zurück, die Sie dann in Ihre Anhangsfelder einfügen können.