Инструменты пользователя

Инструменты сайта


sharixopen:knowledge:scenarios:order_create

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
sharixopen:knowledge:scenarios:order_create [2026/10/31 09:39] – [sharixknowledge] approved package sx_knowledge_api_opensharixopen:knowledge:scenarios:order_create [2026/10/31 11:24] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open
Строка 13: Строка 13:
             "ShariXKnowledgeOpenKnowledgeArchitectureApicontracts",             "ShariXKnowledgeOpenKnowledgeArchitectureApicontracts",
             "ShariXKnowledgeOpenKnowledgeDomainOrderticket"             "ShariXKnowledgeOpenKnowledgeDomainOrderticket"
 +        ],
 +        "depends_on": [
 +            "ShariXKnowledgeOpenKnowledgeArchitectureApicontracts",
 +            "ShariXKnowledgeOpenKnowledgeDomainOrderticket"
 +        ],
 +        "verified_by": [
 +            "ShariXKnowledgeOpenKnowledgeDevelopmentAcceptance"
         ]         ]
     },     },
     "extensions": {     "extensions": {
         "taxonomy": {         "taxonomy": {
-            "domain": "business_processes", +            "domain": "use_cases", 
-            "lifecycle": "documented",+            "lifecycle": "implemented",
             "parents": [             "parents": [
                 "ShariXKnowledgeScenarios"                 "ShariXKnowledgeScenarios"
             ],             ],
-            "terms": []+            "terms": [ 
 +                "audience_developer", 
 +                "audience_integrator", 
 +                "audience_reviewer", 
 +                "audience_ai", 
 +                "product_sharix_open", 
 +                "material_scenario", 
 +                "topic_orders_creation", 
 +                "topic_orders_lifecycle", 
 +                "topic_api_contracts", 
 +                "order", 
 +                "ticket" 
 +            ], 
 +            "component": "dbsynce, tickets, webapp-base"
         },         },
         "source_evidence": [         "source_evidence": [
Строка 275: Строка 295:
                 }                 }
             ]             ]
 +        },
 +        "list_format_review": {
 +            "date": "2026-10-31",
 +            "scope": "Перечисления полей, результатов и проверок оформлены списками; исходники, команды, таблицы, схемы и лицензионные границы сохранены."
 +        },
 +        "classification": {
 +            "schema": "sharix.knowledge.classification.v1",
 +            "products": [
 +                "sharix_open"
 +            ],
 +            "audiences": [
 +                "developer",
 +                "integrator",
 +                "reviewer",
 +                "ai"
 +            ],
 +            "material": "scenario",
 +            "topics": [
 +                "orders/creation",
 +                "orders/lifecycle",
 +                "api/contracts"
 +            ],
 +            "tag_terms": [
 +                "audience_developer",
 +                "audience_integrator",
 +                "audience_reviewer",
 +                "audience_ai",
 +                "product_sharix_open",
 +                "material_scenario",
 +                "topic_orders_creation",
 +                "topic_orders_lifecycle",
 +                "topic_api_contracts",
 +                "order",
 +                "ticket"
 +            ],
 +            "registry_document": "ShariXKnowledgeClassification",
 +            "state_meaning": "lifecycle относится к описываемому коду, а status к редакции документа; implemented не означает успешный runtime тест"
 +        },
 +        "classification_review": {
 +            "date": "2026-10-31",
 +            "source": "Содержание текущей страницы и проверенный словарь классификации",
 +            "body_scope": "classification_and_navigation_only"
         }         }
     },     },
-    "content_sha256": "68f4fead72c9f36d1cd1e1342ee48a2efb2b6f00ec8255f6bde50bf04fd12b1a",+    "content_sha256": "d2e3d6cdb8c4b1d761756ae13e67c51bbb8c0556241ca1fd91293abb7df6deb4",
     "schema": 1     "schema": 1
 } }
Строка 283: Строка 345:
 ====== Создание заказа через API: транзакция, ответ и внешние события ====== ====== Создание заказа через API: транзакция, ответ и внешние события ======
 ~~NOCACHE~~ ~~NOCACHE~~
 +
 +**Назначение:** [[sharixopen:knowledge:classification:materials#scenarij_processa|Сценарий процесса]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]].
 +
 +**Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#integrator|Интегратор]] · [[sharixopen:knowledge:classification:audiences#recenzent_i_prijomschik|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]].
 +
 +**Темы:** [[sharixopen:knowledge:classification:topics#sozdanie_i_chernovik|Заказы → Создание и черновик]] · [[sharixopen:knowledge:classification:topics#zhiznennyj_cikl|Заказы → Жизненный цикл]] · [[sharixopen:knowledge:classification:topics#kontrakty|API → Контракты]].
 +
 +
  
 Сценарий описывает POST /dbsynce/api/v1/orders/ в ShariX Open: от получения запроса до сохранённого заказа, HTTP-ответа и событий после commit. Это описание проверенного исходного кода, а не отчёт о выполнении запроса на рабочем сервере. Сценарий описывает POST /dbsynce/api/v1/orders/ в ShariX Open: от получения запроса до сохранённого заказа, HTTP-ответа и событий после commit. Это описание проверенного исходного кода, а не отчёт о выполнении запроса на рабочем сервере.
Строка 448: Строка 518:
  
 ===== Что означает ответ ===== ===== Что означает ответ =====
-После возврата из операции view получает snapshot по созданному order.pk и формирует 201 с success, message, warnings и order. Нужно сохранить ID возвращённого заказа и прочитать warnings: success=true означает успех создания, а не безусловный успех назначения и всех внешних доставок.+После возврата из операции view получает snapshot по созданному order.pk и формирует ответ: 
 + 
 +  * HTTP-код ''201''; 
 +  * поле ''success''; 
 +  * поле ''message''; 
 +  * поле ''warnings''; 
 +  * поле ''order''. 
 + 
 +Нужно сохранить ID возвращённого заказа и прочитать warnings: success=true означает успех создания, а не безусловный успех назначения и всех внешних доставок.
  
 **Пример трактовки:** если заказ создан, но предложение исполнителя не удалось назначить, клиент показывает созданный заказ и причину из warnings. Он не должен отправлять ещё один POST только ради повторной попытки назначения: это уже другое действие над существующим заказом. **Пример трактовки:** если заказ создан, но предложение исполнителя не удалось назначить, клиент показывает созданный заказ и причину из warnings. Он не должен отправлять ещё один POST только ради повторной попытки назначения: это уже другое действие над существующим заказом.
Строка 457: Строка 535:
 Ticket-сигналы планируют ticket.changed; при каноническом переходе предыдущему обработчику также передаётся ticket.moved. Обработчик получает сигнал и сверяет сохранённое состояние. schedule_order_mobile_event предпринимает доставку мобильного события после commit. Ticket-сигналы планируют ticket.changed; при каноническом переходе предыдущему обработчику также передаётся ticket.moved. Обработчик получает сигнал и сверяет сохранённое состояние. schedule_order_mobile_event предпринимает доставку мобильного события после commit.
  
-Атомарность БД не гарантирует однократную доставку сети. Если данные уже committed, транспортная ошибка не откатывает их автоматически. Проверка созданного заказа, доставки XMPP и получения уведомления мобильным клиентом — три отдельных свидетельства.+Атомарность БД не гарантирует однократную доставку сети. Если данные уже committed, транспортная ошибка не откатывает их автоматически. Отдельно подтверждают: 
 + 
 +  * создание заказа; 
 +  * доставку XMPP; 
 +  * получение уведомления мобильным клиентом. 
 + 
 +Это три отдельных свидетельства.
  
 ===== Отказы и неизвестный результат ===== ===== Отказы и неизвестный результат =====
Строка 474: Строка 558:
  
 ===== Как принять изменение этой операции ===== ===== Как принять изменение этой операции =====
-Проверить на предназначенной установке: draft и place; сохранённые Orders и Ticket; доступность заказа создавшему пользователю; отказ для недоступных объектов/организации; self-order; предупреждение при отказе назначения; отсутствие частичных записей при исключении до commit; доставку события после commit. Отдельно проверить неизвестный mode и затронутый HTML-путь.+На предназначенной установке проверить: 
 + 
 +  * режимы draft и place; 
 +  * сохранённые Orders и Ticket; 
 +  * доступность заказа создавшему пользователю; 
 +  * отказ для недоступных объектов или организации; 
 +  * self-order; 
 +  * предупреждение при отказе назначения; 
 +  * отсутствие частичных записей при исключении до commit; 
 +  * доставку события после commit; 
 +  * неизвестный mode; 
 +  * затронутый HTML-путь.
  
 Не повторять создание на рабочих данных для проверки потери ответа. Такой случай воспроизводят в изолированном тестовом контексте. Общие критерии — [[sharixopen:knowledge:development:acceptance|приёмка изменений]], структура данных — [[sharixopen:knowledge:domain:order_ticket|заказ и Ticket]], локальное API-расхождение — [[sharixopen:knowledge:modules:webservice_running|Webservice Running]]. Не повторять создание на рабочих данных для проверки потери ответа. Такой случай воспроизводят в изолированном тестовом контексте. Общие критерии — [[sharixopen:knowledge:development:acceptance|приёмка изменений]], структура данных — [[sharixopen:knowledge:domain:order_ticket|заказ и Ticket]], локальное API-расхождение — [[sharixopen:knowledge:modules:webservice_running|Webservice Running]].
sharixopen/knowledge/scenarios/order_create.1793439585.txt.gz · Последнее изменение: — sx_knowledge_api_open

© 2022 ShariX