Request modes

Draft comment:
This topic is shared by BAW, CP4BA. Last updated on 2025-03-13 12:15
When a case is created or modified in Case Client, the workflow REST protocol calls the POST method for the particular object type resource to submit a request to the external data service. This request contains a request mode that indicates the action that is being performed.

You must configure the external data service to respond with the data that is required for that action. For example, if the request is to create a case, the service needs to respond with the initial property values that are defined for the case type.

The requestMode parameter indicates the action that is being performed in Case Client. This action determines the response that is returned by the external data service.

The requestMode parameter can have the following values:
initialNewObject
This value indicates that the external data service is being called for the first time in a sequence of exchanges to create a case. For each property, the input payload contains the symbolic name and the default value that is defined in the case type.

The input payload does not contain the externalDataIdentifier parameter. Instead, this parameter is set by the external data service and returned in the response payload. Subsequent requests made during the creation of the case include the externalDataIdentifier parameter to indicate the current state of the data to the service.

initialExistingObject
Indicates that the external data service is being called for the first time in a sequence of exchanges to modify an existing case. For each property, the input payload that is passed to the service contains the symbolic name and the value that is currently stored in the repository.

The input payload also contains the objectId parameter that specifies the GUID of the root folder for the case. The service can use this GUID to refer to the case. However, remember that the values stored in the repository for the case can change. Therefore, the values that are provided in the input payload might not match the values that are currently stored in the repository for the case.

The input payload does not contain the externalDataIdentifier parameter. Instead, this parameter is set by the external data service and returned in the response payload. Subsequent requests made during the update of the case include the externalDataIdentifier parameter to indicate the current state of the data to the service.

inProgressChanges
Indicates that the external data service is being called in response to changes in one or more properties that have dependent properties. The input payload can contain the following information:
  • The current working value for each property in the case.
  • The externalDataIdentifier parameter, which indicates to the service the previous state of any properties that it updated.
  • For an existing case, the objectId parameter, which specifies the GUID of the root folder for the case.

The external data service responds to this request if the attributes or working value of any property that it manages changed. The service also responds to return a custom validation error.

finalNewObject
Indicates that the external data service is being called for the final time in the sequence of exchanges to create a case. After this call, the new case is created and the property values are persisted in the repository.

For each property, the input payload that is passed to the service contains the working values for all properties that are defined by the case type.

finalExistingObject
Indicates that the external data service is being called for the final time in the sequence of exchanges to update an existing case. After this call, the updated case property values are persisted in the repository.

For each property, the input payload that is passed to the service contains the working values for all properties that are defined by the case type.