Alan Kuralları¶
Bu kurallar, gelecekteki iş uygulaması için kabul edilmiş ürün kararlarıdır. Mevcut iskelette uygulanmamıştır — aşağıdaki tüm davranışlar Planlanan / Planned iş kurallarıdır.
Koleksiyonlar¶
| Koleksiyon | Amaç |
|---|---|
projects |
Proje/iş emri toplu belgeleri |
products |
Payload'lardan keşfedilen ürün ana verisi |
machines |
Çözümleme için kullanılan mevcut makine kataloğu |
users |
Çözümleme için kullanılan çalışan/kullanıcı kataloğu |
erp_inbound_messages |
Ham gelen istek arşivi |
Planlanan gelen uç nokta¶
text
POST /api/v1/inbound/work-orders
Bu uç nokta Planlanan / Planned olup iskelette uygulanmış sayılmamalıdır.
Payload sarmalayıcısı¶
ERP her zaman bir sarmalayıcı payload gönderir:
json
{
"projects": [
{}
]
}
- Tek bir proje bile dizi kullanır.
- Bir istek bir veya daha fazla proje içerebilir.
- Her proje bağımsız işlenir.
- Bir projenin başarısız olması diğer projelerin işlenmesini durdurmaz.
Planlanan proje sonuç durumları¶
completedcompleted_with_warningsfailed
Benzersizlik kuralları¶
Proje¶
text
company_id + organization_id + project_code
Üretim¶
production_code, aynı proje içinde benzersizdir.
Üretim aşaması¶
production_stage_code, aynı üretim içinde benzersizdir.
stage_number değişebilir; aynı aşama production_stage_code ile güncellenir.
Yeni aşama varsayılanları¶
json
{
"stage_sequential": false,
"allow_parallel_machines": true,
"employees": [],
"machines": [],
"file_urls": [],
"status": 0
}
Mevcut bir aşama güncellendiğinde mevcut status değeri korunur.
Aşama türü¶
stage_type yalnızca şunları kabul eder:
yenirevize
Değerler küçük harfe normalize edilir.
Birleştirme davranışı¶
- Gönderilmeyen proje alt kayıtları silinmez.
- Gönderilmeyen üretimler silinmez.
- Gönderilmeyen üretim aşamaları silinmez.
- Gönderilmeyen alanlar korunur.
- Gönderilen alanlar güncellenir.
- Entegrasyon mesajları POST upsert/merge mesajları olarak ele alınır.
- API oluşturma, güncelleme ve birleştirmeyi dahili olarak belirler.
Idempotency-Keyzorunludur.- Silme, normal entegrasyon istemcilerine sunulmaz.
- Silme daha sonra ayrı bir uç nokta, ayrı kapsam ve ek güvenlik gerektirecektir.
Ürünler¶
Benzersizlik kapsamı:
text
company_id + organization_id + product_code
product_name benzersiz değildir.
Zorunlu alanlar:
product_nameproduct_codeideal_cycle_timeunitcompany_idorganization_id
ideal_cycle_time kuralları:
- Birim saniyedir.
- Tam sayı olmalıdır.
- Sıfır olabilir.
- Negatif olamaz.
ERP entegrasyonu ürün status alanını kalıcı hale getirmez.
Ayrı bir ürün oluşturma uç noktası yoktur. Ürünler şuralardan keşfedilir:
productions.input_productsproductions.final_productsproduction_stages.input_productsproduction_stages.output_productsproduction_stages.machines.output_products
Tek bir proje payload'ı içinde tüm farklı ürünler benzersiz şekilde işlenir.
Aynı product_code şu alanlardan herhangi birinde çakışan değerlerle görünürse:
product_nameideal_cycle_timeunit
proje şu kodla başarısız olur:
text
PRODUCT_DATA_CONFLICT
Aynı ürün kodu için çakışan ideal_cycle_time değerleri asla kabul edilmez.
Makineler¶
machine_code, machines koleksiyonu genelinde benzersiz kabul edilir.
ERP machine_code gönderir. API şunları çözecektir:
_idmachine_namemachine_code
Makine belgesindeki geçici üretim alanları eşleştirme sırasında yok sayılır:
productsinput_productsproject_codeproject_idproject_nameproduction_codeproduction_nameproduction_stage_codeproduction_stage_namehas_active_production
Makine bulunamazsa:
- Oluşturulmaz.
- Aşama makineler listesine eklenmez.
- Proje işleme devam eder.
MACHINE_NOT_FOUNDuyarısı döner.- Proje durumu
completed_with_warningsolabilir.
Çalışanlar¶
Çalışanlar users koleksiyonundan çözümlenir.
username, koleksiyon genelinde benzersiz kabul edilir.
ERP username gönderir. API şunları çözecektir:
_idusernamefull_name
Bu alanlar proje belgesine asla kopyalanmaz:
passwordemailphonerole
Kullanıcı bulunamazsa:
- Kullanıcı oluşturulmaz.
- Kullanıcı aşama çalışanlarına eklenmez.
- Proje işleme devam eder.
EMPLOYEE_NOT_FOUNDuyarısı üretilir.
Ham arşiv¶
Her gelen istek daha sonra erp_inbound_messages içinde şu gibi alanlarla arşivlenecektir:
request_ididempotency_keyclient_idraw_payloadpayload_hashprocessing_statusvalidation_status- zaman damgaları
- oluşturulan/güncellenen/değişmeyen ID'ler
- uyarılar ve hatalar
- proje sonuç ID'leri
expires_at
Saklama süresi:
| Sınıf | Saklama |
|---|---|
| Başarılı arşiv | 180 gün |
| Başarısız / kısmi başarısız arşiv | 365 gün |
| Denetim ve kimlik doğrulama güvenlik günlükleri | 2 yıl |
Bir ürün oluşturulduktan sonra sonraki bir proje yazımı başarısız olursa ürün geri alınmaz/silinmez. Arşiv durumu partially_failed olabilir.
Kiracı kapsamı¶
Planlanan kimlik doğrulama, company_id ve organization_id değerlerini kimliği doğrulanmış istemci tanımından türetecektir. Payload bu alanları içeriyorsa, kimliği doğrulanmış istemci kapsamıyla eşleşmelidir.