api/login
per HTTP post mit den Parametern username
, password
und wenn notwendig ldapDomain
authentisieren.
api/login?username=[String]&password=[String](&ldapDomain=[String])?
Nachfolgende HTTP-Requests müssen das Session-Cookie JSESSIONID setzen, um die mit diesem Aufruf geöffnete Sitzung zu verwenden. Der Wert des Cookies steht in der Antwort des Login-Aufrufs.
api/logout
api/ping
getestet werden. Hierzu muss man nicht angemeldet sein.
{
"success": true
}
api/isApiReady
geprüft.
{
"success": true,
"message": ""
}
api/getCurrentValuesForElements?elementIds=[Id](&elementIds=[Id])*(&entryIds=[Id])*(&states=[String])*
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementIds
enthält eine Liste der validen Elemente, entryIds
eine Liste der validen Felder, states
die möglichen Elementzustände der zurückgegebenen Elemente und datasheets
enthält die Liste an Datenblättern aller validen Elemente.
Es sollen für die Elemente 11 und 12 die Werte der Felder 4, 5 und 6 ausgelesen werden.
GET-URL:
api/getCurrentValuesForElements?elementIds=1&elementIds=2&entryIds=4&entryIds=5&entryIds=6
{
"success": true,
"message": "",
"elementIds": [11,12],
"entryIds": [4,5,6],
"states": ["IMAGINARY","IN_PLANNING","ACTIVE","ON_HOLD","CLOSED","REJECTED","ARCHIVED"],
"datasheets": [
{
"authorId": 1,
"elementId": 11,
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
},
{
"id": 6,
"title": "Rechnungsdatum",
"type": "Date",
"isTableColumn": false
}
],
"values": [
{
"entryId": 4,
"value": "10345",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:33:46.511Z"
},
{
"entryId": 5,
"value": {
"unit": "",
"value": 26.99
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"entryId": 6,
"value": "2018-02-08T12:00:00.000Z",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:33:46.511Z"
}
],
"version": "2018-11-14T01:00:00Z"
},
{
"authorId": 1,
"elementId": 12,
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
},
{
"id": 6,
"title": "Rechnungsdatum",
"type": "Date",
"isTableColumn": false
}
],
"values": [
{
"entryId": 4,
"value": "10346",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:38:49.012Z"
},
{
"entryId": 5,
"value": {
"unit": "€",
"value": 89.95
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:38:49.012Z"
},
{
"entryId": 6,
"value": "2018-02-09T12:00:00.000Z",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:38:49.012Z"
}
],
"version": "2018-11-14T01:00:00Z"
}
]
}
api/getValueHistoryForElements?elementIds=[Id](&elementIds=[Id])*(&entryIds=[Id])*(&states=[String])*
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementIds
enthält eine Liste der validen Elemente, entryIds
eine Liste der validen Felder, states
die möglichen Elementzustände der zurückgegebenen Elemente und datasheets
enthält die Liste an Datenblättern aller validen Elemente.
Es sollen für die Elemente 11 und 12 die Wertehistorie der Felder 4 und 5 ausgelesen werden.
GET-URL:
api/getValueHistoryForElements?elementIds=1&elementIds=2&entryIds=4&entryIds=5&entryIds=6
{
"success": true,
"message": "",
"elementIds": [11,12],
"entryIds": [4,5],
"states": ["IMAGINARY","IN_PLANNING","ACTIVE","ON_HOLD","CLOSED","REJECTED","ARCHIVED"],
"datasheets": [
{
"elementId": 11,
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
}
],
"values": [
{
"entryId": 5,
"value": {
"unit": "",
"value": 26.99
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"entryId": 4,
"value": "10345",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:33:46.511Z"
}
],
"authors": [
{
"author": "Musterfrau, Maria",
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"author": "Musterfrau, Maria",
"timestamp": "2018-03-19T17:33:46.511Z"
}
]
},
{
"elementId": 12,
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
}
],
"values": [
{
"entryId": 4,
"value": "10346",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:38:49.012Z"
},
{
"entryId": 5,
"value": {
"unit": "€",
"value": 89.95
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:38:49.012Z"
},
{
"entryId": 5,
"value": {
"unit": "€",
"value": 89.95
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-04-01T09:01:58.823Z"
}
],
"authors": [
{
"author": "Mustermann, Max",
"timestamp": "2018-03-19T17:38:49.012Z"
},
{
"author": "Musterfrau, Maria",
"timestamp": "2018-04-01T09:01:58.823Z"
}
]
}
]
}
getValuesForLayout
. Wird der Element-Status angegeben, wird nur dann ein Ergebnis zurückgegeben, wenn der aktuelle Status dem angegebenen entspricht.
api/getValuesForLayout?elementId=[Id]&layoutId=[Id](&state=[String])?
Für diese Anfrage sind keine besonderen Rechte notwendig.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementId
enthält die Id des abgefragten Elements, layoutId
die Id des abgefragten Layouts, state
den aktuellen Elementstatus und datasheet
das Datenblatt mit den Werten.
Es sollen für das Element 11 die Werte des Layouts 4 ausgelesen werden.
GET-URL:
api/getValuesForLayout?elementId=11&layoutId=4
{
"success": true,
"message": "",
"elementId": 11,
"layoutId" : 4
"state": "ACTIVE",
"datasheet": {
"authorId": 1,
"elementId": 11,
"version": "2018-11-14T01:00:00Z"
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
},
{
"id": 6,
"title": "Rechnungsdatum",
"type": "Date",
"isTableColumn": false
}
],
"values": [
{
"entryId": 4,
"value": "10345",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:33:46.511Z"
},
{
"entryId": 5,
"value": {
"unit": "",
"value": 26.99
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"entryId": 6,
"value": "2018-02-08T12:00:00.000Z",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T17:33:46.511Z"
}
],
}
}
getValueHistoryForLayout
.
api/getValueHistoryForLayout?elementId=[Id]&layoutId=[Id](&entryIds=[Id])*
Es wird empfohlen, nur die benötigten Felder abzufragen. Werden keine Feld-Ids angegeben, enthält die Antwort alle sichtbaren Felder des Layouts. Die Liste der Autoren ist nur befüllt, wenn in der Konfiguration der Schalter user.versionAuthor.visible aktiv ist.success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementId
enthält die Id des abgefragten Elements, layoutId
die Id des abgefragten Layouts, entryIds
die ausgelesenen Felder und datasheet
das Datenblatt mit den Werten. Die Werte werden aufsteigend nach dem Versionsdatum sortiert.
Es sollen für das Element 11 die Werte der Felder 4 und 5 des Layouts 4 ausgelesen werden.
GET-URL:
api/getValueHistoryForLayout?elementId=11&layoutId=4&entryIds=4&entryIds=5
{
"success": true,
"message": "",
"elementId": 11,
"layoutId" : 4
"entryIds": [4,5],
"datasheet": {
"elementId": 11,
"scopeType": {
"id": 1,
"name": "Rechnung",
"type": "NODE"
},
"entries": [
{
"id": 4,
"title": "ReNr",
"type": "String",
"isTableColumn": false
},
{
"id": 5,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
}
],
"values": [
{
"entryId": 5,
"value": {
"unit": "",
"value": 27.98
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T13:08:53.282Z"
},
{
"entryId": 4,
"value": "10345",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"entryId": 5,
"value": {
"unit": "",
"value": 26.99
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
}
],
"authors": [
{
"author": "Mustermann, Max",
"timestamp": "2018-03-19T13:08:53.282Z"
},
{
"author": "Musterfrau, Maria",
"timestamp": "2018-03-19T14:57:15.938Z"
}
]
}
}
api/nodes?typeName=[String]&level=[Id](&states=[String])+(&entries=[String])*
Für diese Anfrage benötigt man administrative Rechte.IMAGINARY
, IN_PLANNING
, ACTIVE
, ON_HOLD
, CLOSED
, REJECTED
oder ARCHIVED
.
Es sollen vom Aspekttyp Abrechnung von Level 1 (Unterknoten von Rootknoten) alle Rechnungsnummern und Auftragsnummern zurückgegeben werden, deren Elemente den Status ACTIVE
oder ON_HOLD
haben.
GET-URL:
api/nodes?typeName=Abrechnungen&level=1&entries=Rechnungsnummer&entries=Auftragsnummer&states=ACTIVE&states=ON_HOLD
[
{
"Rechnungsnummer": "1234",
"Auftragsnummer": "4711"
},
{
"Rechnungsnummer": "3456",
"Auftragsnummer": "3241"
}
]
api/getTableViewData?tableViewId=[Id](&filterCondition=[String])?(&elementIdsFilter=[String])?(&entryIdsFilter=[String])?(&valueType=simple)?
Für diese Anfrage sind keine besonderen Rechte notwendig.IMAGINARY
, IN_PLANNING
, ACTIVE
, ON_HOLD
, CLOSED
, REJECTED
oder ARCHIVED
.
Es soll die TableView mit der Id 1 ausgelesen werden, beschränkt auf die angegebenen Elemente und Felder, für die das Auftragsdatum vor dem heutigen Tag liegt.
GET-URL:
api/getTableViewData?tableViewId=1&filterCondition=@Auftragsdatum<TODAY&elementIdsFilter=23,24,25,28&entryIdsFilter=25
JSON-Rückgabe mit einfachen Werten:
{
"success": true,
"message": "",
"tableViewId": 1,
"filterCondition": "@Auftragsdatum<TODAY",
"elementIdsFilter": [23,24,25,28],
"entryIdsFilter": [25],
"tableViewData": {
"tableViewId": 1,
"columns": [
{
"name": "Name",
"columnType": "NAME",
"entry": null
},
{
"name": "Betrag",
"columnType": "ENTRY",
"entry": {
"id": 25,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
}
}
],
"rows": [
{
"elementId": 2,
"values": [
"Auftrag 3452",
{
"unit": "",
"value": 26.99
}
]
},
{
"elementId": 8,
"values": [
"Auftrag 2893",
{
"unit": "",
"value": 53.49
}
]
}
]
}
}
JSON-Rückgabe mit erweiterten Werten:
{
"success": true,
"message": "",
"tableViewId": 1,
"filterCondition": "@Auftragsdatum<TODAY",
"elementIdsFilter": [23,24,25,28],
"entryIdsFilter": [25],
"tableViewData": {
"tableViewId": 1,
"columns": [
{
"name": "Name",
"columnType": "NAME",
"entry": null
},
{
"name": "Betrag",
"columnType": "ENTRY",
"entry": {
"id": 25,
"title": "Betrag",
"type": "Number",
"isTableColumn": false
}
}
],
"rows": [
{
"elementId": 2,
"values": [
{
"entryId": -1,
"value": "Auftrag 3452",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
},
{
"entryId": 25,
"value": {
"unit": "",
"value": 26.99
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T14:57:15.938Z"
}
]
},
{
"elementId": 8,
"values": [
{
"entryId": -1,
"value": "Auftrag 2893",
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-19T09:14:18.674Z"
},
{
"entryId": 25,
"value": {
"unit": "",
"value": 53.49
},
"state": "VALID",
"isFormula": false,
"timestamp": "2018-03-18T09:14:18.674Z"
}
]
}
]
}
}
api/performETL?etl=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
enthält, ob die Anfrage erfolgreich bearbeitet wurde.
Es soll ein neues Projekt 125 als Prozess angelegt werden. Zur besseren Lesbarkeit wurde die URL nicht escaped.
GET-URL:
api/performETL?etl="15";"3";"1";"0";"myCRM";"Projekt 125";"";"Projekt";"Projekt 125";""
{
"success": true
}
api/writeDatasheet?elementId=[Id]&values=[JSON-Array](&layoutId=[Id])
Für diese Anfrage benötigt man Schreibrechte für die zu schreibenden Felder auf dem Element unter dem (optional) angebenen Layout. Wird keine Layout-Id übergeben, so wird versucht, die Werte unter dem Standard-Element-Layout zu schreiben.
success
enthält, ob die Anfrage erfolgreich bearbeitet wurde. Zudem werden die übergebenen Parameter elementId
und layoutId
wieder zurückgegeben. Im Falle, dass keine Layout-Id vom Aufrufer angegeben wurde, wird die Id des als Fallback verwendeten Standardlayouts zurückgegeben.
GET-URL:
api/writeDatasheet?elementId=1020&values=[{"entryId":42,"value":{"value":30.50,"unit":"€"},"state":"VALID","isFormula":false,"timestamp":null}]"
{
"success": true,
"elementId": 1020,
"layoutId": 99
}
api/copyByButton?elementId=[Id]&buttonId=[Id](&actorId=[Id])(&sourceElementId=[Id])(&targetIds=[Id])*©Name=[String]&values=[JSON-Array]&connectionButtonExecutions=[JSON-Array]
Für diese Anfrage benötigt man Zugriffsrechte auf den entsprechenden Copy-Button. Um die Operation im Namen eines anderen "Actors" auszuführen, benötigt man administrative Rechte auf das System. Die sourceElementId
kann entfallen, sofern der Copy-Button nur mit einer einzigen möglichen Quelle konfiguriert ist. Die targetIds
können entfallen, sofern der Copy-Button nur mit einem einzigen Ziel konfiguriert ist.
connectionButtonExecutions
mit einem JSON-String an. Dieser codiert eine Liste mit Objekten, die die Long-Zahlen buttonId, targetId und das Flag create enthalten. Beispiel: [[ buttonId: 5, targetId: 14, create: true ], [ buttonId: 5, targetId: 15, create: true ]]
legt mit dem ConnectionButton mit der Id 5 Beziehungen zu den Elementen mit den Ids 14 und 15 an.
success
enthält, ob die Anfrage erfolgreich bearbeitet wurde und eine Liste der Element-Ids, die beim Kopieren angelegt wurden.
Auf dem Knoten 23 soll für den Anwender 2 der CopyButton 45 gedrückt werden. Dabei soll das Template 8 unter die Knoten 12 und 14 kopiert werden.
GET-URL:
api/copyByButton?elementId=23&buttonId=45&actorId=2&sourceElementId=8&targetIds=12&targetIds=14©Name=Test&values=[{"Name":"Antrag", "Datum": "2018-03-18T09:14:18.674Z"}]&connectionButtonExecutions=[]
{
"success": true,
"copies": [25,26]
}
api/executeActionButton?elementId=[Id]&buttonId=[Id](&actorId=[Id])?(&layoutId=[Id])?(&buttonData=[JSON])?
Für diese Anfrage sind keine besonderen Rechte notwendig, sofern keine Actor-Id angegeben wird. Nur mit administrativen Rechten kann stellvertretend für andere Anwender ein Button gedrückt werden.
{
"params": [
{
"name": String,
"type": ["BOOLEAN" | "CHOICE" | "DATE" | "MULTIPLE_CHOICE" | "NUMBER" | "STRING"],
"editable": [ true | false ],
"value": Primitive
}
]
}
[
{
"choiceOptionsPropagation": ["CHANGE" | "RENAME" | "REORDER"],
"choiceOptions": Comma Separated String
}
]
{
"etlData": CSV String,
"locale": ["en_US" | "en_GB" | "de_DE"]
}
success
enthält, ob die Anfrage erfolgreich bearbeitet wurde und eine Task-Id der gestarteten Anfrage.
Auf dem Knoten 23 soll für den Anwender 2 der ActionButton 45 auf Layout 24 gedrückt werden.
GET-URL:
api/executeActionButton?elementId=23&buttonId=45&actorId=2&layoutId=24
{
"success": true,
"elementId": 23,
"buttonId": 45,
"layoutId": 24,
"buttonData": null,
"actorId": 2,
"taskId": 1284
}
getElementIdsForType
ausgelesen werden. Ist der Typname nicht global eindeutig, kann zusätzlich der Element-Typ angegeben werden (OBJECT
, PROCESS
, ASPECT
, NODE
oder CONNECTION
). Als Element-Status sind folgende Werte erlaubt: IN_PLANNING
, ACTIVE
, ON_HOLD
, CLOSED
, REJECTED
oder ARCHIVED
. Ist kein Status angegeben, werden nur Elemente mit dem Status IN_PLANNING
, ACTIVE
oder ON_HOLD
aufgelistet.
api/getElementIdsForType?typeName=[String](&elementType=[String])?(&states=[String])*
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementIds
ist eine Id-Liste der gefundenen Elemente.
Es werden alle aktiven Knoten vom Typ Rechnung gesucht.
GET-URL:
api/getElementIdsForType?typeName=Rechnung&elementType=NODE&states=ACTIVE
{
"success": true,
"message": "",
"elementIds": [3,5,8]
}
getElementsForTypeIds
kurze Elementbeschreibungen für mehrere Typen gleichzeitig abfragen.
api/getElementsForTypeIds?typeIds=[Id](&typeIds=[Id])*(&states=[String])*
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elements
ist eine Liste mit Element-Objekten.
Es werden alle aktiven Elemente vom Typ 2 gesucht.
GET-URL:
api/getElementsForTypeIds?typeIds=2&states=ACTIVE
{
"success": true,
"message": "",
"elements": [
{
id: 3,
name: "Homer",
typeId: 2
},
{
id: 5,
name: "Marge",
typeId: 2
},
{
id: 8,
name: "Lisa",
typeId: 2
}
]
}
api/findNode?nodeName=[String]&aspectTypeName=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. node
ist eine Map, die den gefundenen Knoten beschreibt.
Es soll der Mitarbeiter-Knoten Homer Simpson ausgelesen werden.
GET-URL:
api/findNode?nodeName=Homer%20Simpson&aspectTypeName=Mitarbeiter
{
"success": true,
"message": "",
"node": {
"id": 5,
"name": "Homer Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [3],
"parentNodeNames": []
}
}
api/getConnectionsForType?typeName=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. connections
ist eine Liste der gefundenen Beziehungen.
Es sollen alle Beziehungen vom Typ Mitarbeiter2Auftrag aufgelistet werden.
GET-URL:
api/getConnectionsForType?typeName=Mitarbeiter2Auftrag
{
"success": true,
"message": "",
"connections": [
{
"id": 43,
"name": "Mitarbeiter2Auftrag",
"source": {
"id": 5,
"name": "Homer Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [3],
"parentNodeNames": []
},
"target": {
"id": 28,
"name": "Sachbearbeiter",
"aspectId": 27,
"aspectName": "Sachbearbeiter",
"topLevelId": 16,
"topLevelName": "Auftrag 10213",
"topLevelIsProcess": true,
"parentNodeIds": [],
"parentNodeNames": []
}
}
]
}
api/search?term=[String]&page=[Number]&pageSize=[Number]
Für diese Anfrage sind keine besonderen Rechte notwendig.term
steht die bearbeitete Suchanfrage, in der Liste results
die gefundenen Ergebnisse. Das einzelne Ergebnis ist eine Map mit elementId
(Scope-ID des gefundenen Elements), name
(Elementname), datasheetVersion
(Zeitstempel des Werts, der den Suchtreffer enthält), breadcrumb
(Liste der Elternelemente als Maps mit elementId
und name
).
Es soll nach dem Text REWOO gesucht werden. Erwartet wird die zweite Seite mit maximal 2 Einträgen.
GET-URL:
api/search?term=rewoo;page=1;pageSize=2
{
"term": "rewoo",
"results": [
{
"elementId": 3,
"name": "Max Mustermann",
"datasheetVersion": 1497950642278,
"breadcrumb": [
{
"elementId": 1,
"name": "REWOO Software GmbH"
},
{
"elementId": 2,
"name": "Mitarbeiter"
}
]
},
{
"elementId": 4,
"name": "Frida Musterfrau",
"datasheetVersion": ,
"breadcrumb": [
{
"elementId": 1,
"name": "REWOO Software GmbH"
},
{
"elementId": 2,
"name": "Mitarbeiter"
}
]
}
]
}
api/getNodeTypes
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. nodeTypes
enthält die Liste der Knotentypen.
GET-URL:
api/getNodeTypes
{
"success": true,
"message": "",
"nodeTypes": [
{
"id": 1,
"name": "Mitarbeiter",
"type": "NODE"
},
{
"id": 2,
"name": "Rechnung",
"type": "NODE"
}
]
}
api/getEntryForTitle?entryTitle=[String]&typeName=[String](&elementType=[String])?
Für diese Anfrage benötigt man administrative Rechte.OBJECT
, PROCESS
, ASPECT
oder CONNECTION
.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. entry
ist eine Map, die das Formularfeld beschreibt.
Es soll vom Aspekttyp Abrechnung das Feld Rechnungsnummer abgefragt werden.
GET-URL:
api/getEntryForTitle?entryTitle=Rechnungsnummer&typeName=Abrechnungen&elementType=ASPECT
{
"success": true,
"message": "",
"entry": {
"id": 427,
"title": "Rechnungsnummer"
}
}
api/getEntriesByTypes?entryType=[String](&typeIds=[Id])*(&typeNames=[String])*
Für diese Anfrage benötigt man administrative Rechte.ActionButton
, Boolean
, Choice
, Condition
, ConnectionButton
, CopyButton
, Date
, ElementLinks
, Email
, EmailFiles
, ExternalLinks
, FileLinks
, Image
, MultipleChoice
, NextLinks
, Number
, PrevLinks
, RichText
, Signature
, SpreadsheetFile
, String
, TrafficLight
, ViewButton
.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. entries
ist eine List der Feldbeschreibungen.
Es soll vom Elementtyp 2 alle Felder des Typs FileLinks abgefragt werden.
GET-URL:
api/getEntriesByTypes?entryType=FileLinks&typeIds=2
{
"success": true,
"message": "",
"entryType": "FileLinks",
"entries": [
{
id: 47,
title: "Rechnungen",
type: "FileLinks",
isTableColumn: false
}
]
}
api/getDatasheetEntries?entryIds=[Id](&entryIds=[Id])*
Für diese Anfrage sind keine besonderen Rechte notwendig.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. entryIds
Liste der abgefragten Feld-Ids und entries
eine Liste von Feld-Beschreibungen.
Es sollen die Felder 2 und 3 abgefragt werden.
GET-URL:
api/getDatasheetEntries?entryIds=2&entryIds=3
{
"success": true,
"message": "",
"entryIds": [2,3],
"entries": [
{
"serverId": 2,
"title": "Rechnungs-ID",
"type": "String",
"defaultValue": "={R-}+COUNTER(Rechnung)",
"format": "",
"choiceOptions": "",
"comment", "Bitte immer im Format R-XXXX angeben"
"commentAsTooltip": true,
"requiredAccessRight": "R"
"buttonDefinition": null,
"defaultValuePropagation": "SAME",
"choiceOptionsPropagation": "CHANGE",
"obsolete": false
},
{
"serverId": 3,
"title": "Rechnungsbetrag",
"type": "Number",
"defaultValue": "",
"format": "{"valueSuffix":" €","fontWeight":"normal","textAlign":"right","format":"currency"}",
"choiceOptions": "",
"comment", ""
"commentAsTooltip": false,
"requiredAccessRight": "R"
"buttonDefinition": null,
"defaultValuePropagation": "SAME",
"choiceOptionsPropagation": "CHANGE",
"obsolete": false
}
]
}
api/resolveIdToName?entityId=[Id]&entityType=[ ELEMENT | TYPE | ENTRY | ATTACHMENT ]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. entityName
enthält den gesuchten Namen.
Es soll der Name eines Elements abgefragt werden.
GET-URL:
api/resolveIdToName?entityId=17&entityType=ELEMENT
{
"success": true,
"message": "",
"entityId": 17,
"entityType": "ELEMENT",
"entityName": "Mitarbeiter"
}
api/getLayoutForName?layoutName=[String]&typeName=[String]&elementType=[String]
Für diese Anfrage benötigt man administrative Rechte.OBJECT
, PROCESS
, ASPECT
oder CONNECTION
.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. layout
enthält die Informationen über das gesuchte Layout. Unter layoutName
, typeName
und elementType
sind die Werte zu finden, welche der Funktion beim Aufruf übergeben wurden.
Es soll das Layout "Kundenansicht" (interne REWOO Scope Id 7) des Objekt-Typs "Auftrag" (interne REWOO Scope Id 10) ausgelesen werden.
GET-URL:
api/getLayoutForName?layoutName=Kundenansicht&typeName=Auftrag&entityType=OBJECT
{
"success": true,
"message": "",
"layoutName": "Kundenansicht",
"typeName": "Auftrag",
"elementType": "OBJECT",
"layout": {
"id": 7,
"typeId": 10,
"name": "Kundenansicht"
}
}
changeElementState
. Die Methode ignoriert alle Elemente, für die der Statuswechsel nicht möglich ist und gibt alle Element-Ids zurück, für die der Statuswechsel erfolgreich war.
api/changeElementState?(elementIds=[Id]&)+newState=[String]&recursive=[Boolean]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. elementIds
enthält die Ids der erfolgreich geänderten Elemente.
Es soll der Status der Elemente 11,12,13 auf ARCHIVED geändert werden. Das Element ist schon archiviert.
GET-URL:
api/changeElementState?elementIds=11&elementIds=12&elementIds=13&newState=ARCHIVED&recursive=false
{
"success": true,
"message": "",
"elementIds": [11,13],
"newState": "ARCHIVED",
"recursive": false
}
api/getFileUrl?attachmentId=[Id]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. url
ist die URL, mit der auf die Datei zugegriffen werden kann und in originalFilename
steht der Dateiname, den die Datei beim Speichern hatte.
Es soll die Datei mit der Id 42 ausgelesen werden.
GET-URL:
api/getFileUrl?attachmentId=42
{
"success": true,
"message": "",
"attachmentId": 42,
"url": "//home/rewoo/files/42.docx",
"originalFilename": "test.docx"
}
api/saveFileByUrl?elementId=[Id]&entryId=[Id]&url=[String]&(filename=[String])?(&overwriteAll=[Boolean])?
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. attachmentId
enthält die Id der gespeicherten Datei.
Es soll eine Datei gespeichert werden. Zur besseren Lesbarkeit wurde die URL nicht escaped.
GET-URL:
api/getFileUrl?elementId=17&entryId=48&url=//home/rewoo/test.docx
{
"success": true,
"message": "",
"attachmentId": 42
}
api/getChangedFiles?since=[timestamp](&entryId=[Id])
Für diese Anfrage benötigt man administrative Rechte.since
wird in Millisekunden seit Unix Epoch angegeben (01.01.1970 00:00:00.000 UTC). Die Ergebnisliste kann auf ein bestimmtes Formularfeld eingeschränkt werden. Alle abgefragten Dateien können für eine kurze Zeit über die zurückgegebene Url ohne Login abgerufen werden.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. files
enthält die Id der gespeicherten Datei.
Es werden alle geänderten Dateien seit 01.05.2019 15:23:00 in allen Instanzen von Feld 23 abgefragt.
GET-URL:
api/getChangedFiles?since=1556716980000&entryId=23
{
"success": true,
"message": "",
"since": 1556716980000,
"entryId": 23,
"files": [
{
id: 15,
name: "Rechnung_2341",
extension: "pdf",
size: 45623,
mimeType: "application/pdf",
type: "Word",
hash: "23b75a4c4d49244632ceb0ad7273dbdbfa5a71e7c633b75cb0f388f2b1becc15",
url: "https://trial.rewoo.net/test/api/file/23b75a4c4d49244632ceb0ad7273dbdbfa5a71e7c633b75cb0f388f2b1becc15",
authorId: 5,
creationTimestamp: 1556717152000,
elementId: 678,
entryId: 23
}
]
}
api/updateTaskProgress?taskId=[Id]&progressIncrement=[Number]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. taskId
enthält die verwendete TaskId.
Der Task mit der Id 17 ist bei 35%.
GET-URL:
api/updateTaskProgress?taskId=17&progressIncrement=0.35
{
"success": true,
"message": "",
"taskId": 17
}
api/getTaskPayload?taskId=[Id]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. taskId
enthält die TaskId, payload
die Daten.
Lese die Daten für Task 17.
GET-URL:
api/updateTaskProgress?taskId=17
{
"success": true,
"message": "",
"taskId": 17,
"payload":
}
scopeUserId
- Id des aktuell angemeldeten AnwendersscopeUserHomeId
- Id des Home-Knotens des aktuell angemeldeten AnwendersscopeAccountType
- Account-Art des AnwendersscopeTimestamp
- Zeitpunkt des Aufrufsapi/proxy?method=[String]&(param=[String])*
Für diese Anfrage sind keine besonderen Rechte notwendig.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über mögliche Probleme gibt. result
enthält das Ergebnis des externen Service.
Finde ein Meeting-Raum für 10 Personen.
GET-URL:
api/proxy?method=findRoom&size=10
{
"success": true,
"message": "",
"result": "Raum 1.10,Raum 2.01"
}
api/getScopeUsers?filter=[String]
Dabei steht [String] für eine Map in Form eines JSON-Strings, der die zu findenden Benutzer nach ihrem Gültigkeitsdatum und ob sie deaktiviert bzw. nicht deaktiviert sind, filtert. Wichtig ist bei der Angabe des Zeitstempels, die Anzahl der Millisekunden nach "Epoch" (01.01.1970, 00:00:00 GMT) anzugeben. Der Filter ist optional: wird er weggelassen, werden ausschließlich noch ungelöschte, nicht-deaktivierte Benutzer zurückgegeben.success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. scopeUsers
ist die Liste der Ergebnisse. Unter filter
ist der ursprünglich angegebene Filter zu sehen, der für die Benutzersuche verwendet wurde. Das einzelne Ergebnis ist eine Map mit den Attributen des jeweiligen Scope-Accounts.
GET-URL:
api/getScopeUsers?filter={"validUntil":1511790000000,"deactivated":true}
Liefert alle Benutzer zurück, die ein Gültigkeitsdatum kleiner oder gleich dem 27.11.2017, 13:40 UTC haben und deaktiviert wurden.
{
"success": true,
"message": "",
"filter": { \"validUntil\":1511790000000, \"deactivated\":true },
"scopeUsers": [
{
"id": 1,
"userName": "h.simpson",
"realName": "Simpson, Homer",
"email": "homer.simpson@rewoo.com",
"loginNode": {
"id": 4,
"name": "Homer Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
},
{
"id": 2,
"userName": "m.simpson",
"realName": "Simpson, Marge",
"email": "marge.simpson@rewoo.com",
"loginNode": {
"id": 5,
"name": "Marge Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
}
]
}
api/createUserByTemplate?templateName=[String]&realName=[String]&email=[String]&targetName=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. newUser
ist eine Map mit den Attributen des neuen Scope-Accounts.
GET-URL:
api/createUserByTemplate?templateName=Springfield&realName=Simpson%2C%20Lisa&email=lisa.simpson@rewoo.com&targetName=Lisa%20Simpson
{
"success": true,
"message": "",
"newUser": {
"id": 3,
"userName": "l.simpson",
"realName": "Simpson, Lisa",
"email": "lisa.simpson@rewoo.com",
"loginNode": {
"id": 6,
"name": "Lisa Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
}
}
api/updateUserInfo?userId=[Id]&realName=[String]&email=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. updatedUser
ist eine Map mit den Attributen des aktualisierten Scope-Accounts.
GET-URL:
api/updateUserInfo?userId=3&realName=Flanders%2C%20Lisa&email=lisa.flanders@rewoo.com
{
"success": true,
"message": "",
"updatedUser": {
"id": 3,
"userName": "l.simpson",
"realName": "Flanders, Lisa",
"email": "lisa.flanders@rewoo.com",
"loginNode": {
"id": 6,
"name": "Lisa Flanders",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
}
}
api/performLdapQuery?(attributeFilter=[String])+(&searchBase=[String])?(&searchFilter=[String])?
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. ldapQueryResult
ist die Liste der Ergebnisse. Das einzelne Ergebnis ist eine Map mit den angeforderten Attributen.
Gesucht sind alle Rewoo-Nutzer, die unterhalb der Search-Base ou=people,dc=rewoo,dc=lan
aufgehängt sind. Als Rückgabe-Werte werden displayName
und uid
erwartet.
GET-URL:
api/performLdapQuery?attributeFilter=displayName&attributeFilter=uid&searchBase=ou%3Dpeople%2Cdc%3Drewoo%2Cdc%3Dlan&searchFilter=(&(objectclass%3DinetOrgPerson)(objectclass%3DRewooUser))
{
"success": true,
"message": "",
"ldapQueryResult": [
{
"displayName": "Simpson, Homer",
"uid": "h.simpson"
},
{
"displayName": "Simpson, Marge",
"uid": "m.simpson"
}
]
}
api/createLdapUserByTemplate?templateName=[String]&userName=[String]&realName=[String]&email=[String]&targetName=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. newUser
ist eine Map mit den Attributen des neuen Scope-Accounts.
GET-URL:
api/createLdapUserByTemplate?templateName=Springfield&userName=l.simpson&realName=Simpson%2C%20Lisa&email=lisa.simpson@rewoo.com&targetName=Lisa%20Simpson
{
"success": true,
"message": "",
"newUser": {
"id": 3,
"userName": "l.simpson",
"realName": "Simpson, Lisa",
"email": "lisa.simpson@rewoo.com",
"loginNode": {
"id": 6,
"name": "Lisa Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
}
}
api/getLdapUserConfig
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. ldapUserConfig
ist eine Liste der Konfigurationsparameter.
GET-URL:
api/getLdapUserConfig
{
"success": true,
"message": "",
"ldapUserConfig": [
"usernameAttribute": "uid",
"realnameAttribute": "displayName",
"emailAttribute": "mail"
]
}
api/getExternalAppValue?appId=[String]&key=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. value
enthält den nachgefragten Wert.
GET-URL:
api/getExternalAppValue?appId=myApp&key=country
{
"success": true,
"message": "",
"key": "country",
"value": "Germany"
}
api/getExternalAppValuesByPrefix?appId=[String]&keyPrefix=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. keyValues
enthält eine Map mit Key-Value-Paaren.
GET-URL:
api/getExternalAppValuesByPrefix?appId=myApp&keyPrefix=color
{
"success": true,
"message": "",
"keyPrefix": "color",
"keyValues": {
"color green": "0x53ba50",
"color yellow": "0xffc400",
"color red": "0xcc2828",
}
}
api/writeExternalAppValue?appId=[String]&key=[String]&value=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt.
GET-URL:
api/writeExternalAppValue?appId=myApp&key=country&value=Germany
{
"success": true,
"message": "",
"key": "country",
"value": "Germany"
}
api/clearExternalAppValues?appId=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt.
GET-URL:
api/clearExternalAppValues?appId=myApp
{
"success": true,
"message": ""
}
api/addWebhook?event=[ cron | value_change ]&name=[String]&url=[String]&login=[String]&password=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt.
GET-URL:
api/addWebhook?event=value_change&name=Rechnungen&url=https://rewoo.de/test&login=test&password=test
JSON-Rückgabe:
{
"success": true,
"event": "VALUE_CHANGE",
"name": "Rechnungen"
}
{
"event": "CRON",
"jobName": "UpdateTODAYDependenciesJob"
}
{
"event": "VALUE_CHANGE",
"elementType": "Rechnungen",
"elements": [3,8,12]
}
api/removeWebhook?event=[ cron | value_change ]&name=[String]&url=[String]
Für diese Anfrage benötigt man administrative Rechte.
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt.
GET-URL:
api/removeWebhook?event=value_change&name=Rechnungen&url=https://rewoo.de/test
{
"success": true
}
api/executeAtomic?appId=[String]
success
ist ein Flag, ob die Anfrage erfolgreich bearbeitet wurde. In message
steht im Fehlerfall eine Nachricht, die Aufschluss über das Problem gibt. results
ist eine Map mit dem Namen der Operation und dem Ergebnis.
Es soll ein neuer Account angelegt werden und zusätzlich die vom Active Directory vergebene global eindeutige Id im Key-Value Store der Scope-internen Account-ID zugeordnet werden, damit der Account im Active Directory zugeordnet werden kann. Die im ersten Schritt erzeugte Scope-ID kann über den Platzhalter %<Operationsname>.<Ergebnisparameter>%
referenziert werden.
GET-URL:
api/executeAtomic?actions=[{"actionName"="createUserByTemplate","staticParams"={"templateName"="Springfield","realName"="Simpson, Lisa","email"="lisa.simpson@rewoo.com","targetName"="Lisa Simpson"},"dynamicParams"={}},{"actionName"="writeExternalAppValue","staticParams"={"appId"="myRestTool","key"="GUID-5ca3e4d3-8b6a-469a-8ff3-9eb61b9f7265"},"dynamicParams"={"value"="%createUserByTemplate.newUser.id%"}}]
{
"success": true,
"results": {
"createUserByTemplate": {
"success": true,
"message": "",
"newUser": {
"id": 73,
"userName": "l.simpson",
"realName": "Simpson, Lisa",
"email": "lisa.simpson@rewoo.com",
"loginNode": {
"id": 6,
"name": "Lisa Simpson",
"aspectId": 2,
"aspectName": "Mitarbeiter",
"topLevelId": 1,
"topLevelName": "REWOO Software GmbH",
"topLevelIsProcess": false,
"parentNodeIds": [2],
"parentNodeNames": ["Mitarbeiter"]
}
}
},
"writeExternalAppValue": {
"success": true,
"message": "",
"key": "GUID-5ca3e4d3-8b6a-469a-8ff3-9eb61b9f7265",
"value": "73"
}
},
"message": ""
}