Ändern von ClaimContact-Rollen
Die ClaimContact-Ressource verfügt über zwei rollenbezogene Array-Eigenschaften:
roles: Ein schreibgeschütztes Array aller Rollen, die vom ClaimContact gehalten werdeneditableRoles: Ein editierbares Array von nicht reservierten Rollen, die vom ClaimContact gehalten werden
Beide Eigenschaften verwenden das ContactRole-Schema.
Sie können die Rollen ändern, die ein ClaimContact hat. Dies geschieht jedoch nie, indem Sie das roles-Array ändern. Stattdessen ändern Sie entweder ein Feld oder Array eines zugehörigen Objekts oder das Array editableRoles. Welcher Ansatz verwendet wird, hängt davon ab, ob die Rolle reserviert ist oder nicht.
Festlegen reservierter Rollen
Eine reservierte Rolle ist eine Rolle, die nicht explizit für einen ClaimContact festgelegt werden kann. Stattdessen muss die Rolle wie folgt festgelegt werden:
- Festlegen eines Felds für ein anderes Objekt
- Ändern eines Arrays in einem anderen Objekt
- Ausführen einer Aktion für ein anderes Objekt
Die reservierten Rollen werden in der Datei ReservedContactRoles.yaml im Verzeichnis integration/contactroles/v1 definiert.
Um einem ClaimContact eine reservierte Rolle zuzuweisen, müssen Sie das Feld, das Array oder die Aktion angeben, durch die die Rolle implizit festgelegt wird.
Reservierte Rollen, die aus einem Feld festgelegt werden
Beispielsweise wird die Rolle Meldender aus dem Feld reporter des Schadenfalls festgelegt. Um die Rolle Meldender zu einem ClaimContact hinzuzufügen, ändern Sie das Feld reporter des Schadenfalls so, dass es auf den ClaimContact verweist.
Angenommen, es gibt einen Schadenfall mit der ID cc:610 und einen ClaimContact mit der ID cc:1306. Das Folgende ist ein Beispiel für das Hinzufügen der Rolle Meldender zu diesem ClaimContact:
PATCH http://localhost:8080/cc/rest/claim/v1/claims/cc:610
{
"data": {
"attributes": {
"reporter": {
"id": "cc:1306"
}
}
}
}
Reservierte Rollen, die aus einem Array festgelegt werden
Als weiteres Beispiel wird die Rolle Zeuge aus dem Array witnesses des Schadenfalls festgelegt. Um die Rolle Zeuge zu einem ClaimContact hinzuzufügen, fügen Sie den ClaimContact zum Array witnesses hinzu.
Angenommen, es gibt einen Schadenfall mit der ID cc:610 und einen ClaimContact mit der ID cc:1306. Der Schadenfall hat keine Zeugen. Im Folgenden finden Sie ein Beispiel für das Hinzufügen der Rolle Zeuge zum ClaimContact cc:1306.
PATCH http://localhost:8080/cc/rest/claim/v1/claims/cc:610
{
"data": {
"attributes": {
"witnesses": [
{
"contact": {
"id": "cc:1306"
}
}
]
}
}
}
Beachten Sie, dass innerhalb der System-APIs durch PATCHing eines Arrays keine neuen Mitglieder zu den vorhandenen Mitgliedern hinzugefügt werden. Vielmehr ersetzt es die bestehenden Mitglieder durch die neuen Mitglieder. Wenn Sie Mitglieder zu einem Array hinzufügen möchten, müssen Sie zunächst die vorhandenen Mitglieder ermitteln und dann ein Array mit diesen und den hinzuzufügenden Mitgliedern angeben. Weitere Informationen finden Sie unter PATCHs.
Reservierte Rollen, die durch Aktionen festgelegt werden
In einigen Situationen wird eine reservierte Rolle festgelegt, wenn eine Aktion für eine andere Ressource als der ClaimContact selbst ausgeführt wird. Wenn beispielsweise eine Serviceanforderung erstellt wird, kann die ServiceRequestInstruction einen ClaimContact als CustomerContact angeben. Diesem ClaimContact wird die reservierte Rolle servicerequestparticipant zugewiesen.
Festlegen nicht reservierter Rollen
Eine nicht reservierte Rolle ist eine Rolle, die für einen ClaimContact explizit festgelegt werden kann. Jede Rolle, die nicht in der Datei ReservedContactRoles.yaml aufgeführt ist, ist eine nicht reservierte Rolle.
Um einem ClaimContact eine nicht reservierte Rolle zuzuweisen, müssen Sie das Array editableRoles des ClaimContact ändern.
JSON-Syntax für das editableRoles-Array
Beim POSTing oder PATCHing eines ClaimContact muss jedes Mitglied des Arrays editableRoles drei Informationen enthalten:
- den Code der Rolle
- den Objekttyp, für den der ClaimContact diese Rolle hat
- die ID des Objekts, für das der ClaimContact diese Rolle hat
Die Syntax, mit der dies angegeben wird, lautet:
"editableroles": [
{
"role": {
"code": "<roleCode>"
},
"relatedTo": {
"type": "<parentObjectType>",
"id": "<parentObjectId>"
}
},
... <additionalRoles>
Beispiel: Das folgende PATCH erfolgt für Schadenfall cc:610, so dass der ClaimContact cc:777 die Rolle Alternativer Kontakt (deren Code altcontact lautet) den Schadenfall selbst hat.
PATCH http://localhost:8080/cc/rest/claim/v1/claims/cc:610/contacts/cc:777
{
"data": {
"attributes": {
"editableRoles": [
{
"role": {
"code": "altcontact"
},
"relatedTo": {
"type": "Claim",
"id": "cc:610"
}
}
]
}
}
}
Ebenso wird in diesem Beispiel gezeigt, wie das PATCH für Schadenfall cc:610 bewirkt, dass der ClaimContact cc:208 die Rolle Eigentümer (deren Code incidentowner lautet) für den Fahrzeugvorfall mit der ID cc:102 hat. (Mit anderen Worten: Der ClaimContact cc:208 ist der Eigentümer des Fahrzeugs, das im Fahrzeugvorfall cc:102 angegeben ist.)
PATCH http://localhost:8080/cc/rest/claim/v1/claims/cc:610/contacts/cc:208
{
"data": {
"attributes": {
"editableRoles": [
{
"role": {
"code": "incidentowner"
},
"relatedTo": {
"type": "vehicleIncident",
"id": "cc:102"
}
}
]
}
}
}
Szenarien für das PATCHing von editableRoles
Beachten Sie, dass innerhalb der System-APIs durch PATCHing eines Arrays keine neuen Mitglieder zu den vorhandenen Mitgliedern hinzugefügt werden. Vielmehr ersetzt es die bestehenden Mitglieder durch die neuen Mitglieder. Wenn Sie Mitglieder zu einem Array hinzufügen möchten, müssen Sie zunächst die vorhandenen Mitglieder ermitteln und dann ein Array mit diesen und den hinzuzufügenden Mitgliedern angeben. Weitere Informationen finden Sie unter PATCHs.
Für das PATCHing von editableRoles enthält die folgende Tabelle Details zu den möglichen Anforderungs-Nutzdaten und gibt an, wie die System-APIs reagieren.
| Wenn die Anforderungs-Nutzdaten enthalten: | ...dann... |
|---|---|
Kein editableRoles-Array |
Die nicht reservierten Rollen für den ClaimContact bleiben unverändert. |
Ein editableRoles-Array mit einer oder mehreren nicht reservierten Rollen |
Die vorhandenen nicht reservierten Rollen werden durch die in den Nutzdaten angegebenen nicht reservierten Rollen ersetzt. |
Ein leeres editableRoles-Array |
Alle vorhandenen nicht reservierten Rollen werden entfernt. (Wenn dies jedoch dazu führen würde, dass der ClaimContact keine Rollen mehr hat, gibt die System-API einen Fehler zurück.) |
Ein editableRoles-Array mit einer oder mehreren reservierten Rollen |
Die System-API gibt einen Fehler zurück. |
Ein roles-Array |
Die System-API gibt einen Fehler zurück. |