{"componentChunkName":"component---src-templates-simple-markdown-js","path":"/cpm/developer/services/graphic/","matchPath":"","result":{"data":{"markdownRemark":{"html":"<h1 style=\"position:relative;\"><a href=\"#graphic\" aria-label=\"graphic permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"graphic\"></div>Graphic</h1>\n<ul>\n<li>\nThe \n<em>Symbio-Graphic-Service</em>\n combines a layouter and a renderer for the generation of BPMN and process flow graphics.\n</li>\n<li>\nThe \n<em>Symbio-Graphic-Service</em>\n is intended to be callable from \n<em>Symbio.Manager</em>\n as well as from any other application, that supports HTTP requests.\n</li>\n<li>\nIn order to support a wide range of requestors, the \n<em>Symbio-Graphic-Service</em>\n is designed to be as open as possible.\n</li>\n<li>\nThe \n<em>Symbio-Graphic-Service</em>\n expects the data to layout (and render) as a JSON (a.k.a. \n<strong>Request JSON</strong>\n, prowided through the HTTP request body) and the functionality of the \n<em>Symbio-Graphic-Service</em>\n can be controlled by the \n<code class=\"language-text\">configurations</code>\n section at the top of the \n<strong>Request JSON</strong>\n (see chapter \"The \n<strong>Request JSON</strong>\n\" below).\n</li>\n</ul>\n<h2 style=\"position:relative;\"><a href=\"#table-of-contents\" aria-label=\"table of contents permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"table-of-contents\"></div>Table of contents</h2>\n<ul>\n<li>\n<a href=\"#endpoints\">Endpoints</a>\n<ul>\n<li>\n<a href=\"#checkconnection\">Check the HTTP connection</a>\n</li>\n<li>\n<a href=\"#calculatelayout\">Calculate a layout</a>\n</li>\n</ul>\n</li>\n<li>\n<a href=\"#requestJSON\">The <strong>Request JSON</strong></a>\n</li>\n<li>\n<a href=\"#result\">The result</a>\n<ul>\n<li>\n<a href=\"#resultConnection\">The resulting connection path</a>\n</li>\n<li>\n<a href=\"#resultGraph\">The result graph</a>\n</li>\n</ul>\n</li>\n<li>\n<a href=\"#bpmnCallActivity\">BPMN sub-process and call activity</a>\n</li>\n<li>\n<a href=\"#bpnmTasks\">BPMN tasks</a>\n</li>\n<li>\n<a href=\"#bpnmEvents\">BPMN events</a>\n</li>\n<li>\n<a href=\"#bpnmGateways\">BPMN gateways</a>\n</li>\n<li>\n<a href=\"#bpnmPoolsAndLanes\">BPMN pools and lanes</a>\n</li>\n</ul>\n<h2 style=\"position:relative;\"><a href=\"#a-nameendpointsendpointsa\" aria-label=\"a nameendpointsendpointsa permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-nameendpointsendpointsa\"></div><a name=\"endpoints\">Endpoints</a></h2>\n<p>Currently the <em>Symbio-Graphic-Service</em> provides two endpoints:</p>\n<ol>\n<li>\n<strong>GET</strong>\n or \n<strong>POST</strong>\n on \n<strong>CheckConnection</strong>\n with one parameter \n<strong>name</strong>\n or with a simple request JSON.\n</li>\n<li>\n<strong>POST</strong>\n on \n<strong>CalculateLayout</strong>\n with a request JSON (see chapter \n<strong>The request JSON</strong>\n below).\n</li>\n</ol>\n<h3 style=\"position:relative;\"><a href=\"#a-namecheckconnectioncheck-the-http-connectiona\" aria-label=\"a namecheckconnectioncheck the http connectiona permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namecheckconnectioncheck-the-http-connectiona\"></div><a name=\"checkconnection\">Check the HTTP connection</a></h3>\n<ul>\n<li>\nSample request 1: \n<strong>GET</strong>\n or \n<strong>POST</strong>\n on \n<code>\n&#x3C;\nbase-url\n>\n:\n&#x3C;\nport\n>\n/api/CheckConnection?name=Steffen\n</code>\n</li>\n<li>\nSample request 2: \n<strong>GET</strong>\n or \n<strong>POST</strong>\n on \n<code>\n&#x3C;\nbase-url\n>\n:\n&#x3C;\nport\n>\n/api/CheckConnection\n</code>\n with a body, containing a simple JSON like \n<code>\n{\"name\": \"Steffen\"}\n</code>\n</li>\n<li>\nSample result on success: \n<em>Status:</em>\n 200 (OK); \n<em>Body:</em>\n \n<code>\n{\n\"\ndate\n\"\n:\n\"\n 09.01.2022 08:14:51\n\"\n, \n\"\ngreetings\n\"\n:\n\"\nHello, Steffen!\n\"\n, \n\"\nsystem\n\"\n:\n\"\nMicrosoft Windows 10.0.19043\n\"\n, \n\"\nplatform\n\"\n:\n\"\nWin32NT\n\"\n, \n\"\nfolder\n\"\n:\n\"\nC:\n\\\n\\\nWINDOWS\n\"\n, \n\"\nwidth\n\"\n:\n\"\n64 bit\n\"\n}\n</code>\n</li>\n<li>\nSample result on missing/wrong parameter \n<strong>name</strong>\n or body JSON: \n<em>Status:</em>\n 400 (Bad Request); \n<em>Body:</em>\n \n<code>\n09.01.2022 08:20:38: Please pass a name on the query string or in the request body!\n</code>\n</li>\n<li>\nSample result on wrong \n<code>\n&#x3C;\nbase-url\n>\n</code>\n or \n<code>\n&#x3C;\nport\n>\n</code>\n: \n<em>Status:</em>\n \n<code>\nECONNREFUSED\n</code>\n</li>\n</ul>\n<h3 style=\"position:relative;\"><a href=\"#a-namecalculatelayoutcalculate-a-layouta\" aria-label=\"a namecalculatelayoutcalculate a layouta permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namecalculatelayoutcalculate-a-layouta\"></div><a name=\"calculatelayout\">Calculate a layout</a></h3>\n<ul>\n<li>\n<strong>POST</strong>\n on \n<code>\n&#x3C;\nbase-url\n>\n:\n&#x3C;\nport\n>\n/api/CalculateLayout\n</code>\n with a body, containing a request JSON (see chapter \n<strong>The request JSON</strong>\n below).\n</li>\n<li>\nSample result on success: \n<em>Status:</em>\n 200 (OK); \n<em>Body:</em>\n \n<code class=\"language-text\">calculation</code>\n type 'cxn' and \n<code class=\"language-text\">result</code>\n type 'esvg' (embedded enriched SVG)\n<div class=\"code-wrapper\">\n        <div class=\"gatsby-code-button-container\"\n             data-toaster-id=\"58742071912052515000\"\n             data-toaster-duration=\"1500\"\n             onClick=\"copyCodeToClipboard(`<!-- Bounding: Width=&quot;410&quot; Height=&quot;410&quot; -->\n<!-- Created: By=&quot;Symbio.Service.Graphic.Managed&quot; On=&quot;09.01.2022 05:13:49&quot; -->\n<!-- Version: Release=&quot;4,99&quot; Revision=&quot;1&quot; -->\n<!-- Performance: Prepare=&quot;00s:000ms&quot; Parse=&quot;00s:000ms&quot; Calculate=&quot;00s:000ms&quot; -->\n<rect fill=&quot;#f0fff0&quot; id=&quot;source&quot; stroke=&quot;none&quot; stroke-width=&quot;1pt&quot; x=&quot;100&quot; y=&quot;100&quot; width=&quot;100&quot; height=&quot;100&quot;></rect>\n<rect fill=&quot;#fff0f0&quot; id=&quot;target&quot; stroke=&quot;none&quot; stroke-width=&quot;1pt&quot; x=&quot;300&quot; y=&quot;300&quot; width=&quot;100&quot; height=&quot;100&quot;></rect>\n<g class=&quot;connection&quot;>\n<defs>\n  <marker id=&quot;MARKER_not-provided&quot; viewBox=&quot;0 0 5 10&quot; refX=&quot;5&quot; refY=&quot;5&quot; markerUnits=&quot;userSpaceOnUse&quot; markerWidth=&quot;10&quot; markerHeight=&quot;10&quot; orient=&quot;270&quot;>\n    <path d=&quot;M 0,0 l 5,5 l -5,5 z&quot; style=&quot;fill:#878787; stroke:none; stroke-width:0.0pt;&quot;></path>\n  </marker>\n</defs>\n<polyline data-pz-shape-id=&quot;not-provided&quot; class=&quot;selectable&quot; points=&quot;150,100 150,90 410,90 410,410 350,410 350,400&quot; style=&quot;stroke:#878787; stroke-opacity:1.0; stroke-dasharray:null; fill:none; fill-opacity:1.0;  stroke-linecap:null; stroke-linejoin:null; stroke-width:1pt;&quot; marker-start=&quot;&quot; marker-end=&quot;url(#MARKER_not-provided)&quot; ></polyline>\n</g>`, `58742071912052515000`)\"\n        >\n          <div class=\"gatsby-code-button\" title=\"Copy the code snippet\">Copy</div>\n          <div class=\"done-indicator done-indicator-58742071912052515000\">Copied</div>\n        </div>\n        <div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- Bounding: Width=\"410\" Height=\"410\" --></span>\n<span class=\"token comment\">&lt;!-- Created: By=\"Symbio.Service.Graphic.Managed\" On=\"09.01.2022 05:13:49\" --></span>\n<span class=\"token comment\">&lt;!-- Version: Release=\"4,99\" Revision=\"1\" --></span>\n<span class=\"token comment\">&lt;!-- Performance: Prepare=\"00s:000ms\" Parse=\"00s:000ms\" Calculate=\"00s:000ms\" --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>rect</span> <span class=\"token attr-name\">fill</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>#f0fff0<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>source<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">stroke</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>none<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">stroke-width</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>1pt<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">x</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">y</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">width</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">height</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>rect</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>rect</span> <span class=\"token attr-name\">fill</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>#fff0f0<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>target<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">stroke</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>none<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">stroke-width</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>1pt<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">x</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>300<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">y</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>300<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">width</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">height</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>100<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>rect</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>g</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>connection<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>defs</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>marker</span> <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>MARKER_not-provided<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">viewBox</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>0 0 5 10<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">refX</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>5<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">refY</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>5<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">markerUnits</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>userSpaceOnUse<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">markerWidth</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>10<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">markerHeight</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>10<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">orient</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>270<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>path</span> <span class=\"token attr-name\">d</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>M 0,0 l 5,5 l -5,5 z<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>fill:#878787; stroke:none; stroke-width:0.0pt;<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>path</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>marker</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>defs</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>polyline</span> <span class=\"token attr-name\">data-pz-shape-id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>not-provided<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>selectable<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">points</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>150,100 150,90 410,90 410,410 350,410 350,400<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">style</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>stroke:#878787; stroke-opacity:1.0; stroke-dasharray:null; fill:none; fill-opacity:1.0;  stroke-linecap:null; stroke-linejoin:null; stroke-width:1pt;<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">marker-start</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span><span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">marker-end</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>url(#MARKER_not-provided)<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>polyline</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>g</span><span class=\"token punctuation\">></span></span></code></pre></div>\n      </div>\n</li>\n<li>\nSample result on wrong body JSON property \n<strong>calculation</strong>\n: \n<em>Status:</em>\n 400 (Bad Request); \n<em>Body:</em>\n \n<code>\nCurrently the calculation type '' is not supported!\n</code>\n</li>\n<li>\nSample result on wrong body JSON property \n<strong>result</strong>\n: \n<em>Status:</em>\n 400 (Bad Request); \n<em>Body:</em>\n \n<code>\nCurrently the result type '' is not supported for calculation type 'cxn'!\n</code>\n</li>\n<li>\nSample result on wrong \n<code>\n&#x3C;\nbase-url\n>\n</code>\n or \n<code>\n&#x3C;\nport\n>\n</code>\n: \n<em>Status:</em>\n \n<code>\nECONNREFUSED\n</code>\n</li>\n</ul>\n<p>The service expects the request as a JSON file and delivers the graphic as an HTML or SVG file.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-namerequestjsonthe-request-jsona\" aria-label=\"a namerequestjsonthe request jsona permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namerequestjsonthe-request-jsona\"></div><a name=\"requestJSON\">The <strong>Request JSON</strong></a></h2>\n<ul>\n<li>\nThe request to calculate a layout (and render a graphic) is provided as a JSON (within the request body).\n</li>\n<li>\nThe currently suported \n<code class=\"language-text\">calculation</code>\n types are \n<code class=\"language-text\">cxn</code>\n (route for a single connection path from a source node to a target node) and \n<code class=\"language-text\">flow</code>\n (directed graph with any number of nodes and edges).\n</li>\n<li>\nThe currently suported \n<code class=\"language-text\">result</code>\n types are \n<code class=\"language-text\">json</code>\n (JSON, the recommended result type), \n<code class=\"language-text\">ejson</code>\n (JSON, enhanced with additional information), \n<code class=\"language-text\">esvg</code>\n (embedded SVG, enhanced with additional information), \n<code class=\"language-text\">svg</code>\n (embedded SVG, without additional information), \n<code class=\"language-text\">sesvg</code>\n (stand-alone SVG, enhanced with additional information) and \n<code class=\"language-text\">ssvg</code>\n (stand-alone SVG, without additional information).\n</li>\n</ul>\n<p>For details (internal structure of the <strong>Request JSON</strong>) see <a href=\"/cpm/developer/services/graphic/request_json/\">Request JSON</a>.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-nameresultthe-resulta\" aria-label=\"a nameresultthe resulta permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-nameresultthe-resulta\"></div><a name=\"result\">The result</a></h2>\n<p>According to the requested <code class=\"language-text\">calculation</code> type (<code class=\"language-text\">cxn</code> or <code class=\"language-text\">flow</code>) the result can be</p>\n<ul>\n<li>\nthe route for a single connection path or\n</li>\n<li>\nthe layout (and rendering) of a directed graph\n</li>\n</ul>\n<h3 style=\"position:relative;\"><a href=\"#a-nameresultconnectionthe-resulting-connection-patha\" aria-label=\"a nameresultconnectionthe resulting connection patha permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-nameresultconnectionthe-resulting-connection-patha\"></div><a name=\"resultConnection\">The resulting connection path</a></h3>\n<p>The connection path represents a single route from a source node to a target node. This route hast at least a start point (2D coordinates) and an end point (2D coordinates) and can have up to four additional interpolation points (each with 2D coordinates). The sections of the path are always orthogonal (either exact vertical or exact horizontal).</p>\n<h3 style=\"position:relative;\"><a href=\"#a-nameresultgraphthe-result-grapha\" aria-label=\"a nameresultgraphthe result grapha permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-nameresultgraphthe-result-grapha\"></div><a name=\"resultGraph\">The result graph</a></h3>\n<p>The layed out (and rendered) graphic (directed graph), that is returned as a result of the service request, may contain several nodes (similar/comparable to BPMN elements), that can be of type:</p>\n<ul>\n<li>\n<strong>Activity</strong>\n: It is used to define an atomic or non-atomic piece of \n<em>work</em>\n within a \n<em>business process</em>\n. The graphical representation of an \n<strong>Activity</strong>\n can be bealized by:\n<ul>\n<li>\n<strong>Sub-Process</strong>\n and \n<strong>Call Activity</strong>\n as non-atomic pieces of \n<em>work</em>\n within a \n<em>business process</em>\n.\n</li>\n<li>\n<strong>Task</strong>\n as atomic piece of \n<em>work</em>\n within a \n<em>business process</em>\n.\n</li>\n</ul>\n</li>\n<li>\n<strong>Event</strong>\n: It represents something that \n<em>happens</em>\n during the course of a \n<em>business process</em>\n. It affects the flow of the \n<em>business process</em>\n and usually has a \n<em>cause</em>\n or an \n<em>impact</em>\n and in general requires or allows for a reaction.\n</li>\n<li>\n<strong>Gateway</strong>\n: It provides the graphical representation of execution semantics, used to control how pieces of \n<em>work</em>\n within a \n<em>business process</em>\n interact as they converge and diverge within a \n<em>business process</em>\n.\n</li>\n<li>\n<strong>Pool</strong>\n: It provides the graphical representation of \n<em>participants</em>\n (either a \n<em>partner entity</em>\n like a company, or a \n<em>partner role</em>\n like a buyer, a seller, or a manufacturer) in a \n<em>collaboration</em>\n. A \n<strong>Pool</strong>\n \n<em>may</em>\n or \n<em>may not</em>\n reference a \n<em>business process</em>\n - it can also serve as a \n<em>black box</em>\n.\n</li>\n<li>\n<strong>Lane</strong>\n: It is a sub-partition within a \n<em>business process</em>\n (often within a \n<strong>Pool</strong>\n) and will extend the entire length of the \n<em>business process</em>\n. A \n<strong>Lane</strong>\n is used to organize and categorize \n<strong>Activities</strong>\n within a Pool. The meaning of the \n<strong>Lane</strong>\n is up to the modeler.\n</li>\n</ul>\n<h2 style=\"position:relative;\"><a href=\"#a-namebpmncallactivitybpmn-sub-process-and-call-activitya\" aria-label=\"a namebpmncallactivitybpmn sub process and call activitya permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namebpmncallactivitybpmn-sub-process-and-call-activitya\"></div><a name=\"bpmnCallActivity\">BPMN sub-process and call activity</a></h2>\n<p>BPMN sub-processes can accure with different types.</p>\n<p>For details (about BPMN events and how they are used by the <em>Symbio-Graphic-Service</em>) see document <a href=\"/cpm/developer/services/graphic/elements_subprocesses/\">BPMN sub-processes and call activities</a>.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-namebpnmtasksbpmn-tasksa\" aria-label=\"a namebpnmtasksbpmn tasksa permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namebpnmtasksbpmn-tasksa\"></div><a name=\"bpnmTasks\">BPMN tasks</a></h2>\n<p>BPMN tasks can accure with different types and with different markers.</p>\n<p>For details (about BPMN tasks and how they are used by the <em>Symbio-Graphic-Service</em>) see document <a href=\"/cpm/developer/services/graphic/elements_tasks/\">BPMN tasks</a>.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-namebpnmeventsbpmn-eventsa\" aria-label=\"a namebpnmeventsbpmn eventsa permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namebpnmeventsbpmn-eventsa\"></div><a name=\"bpnmEvents\">BPMN events</a></h2>\n<p>BPMN events can occur at different locations, with different continuations and with different types.</p>\n<p>For details (about BPMN sub processes and how they are used by the <em>Symbio-Graphic-Service</em>) see document <a href=\"/cpm/developer/services/graphic/elements_events/\">BPMN events</a>.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-namebpnmgatewaysbpmn-gatewaysa\" aria-label=\"a namebpnmgatewaysbpmn gatewaysa permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namebpnmgatewaysbpmn-gatewaysa\"></div><a name=\"bpnmGateways\">BPMN gateways</a></h2>\n<p>BPMN gateways can occur with different types.</p>\n<p>For details (about BPMN gateways and how they are used by the <em>Symbio-Graphic-Service</em>) see document <a href=\"/cpm/developer/services/graphic/elements_gateways/\">BPMN events</a>.</p>\n<h2 style=\"position:relative;\"><a href=\"#a-namebpnmpoolsandlanesbpmn-pools-and-lanesa\" aria-label=\"a namebpnmpoolsandlanesbpmn pools and lanesa permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><div class=\"hidden-anchor\" id=\"a-namebpnmpoolsandlanesbpmn-pools-and-lanesa\"></div><a name=\"bpnmPoolsAndLanes\">BPMN pools and lanes</a></h2>\n<p>BPMN pools and lanes can represent different contexts.</p>\n<p>For details (about BPMN pools and lanes and how they are used by the <em>Symbio-Graphic-Service</em>) see document <a href=\"/cpm/developer/services/graphic/elements_pools_and_lanes/\">BPMN events</a>.</p>","headings":[{"value":"Graphic","depth":1},{"value":"Table of contents","depth":2},{"value":"<a name=\"endpoints\">Endpoints</a>","depth":2},{"value":"<a name=\"checkconnection\">Check the HTTP connection</a>","depth":3},{"value":"<a name=\"calculatelayout\">Calculate a layout</a>","depth":3},{"value":"<a name=\"requestJSON\">The Request JSON</a>","depth":2},{"value":"<a name=\"result\">The result</a>","depth":2},{"value":"<a name=\"resultConnection\">The resulting connection path</a>","depth":3},{"value":"<a name=\"resultGraph\">The result graph</a>","depth":3},{"value":"<a name=\"bpmnCallActivity\">BPMN sub-process and call activity</a>","depth":2},{"value":"<a name=\"bpnmTasks\">BPMN tasks</a>","depth":2},{"value":"<a name=\"bpnmEvents\">BPMN events</a>","depth":2},{"value":"<a name=\"bpnmGateways\">BPMN gateways</a>","depth":2},{"value":"<a name=\"bpnmPoolsAndLanes\">BPMN pools and lanes</a>","depth":2}]},"contentItem":{"data":{"lastModified":"2025-09-10T14:16:09.000Z","enableToc":null,"disableLastModified":null,"tocMaxDepth":null,"requestLogin":false}},"siteConfig":{"enableToc":false,"disableLastModified":false,"tocMaxDepth":4}},"pageContext":{"matchPath":"","id":"9448f0f4-6594-5e8a-b4c2-120bd55b7f91__redocly content/cpm/developer/services/graphic/","seo":{"title":"Graphic","description":null,"image":"","keywords":null,"jsonLd":null,"lang":null,"siteUrl":null},"pageId":"cpm/developer/services/graphic/index.md","pageBaseUrl":"/cpm/developer/services/graphic/index","type":"markdown","toc":{"enable":true,"maxDepth":4,"headings":[{"depth":1,"value":"Graphic","id":"graphic"},{"depth":2,"value":"Table of contents","id":"table-of-contents"},{"depth":2,"value":"<a name=\"endpoints\">Endpoints</a>","id":"a-nameendpointsendpointsa"},{"depth":3,"value":"<a name=\"checkconnection\">Check the HTTP connection</a>","id":"a-namecheckconnectioncheck-the-http-connectiona"},{"depth":3,"value":"<a name=\"calculatelayout\">Calculate a layout</a>","id":"a-namecalculatelayoutcalculate-a-layouta"},{"depth":2,"value":"<a name=\"requestJSON\">The Request JSON</a>","id":"a-namerequestjsonthe-request-jsona"},{"depth":2,"value":"<a name=\"result\">The result</a>","id":"a-nameresultthe-resulta"},{"depth":3,"value":"<a name=\"resultConnection\">The resulting connection path</a>","id":"a-nameresultconnectionthe-resulting-connection-patha"},{"depth":3,"value":"<a name=\"resultGraph\">The result graph</a>","id":"a-nameresultgraphthe-result-grapha"},{"depth":2,"value":"<a name=\"bpmnCallActivity\">BPMN sub-process and call activity</a>","id":"a-namebpmncallactivitybpmn-sub-process-and-call-activitya"},{"depth":2,"value":"<a name=\"bpnmTasks\">BPMN tasks</a>","id":"a-namebpnmtasksbpmn-tasksa"},{"depth":2,"value":"<a name=\"bpnmEvents\">BPMN events</a>","id":"a-namebpnmeventsbpmn-eventsa"},{"depth":2,"value":"<a name=\"bpnmGateways\">BPMN gateways</a>","id":"a-namebpnmgatewaysbpmn-gatewaysa"},{"depth":2,"value":"<a name=\"bpnmPoolsAndLanes\">BPMN pools and lanes</a>","id":"a-namebpnmpoolsandlanesbpmn-pools-and-lanesa"}]},"data":{"title":""},"catalogInfo":null,"link":"/cpm/developer/services/graphic/","sidebarName":"celonis","isLanding":false,"showPrevButton":null,"showNextButton":null,"apiVersions":null,"apiVersionId":null,"isDefaultApiVersion":null}},"staticQueryHashes":["1123603147","1302185487","1344209882","1398840060","1520077861","1975142765","2667623876","2950305614","3240152602","3743992808","561138138"]}