Исходник схемы
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_access_declined_cleanup" targetNamespace="urn:sharix:knowledge:handlers">
<bpmn:process id="permission_Process_permission" name="Backend permission API: action=soft_delete" isExecutable="false">
<bpmn:documentation>{"notes": ["BPMN isExecutable=false; генератор не выполняет handler.", "grace_deadline=Ticket.updated_at + ACCESS_REQUEST_DECLINED_CLEANUP_GRACE_DAYS.", "deferred_until=min(grace_deadline, now+DEFERRED_TICKET_RECHECK_SECONDS) при ожидании grace.", "Soft delete означает status=2; active permission не удаляется этим workflow.", "Показаны отдельные API-операции; общего commit soft-delete и CLOSED нет."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_access_request_declined.py", "repository": "sharix-open-handlers-examples", "sha256": "3725a0a556c1cec48f66333b62b553a77095334dac1e77d1b06b95a0414dd0bc"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_access_request_declined.json", "repository": "sharix-open-handlers-examples", "sha256": "8911b2a9d65d51a258b434e1e9fa4d4431a965aa3f195f62ac0d3c781d15a95e"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/blockly_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "3e222150cbff315077c6c9b160d46e59856cedf6d6591d213e958c63cb2f2428"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/handler_operations.py", "repository": "sharix-open-handlers-backend", "sha256": "28620658501c375f556e24437871620b84a17a88d0b62b2d1a3cc5deb2f14b1e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/data_parsers.py", "repository": "sharix-open-handlers-backend", "sha256": "d7f26f172f68e4b390f675de88fbfb3c37a58fb29d4bf3d6687b31bd7953f9e4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/ejabberd_muc.py", "repository": "sharix-open-handlers-backend", "sha256": "35c2eba89fab36b5c444439a87beaa516b55133991136d5370418d92a18d7bcd"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "classes/AccessRequestTicket.py", "repository": "sharix-open-handlers-backend", "sha256": "3f3a498ae76b3d878b19a8f32170fc2a71c6c6c182bf34a6ecc50edf7b0f5eff"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "bce71eab622922f8dd0954222842349799b60e18a0ab6310cc3e5f305603661e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_codegen_contract.json", "repository": "sharix-open-handlers-backend", "sha256": "0bfd2b0ebb07bd380ed3c867386536ab88ef7dfa6e13f1cd8c91d32bb02c1ae9"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "lib/tickets.py", "repository": "sharix-open-tickets", "sha256": "0d260c17947f9a186d07af2749159780e3c7354a95b4bafe9d67493663c96883"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/views/handler_workflow.py", "repository": "sharix-open-tickets", "sha256": "f97c4b467a9a30749f5c4b86b39a833c430e57aaa1f030f70030d9b5c609d368"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/handler_auth.py", "repository": "sharix-open-tickets", "sha256": "ac76dc45aaa9742e5e1da0b98aae914bb2e287048d33e97b4a245a6997bc8425"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "utils.py", "repository": "sharix-open-tickets", "sha256": "a5680205c6522e1d9a74d9d267fe9ee96faf6f06436b00877fc0a93d80234bf5"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "views/ticket_detail.py", "repository": "sharix-open-tickets", "sha256": "05d344b0fba14cf895400694d4a18f486c800fef08dd1acb43ea46909b9e7e59"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "signals.py", "repository": "sharix-open-tickets", "sha256": "39aad8690a2e7d35cebfb052127a8130a951cbb4eea316c4f767a0a59fc5fa7e"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/handler_wakeup.py", "repository": "sharix-open-tickets", "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "apiviews/handler_workflow.py", "repository": "sharix-open-backend", "sha256": "0f699a4e16760cbbdd09d894093c685ba69073fedf0522852cb1fdc9811636e3"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/dicts.py", "repository": "sharix-open-backend", "sha256": "d92ddaa0964324e337303f8de110acf6ff21e15d7b40a6e523ce78ed48b7d8c5"}]}</bpmn:documentation>
<bpmn:laneSet id="permission_Lanes_permission">
<bpmn:lane id="permission_Lane_worker" name="Транзакция изменения связанного объекта">
<bpmn:flowNodeRef>permission_start</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_lock</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_find</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_active</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_save</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_ok</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_reject</bpmn:flowNodeRef>
<bpmn:flowNodeRef>permission_missing</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="permission_start" name="Запрос soft_delete">
<bpmn:outgoing>permission_Flow_0</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
<bpmn:serviceTask id="permission_lock" name="Identity/capability/scope; блокировки">
<bpmn:incoming>permission_Flow_0</bpmn:incoming>
<bpmn:outgoing>permission_Flow_1</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="permission_find" name="Разрешить единственную permission по Ticket">
<bpmn:incoming>permission_Flow_1</bpmn:incoming>
<bpmn:outgoing>permission_Flow_2</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="permission_active" name="Сохранённый status=0?">
<bpmn:incoming>permission_Flow_2</bpmn:incoming>
<bpmn:outgoing>permission_Flow_3</bpmn:outgoing>
<bpmn:outgoing>permission_Flow_4</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="permission_save" name="Сохранить status=2 и Event">
<bpmn:incoming>permission_Flow_3</bpmn:incoming>
<bpmn:outgoing>permission_Flow_5</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sendTask id="permission_ok" name="Успешный ответ">
<bpmn:incoming>permission_Flow_5</bpmn:incoming>
<bpmn:outgoing>permission_Flow_6</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:endEvent id="permission_end" name="Soft delete зафиксирован">
<bpmn:incoming>permission_Flow_6</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="permission_reject" name="Отказ: active не удаляется">
<bpmn:incoming>permission_Flow_4</bpmn:incoming>
</bpmn:endEvent>
<bpmn:boundaryEvent id="permission_missing" name="404 / 409" attachedToRef="permission_find" cancelActivity="true">
<bpmn:errorEventDefinition />
</bpmn:boundaryEvent>
<bpmn:sequenceFlow id="permission_Flow_0" sourceRef="permission_start" targetRef="permission_lock" name="" />
<bpmn:sequenceFlow id="permission_Flow_1" sourceRef="permission_lock" targetRef="permission_find" name="" />
<bpmn:sequenceFlow id="permission_Flow_2" sourceRef="permission_find" targetRef="permission_active" name="" />
<bpmn:sequenceFlow id="permission_Flow_3" sourceRef="permission_active" targetRef="permission_save" name="Нет" />
<bpmn:sequenceFlow id="permission_Flow_4" sourceRef="permission_active" targetRef="permission_reject" name="Да" />
<bpmn:sequenceFlow id="permission_Flow_5" sourceRef="permission_save" targetRef="permission_ok" name="" />
<bpmn:sequenceFlow id="permission_Flow_6" sourceRef="permission_ok" targetRef="permission_end" name="" />
</bpmn:process>
<bpmn:process id="ticket_Process_ticket" name="Backend Ticket API: отдельный запрос CLOSED после подтверждения очистки" isExecutable="false">
<bpmn:documentation>{"notes": ["BPMN isExecutable=false; генератор не выполняет handler.", "grace_deadline=Ticket.updated_at + ACCESS_REQUEST_DECLINED_CLEANUP_GRACE_DAYS.", "deferred_until=min(grace_deadline, now+DEFERRED_TICKET_RECHECK_SECONDS) при ожидании grace.", "Soft delete означает status=2; active permission не удаляется этим workflow.", "Показаны отдельные API-операции; общего commit soft-delete и CLOSED нет."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_access_request_declined.py", "repository": "sharix-open-handlers-examples", "sha256": "3725a0a556c1cec48f66333b62b553a77095334dac1e77d1b06b95a0414dd0bc"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_access_request_declined.json", "repository": "sharix-open-handlers-examples", "sha256": "8911b2a9d65d51a258b434e1e9fa4d4431a965aa3f195f62ac0d3c781d15a95e"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/blockly_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "3e222150cbff315077c6c9b160d46e59856cedf6d6591d213e958c63cb2f2428"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/handler_operations.py", "repository": "sharix-open-handlers-backend", "sha256": "28620658501c375f556e24437871620b84a17a88d0b62b2d1a3cc5deb2f14b1e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/data_parsers.py", "repository": "sharix-open-handlers-backend", "sha256": "d7f26f172f68e4b390f675de88fbfb3c37a58fb29d4bf3d6687b31bd7953f9e4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/ejabberd_muc.py", "repository": "sharix-open-handlers-backend", "sha256": "35c2eba89fab36b5c444439a87beaa516b55133991136d5370418d92a18d7bcd"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "classes/AccessRequestTicket.py", "repository": "sharix-open-handlers-backend", "sha256": "3f3a498ae76b3d878b19a8f32170fc2a71c6c6c182bf34a6ecc50edf7b0f5eff"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "bce71eab622922f8dd0954222842349799b60e18a0ab6310cc3e5f305603661e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_codegen_contract.json", "repository": "sharix-open-handlers-backend", "sha256": "0bfd2b0ebb07bd380ed3c867386536ab88ef7dfa6e13f1cd8c91d32bb02c1ae9"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "lib/tickets.py", "repository": "sharix-open-tickets", "sha256": "0d260c17947f9a186d07af2749159780e3c7354a95b4bafe9d67493663c96883"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/views/handler_workflow.py", "repository": "sharix-open-tickets", "sha256": "f97c4b467a9a30749f5c4b86b39a833c430e57aaa1f030f70030d9b5c609d368"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/handler_auth.py", "repository": "sharix-open-tickets", "sha256": "ac76dc45aaa9742e5e1da0b98aae914bb2e287048d33e97b4a245a6997bc8425"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "utils.py", "repository": "sharix-open-tickets", "sha256": "a5680205c6522e1d9a74d9d267fe9ee96faf6f06436b00877fc0a93d80234bf5"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "views/ticket_detail.py", "repository": "sharix-open-tickets", "sha256": "05d344b0fba14cf895400694d4a18f486c800fef08dd1acb43ea46909b9e7e59"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "signals.py", "repository": "sharix-open-tickets", "sha256": "39aad8690a2e7d35cebfb052127a8130a951cbb4eea316c4f767a0a59fc5fa7e"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/handler_wakeup.py", "repository": "sharix-open-tickets", "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "apiviews/handler_workflow.py", "repository": "sharix-open-backend", "sha256": "0f699a4e16760cbbdd09d894093c685ba69073fedf0522852cb1fdc9811636e3"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/dicts.py", "repository": "sharix-open-backend", "sha256": "d92ddaa0964324e337303f8de110acf6ff21e15d7b40a6e523ce78ed48b7d8c5"}]}</bpmn:documentation>
<bpmn:laneSet id="ticket_Lanes_ticket">
<bpmn:lane id="ticket_Lane_worker" name="Отдельная транзакция">
<bpmn:flowNodeRef>ticket_start</bpmn:flowNodeRef>
<bpmn:flowNodeRef>ticket_scope</bpmn:flowNodeRef>
<bpmn:flowNodeRef>ticket_change</bpmn:flowNodeRef>
<bpmn:flowNodeRef>ticket_wake</bpmn:flowNodeRef>
<bpmn:flowNodeRef>ticket_done</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="ticket_start" name="Handler запросил CLOSED">
<bpmn:outgoing>ticket_Flow_0</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
<bpmn:serviceTask id="ticket_scope" name="Проверить capability и актуальный scope">
<bpmn:incoming>ticket_Flow_0</bpmn:incoming>
<bpmn:outgoing>ticket_Flow_1</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="ticket_change" name="Проверить lifecycle; сохранить CLOSED и Event">
<bpmn:incoming>ticket_Flow_1</bpmn:incoming>
<bpmn:outgoing>ticket_Flow_2</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sendTask id="ticket_wake" name="После commit: ticket.moved прежнему владельцу">
<bpmn:incoming>ticket_Flow_2</bpmn:incoming>
<bpmn:outgoing>ticket_Flow_3</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:endEvent id="ticket_done" name="Ticket закрыт, очередь освобождается">
<bpmn:incoming>ticket_Flow_3</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="ticket_Flow_0" sourceRef="ticket_start" targetRef="ticket_scope" name="" />
<bpmn:sequenceFlow id="ticket_Flow_1" sourceRef="ticket_scope" targetRef="ticket_change" name="" />
<bpmn:sequenceFlow id="ticket_Flow_2" sourceRef="ticket_change" targetRef="ticket_wake" name="" />
<bpmn:sequenceFlow id="ticket_Flow_3" sourceRef="ticket_wake" targetRef="ticket_done" name="" />
</bpmn:process>
<bpmn:collaboration id="Collaboration_access_declined_cleanup">
<bpmn:participant id="permission_Pool_permission" name="Backend permission API: action=soft_delete" processRef="permission_Process_permission" />
<bpmn:participant id="ticket_Pool_ticket" name="Backend Ticket API: отдельный запрос CLOSED после подтверждения очистки" processRef="ticket_Process_ticket" />
<bpmn:messageFlow id="Message_access_declined_cleanup_0" sourceRef="permission_ok" targetRef="ticket_start" name="Ответ разрешает handler перейти к отдельному запросу CLOSED" />
</bpmn:collaboration>
<bpmndi:BPMNDiagram id="Diagram_access_declined_cleanup">
<bpmndi:BPMNPlane id="Plane_access_declined_cleanup" bpmnElement="Collaboration_access_declined_cleanup">
<bpmndi:BPMNShape id="permission_DI_Pool_permission" bpmnElement="permission_Pool_permission" isHorizontal="true">
<dc:Bounds x="0.0" y="0.0" width="1940" height="410" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_Lane_worker" bpmnElement="permission_Lane_worker" isHorizontal="true">
<dc:Bounds x="30.0" y="0.0" width="1910" height="410" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_start" bpmnElement="permission_start">
<dc:Bounds x="132.0" y="92.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_lock" bpmnElement="permission_lock">
<dc:Bounds x="345.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_find" bpmnElement="permission_find">
<dc:Bounds x="625.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_active" bpmnElement="permission_active">
<dc:Bounds x="955.0" y="85.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_save" bpmnElement="permission_save">
<dc:Bounds x="1185.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_ok" bpmnElement="permission_ok">
<dc:Bounds x="1455.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_end" bpmnElement="permission_end">
<dc:Bounds x="1762.0" y="92.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_reject" bpmnElement="permission_reject">
<dc:Bounds x="962.0" y="292.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="permission_DI_missing" bpmnElement="permission_missing">
<dc:Bounds x="732.0" y="127.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="permission_DI_Flow_0" bpmnElement="permission_Flow_0">
<di:waypoint x="168.0" y="110.0" />
<di:waypoint x="345.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_1" bpmnElement="permission_Flow_1">
<di:waypoint x="495.0" y="110.0" />
<di:waypoint x="625.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_2" bpmnElement="permission_Flow_2">
<di:waypoint x="775.0" y="110.0" />
<di:waypoint x="955.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_3" bpmnElement="permission_Flow_3">
<di:waypoint x="1005.0" y="110.0" />
<di:waypoint x="1185.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_4" bpmnElement="permission_Flow_4">
<di:waypoint x="980.0" y="135.0" />
<di:waypoint x="980.0" y="292.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_5" bpmnElement="permission_Flow_5">
<di:waypoint x="1335.0" y="110.0" />
<di:waypoint x="1455.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="permission_DI_Flow_6" bpmnElement="permission_Flow_6">
<di:waypoint x="1605.0" y="110.0" />
<di:waypoint x="1762.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="ticket_DI_Pool_ticket" bpmnElement="ticket_Pool_ticket" isHorizontal="true">
<dc:Bounds x="0.0" y="590.0" width="1420" height="210" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_Lane_worker" bpmnElement="ticket_Lane_worker" isHorizontal="true">
<dc:Bounds x="30.0" y="590.0" width="1390" height="210" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_start" bpmnElement="ticket_start">
<dc:Bounds x="132.0" y="682.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_scope" bpmnElement="ticket_scope">
<dc:Bounds x="345.0" y="665.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_change" bpmnElement="ticket_change">
<dc:Bounds x="625.0" y="665.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_wake" bpmnElement="ticket_wake">
<dc:Bounds x="905.0" y="665.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="ticket_DI_done" bpmnElement="ticket_done">
<dc:Bounds x="1242.0" y="682.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="ticket_DI_Flow_0" bpmnElement="ticket_Flow_0">
<di:waypoint x="168.0" y="700.0" />
<di:waypoint x="345.0" y="700.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="ticket_DI_Flow_1" bpmnElement="ticket_Flow_1">
<di:waypoint x="495.0" y="700.0" />
<di:waypoint x="625.0" y="700.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="ticket_DI_Flow_2" bpmnElement="ticket_Flow_2">
<di:waypoint x="775.0" y="700.0" />
<di:waypoint x="905.0" y="700.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="ticket_DI_Flow_3" bpmnElement="ticket_Flow_3">
<di:waypoint x="1055.0" y="700.0" />
<di:waypoint x="1242.0" y="700.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_access_declined_cleanup_0" bpmnElement="Message_access_declined_cleanup_0">
<di:waypoint x="1530" y="145" />
<di:waypoint x="1530" y="500" />
<di:waypoint x="150" y="500" />
<di:waypoint x="150" y="682" />
<bpmndi:BPMNLabel>
<dc:Bounds x="500" y="465" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>