Inspektionen
Um die Rohdaten und Bilder einer Inspektion abzurufen, können Sie die Inspektionsdienste verwenden.
Endpunkt: /api/services/custom/inspection
1. Abrufen von Inspektionsrohdaten
Url: /{identifier}/data
HTTP-Methode: GET
Die Kennung kann entweder die Aufgaben-ID, die Inspektions-ID oder die externe ID der Aufgabe (in der Benutzeroberfläche "Referenz" genannt) sein.
Beispiel:
Anfrage:
GET https://dev.iclportal.com/ api/services/custom/inspection/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/data HTTP/1.1 HTTP/1.1
Inhalt-Typ: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Antwort:
{
"result": [
{
"externalId": null,
"created": "2017-12-20T15:54:42Z",
"closed": "2017-12-21T08:47:45Z",
"checklist": "SV",
"checklistId": "c965a4d8-9be8-4f4f-aaf3-409bab9a3c48",
"chapter": "Messung Anspeisung",
"headline": "Zeitpunkt",
"questionName": "Netzart_mes",
"questionTitle": "Netzart",
"questionType": "TextBoxIdentifier",
"value": "SV",
"isSelected": false,
"valueRaw": null,
"likelihoodToFail": null,
"priorityFactor": null,
"rating": null,
"scopePath": ""
},
...
],
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
Die Daten im Ergebnis-Array sind eine reduzierte Darstellung aller Antworten, die der Inspektor während einer Inspektion eingegeben hat. Die Einträge sind nach checklistid und dann nach scopePath geordnet.
Der scopePath ist ein sehr wichtiges Konzept, wenn Sie mit wiederholten Abschnitten (Überschriften oder Kapiteln) arbeiten. Immer wenn ein Antwortwert zu einem wiederholten Abschnitt gehört (z.B. Informationen über einen Mangel innerhalb einer wiederholten Überschrift), hat er einen scopePath, der dies kennzeichnet. Im folgenden Beispiel hat eine wiederholte Überschrift "Defekt" zwei Fragen "Standort" und "Defektbild":
[
{
"externalId": null,
"created": "2017-12-20T15:54:42Z",
"closed": "2017-12-21T08:47:45Z",
"checklist": "SV",
"checklistId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX",
"chapter": "Treppenhaus",
"headline": "Defekt",
"questionName": "Standort",
"questionTitle": "Wo befindet sich der Defekt?",
"questionType": "TextBoxIdentifier",
"value": "1. Stock",
"isSelected": false,
"valueRaw": null,
"likelihoodToFail": null,
"priorityFactor": null,
"rating": null,
"scopePath": "/Defect:0"
},{
"externalId": null,
"created": "2017-12-20T15:54:42Z",
"closed": "2017-12-21T08:47:45Z",
"checklist": "SV",
"checklistId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX",
"chapter": "Treppenhaus",
"headline": "Defekt",
"questionName": "defekt_abbildung",
"questionTitle": "Bild:",
"questionType": "TakePictureIdentifier",
"value": "47c89e2d-4665-4fe0-947a-f99feff40a96.jpeg",
"isSelected": false,
"valueRaw": “b2a5161e-cd5c-4c0a-9ce6-2af34b8082df”,
"likelihoodToFail": null,
"priorityFactor": null,
"rating": null,
"scopePath": "/Defect:0"
},
]
Wie Sie sehen können, haben alle Antworten, die zu einer bestimmten wiederholten Überschrift (oder einem Kapitel) gehören, immer denselben scopepath.
Wenn es eine weitere wiederholte Defekt-Schlagzeile gäbe, würde ihr scopepath "/Defekt:1" lauten, da der scopePath immer aus dem Name der Schlagzeile und ihrem Index innerhalb des scope gebildet wird.
Die Werte, die Sie für jede Zeile erhalten, sollten ziemlich selbsterklärend sein. Das einzige Feld, das eine weitere Erklärung verdient, ist "valueRaw".
valueRaw: ist ein Hilfsfeld für die Feststellung von Fragen. Wenn Ihre Checkliste eine Frage des Typs "MakeObservationIdentifier" enthält, bei der der Benutzer ein Element aus einer Hierarchie von Elementen auswählen muss, dann ist der Wert dieser Antwort die vom Menschen lesbare Version des ausgewählten Elements und seines Pfads. Z.B.: Defekt/Treppe/HandlaufFehlt Dieses bestimmte Element (HandlaufFehlt) kann auch über seinen eindeutigen Bezeichner (XXXXXXXX-XXXX-XXXXXX-XXXXXXXXXXXXXXXX) gefunden werden und dieser Bezeichner ist in valueRaw enthalten.
2. Abrufen der Liste der Bilder
Url: /{Bezeichner}/Bilder
HTTP-Methode: GET
Der Bezeichner kann entweder die Task-ID, die Inspektions-ID oder die externe ID der Task (in der Benutzeroberfläche "Referenz" genannt) sein.
Beispiel:
Anfrage:
GET https://dev.iclportal.com/ api/services/custom/inspection/xxxxxxxx-xxxx-xxxx-xxxxxxxx-xxxxxxxx/pictures HTTP/1.1 HTTP/1.1
Inhalt-Typ: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Antwort:
{
"result": [
{
"id": "b2a5161e-cd5c-4c0a-9ce6-2af34b8082df",
"title": "47c89e2d-4665-4fe0-947a-f99feff40a96.jpeg",
"description": null,
"showInReport": false,
"scope": "Checkliste"
},
{
"id": "bc73aeed-a283-482e-bf5e-4cfa26ce7513",
"title": "737ae90e-d683-4909-b3de-961ccbed7b16.jpeg",
"description": null,
"showInReport": false,
"scope": "Inspektion"
}
],
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
Die Daten im Ergebnis-Array sind eine Liste aller Bilder, die während einer Inspektion aufgenommen wurden. Besonders interessant ist das Feld scope, das angibt, ob das Bild im Rahmen einer Checkliste oder im allgemeinen Bildregister der Inspektion aufgenommen wurde.
Wenn Sie die Antwort auf eine "TakePicture"-Frage des Endpunkts inspection/{inspectionIdentifier}/data erhalten, bekommen Sie den Titel des Bildes als Antwortwert.
Außerdem erhalten Sie die ID des Bildes als valueRaw. In dem Beispiel aus 5.1 enthielt eine Antwort tatsächlich das Bild b2a5161e-cd5c-4c0a-9ce6-2af34b8082df.
Sowohl die ID des Bildes als auch sein Titel können verwendet werden, um das Bild vom Bild herunterladen Endpunkt herunterzuladen.
3. Herunterladen eines Bildes
Url: /{Identifikator}/Bilder/{BildIdentifikator}/raw
HTTP-Methode: GET
Der Bezeichner kann entweder die Aufgaben-ID, die Inspektions-ID oder die externe ID der Aufgabe sein (in der Benutzeroberfläche "Referenz" genannt). Der pictureIdentifier kann entweder der Titel des Bildes oder seine ID sein. Sie können diese beiden Informationen über die Endpunkte 5.1 und 5.2 abrufen.
Beispiel:
Anfrage:
GET https://dev.iclportal.com/ api/services/custom/inspection/xxxxxxxx-xxxx-xxxxxxxx-xxxxxxxx/pictures/b2a5161e-cd5c-4c0a-9ce6-2af34b8082df/raw HTTP/1.1 HTTP/1.1
Inhalt-Typ: application/json;charset=UTF-8
Akzeptierte Verschlüsselung: gzip, deflate
Antwort:
HTTP/1.1 200 OK
Cache-Kontrolle: no-store, must-revalidate, no-cache, max-age=0
Inhalt-Typ: image/jpeg
Inhalt-Encoding: gzip
Server: Microsoft-IIS/10.0
Set-Cookie: fileDownload=true; path=/
Content-Disposition: attachment; filename=47c89e2d-4665-4fe0-947a-f99feff40a96.jpeg
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 02 May 2018 08:56:52 GMT
Inhalt-Länge: 45776
... Rohdaten ...