Beispiel: Confluence Seite erstellen
Im Beispiel soll eine neuen Confluence Seite erstellt werden, sobald ein Ticket vom Typ "Problem" mit dem Close Code "Known Error" geschlossen wird. So können bspw. bekannte Fehler direkt kommuniziert und für alle einsehbar dokumentiert werden.
Das Beispiel erstellt die neue Seite im Confluence als Unterseite zu einer bestehenden Seite mit der ID 123456 im Bereich "BPTEST". Dabei ist es gleich, welche Antwort Confluence liefert ("fire and forget").
Als Authentifizierungsmöglichkeit wird Basic Auth, d. h. eine Kombination aus Nutzername und Passwort genutzt.
Vorbereitung
Dynamisches Feld "Close Code" um Wert "Known Error" erweitern
(s. auch: Ein Dynamisches Feld bearbeiten)
Dynamisches Feld Workaround anlegen und in die Ticketaktion Close integrieren
(s. auch: Eine Aktion anlegen und Eine Aktion konfigurieren )
Confluence-Zugangsdaten besorgen
Im Beispiel: Username / Password
ID der Seite im Confluence ermitteln, unter der die zu erstellende Seite angesiedelt sein soll
Im Beispiel: 123456
Erzeugung eines HTTP-Headers für Basic Auth
Der Wert wird als HTTP-Header benötigt, um sich am Confluence anzumelden.
Beispielsweise mittels Kommandozeilentool base64:
someLinuxUnixSystem:~# echo 'Authorization: Basic '"$(echo -n 'UserName:Password' | base64)" Authorization: Basic VXNlck5hbWU6UGFzc3dvcmQ=
Konfiguration des Jobs
Grundkonfiguration:
Job Typ: Ticket
alle weiteren Job-Parameter (Name, Ausführungsplan, Filter etc) können individuell definiert werden
Macro Action 1 - Artikelinhalt in Macro-Variable schreiben
Action: Set Variable
Variable: ArticleBody
Wert: <KIX_ARTICLE_Body>
Macro Action 2 - Aufruf des Webservice
Action: Webhook Extended
Response: [leer]
URL: http://confluence.intra.example.com:8092/rest/api/content/
Method: POST
Use Proxy: [leer]
Proxy: [leer]
Headers
Content-Type: application/jsonAuthorization:
Authorization: Basic VXNlcm5hbWU6UGFzc3dvcmQ=
Content
{ "type": "page", "space": { "key": "BPTEST" }, "ancestors": [ { "type": "page", "id": "123456" } ], "title": "Known Error <KIX_TICKET_TicketNumber> - <KIX_TICKET_Title>", "body": { "storage": { "value": "<h1>Description</h1>${ArticleBody|JSON} <br/> <h2>Workaround</h2> <KIX_TICKET_DynamicField_Workaround>", "representation": "storage" } } }