| Следующая версия | Предыдущая версия |
| sharixopen:knowledge:scenarios:service_request_booked [2026/10/28 20:26] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:scenarios:service_request_booked [2026/10/31 11:25] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| "domain": "business_processes", | "domain": "business_processes", |
| "lifecycle": "implemented", | "lifecycle": "implemented", |
| "component": "handlers", | "component": "handlers_examples, handlers_backend, dbsynce", |
| "parents": [ | "parents": [ |
| "ShariXKnowledgeScenarios" | "ShariXKnowledgeScenarios" |
| ], | ], |
| "terms": [ | "terms": [ |
| "SERVICE_REQUEST", | "audience_developer", |
| "BOOKED", | "audience_support", |
| "Provider", | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_scenario", |
| | "topic_orders_assignment", |
| | "topic_orders_lifecycle", |
| | "topic_handlers_runtime", |
| | "service_request", |
| | "ticket_booked", |
| | "provider_offer", |
| "pending_at", | "pending_at", |
| "BPMN" | "bpmn", |
| | "ticket", |
| | "blockly", |
| | "generated_python", |
| | "order" |
| ] | ] |
| }, | }, |
| "actions": "bb941bf433e339de3682874b4efbfede8e7fca91d1b16eff6257db2f945a6237" | "actions": "bb941bf433e339de3682874b4efbfede8e7fca91d1b16eff6257db2f945a6237" |
| } | } |
| | }, |
| | "diagram_view_bounds": { |
| | "reviewed_on": "2026-10-29", |
| | "models": [ |
| | "logic", |
| | "actions" |
| | ], |
| | "semantics_unchanged": true, |
| | "utility": "tools/expand_bpmn_view_bounds.py", |
| | "utility_sha256": "f878658b0115773e34f6c3eec72eba5984d873e60d8e2a4336b3dfb2a8026d87" |
| | }, |
| | "classification": { |
| | "schema": "sharix.knowledge.classification.v1", |
| | "products": [ |
| | "sharix_open" |
| | ], |
| | "audiences": [ |
| | "developer", |
| | "support", |
| | "reviewer", |
| | "ai" |
| | ], |
| | "material": "scenario", |
| | "topics": [ |
| | "orders/assignment", |
| | "orders/lifecycle", |
| | "handlers/runtime" |
| | ], |
| | "tag_terms": [ |
| | "audience_developer", |
| | "audience_support", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_scenario", |
| | "topic_orders_assignment", |
| | "topic_orders_lifecycle", |
| | "topic_handlers_runtime", |
| | "service_request", |
| | "ticket_booked", |
| | "provider_offer", |
| | "pending_at", |
| | "bpmn", |
| | "ticket", |
| | "blockly", |
| | "generated_python", |
| | "order" |
| | ], |
| | "registry_document": "ShariXKnowledgeClassification", |
| | "state_meaning": "lifecycle относится к описываемому коду, а status к редакции документа; implemented не означает успешный runtime тест" |
| | }, |
| | "classification_review": { |
| | "date": "2026-10-31", |
| | "source": "Содержание текущей страницы и проверенный словарь классификации", |
| | "body_scope": "rewrite" |
| | }, |
| | "source_review_20261031": { |
| | "kind": "source_analysis_not_runtime_acceptance", |
| | "evidence_field": "extensions.source_evidence", |
| | "checked_on": "2026-10-31", |
| | "all_original_evidence_hashes_match_fresh_git": true, |
| | "canonical_generation": "Both runnable and generated copies match; no handler executed." |
| } | } |
| }, | }, |
| "content_sha256": "66315d70d9b663f5b8eb8084967576c51a741d16a85897fc9369c0703590617d", | "content_sha256": "c273252e44e75a0c3bcd5d4dad510295e15f494c25c22e9c7ef7d3e89414903a", |
| "schema": 1 | "schema": 1 |
| } | } |
| ~~NOCACHE~~ | ~~NOCACHE~~ |
| |
| **Область:** ShariX Open. **Обработчик:** ''open_service_request_booked'', тип ''SERVICE_REQUEST'' (2), рабочий статус ''BOOKED'' (211). Опубликованный Python на 28.10.2026 побайтово совпадает с каноническим renderer Blockly workspace. Выбор версии на конкретном сервере проверяется отдельно. | **Назначение:** [[sharixopen:knowledge:classification:materials#scenarij_processa|Сценарий процесса]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]]. |
| | |
| | **Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#podderzhka|Поддержка]] · [[sharixopen:knowledge:classification:audiences#recenzent_i_prijomschik|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]]. |
| | |
| | **Темы:** [[sharixopen:knowledge:classification:topics#naznachenie|Заказы → Назначение]] · [[sharixopen:knowledge:classification:topics#zhiznennyj_cikl|Заказы → Жизненный цикл]] · [[sharixopen:knowledge:classification:topics#runtime|Обработчики → Runtime]]. |
| | |
| | |
| | |
| | **Область:** ShariX Open. **Обработчик:** ''open_service_request_booked'', тип ''SERVICE_REQUEST'' (2), рабочий статус ''BOOKED'' (211). 31.10.2026 опубликованные исходники повторно получены из Git. Обе Python-копии заново сопоставлены с результатом генерации Blockly; проверены 11 исходников генераторов. Сам handler не исполнялся. Выбранную версию, конфигурацию и внешние подключения сервера проверяют отдельно. |
| |
| ===== Назначение и границы ===== | ===== Назначение и границы ===== |
| Handler сопровождает размещённый заказ до назначения исполнителя либо перехода в PENDING. Сначала он пытается применить одно разрешённое пользовательское намерение ''take''/''cancel'', затем проверяет текущее окно автоматического перехода. Он не выбирает кандидатов, не рассылает предложения и не проводит раунд победителя в BOOKED: это отдельная стадия PENDING. | Handler сопровождает размещённый заказ в таком порядке: |
| | |
| | - Попытаться применить одно разрешённое намерение take/cancel. |
| | - Если проход не завершён — загрузить актуальный контекст заказа. |
| | - Проверить окно автоматического перехода в PENDING. |
| | - При отсутствии завершённого перехода назначить повтор. |
| | |
| | В BOOKED handler не выбирает кандидатов, не рассылает предложения и не проводит раунд победителя. Это отдельная стадия PENDING. |
| | |
| | Условие перехода зависит от заказа: |
| | |
| | * **ASAP:** попытка PENDING сразу после проверки intent и загрузки контекста. |
| | * **Плановый заказ:** ждать pending_at. |
| |
| Для ASAP попытка перехода в PENDING начинается сразу после проверки пользовательского intent и загрузки контекста. Для планового заказа — по ''pending_at''. Универсальный autoaccept этой стадии не используется. | Универсальный autoaccept здесь не используется. |
| |
| BPMN имеют ''isExecutable=false''. Wiki не исполняет процесс: runtime выполняет выбранный проверенный Python из Blockly. End event завершает показанную операцию; он не означает завершения услуги. | BPMN имеют ''isExecutable=false''. Wiki не исполняет процесс: runtime выполняет выбранный проверенный Python из Blockly. End event завершает показанную операцию; он не означает завершения услуги. |
| <sharix-bpmn> | <sharix-bpmn> |
| <?xml version="1.0" encoding="UTF-8"?> | <?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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_service_booked_logic" targetNamespace="urn:sharix:knowledge:handlers"> | <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:ns2="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:ns3="http://www.omg.org/spec/DD/20100524/DC" xmlns:ns4="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_service_booked_logic" targetNamespace="urn:sharix:knowledge:handlers"> |
| <bpmn:process id="booked_Process_booked" name="open_service_request_booked: пользовательский take/cancel и окно перехода в PENDING" isExecutable="false"> | <bpmn:process id="booked_Process_booked" name="open_service_request_booked: пользовательский take/cancel и окно перехода в PENDING" isExecutable="false"> |
| <bpmn:documentation>{"notes": ["Git built-in, BPMN isExecutable=false; handler при генерации не исполняется.", "BOOKED не рассылает предложения кандидатам.", "pending_at=planned_start − SERVICE_REQUEST_PRE_START_DURATION_SECONDS − SERVICE_REQUEST_BOOKED_PENDING_LEAD_SECONDS.", "Часы проверки границы — runtime; backend move повторно проверяет статус и отсутствие provider."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_service_request_booked.py", "repository": "sharix-open-handlers-examples", "sha256": "44e066a3ccb7ee21abc8d252a343adf1ea3cbf5e177aebb62ed2059fe1c2f2d8"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_service_request_booked.json", "repository": "sharix-open-handlers-examples", "sha256": "7096cde8b581cc80b2f0f65dcc63e95adfdfdd8bf459e9a70ee229d329a7dcfc"}, {"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/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/order_action_messages.py", "repository": "sharix-open-handlers-backend", "sha256": "046c262c0aabb02104fefca4e887324f99df22731e7726063f614aaf8839ca5c"}, {"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/handler_auth.py", "repository": "sharix-open-tickets", "sha256": "ac76dc45aaa9742e5e1da0b98aae914bb2e287048d33e97b4a245a6997bc8425"}, {"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_order_workflow.py", "repository": "sharix-open-backend", "sha256": "35624ded6e67110437a25dd07caef214a04251eb0136194ae939fa32fef17e84"}, |