{ "$schema" : "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json", "name" : "SAP OData Connector", "id" : "SAP_ODATA_CONNECTOR", "description" : "This connector allows you to interact with an SAP System via OData v2 + v4", "metadata" : { "keywords" : [ ] }, "documentationRef" : "https://docs.camunda.io/docs/components/camunda-integrations/sap", "version" : 2, "category" : { "id" : "connectors", "name" : "Connectors" }, "appliesTo" : [ "bpmn:Task" ], "elementType" : { "value" : "bpmn:ServiceTask" }, "groups" : [ { "id" : "sap", "label" : "SAP" }, { "id" : "batch", "label" : "Batch Request" }, { "id" : "advanced", "label" : "Advanced" }, { "id" : "output", "label" : "Output mapping" }, { "id" : "error", "label" : "Error handling" }, { "id" : "retries", "label" : "Retries" } ], "properties" : [ { "value" : "io.camunda:sap-odata:2", "binding" : { "property" : "type", "type" : "zeebe:taskDefinition" }, "type" : "Hidden" }, { "id" : "destination", "label" : "BTP destination name", "description" : "BTP destination pointing to the SAP System to connect to (e.g. a4h)", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "optional", "group" : "sap", "binding" : { "name" : "destination", "type" : "zeebe:input" }, "type" : "String" }, { "id" : "oDataService", "label" : "OData base service path", "description" : "absolute base path, e.g. /sap/opu/odata/dmo/case", "optional" : false, "constraints" : { "notEmpty" : true, "pattern" : { "value" : "^([/=]).*", "message" : "oDataService must start with a '/'" } }, "feel" : "optional", "group" : "sap", "binding" : { "name" : "oDataService", "type" : "zeebe:input" }, "type" : "String" }, { "id" : "requestDetails.requestType", "label" : "Request type", "value" : "simpleReq", "group" : "sap", "binding" : { "name" : "requestDetails.requestType", "type" : "zeebe:input" }, "type" : "Dropdown", "choices" : [ { "name" : "Batch Request", "value" : "batchReq" }, { "name" : "OData Request", "value" : "simpleReq" } ] }, { "id" : "requestDetails.entityOrEntitySet", "label" : "OData Entity/-Set", "description" : "query target (e.g. bike(12) ), can also contain navigation properties\n( e.g. bike('12')/toWheels/toBolts )", "optional" : false, "constraints" : { "notEmpty" : true, "pattern" : { "value" : "^[^/].*$", "message" : "entityOrEntitySet must not start with a '/'" } }, "feel" : "optional", "group" : "sap", "binding" : { "name" : "requestDetails.entityOrEntitySet", "type" : "zeebe:input" }, "condition" : { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" }, "type" : "String" }, { "id" : "requestDetails.httpMethod.httpMethod", "label" : "HTTP method", "description" : "read, write, update or delete operation", "value" : "get", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.httpMethod", "type" : "zeebe:input" }, "condition" : { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" }, "type" : "Dropdown", "choices" : [ { "name" : "GET", "value" : "get" }, { "name" : "POST", "value" : "post" }, { "name" : "PUT", "value" : "put" }, { "name" : "PATCH", "value" : "patch" }, { "name" : "DELETE", "value" : "delete" } ] }, { "id" : "requestDetails.httpMethod.oDataVersionGet.oDataVersionGet", "label" : "OData version", "description" : "what version of the OData protocol the above service uses", "value" : "V2", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionGet.oDataVersionGet", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.httpMethod.oDataVersionPost", "label" : "OData version", "description" : "what version of the OData protocol the above service uses", "optional" : false, "value" : "V2", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionPost", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "post", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.httpMethod.oDataVersionPut", "label" : "OData version", "description" : "what version of the OData protocol the above service uses", "optional" : false, "value" : "V2", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionPut", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "put", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.httpMethod.oDataVersionPatch", "label" : "OData version", "description" : "what version of the OData protocol the above service uses", "optional" : false, "value" : "V2", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionPatch", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "patch", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.httpMethod.oDataVersionDelete", "label" : "OData version", "description" : "what version of the OData protocol the above service uses", "optional" : false, "value" : "V2", "group" : "sap", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionDelete", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "delete", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.payload", "label" : "Request body", "description" : "Payload to send with the request", "optional" : true, "value" : "={}", "feel" : "optional", "group" : "sap", "binding" : { "name" : "requestDetails.payload", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "oneOf" : [ "post", "put", "patch" ], "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.oDataVersion", "label" : "OData Version", "description" : "OData version to use for the batch request", "optional" : false, "value" : "V2", "group" : "batch", "binding" : { "name" : "requestDetails.oDataVersion", "type" : "zeebe:input" }, "condition" : { "property" : "requestDetails.requestType", "equals" : "batchReq", "type" : "simple" }, "type" : "Dropdown", "choices" : [ { "name" : "V2", "value" : "V2" }, { "name" : "V4", "value" : "V4" } ] }, { "id" : "requestDetails.batchRequestPayload", "label" : "Batch Request Payload", "description" : "Provide the payload for the batch request", "optional" : false, "constraints" : { "notEmpty" : true }, "feel" : "required", "group" : "batch", "binding" : { "name" : "requestDetails.batchRequestPayload", "type" : "zeebe:input" }, "condition" : { "property" : "requestDetails.requestType", "equals" : "batchReq", "type" : "simple" }, "type" : "Text" }, { "id" : "requestDetails.httpMethod.filter", "label" : "$filter", "description" : "$filter on EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.filter", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.top", "label" : "$top", "description" : "only the first $top results of an EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.top", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.skip", "label" : "$skip", "description" : "skip the first $skip results of an EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.skip", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.orderby", "label" : "$orderby", "description" : "order the EntitySet by one or more properties", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.orderby", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.expand", "label" : "$expand", "description" : "expand an Entity/-Set by another Entity/-Set", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.expand", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.select", "label" : "$select", "description" : "only select $select properties of an Entity/-Set", "optional" : true, "constraints" : { "notEmpty" : false, "pattern" : { "value" : "^\\S*$", "message" : "must not contain any whitespace!" } }, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.select", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.oDataVersionGet.inlinecount", "label" : "$inlinecount", "description" : "$inlinecount result in EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionGet.inlinecount", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.oDataVersionGet.oDataVersionGet", "equals" : "V2", "type" : "simple" }, { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Boolean" }, { "id" : "requestDetails.httpMethod.oDataVersionGet.search", "label" : "$search", "description" : "search for $search in EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionGet.search", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.oDataVersionGet.oDataVersionGet", "equals" : "V4", "type" : "simple" }, { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "String" }, { "id" : "requestDetails.httpMethod.oDataVersionGet.count", "label" : "$count", "description" : "$count of EntitySet", "optional" : true, "feel" : "optional", "group" : "advanced", "binding" : { "name" : "requestDetails.httpMethod.oDataVersionGet.count", "type" : "zeebe:input" }, "condition" : { "allMatch" : [ { "property" : "requestDetails.httpMethod.oDataVersionGet.oDataVersionGet", "equals" : "V4", "type" : "simple" }, { "property" : "requestDetails.httpMethod.httpMethod", "equals" : "get", "type" : "simple" }, { "property" : "requestDetails.requestType", "equals" : "simpleReq", "type" : "simple" } ] }, "type" : "Boolean" }, { "id" : "resultVariable", "label" : "Result variable", "description" : "Name of variable to store the response in", "group" : "output", "binding" : { "key" : "resultVariable", "type" : "zeebe:taskHeader" }, "type" : "String" }, { "id" : "resultExpression", "label" : "Result expression", "description" : "Expression to map the response into process variables", "feel" : "required", "group" : "output", "binding" : { "key" : "resultExpression", "type" : "zeebe:taskHeader" }, "type" : "Text" }, { "id" : "errorExpression", "label" : "Error expression", "description" : "Expression to handle errors. Details in the documentation.", "feel" : "required", "group" : "error", "binding" : { "key" : "errorExpression", "type" : "zeebe:taskHeader" }, "type" : "Text" }, { "id" : "retryCount", "label" : "Retries", "description" : "Number of retries", "value" : "3", "feel" : "optional", "group" : "retries", "binding" : { "property" : "retries", "type" : "zeebe:taskDefinition" }, "type" : "String" }, { "id" : "retryBackoff", "label" : "Retry backoff", "description" : "ISO-8601 duration to wait between retries", "value" : "PT0S", "group" : "retries", "binding" : { "key" : "retryBackoff", "type" : "zeebe:taskHeader" }, "type" : "String" } ], "icon" : { "contents" : "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEzIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMyA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHg9IjEuMjM0MzgiIHk9IjIiIHdpZHRoPSIxNDQiIGhlaWdodD0iNDAiIGZpbGw9IiNGRjhDMDAiLz4KPHJlY3QgeD0iMS4yMzQzOCIgeT0iNzgiIHdpZHRoPSIxNDQiIGhlaWdodD0iNDAiIGZpbGw9IiNGRjhDMDAiLz4KPHJlY3QgeD0iMS4yMzQzOCIgeT0iMTU0IiB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjQwIiBmaWxsPSIjRkY4QzAwIi8+CjxyZWN0IHg9IjE3Ny4yMzQiIHk9IjIiIHdpZHRoPSIxNDQiIGhlaWdodD0iNDAiIGZpbGw9IiNGRjhDMDAiLz4KPHJlY3QgeD0iMTc3LjIzNCIgeT0iNzgiIHdpZHRoPSIxNDQiIGhlaWdodD0iNDAiIGZpbGw9IiNGRjhDMDAiLz4KPHJlY3QgeD0iMTc3LjIzNCIgeT0iMTU0IiB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjQwIiBmaWxsPSIjRkY4QzAwIi8+CjxyZWN0IHg9IjE3Ny4yMzQiIHk9IjIzMCIgd2lkdGg9IjE0NCIgaGVpZ2h0PSI0MCIgZmlsbD0iI0ZGOEMwMCIvPgo8Y2lyY2xlIGN4PSI3My45NTI2IiBjeT0iMjg4IiByPSI2NSIgZmlsbD0iI0ZGOEMwMCIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfOThfNDQ3KSI+CjxwYXRoIGQ9Ik01MTIgMzIwSDE3OVY0ODVIMzQ3LjMzIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfOThfNDQ3KSIvPgo8cGF0aCBkPSJNMzQzLjY3IDM1M1Y0MzAuNzMzTDMxNS4xMjcgMzUzSDI4Ni41ODVMMjYyLjQzMyA0MTcuNTMzQzI1OS41MDUgNDAxLjQgMjQyLjY3MiAzOTUuNTMzIDIyOS40OTkgMzkxLjEzM0MyMjAuNzE2IDM4OC4yIDIxMS4yMDIgMzg0LjUzMyAyMTEuMjAyIDM3OS40QzIxMS4yMDIgMzc1LjczMyAyMTYuMzI1IDM3Mi4wNjcgMjI1LjgzOSAzNzIuOEMyMzIuNDI2IDM3My41MzMgMjM4LjI4MSAzNzMuNTMzIDI0OS45OTEgMzc5LjRMMjYxLjcwMSAzNTkuNkMyNTAuNzIzIDM1My43MzMgMjM2LjA4NiAzNTAuOCAyMjQuMzc2IDM1MC44QzIxMC40NyAzNTAuOCAxOTguNzYgMzU1LjIgMTkxLjQ0MiAzNjIuNTMzQzE4Ni4zMTkgMzY3LjY2NyAxODQuMTIzIDM3NC4yNjcgMTgzLjM5MSAzODEuNkMxODMuMzkxIDM5MS44NjcgMTg3LjA1IDM5OS4yIDE5NS4xMDEgNDA1LjA2N0MyMDEuNjg4IDQwOS40NjcgMjA5LjczOCA0MTIuNCAyMTcuMDU3IDQxNC42QzIyNi41NzEgNDE3LjUzMyAyMzMuODkgNDIwLjQ2NyAyMzMuODkgNDI1LjZDMjMzLjE1OCA0MzIuMiAyMjUuODM5IDQzMy42NjcgMjIwLjcxNiA0MzMuNjY3QzIxMS45MzQgNDM0LjQgMjA0LjYxNSA0MzIuOTMzIDE5My42MzcgNDI2LjMzM0wxODMuMzkxIDQ0Ni4xMzNDMTk0LjM2OSA0NTIuNzMzIDIwNi4wNzkgNDU1LjY2NyAyMTkuOTg1IDQ1NS42NjdDMjI5LjQ5OSA0NTUuNjY3IDI0NC4xMzYgNDUyLjczMyAyNTIuMTg3IDQ0NS40TDI1MC43MjMgNDUySDI3OC41MzRMMjgzLjY1NyA0MzkuNTMzQzI5NC42MzUgNDQyLjQ2NyAzMDcuMDc3IDQ0My4yIDMxOC4wNTUgNDM5LjUzM0wzMjEuNzE0IDQ1MkgzNzEuNDgxVjQyMi42NjdIMzgxLjcyN0M0MDcuMzQzIDQyMi42NjcgNDIyLjcxMiA0MTAuMiA0MjIuNzEyIDM4OC4yQzQyMi43MTIgMzYzLjI2NyA0MDguMDc1IDM1MyAzNzYuNjA0IDM1M0gzNDMuNjdaTTI5MC4yNDQgNDE3LjUzM0wzMDAuNDkgMzg0LjUzM0gzMDEuMjIyTDMxMS40NjggNDE3LjUzM0MzMDQuMTQ5IDQxOS43MzMgMjk2LjgzMSA0MTkuNzMzIDI5MC4yNDQgNDE3LjUzM1pNMzcxLjQ4MSA0MDAuNjY3VjM3NC4yNjdIMzc4LjhDMzg4LjMxNCAzNzQuMjY3IDM5NS42MzMgMzc3LjIgMzk1LjYzMyAzODYuNzMzQzM5NS42MzMgMzk3IDM4OC4zMTQgNDAwLjY2NyAzNzguOCA0MDAuNjY3SDM3MS40ODFaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfOThfNDQ3IiB4MT0iMTc5IiB5MT0iMzIwIiB4Mj0iMTc5IiB5Mj0iNDg1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMwMEFBRUUiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA1NUFBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxjbGlwUGF0aCBpZD0iY2xpcDBfOThfNDQ3Ij4KPHJlY3Qgd2lkdGg9IjMzMyIgaGVpZ2h0PSIxNjUiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNzkgMzIwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=" } }