bom modülü ürün ağaçlarını, yaşam döngüsü ve okuma modelleriyle (ağaç, patlatma, nerede kullanıldığı, satın alma kapsamı) ürün ağacı sürümlerini, ürün ağacı kalemlerini ve ürün ağacı şablonlarını sunar. 39 uç noktanın tamamı /api/v1/bom altındadır. İş anlamı için BOM modülü sayfasına bakın.
Grup olguları¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Temel yol | /api/v1/bom |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/bom/module.py:53 |
| Yönlendiriciler | 4 dosyada 4 yönlendirici nesnesi; Uç nokta özeti bölümünde listelenir | src/cluster_erp/modules/bom/module.py:36 |
| Uç noktalar | 39; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı |
src/cluster_erp/modules/bom/bom_items/routes.py, src/cluster_erp/modules/bom/bom_templates/routes.py, src/cluster_erp/modules/bom/bom_versions/routes.py ... |
| Kimlik doğrulama | Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar |
src/cluster_erp/modules/auth/guards.py:85-167 |
| Yetki koruması | 39 yolun 39 tanesi require_permission bildirir |
src/cluster_erp/modules/auth/guards.py:205-240 |
| Uygulama yetkilendirme kapısı | bağlanan her yönlendiricide require_app("bom") |
src/cluster_erp/modules/bom/module.py:59 |
| Hata biçimi | JSON gövdesi {"error": {...}}; bkz. Hatalar |
src/cluster_erp/server/error_handler.py:33-46 |
Uç nokta özeti¶
Alt modül klasörü başına bir satır. Yönlendirici öneki temel yola eklenir.
| Alt modül | Yönlendiriciler | Uç noktalar | Yönlendirici kaynağı |
|---|---|---|---|
boms |
router (/boms) |
6 | src/cluster_erp/modules/bom/boms/routes.py:31 |
bom_versions |
router (/bom-versions) |
15 | src/cluster_erp/modules/bom/bom_versions/routes.py:26 |
bom_items |
router (/bom-items) |
8 | src/cluster_erp/modules/bom/bom_items/routes.py:31 |
bom_templates |
router (/bom-templates) |
10 | src/cluster_erp/modules/bom/bom_templates/routes.py:29 |
Ürün ağacı başlıkları uç noktaları¶
Ürün ağacı başlık kayıtları.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/bom/boms/ |
list_boms |
bom.read |
yok | search, status, product_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/boms/routes.py:43 |
GET |
/api/v1/bom/boms/{bom_id} |
get_bom |
bom.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/bom/boms/routes.py:96 |
POST |
/api/v1/bom/boms/ |
create_bom |
bom.create |
BomCreate |
yok | BomRead |
201 |
src/cluster_erp/modules/bom/boms/routes.py:128 |
PUT |
/api/v1/bom/boms/{bom_id} |
update_bom |
bom.create |
BomUpdate |
yok | BomRead |
200 (varsayılan) | src/cluster_erp/modules/bom/boms/routes.py:140 |
DELETE |
/api/v1/bom/boms/{bom_id} |
delete_bom |
bom.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/bom/boms/routes.py:155 |
POST |
/api/v1/bom/boms/bulk-delete |
bulk_delete_boms |
bom.create |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/bom/boms/routes.py:167 |
Ürün ağacı sürümleri uç noktaları¶
Sürüm kayıtları, etkinleştirme, klonlama, yerine geçirme, şablondan kopyalama, yeniden hesaplama ve okuma modelleri: ağaç, satın alma kapsamı, patlatma, nerede kullanıldığı ve bir ürünün etkin sürümü.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/bom/bom-versions/ |
list_bom_versions |
bom.read |
yok | bom_id, status, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:29 |
GET |
/api/v1/bom/bom-versions/active-for-product/{product_id} |
active_bom_version_for_product |
bom.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:72 |
GET |
/api/v1/bom/bom-versions/{version_id} |
get_bom_version |
bom.read |
yok | yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:92 |
POST |
/api/v1/bom/bom-versions/ |
create_bom_version |
bom.create |
BomVersionCreate |
yok | BomVersionRead |
201 |
src/cluster_erp/modules/bom/bom_versions/routes.py:106 |
PUT |
/api/v1/bom/bom-versions/{version_id} |
update_bom_version |
bom.create |
BomVersionUpdate |
yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:118 |
DELETE |
/api/v1/bom/bom-versions/{version_id} |
delete_bom_version |
bom.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/bom/bom_versions/routes.py:133 |
POST |
/api/v1/bom/bom-versions/{version_id}/activate |
activate_bom_version |
bom.activate |
yok | yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:145 |
POST |
/api/v1/bom/bom-versions/{version_id}/clone |
clone_bom_version |
bom.create |
yok | yok | BomVersionRead |
201 |
src/cluster_erp/modules/bom/bom_versions/routes.py:157 |
POST |
/api/v1/bom/bom-versions/{version_id}/supersede |
supersede_bom_version |
bom.activate |
BomVersionSupersedeRequest |
yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:170 |
POST |
/api/v1/bom/bom-versions/{version_id}/copy-from-template |
copy_from_template |
bom.create |
BomVersionCopyFromTemplateRequest |
yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:187 |
POST |
/api/v1/bom/bom-versions/{version_id}/recalculate |
recalculate_bom_version |
bom.create |
yok | yok | BomVersionRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:204 |
GET |
/api/v1/bom/bom-versions/{version_id}/tree |
bom_version_tree |
bom.read |
yok | yok | BomTreeResponse |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:216 |
GET |
/api/v1/bom/bom-versions/{version_id}/purchase-coverage |
purchase_coverage_bom_version |
bom.read |
yok | lot_qty, need_date |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:227 |
GET |
/api/v1/bom/bom-versions/{version_id}/explosion |
explosion_bom_version |
bom.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:244 |
GET |
/api/v1/bom/bom-versions/{version_id}/where-used |
where_used_bom_version |
bom.read |
yok | yok | dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_versions/routes.py:292 |
Ürün ağacı kalemleri uç noktaları¶
Kalem kayıtları, kalemi ağaç içinde taşıma ve bir parçanın nerede kullanıldığı.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/bom/bom-items/ |
list_bom_items |
bom.read |
yok | bom_version_id, parent_item_id, part_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:54 |
GET |
/api/v1/bom/bom-items/where-used/{part_id} |
where_used_part |
bom.read |
yok | limit |
WhereUsedResponse |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:121 |
GET |
/api/v1/bom/bom-items/{item_id} |
get_bom_item |
bom.read |
yok | yok | BomItemRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:216 |
POST |
/api/v1/bom/bom-items/ |
create_bom_item |
bom.create |
BomItemCreate |
yok | BomItemRead |
201 |
src/cluster_erp/modules/bom/bom_items/routes.py:230 |
PUT |
/api/v1/bom/bom-items/{item_id} |
update_bom_item |
bom.create |
BomItemUpdate |
yok | BomItemRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:242 |
POST |
/api/v1/bom/bom-items/{item_id}/move |
move_bom_item |
bom.create |
BomItemMove |
yok | BomItemRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:257 |
DELETE |
/api/v1/bom/bom-items/{item_id} |
delete_bom_item |
bom.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/bom/bom_items/routes.py:278 |
POST |
/api/v1/bom/bom-items/bulk-delete |
bulk_delete_bom_items |
bom.create |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_items/routes.py:290 |
Ürün ağacı şablonları uç noktaları¶
Şablon kayıtları ve şablon kalemleri.
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/bom/bom-templates/ |
list_bom_templates |
bom.read |
yok | search, family, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:32 |
GET |
/api/v1/bom/bom-templates/items/ |
list_bom_template_items |
bom.read |
yok | template_id, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:62 |
POST |
/api/v1/bom/bom-templates/items/ |
create_bom_template_item |
bom.create |
BomTemplateItemCreate |
yok | BomTemplateItemRead |
201 |
src/cluster_erp/modules/bom/bom_templates/routes.py:104 |
PUT |
/api/v1/bom/bom-templates/items/{item_id} |
update_bom_template_item |
bom.create |
BomTemplateItemUpdate |
yok | BomTemplateItemRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:116 |
DELETE |
/api/v1/bom/bom-templates/items/{item_id} |
delete_bom_template_item |
bom.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/bom/bom_templates/routes.py:131 |
GET |
/api/v1/bom/bom-templates/{template_id} |
get_bom_template |
bom.read |
yok | yok | BomTemplateRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:143 |
POST |
/api/v1/bom/bom-templates/ |
create_bom_template |
bom.create |
BomTemplateCreate |
yok | BomTemplateRead |
201 |
src/cluster_erp/modules/bom/bom_templates/routes.py:157 |
PUT |
/api/v1/bom/bom-templates/{template_id} |
update_bom_template |
bom.create |
BomTemplateUpdate |
yok | BomTemplateRead |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:169 |
DELETE |
/api/v1/bom/bom-templates/{template_id} |
delete_bom_template |
bom.create |
yok | yok | yok | 204 |
src/cluster_erp/modules/bom/bom_templates/routes.py:184 |
POST |
/api/v1/bom/bom-templates/bulk-delete |
bulk_delete_bom_templates |
bom.create |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/bom/bom_templates/routes.py:196 |
Hata kodları¶
Tablo, src/cluster_erp/modules/bom/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.
| Kod | HTTP durumu | Atıldığı yer | İlk konum |
|---|---|---|---|
BOM_ACTIVE_VERSION_EXISTS |
400 |
bom_versions |
src/cluster_erp/modules/bom/bom_versions/services.py:439 |
BOM_ACTIVE_VERSION_LOCKED |
400 |
bom_items, bom_versions |
src/cluster_erp/modules/bom/bom_items/services.py:415 |
BOM_INVALID_QTY |
400 |
bom_items, bom_templates |
src/cluster_erp/modules/bom/bom_items/services.py:142 |
BOM_INVALID_STATUS |
400 |
bom_versions, boms |
src/cluster_erp/modules/bom/bom_versions/services.py:314 |
BOM_MAX_DEPTH_EXCEEDED |
400 |
bom_items |
src/cluster_erp/modules/bom/bom_items/services.py:174 |
BOM_TEMPLATE_EMPTY |
400 |
bom_versions |
src/cluster_erp/modules/bom/bom_versions/services.py:569 |
BOM_VERSION_EMPTY |
422 |
bom_versions |
src/cluster_erp/modules/bom/bom_versions/services.py:664 |
CONCURRENCY_VERSION_CONFLICT |
409 |
bom_items, bom_templates, bom_versions, boms |
src/cluster_erp/modules/bom/bom_items/services.py:251 |
RESOURCE_NOT_FOUND |
404 |
bom_items, bom_templates, bom_versions, boms |
src/cluster_erp/modules/bom/bom_items/routes.py:226 |
VALIDATION_ERROR |
422 |
bom_items |
src/cluster_erp/modules/bom/bom_items/services.py:118 |
Yayımlanan olaylar¶
Tablo, src/cluster_erp/modules/bom/ altındaki kodun EventBus.emit çağrısına doğrudan verdiği sözleşme sınıflarını listeler; sözdizimi ağacı taramasıyla bulundu. Önce bir değişkene kurulan olaylar sayılmaz. Sözleşmeler Sözleşmeler başvurusu sayfasında anlatılır.
| Sözleşme | Konum sayısı | İlk konum |
|---|---|---|
BomActivated |
2 | src/cluster_erp/modules/bom/bom_versions/services.py:455 |
BomDraftCreated |
3 | src/cluster_erp/modules/bom/bom_versions/services.py:256 |
BomItemChanged |
3 | src/cluster_erp/modules/bom/bom_items/services.py:226 |
BomSuperseded |
1 | src/cluster_erp/modules/bom/bom_versions/services.py:515 |
BomVersionActivated |
2 | src/cluster_erp/modules/bom/bom_versions/services.py:464 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.