Евгений, [14.08.2024 18:52]
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
             xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
             xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
             typeLanguage="http://www.w3.org/2001/XMLSchema"
             expressionLanguage="http://www.w3.org/1999/XPath"
             targetNamespace="http://bpmn.io/schema/bpmn">

  <process id="DataMigrationProcess" name="Процесс миграции данных" isExecutable="false">
    <startEvent id="StartEvent" name="Старт этапа «Создание решения»"/>
    
    <task id="CreateMigrationTemplates" name="Создание шаблонов миграции">
      <documentation>Создать шаблоны, необходимые для миграции данных</documentation>
    </task>
    
    <exclusiveGateway id="ConditionsMet" name="Шаблоны созданы?"/>
    
    <sequenceFlow id="flow1" sourceRef="StartEvent" targetRef="CreateMigrationTemplates"/>
    <sequenceFlow id="flow2" sourceRef="CreateMigrationTemplates" targetRef="ConditionsMet"/>
    
    <task id="DevelopExportTools" name="Разработка инструментов выгрузки">
      <documentation>Разработать инструменты для выгрузки исторических данных</documentation>
    </task>
    
    <task id="DevelopImportTools" name="Разработка инструментов загрузки">
      <documentation>Разработать инструменты для загрузки данных в ЕК ОТ</documentation>
    </task>
    
    <parallelGateway id="ParallelGateway1"/>
    
    <sequenceFlow id="flow3" sourceRef="ConditionsMet" targetRef="ParallelGateway1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[yes]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow4" sourceRef="ParallelGateway1" targetRef="DevelopExportTools"/>
    <sequenceFlow id="flow5" sourceRef="ParallelGateway1" targetRef="DevelopImportTools"/>
    
    <endEvent id="EndEvent1" name="Разработка завершена"/>
    
    <sequenceFlow id="flow6" sourceRef="DevelopExportTools" targetRef="EndEvent1"/>
    <sequenceFlow id="flow7" sourceRef="DevelopImportTools" targetRef="EndEvent1"/>
    
    <task id="ExportDataToTemplates" name="Выгрузка данных в шаблоны">
      <documentation>Выгрузка исторических данных в шаблоны миграции</documentation>
    </task>
    
    <task id="TestMigration" name="Тестовая миграция с копией исторической системы">
      <subProcess id="SubProcess1" name="Подпроцесс тестовой миграции">
        <task id="ExportData" name="Выгрузка данных в шаблоны"/>
        <task id="HandOverTemplates" name="Передача шаблонов Подрядчику"/>
        <task id="CheckForErrors" name="Проверка корректности заполнения шаблонов"/>
        
        <exclusiveGateway id="ErrorCheck" name="Обнаружены ошибки?"/>
        
        <task id="CreateErrorRegistry" name="Формирование реестра ошибок"/>
        <task id="SendErrorRegistry" name="Передача реестра ошибок ОЦРВ"/>
        <task id="ModifyExportTools" name="Корректировка инструментов выгрузки"/>
        
        <sequenceFlow id="flow8" sourceRef="ExportData" targetRef="HandOverTemplates"/>
        <sequenceFlow id="flow9" sourceRef="HandOverTemplates" targetRef="CheckForErrors"/>
        <sequenceFlow id="flow10" sourceRef="CheckForErrors" targetRef="ErrorCheck"/>
        
        <sequenceFlow id="flow11" sourceRef="ErrorCheck" targetRef="CreateErrorRegistry">
          <conditionExpression xsi:type="tFormalExpression"><![CDATA[yes]]></conditionExpression>
        </sequenceFlow>
        
        <sequenceFlow id="flow12" sourceRef="CreateErrorRegistry" targetRef="SendErrorRegistry"/>
        <sequenceFlow id="flow13" sourceRef="SendErrorRegistry" targetRef="ModifyExportTools"/>
        <sequenceFlow id="flow14" sourceRef="ModifyExportTools" targetRef="ExportData"/>
	<sequenceFlow id="flow15" sourceRef="ErrorCheck" targetRef="EndSubProcess">
          <conditionExpression xsi:type="tFormalExpression"><![CDATA[no]]></conditionExpression>
        </sequenceFlow>
        
        <endEvent id="EndSubProcess" name="Тестирование завершено"/>
        
        <sequenceFlow id="flow16" sourceRef="EndSubProcess" targetRef="LoadIntoEKOT"/>
      </subProcess>
    </task>
    
    <task id="LoadIntoEKOT" name="Загрузка шаблонов в ЕК ОТ"/>
    
    <task id="VerifyData" name="Сверка загруженных данных с шаблонами"/>
    
    <exclusiveGateway id="DiscrepanciesFound" name="Обнаружены расхождения?"/>
    
    <task id="RefineImportTools" name="Доработка инструментов загрузки"/>
    
    <endEvent id="ProcessCompleted" name="Процесс успешно завершен"/>
    
    <sequenceFlow id="flow17" sourceRef="LoadIntoEKOT" targetRef="VerifyData"/>
    <sequenceFlow id="flow18" sourceRef="VerifyData" targetRef="DiscrepanciesFound"/>
    
    <sequenceFlow id="flow19" sourceRef="DiscrepanciesFound" targetRef="RefineImportTools">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[yes]]></conditionExpression>
    </sequenceFlow>
    
    <sequenceFlow id="flow20" sourceRef="RefineImportTools" targetRef="VerifyData"/>
    
    <sequenceFlow id="flow21" sourceRef="DiscrepanciesFound" targetRef="ProcessCompleted">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[no]]></conditionExpression>
    </sequenceFlow>
  </process>
  
  <bpmndi:BPMNDiagram id="BPMNDiagram_DataMigration">
    <bpmndi:BPMNPlane id="BPMNPlane_DataMigration" bpmnElement="DataMigrationProcess">
      <bpmndi:BPMNShape id="BPMNShape_StartEvent" bpmnElement="StartEvent">
        <omgdc:Bounds x="100" y="100" width="36" height="36"/>

Пранадизируй этот код и сформируй bpmn схему в текстовом формате для https://www.bpmn-sketch-miner.ai/examples/demos-10-01-pizza-message.html этого сайта. можешь воспользоваться примером формирование ниже
Employee: Send permit renew docs to HR 
HR Assistant: Check the permit renewal form
Missing data?
Yes
Ask missing data
Employee: Provide missing data
HR Assistant: Enter missing data
Print and stamp permit form
Head of HR: Sign permit form
HR Assistant: Make a copy of employee's contract
Send docs to authorities
Receive permit and invoice
Enter invoice in the system
Accounting: Pay invoice

...
Missing data?
No
Print and stamp permit form
...