Manual _ Shiftconnector API-v73
Manual _ Shiftconnector API-v73
Status: n/a
Confidentiality: PROTECTED
Microsoft ASP.NET, SQL Server, C# and Windows are registered trademarks of Microsoft Corporation. All
other trademarks used herein are the property of their respective owners.
The recipient, by accepting this document agrees that neither this document nor the information disclosed
herein nor any item thereof shall be reproduced or transferred to other documents or used or disclosed to
others for manufacturing or for any other purpose except as specifically authorized in writing by eschbach.
All the information in this document is based on current knowledge and understanding and is hence subject
to change without notice. Nothing in this documentation is or shall be construed as a warranty of fitness for
a particular purpose or a warranty of merchantability. It is customer’s sole responsibility to determine
whether the Eschbach software and services will be appropriate for customer’s purposes.
1 Overview ........................................................................................................ 8
1.1 Target Audience of this document .................................................................................. 8
2 Authentication and Authorization ................................................................ 9
2.1 Specific Web API user ...................................................................................................... 9
2.2 Login and Logout ............................................................................................................ 10
2.2.1 Session expiration ....................................................................................................................................... 10
2.3 Authorization................................................................................................................... 10
2.4 Tenant change is not supported .................................................................................... 10
3 Shiftconnector® API Overview .................................................................. 11
3.1 General............................................................................................................................. 11
3.1.1 Communication settings ............................................................................................................................. 11
3.1.2 Request processing ..................................................................................................................................... 11
3.1.3 Time zones ................................................................................................................................................... 11
3.2 Structure of the Web API ................................................................................................ 11
3.2.1 Versioning .................................................................................................................................................... 13
4 Examples ..................................................................................................... 14
4.1 Login examples ............................................................................................................... 14
4.1.1 Cookie authentication example .................................................................................................................. 14
userCredentials ............................................................................................................................................ 14
String, authentication token ........................................................................................................................ 15
4.1.2 Basic authentication example..................................................................................................................... 15
Header example ........................................................................................................................................... 15
4.2 Create Event example..................................................................................................... 15
4.2.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo ......................................... 16
4.2.2 String, Entry Item GUID ................................................................................................................................ 16
4.3 Update Event example.................................................................................................... 17
4.3.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo ......................................... 17
4.3.2 String, Entry Item GUID ................................................................................................................................ 18
6 Appendix...................................................................................................... 77
6.1 Detailed information about Generic Report Fields........................................................ 77
6.1.1 Filter Combination ....................................................................................................................................... 77
6.1.2 Possible Filter:.............................................................................................................................................. 78
• Overview
• Target Audience of this document
• Authentication and Authorization
• Specific Web API user
• Login and Logout
• Session expiration
• Authorization
• Tenant change is not supported
• Shiftconnector® API Overview
• General
• Communication settings
• Request processing
• Time zones
• Structure of the Web API
• Versioning
• Examples
• Login examples
• Cookie authentication example
• userCredentials
• String, authentication token
• Basic authentication example
• Header example
• Create Event example
• Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo
• String, Entry Item GUID
• Update Event example
• Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo
• String, Entry Item GUID
• Advanced Event creation example
• Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo
• String, Entry Item GUID
• Create Task example
• Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemRequestVo
• String, Entry Item GUID
But this data is required by other systems within the organization as well, and an integration of the data into
other units within the enterprise is needed.
This integration will be achieved with the implementation of Web API to Shiftconnector®. Different
Shiftconnector® systems can deliver data through a defined set of endpoints and methods to read, update
and delete operations.
It is targeted to architects, system designers, and software developers who need to access data in
Shiftconnector®.
• Authentication
• End points
• Data operations
This Web API user must be created in Shiftconnector® by a user with administrator permissions.
To set up the Web API user, the following information must be set:
• Username
• Password
• Tenant
• Authentication Type: ServiceUser
• Special permission: BR_ShiftconnectorApi
When setting up the Web API user, it is necessary to define the tenant in the Default start settings. The
illustration below shows the setup of the default tenant.
After successful login, the Web API User is provided with a session-cookie and a token, both of which need to
be presented with every sub-sequent Web API call.
After the successful login, every sub-sequent call to the Web API that requires authentication restarts the
session timeout.
The Web API has a function to verify if the session is still valid. In case it has expired, the Web API User must
log in again for further requests.
A current session should be terminated if not needed by pressing the logout button.
2.3 Authorization
All API endpoints are secured by actions-permissions. When defining the Web API User, the administrator
must set up required permissions accordingly.
Access to different tenants is only possible by logout and new login as a different Web API User.
• Protocol: https.
• Mime media type: application/json.
• Default encoding: UTF-8.
• Http methods must be set correctly when performing the requests.
• Authentication takes place with cookie and token.
https://host.company.org/shiftconnector/moduleApi/ShiftconnectorApi/
The host name needs to be adapted to the actual host of the installation of Shiftconnector®.
Under this root, there are branches for the following items:
Authenti These methods establish and terminate a session for a Web API User.
cation/
V2
Asset/ Assets contain the business data of the application, containing EntryItems like Events, Task
V2 and Directives, but also Plant Status and Functional Locations.
Report/ General reporting methods, for example exports of EntryItems based on assigned export
V2 template, exports of lists, etc.
Configur Methods to request information concerning the configuration, for example about shiftbooks,
ation/V2 categories, etc.
Connecti This branch contains a number of endpoints to check if the Web API can be reached.
on/V2
Lock/V2 The lock method is used to check the lock status of an EntryItem.
DataFiel Data field mapping, used to map data between Shiftconnector® and external data providers
dMappin
g/V2
The full Web API documentation in the Open API Format is a part of the Shiftconnector® API
module and can be obtained from the eschbach support team.
This is also possible via the direct link in the swagger documentation.
• V1
• This version uses an old date time format with a custom prefix and a time zone of the current
logged in tenant.
• V2
• This version uses the ISO 8601 format for date times.
All date times sent to the API (Request) can be in any time zone as long as they follow the ISO
format.
All date times received from the API (Response) will be in the ISO format and UTC.
In the examples below, the operations take place in a defined category and shiftbook. For these two entities,
the GUIDs can be queried with the Configuration Web API requests.
The parameter of these requests is the tenant GUID which needs to be taken from the configuration of
Shiftconnector®.
For customer installations, these values are provided during the configuration phase of the shiftbooks and
the categories. If these values are not available, they can be requested at eschbach support.
For clarity, in the examples below, only the branch of the URL is shown. The full URL must be combined with
the root and the branch into one long URL, as illustrated by the following example of the login web method:
userCredentials
{
"Username": "User1",
"Password": "test"
}
4IJNBDIsgKk8yz7e1R8hvTmtNmGZVnS7anu55FwQxl8=
When the authentication was not successful, the http response code contains the error and the return value
is empty.
When the token is received, the token must be added to the header with the name X-XSRF-TOKEN and the
cookie must be added to the request.
This authentication method is only available for the specific Web API user, and it can only be used to connect
to the Web API. The service user can’t log in to the Shiftconnector® UI.
Header example
Basic VGVzdHVzZXI6MTIzNA==
For the creation of the event, the field EntryItemGuid is omitted. The EntryItemGuid is created by the system
and returned in the response.
The illustration below shows the event that will be created in Shiftconnector® when this example is
executed.
4.2.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemReque
stVo
{
"EntryItemType": "Event",
"ShiftbookGuid": "8141ffa6-df21-4950-97fc-c665a719cb87",
"CategoryGuid": "f2afe0d4-e9ca-4160-a843-394e303ffb29",
"StartDateTime": "2020-04-28T20:43:00+01:00",
"EndDateTime": "2020-12-16T11:43:00+01:00",
"AttachmentToUpload": [
{
"FileName": "Test_Text_File.txt",
"FileContent": "dGVzdHRleHQ="
}
],
"BusinessFieldValues": {
"Description": "API test import",
"Batch": "P000112",
"FuncLocs": [
"29749CF2-8BB8-4B07-9D33-A83F89649A5E"
],
"EventStatus": "highPriority"
}
}
a0ada7e3-700e-49bd-a025-248e4867ae2c
The return value of the creation provided the GUID is now used in the update request. The request will
change the information in the fields Description and Batch.
The illustration below shows the event in Shiftconnector® when the update request was called.
4.3.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemReque
stVo
{
"EntryItemGuid": "a0ada7e3-700e-49bd-a025-248e4867ae2c",
"EntryItemType": "Event",
"ShiftbookGuid": "8141ffa6-df21-4950-97fc-c665a719cb87 ",
"CategoryGuid": "f2afe0d4-e9ca-4160-a843-394e303ffb29",
"BusinessFieldValues": {
"Description": "Update. Batch changed.",
"Batch": "U0007",
}
}
a0ada7e3-700e-49bd-a025-248e4867ae2c
The fields are numbered to aid this example. Note that in field 9, TestTree, two items are selected. The data
source, for this example, allows the selection of up to three items.
In the JSON example, the FOOD_TestTree field contains the array of the two selected items.
4.4.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemReque
stVo
L Description
i
n
e
3 The GUID of the Shiftbook. This value can be retrieved by the configuration endpoint
“/Configuration/V2/Shiftbooks”
4 The GUID of the Category. This value can be retrieved by the configuration endpoint
“/Configuration/V2/Categories”
9 The attachments that will be uploaded and added to the attachment field. The attachments are
base64 encoded strings.
1 A date field
6
2 A checkbox field
4
2 A tree selection. The selected items are determined by the value. It must be ensured that the entries
5 in the value column are unique.
3 A text field
0
3 The functional location field. The values will be determined by the functional location GUID. It can be
2 retrieved by the functional location endpoint
“/Asset/V2/FunctionalLocations”
3 A decimal field (Separator must be the same as the one configured for the tenant)
5
3 An integer field
6
a0ada7e3-700e-49bd-a025-248e4867ae2c
N Description
u
m
be
r
Note: The Structure Item will be determined by the Shiftbook since a Shiftbook can only have one
structure item.
5 The attachments that will be uploaded and added to the attachment field. The attachments are
base64 encoded strings.
7 The functional location field. Values selected will be determined by the functional location GUID.
Can be retrieved by the functional location endpoint
“/Asset/V2/FunctionalLocations”
9 This is a tree selection. The selected items are determined by the value. It must be ensured that the
entries in the value column are unique.
4.5.1 Eschbach.Interface.Vos.EntryItem.V1.CreateOrUpdateEntryItemReque
stVo
{
"EntryItemType": "Task",
"ShiftbookGuid": "c47abaa3-9872-4183-9cdf-3634216164ee",
"CategoryGuid": "a4de43ac-abda-48a4-94a1-5b2ad183a023",
"DueDateTime": "2020-07-13T13:27:12.293Z",
"AttachmentLinks": [
"http://www.google.com"
],
"AttachmentToUpload": [
{
"FileName": "test.txt",
"FileContent": "dGVzdA=="
}
],
"BusinessFieldValues": {
"Description": "Test",
"FuncLocs": [
"9C976BC6-0897-4305-A02F-457BF23BA7B5"
],
"Batch": "1234",
"FOOD_TestTree": [
"Test1",
"Test2"
],
}
}
a0ada7e3-700e-49bd-a025-248e4867ae2c
In order to request an entry item from the Shiftconnector® API the entry item’s GUID must be available. This
GUID can be obtained in three different ways.
The first option is by creating and updating an entry item with Shiftconnector® API calls.
When an entry item is created through the Shiftconnector® API, the response of these requests returns the
GUID of the entry item. This procedure is already demonstrated in the Create Event and Update Event
examples above.
The third option is by retrieving the GUID from the web browser’s address bar.
When an entry item is displayed in Shiftconnector® in the browser, the GUID is part of the URL in the address
bar. The illustration below shows the GUID.
The business field values can be understood as the detail information of an entry item, while the entry item
itself serves as a container. It might be desired to read only the entry items without the detail information.
4.6.1 Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo
{
"$id": "1",
"$type": "Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo,
Eschbach.Interface.Vos",
"entryItemGuid": "a0ada7e3-700e-49bd-a025-248e4867ae2c",
"businessObjectTypeName": "Event",
"structureItemGuid": "d660ba4d-4d3e-4098-a8d9-0415bf02cb92",
"parentItemGuid": null,
"mandatorGuid": "76178954-2452-4ff5-b55b-e52e109383d1",
"mandatorShortName": "CHEMICAL",
"creationDateTime": "2022-02-21T09:41:08.677Z",
"creationUsername": "SUSER",
"description": "Update. Batch changed.",
"lastEditDateTime": "2022-02-21T09:41:08.677Z",
"lastEditUsername": "t",
"customBusinessObjectId": null,
"customBusinessObjectDescription": null,
"categoryGuid": "f2afe0d4-e9ca-4160-a843-394e303ffb29",
"shiftbookGuid": "8141ffa6-df21-4950-97fc-c665a719cb87",
"eventPriorityGuid": "87eeb3b7-4a82-425b-87ea-d7cf2595ab75",
"statusId": "done",
"startDateTime": "2022-02-21T09:41:08.677Z",
"endDateTime": "2022-02-21T09:41:08.677Z",
The example filters events in a shiftbook, category and with an identified status.
More detailed information you can find in the Appendix in chapter Detailed information about
Generic Report Fields at the end of this document.
Set this parameter returnItemsFromCurrentTenant to "false", to get details from all tenants and not
only from the current logged in one.
To keep the example simple, the field LoadBusinessFieldValues is set to false. In a live environment, most
likely the query will have these field set to true to obtain the detail information of the entry items.
The illustration below shows two events in Shiftconnector®. The query in this example produces these two
events in the result set.
{
"GenericReportFilter": [
{
"GenericReportFieldName": "CategoryGuid",
"GenericReportFieldFilterValue": "f2afe0d4-e9ca-4160-a843-394e303ffb29",
"GenericReportFieldFilterOperator": "IsEqualTo"
},
{
"GenericReportFieldName": "ShiftbookGuid",
"GenericReportFieldFilterValue": "8141ffa6-df21-4950-97fc-c665a719cb87",
"GenericReportFieldFilterOperator": "IsEqualTo"
},
{
"GenericReportFieldName": "Event.Status",
"GenericReportFieldFilterValue": "87eeb3b7-4a82-425b-87ea-d7cf2595ab75",
"GenericReportFieldFilterOperator": "IsEqualTo"
}
],
"EntryItemType": "Event",
"LoadBusinessFieldValues": false
}
[
{
"$id": "1",
"$type": "Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo,
Eschbach.Interface.Vos",
"entryItemGuid": "012d5c6f-80f3-4de2-a802-034a91e18c54",
"businessObjectTypeName": "Event",
"structureItemGuid": "d660ba4d-4d3e-4098-a8d9-0415bf02cb92",
"parentItemGuid": null,
"mandatorGuid": "76178954-2452-4ff5-b55b-e52e109383d1",
"mandatorShortName": "CHEMICAL",
"creationDateTime": "2020-04-28T09:19:44.153Z",
"creationUsername": "SUSER",
"description": "API test import2",
"lastEditDateTime": "2020-04-28T10:41:40.9Z",
"lastEditUsername": "t",
"customBusinessObjectId": null,
"customBusinessObjectDescription": null,
"categoryGuid": "f2afe0d4-e9ca-4160-a843-394e303ffb29",
"shiftbookGuid": "8141ffa6-df21-4950-97fc-c665a719cb87",
"eventPriorityGuid": "87eeb3b7-4a82-425b-87ea-d7cf2595ab75",
"statusId": "done",
"startDateTime": "2020-04-28T20:43:00Z",
"endDateTime": "2020-12-16T11:43:00Z",
"doneDateTime": null,
"dueDateTime": null,
"version": 2,
"formTemplateName": "",
"businessFieldValues": []
},
{
"$id": "2",
"$type": "Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo,
Eschbach.Interface.Vos",
"entryItemGuid": "a0ada7e3-700e-49bd-a025-248e4867ae2c",
"businessObjectTypeName": "Event",
"structureItemGuid": "d660ba4d-4d3e-4098-a8d9-0415bf02cb92",
"parentItemGuid": null,
"mandatorGuid": "76178954-2452-4ff5-b55b-e52e109383d1",
"mandatorShortName": "CHEMICAL",
"creationDateTime": "2020-04-28T09:22:54.94Z",
"creationUsername": "SUSER",
"description": "Update. Batch changed.",
"lastEditDateTime": "2020-04-28T09:31:24.34Z",
"lastEditUsername": "t",
"customBusinessObjectId": null,
"customBusinessObjectDescription": null,
{
"GenericReportFilter": [
{
"GenericReportFieldName": "Task.Status",
"GenericReportFieldFilterValue": "deleted",
"GenericReportFieldFilterOperator": "IsNotEqualTo"
},
{
"GenericReportFieldName": "EntryItemAssignedWorkcenterGuid",
"GenericReportFieldFilterValue": "d42388b2-2cbe-49a4-bc4a-769f3829082b",
"GenericReportFieldFilterOperator": "IsEqualTo"
},
{
"GenericReportFieldName": "Task.DueDate",
"GenericReportFieldFilterValue": "2020-07-20T09:31:00Z",
"GenericReportFieldFilterOperator": "IsLessThan"
},
{
"GenericReportFieldName": "CreatedDateTime",
"GenericReportFieldFilterValue": "2020-07-14T07:25:00Z",
"GenericReportFieldFilterOperator": "IsGreaterThan"
},
],
"EntryItemType": "Task",
"LoadBusinessFieldValues": true
}
The case 81751 is a recurring task and must be completed by all users. In the response, this is visible in the
id 11 (in the example below "$id": "11") the field personalTaskType “all” indicates that all users must
complete the task.
Two assigned users are provided as ids 13 and 14 (in the example below, "$id": "13" and "$id": "14"). The
status of the completeness per user is available in the fields isPersonTaskDone.
The case 81749 is an individual task. One of the users must complete the task only. The relevant task is
returned as id 33, and the field personalTaskType “one” indicates the type of task.
In this example, also two users are assigned to the task, with the ids 34 and 35 (in the example below "$id":
"34" and "$id": "35").
[
{
"$id": "1",
"$type": "Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo,
Eschbach.Interface.Vos",
"entryItemGuid": "a80bfcb7-8956-4033-a5da-da39f5ffe8f8",
"caseId": "81751",
"deepLink": "https://Shiftconnector/Start.aspx#/NavItem/d42388b2-2cbe-49a4-
bc4a-769f3829082b/Tab/Task/EntryItem/a80bfcb7-8956-4033-a5da-da39f5ffe8f8",
"businessObjectTypeName": "Task",
"structureItemGuid": "d42388b2-2cbe-49a4-bc4a-769f3829082b",
"parentItemGuid": "fe062232-6212-45e8-9850-3b8d43bd0b8b",
"mandatorGuid": "411f0e95-1dd0-4eea-8964-fb590a4c3e43",
"mandatorShortName": "FOOD",
"creationDateTime": "2020-07-14T09:25:52.537Z",
"creationUsername": "SUSER",
"description": "Test recurrent task.\nMust be done by all user",
"lastEditDateTime": "2020-07-14T09:25:52.537Z",
"lastEditUsername": "SUSER",
"customBusinessObjectId": null,
"customBusinessObjectDescription": null,
"categoryGuid": "a4de43ac-abda-48a4-94a1-5b2ad183a023",
"shiftbookGuid": "c47abaa3-9872-4183-9cdf-3634216164ee",
"eventPriorityGuid": null,
"statusId": "open",
"startDateTime": null,
"endDateTime": null,
"doneDateTime": null,
"lastCompletedDateTime": null,
"dueDateTime": "2020-07-14T00:00:00Z",
"version": 1,
"formTemplateName": "Test",
"businessFieldValues": [
{
"$id": "2",
To use this endpoint, the list definition must be for a structure item, and the definition must be unique. In
detail:
The illustration shows the list template definition and the relevant conditions to be fulfilled:
The illustrations below show how the listTemplateName and the structureItemGuid can be retrieved and
used in the endpoint.
The response with the relevant fields is shown in the illustration below:
Number Description
4.9.1 Eschbach.Interface.Vos.EntryItem.V1.EntryItemDetailVo
{
"metaDataTable": [
{
"tenantExportUTC": "UTC+01:00",
"tenantExportTimeZone": "Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",
"tenantExportUTC_TimeZone": "(UTC+01:00) Amsterdam, Berlin, Bern, Rome,
Stockholm, Vienna",
"tenantExportCreationDateTime": "Do, 16.07.2020 14:25",
"mandatorLongName": "Food",
"mandatorShortName": "FOOD",
"mandatorLanguageCode": "DE",
"mandatorLanguageName": "DE",
"listDefinitionName": "All Tasks",
"listDefinitionTypeName": "Task",
"listDefinitionTypeTranslation": "Task",
"structureItemName": "Test"
Parameters:
tenan string, the name of the tenant where the functional location should be imported to
tShor
tNam
e
impo Boolean. This parameter controls the behaviour if the value of field Active is set to false:
rtIna If the value of importInactiveAsReadOnly is set true, the functional location is imported as Read
ctive
Only (status = 2).
AsRe
If the value of importInactiveAsReadOnly is set false, the functional location is imported as
adOn
ly Inactive (status = 3).
The table below shows a description of the fields of the functional location.
Nu Description
mb
er
1 Definition of the unique identifier of this functional location. This value will be imported as
CustomId in the Shiftconnector® functional location.
2 Definition of the name of this functional location. This value will be imported as Code in the
Shiftconnector® functional location.
3 Definition of the unique identifier of the parent functional location. The imported value must be an
existing CustomId of an imported functional location.
4 Description
{
"Identifier": "IF010000233",
"Name": "ABC"
"Parent": null,
"Description": "Test Root"
"Active": true
},
{
"Identifier": "IF010000234",
"Name": "ABC-DEF"
"Parent": "IF010000233",
"Description": "Test child"
"Active": true
}
200 N/A
{
"EntryItemType": "Event",
"categoryGuid":
"d9c538c6-27e6-4f35-8a61-60a548dedd98",
"shiftbookGuid":
"3b37b02c-356a-40c1-8491-830c44d22abc",
"StartDateTime":
"2020-02-01T01:02:11.565Z",
"DateBusinessFields": {
"EventStartDateTime": {
"StatusId": "open"
}
},
"BusinessFieldValues": {
"Description": "Created in API"
}
}
{
"EntryItemType": "Event",
"categoryGuid":
"d9c538c6-27e6-4f35-8a61-60a548dedd98",
"shiftbookGuid":
"3b37b02c-356a-40c1-8491-830c44d22abc",
"DateBusinessFields": {
"EventStartDateTime": {
"StartDateTime":
"2020-02-01T01:02:11.565Z",
"StatusId": "open"
}
},
"BusinessFieldValues": {
"Description": "Created in API"
}
}
To update or create a Workflow Record, the transition GUID must be set in the request.
4.12.1 Update
The available transitions for updating Records can be received by using this endpoint:
This feature requires additional configuration on Shiftconnector® side and cannot be used out of the box like
the standard endpoints.
(It may also require additional configuration / development on customer side)
For a SAP specific documentation, request the “Technical Manual: Shiftconnector® Interface for SAP PM/
EAM” from the eschbach support.
• External systems can import events, tasks and directives into Shiftconnector®, and the external
system is the leading system: Shiftconnector® doesn’t allow updates to the records through its user
interface. Updates may only be transmitted by the external system.
• Shiftconnector® can be the originator of events which subsequently are transmitted to the external
system.
However, once the external system persisted the events, Shiftconnector® prohibits further updates to
the events through its user interface.
The external system becomes the leading system, and updates to the event must be triggered through
the external system.
• The endpoints allow the mapping of data fields between the leading system and Shiftconnector®.
• The external system can trigger the data import into Shiftconnector® at any time.
• Shiftconnector® will push the created records to the external system in an interval that can be
configured.
The Shiftconnector® API allows the configuration of the data that is exchanged between the external system
and Shiftconnector®.
Da Description
ta
fiel
d
Ty The Type which is linked to a shiftbook and category within Shiftconnector®. It is not possible to
pe import the same Type to other shiftbooks within the same tenant of Shiftconnector®.
Ext The external identifier is required to match the event in the leading system and in Shiftconnector®.
ern This external identifier is provided by the external system and is a mandatory field with any update
al operation on the event.
Nu
This field is empty when Shiftconnector® is sending a new event to the external system, but on
mb
response, the delivered ExternalNumber is persisted in Shiftconnector®.
er
Additional fields
The Shiftconnector® API allows the configuration of any number of additional fields. It can also be defined if
the fields are mandatory or not.
Tex The length of the text can be configured through the Shiftconnector® field administration
t
fiel
d
Dat Date time information must be in UTC or in the tenant time zone (configurable). Format "yyyy-MM-
e ddTHH:mm:ssZ"
fiel
d
Nu Integer values
mb
er
Dec The decimal separator must match the separator that is configured for the tenant
ima
l
Dro Selected drop down values. It is also possible to use hierarchic drop down values.
p
do
wn
Fun The functional location is selected by the external identifier. This identifier is imported with the
ctio import of functional locations as shown in chapter Import of functional locations from an external
nal format.
loc
atio
n
Att Attachments can be imported as base64 encoded strings. This interface only allows the import of
ach new attachments, Updates or deletions are not supported by this Web API at this time.
me
nt
PUT Events? Data set (JSON; below, the illustration shows an example
tenantShortName=<tenant short based on an actual SAP configuration)
name>&type=<type>
[
{
"NotificationNumber": "010000234",
"NotificationSystemStatus": "I0123",
"NotificationUserStatus": "E0006",
"NotificationDescription": "Test notif",
"FunctionalLocation": "IF010000233",
"ReportedBy": "SAP user",
"NotificationDate": "2020-02-17T06:05:53Z",
"RequiredStart": "2020-02-17T06:05:53.548Z",
"Priority": "1",
"DamageCodeGroup": "Test",
"DamageCode": "Test-1"
},
{
"NotificationNumber": "010000235",
"NotificationSystemStatus": "I0123",
"NotificationUserStatus": "E0006",
"NotificationDescription": "Test notif2",
"FunctionalLocation": "IF010000233",
"ReportedBy": "SAP user",
"NotificationDate": "2020-02-17T06:05:53Z",
"RequiredStart": "2020-02-17T06:05:53Z",
"Priority": "1",
"DamageCodeGroup": "Test",
200 Eschbach.Interface.Vos.EntryItem.V1.DataFieldMappingEventsResponseVo
(JSON)
5.2.2 Eschbach.Interface.Vos.EntryItem.V1.DataFieldMappingEventsRespo
nseVo
{
"eventsCreated": 1,
"createdEventIds": [
{
The illustration below shows how the field GenericName1 in the source is mapped to the field Description in
Shiftconnector®. The value, in the illustration the word “Test”, appears in the description field of the event in
Shiftconnector®.
The external system must provide an endpoint which allows the Service to push new events to it.
Following example shows a request that this service would do with a SAP based configuration
(The request Body can be configured and also the response fields can be configured by using JSON path)
{
"NotificationType": "Z1",
"ReportedBy": "SC User",
"FunctionalLocation": "IF010000233",
Success response expected by the Service (With HTTP status code 2xx )
{
"NotificationNumber": "000010014232",
"NotificationSystemStatus": [
"I0123"
],
"NotificationUserStatus": [
"E0001",
"E0008",
"E0009",
"E0011"
],
"PlannedStart": "2020-11-04T02:39:00Z",
"PlannedEnd": "2020-11-08T02:39:00Z"
}
Failure response expected by the Service (With HTTP status code 4xx/5xx )
{
"Message": "Critical error. Creation was not successful!"
}
This configuration contains the basic information needed for import and export.
I Description
D
1 The type name that is needed as URL parameter when calling the API endpoint.
(It should be the SAP Notification type for SAP Use Cases)
2 The JSON Path that leads to the property that identifies each record.
(Simplified, a JSON Path is "$." and then the JSON property name)
3 The JSON Path that leads to the property that identifies the parent record where a new record should
be attached to.
4 The custom prefix which can be used when there are multiple identical identifiers within the same
tenant for different types.
7 The number of synchronization attempts for records created in Shiftconnector which could not be
sent.
1 If checked, created record in the configured Shiftbook and Category will be sent to the configured
2 URL.
1 The export template that will be filled with data from the record.
4
This template must be a JSON but the value of the property must be a special placeholder which is
then replaced with data from the record.
"2020-02-17T06:05:53Z" (
null if nothing is available)
true
1 The synchronization interval for the windows service which exports the new records.
5
1 The CRON string when using a CRON based synchronization. (Field "15" must be empty when using
6 this configuration)
I Description
D
1 Each field mapping is mapped to a type which was created on the type mappings administration
screen.
2 Select the Shiftconnector field which must also exist on the form that is mapped to the configured
category.
3 The JSON Path that leads to the property which should be filled in the Shiftconnector field.
This configuration is optional when using the feedback configuration (See "13")
4 The JSON Path that leads to the property of the parent data source option.
This configuration is only valid for TreeSelect fields and is only needed when the data source
option ID is not unique within the data source.
5 The JSON Path that leads to the property that will be added as postfix to the value found by "3"
This can be used to combine dates that are separated. For example SAP could send date and time in
two fields and then these two fields must be combined.
6 The date time format that should be used when a date field is selected.
If empty, the date time format of the type mapping will be used.
7 The time zone that should be used when a date field is selected.
If not selected, the timezone from the tenant or UTC will be used (Depending of the configuration
done in the typemapping)
8 The delimiter that should be used when a list field is selected and the value found by the path is a
single string value.
This configuration would translate then a string like "TEST1 TEST2" to [ "TEST1", "TEST2" ] when a
space is configured as delimiter.
9 The JSON Path that leads to the property that should be used in addition to the value found by "3".
Currently this configuration can be used to find a date time that should be used as end date time in a
Event or Directive date time range field.
1 If checked, an error will occur if there is no value found for the configured path.
0
Creation / update is not possible if a mandatory field is empty.
1 This option must be checked when the configured field must be filled with data sent to
1 Shiftconnector.
1 This option must be checked when the configured field must be filled with data received (From the
2 request response) after a successful export.
1 This option must be checked when the configured field should be used as feedback field.
3
A feedback field will not be filled with data from a JSON but with error and feedback messages to let
the user know what went wrong.
1 If the EventStartDateTime field is selected, this checkbox determines if the Events created should
4 have an open end.
Generic report fields are fields that can be used to filter the Shiftconnector objects returned by the
GenericReport endpoint. It is possible to create custom fields for specific use cases.
Generic report fields can be combined in the GenericReportFilter property , but it is only possible to add a
field once.
The endpoint will only return entries that are linked to the current logged in tenant.
As described in the Open API documentation following filter operator are possible:
{
"GenericReportFilter": [
{
"GenericReportFieldName": "AttachmentAvailable",
"GenericReportFieldFilterValue": true,
"GenericReportFieldFilterOperator": "IsEqualTo"
},
{
"GenericReportFieldName": "CaseNumber",
"GenericReportFieldFilterValue": 86555,
"GenericReportFieldFilterOperator": "IsGreaterThan"
}
],
"EntryItemType": "Event",
"LoadBusinessFieldValues": false
}
Accepts a Boolean {
value. "GenericReportFilter": [
{
"GenericReportFieldName":
"Event.IsRunning",
"GenericReportFieldFilterValue": true,
"GenericReportFieldFilterOperator":
"IsEqualTo"
}
],
"EntryItemType": "Event",
"LoadBusinessFieldValues": false
}
Accepts a Boolean {
value. "GenericReportFilter": [
{
"GenericReportFieldName":
"HasChildren",
"GenericReportFieldFilterValue": true,
"GenericReportFieldFilterOperator":
"IsEqualTo"
}
],
"EntryItemType": "Event",
"LoadBusinessFieldValues": false
}