Üretim (App.Production)
Menünün altındaki her dal bu dosyada bir bölümdür (module-doc:section); dosya ve bölümler ilk deploy'da otomatik açılır. module-doc:todo işaretli alt bölümleri modülü üreten kişi ya da AI doldurur (lowcode.instructions.md §0.13); MCP ile üretimde talep bu bölümler doldurulmadan Testing'e alınamaz. "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez.
Tanımlamalar (App.Production.Definitions)
1. Amaç ve kapsam
Üretimin ana verisi: iş merkezleri (verimlilik, OEE, kurulum/temizlik süresi, saatlik maliyetler, ürün kapasitesi), iş merkezi etiketleri ve operasyonlar (iş merkezi, varsayılan süre, varyant kapsamı, talimatlar). Reçeteler (App.Inventory.Bom) bu tanımları kullanır. Kullanıcılar: üretim planlama ve maliyet ekipleri. Üretim emri ve iş emri bu dalın kapsamı dışındadır.
2. Analiz ve kararlar
- Ekranlar ilk olarak
Envanter › Tanımlamalar altında üretildi (talep "Inventory -> Tanımlamalar"; analiz App.Inventory.md §2). Talep "Production menüsü" ile ayrı modüle taşındı.
- Taşıma tam modül taşımasıdır: ekran kodu
App.Inventory.* → App.Production.*, tablo öneki Inv_T_ → Prd_T_, izin grubu App.Production, modül Production; menü Üretim › Tanımlamalar (Envanter'in hemen sağı, kök sıra 7).
- Haftalık çalışma saati ayardan (
%WeeklyWorkingTimeLimit%) okunur, yoksa 40.
- Operasyonun "Varyantlara Uygula" seçenekleri Envanter'in nitelik değerlerinden (
Inv_T_AttributeValue) gelir; modüller arası bağ yalnızca lookup'tır.
3. Menü ve ekranlar
Üretim (App.Production) › Tanımlamalar (App.Production.Definitions) altında sırasıyla: İş Merkezi Etiketleri, İş Merkezleri, Operasyonlar.
Sekmeler (menüsüz alt formlar):
- İş Merkezleri › Genel Bilgi (aynı satır), Ürün Kapasitesi
- Operasyonlar › Açıklamalar
4. Veri modeli
Tüm tablolar kiracı + tam audit + soft delete, anahtar Id uniqueidentifier.
| Tablo |
İçerik |
Prd_T_WorkCenterTag |
Etiket adı, renk |
Prd_T_WorkCenter |
Ad, kod, etiketler (` |
Prd_T_WorkCenterCapacity |
İş merkezi × ürün (Inv_T_Product) kapasitesi |
Prd_T_Operation / Prd_T_OperationInstruction |
Operasyon (iş merkezi, varsayılan süre, varyantlara uygula, maliyet/süre yöntemi) ve talimatları |
5. İş kuralları ve hesaplar
- Çoklu değer alanları (Etiketler, Alternatif İş Merkezleri, Varyantlara Uygula;
dxTagBox) | ile ayrılmış metin kolonunda saklanır.
- Operasyon maliyeti reçetede hesaplanır: süre ÷ 60 × iş merkezi saatlik maliyeti (
App.Inventory.BomOverview).
- Reçete operasyonunda operasyon seçilince iş merkezi ve varsayılan süre operasyondan dolar (
App.Inventory.BomOperation).
6. Yetki ve görünürlük
İzin grubu App.Production, modül Production. Ekranların okuma yetkisi App.Production.Definitions altında; alt formların yetkisi bağlı oldukları listenin altındadır (Genel Bilgi ve Ürün Kapasitesi → App.Production.WorkCenter, Açıklamalar → App.Production.Operation). Her listede .Create/.Update/.Delete/.Export/.Import/.Note. Yetkiler hiçbir role otomatik verilmez; taşıma sonrası eski App.Inventory.* yetkileri silindiği için rollere yeniden verilmelidir. Tüm ekranlar kiracı filtrelidir.
7. Entegrasyonlar
Dış entegrasyon yok. Envanter modülü iki yönde bağlıdır: Ürün Kapasitesi ürünü, Operasyon nitelik değerlerini Envanter'den okur; Reçete Operasyonları, Reçete Bileşenleri ve Reçeteye Genel Bakış iş merkezi ve operasyonları bu modülden okur.
8. Akış örneği
- İş Merkezi Etiketleri'nde "Apre" etiketini aç.
- İş Merkezleri'nde "ram makinası"nı etiketle, Genel Bilgi sekmesinde saatlik maliyetini gir.
- Operasyonlar'da "Apre"yi ram makinası, 60 dk olarak tanımla; Açıklamalar sekmesine iş talimatını ekle.
- Envanter › Reçeteler › Operasyonlar sekmesinde "Apre"yi seç; iş merkezi ve süre dolar, Genel Bakış maliyeti hesaplar.
9. Sık sorulanlar
- Menüde ekranlar görünmüyor? Yetkiler
App.Production.* adıyla yeniden açıldı; rol ekranından verilmelidir.
- Eski iş merkezi kayıtları nerede? Veritabanı yeniden kurulmadıysa satırlar eski
Inv_T_* tablolarında kalır; yeni tablolar Prd_T_*'dır.
10. Dosyalar ve geri alma
- Tablolar:
sql/object/Prd_T_*.sql + postgres/object/Prd_T_*.sql (5 tablo).
- Wizard'lar: WorkCenterTag, WorkCenter, WorkCenterGeneral, WorkCenterCapacity, Operation, OperationInstruction (
.json).
- Demo veri aynaları:
data/App.Production.{WorkCenterTag,WorkCenter}.json.
- Geri alma: Wizard Manager'da ana ekranlar (WorkCenter, Operation) önce, alt formları sonra silinir; Envanter'in reçete ekranları bu tablolara lookup ile bağlıdır. Tablolar ancak açık onayla
dropTables ile düşürülür.
Ek — Ekran envanteri (otomatik)
Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
Tanımlamalar (App.Production.Definitions)
İş Merkezi Etiketleri — App.Production.WorkCenterTag
| Özellik |
Değer |
| Wizard |
wizard/WorkCenterTag.json |
| Yol |
Liste (Wizard) |
| Menü |
App.Production.Definitions › App.Production.WorkCenterTag (sıra 1) |
| Yetki |
App.Production.WorkCenterTag + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
İş Merkezi Etiketleri — iş merkezlerini sınıflandırmak için kullanılan etiketler (boyahane, apre, montaj…). |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_WorkCenterTag · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Widget'lar |
App.Widget.Total, App.Widget.Active, App.Widget.Passive |
| Veri aynası |
data/App.Production.WorkCenterTag.json |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Name |
Ad |
dxTextBox |
✓ |
✓ |
|
Color |
Renk |
dxColorBox |
|
✓ |
|
IsActive |
Aktif |
dxCheckBox |
✓ |
✓ |
|
İş Merkezleri — App.Production.WorkCenter
| Özellik |
Değer |
| Wizard |
wizard/WorkCenter.json |
| Yol |
Liste (Wizard) |
| Menü |
App.Production.Definitions › App.Production.WorkCenter (sıra 2) |
| Yetki |
App.Production.WorkCenter + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
İş Merkezleri — operasyonların yapıldığı makine ya da istasyonlar (ör. ram makinası). |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_WorkCenter · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alt formlar |
App.Production.WorkCenterGeneral (Id → Id), App.Production.WorkCenterCapacity (Id → WorkCenterId) |
| Widget'lar |
App.Widget.Total, App.Widget.Active, App.Widget.Passive |
| Form varsayılanları |
IsActive=true |
| Veri aynası |
data/App.Production.WorkCenter.json |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Name |
İş Merkezi Adı |
dxTextBox |
✓ |
✓ |
|
Code |
Kod |
dxTextBox |
|
✓ |
|
Tags |
Etiketler |
dxTagBox |
|
✓ |
sorgu: Prd_T_WorkCenterTag |
WeeklyWorkingHours |
Çalışma Saatleri (Haftalık) |
dxNumberBox |
✓ |
✓ |
|
AlternativeWorkCenterIds |
Alternatif İş Merkezleri |
dxTagBox |
|
✓ |
sorgu: Prd_T_WorkCenter |
IsActive |
Aktif |
dxCheckBox |
✓ |
✓ |
|
Operasyonlar — App.Production.Operation
| Özellik |
Değer |
| Wizard |
wizard/Operation.json |
| Yol |
Liste (Wizard) |
| Menü |
App.Production.Definitions › App.Production.Operation (sıra 3) |
| Yetki |
App.Production.Operation + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Operasyonlar — bir iş merkezinde yapılan üretim adımları (ör. ram makinasında Apre). |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_Operation · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alt formlar |
App.Production.OperationInstruction (Id → OperationId) |
| Widget'lar |
App.Widget.Total, App.Widget.Active, App.Widget.Passive |
| Form varsayılanları |
IsActive=true |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Name |
Operasyon Adı |
dxTextBox |
✓ |
✓ |
|
WorkCenterId |
İş Merkezi |
dxSelectBox |
✓ |
✓ |
sorgu: Prd_T_WorkCenter |
DefaultDurationMin |
Varsayılan Süre (dk) |
dxNumberBox |
✓ |
✓ |
|
ApplyOnVariants |
Varyantlara Uygula |
dxTagBox |
|
✓ |
sorgu: Inv_T_AttributeValue |
CostBasis |
Maliyete Dayalı |
dxRadioGroup |
✓ |
✓ |
liste: Actual, Theoretical |
DurationMode |
Süre Hesaplama |
dxRadioGroup |
✓ |
✓ |
liste: Fixed, Computed |
IsActive |
Aktif |
dxCheckBox |
✓ |
✓ |
|
Genel Bilgi — App.Production.WorkCenterGeneral
| Özellik |
Değer |
| Wizard |
wizard/WorkCenterGeneral.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Production.WorkCenterGeneral + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
İş Merkezi Genel Bilgi — iş merkezinin üretim ve maliyetlendirme bilgileri. |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_WorkCenter · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
TimeEfficiency |
Zaman Verimliliği (%) |
dxNumberBox |
✓ |
✓ |
|
OeeTarget |
OEE Hedefi (%) |
dxNumberBox |
✓ |
✓ |
|
SetupTimeMin |
Kurulum Zamanı (dk) |
dxNumberBox |
|
✓ |
|
CleanupTimeMin |
Temizlik Zamanı (dk) |
dxNumberBox |
|
✓ |
|
CostPerHour |
Saat Başına Maliyet (İş Merkezi) |
dxNumberBox |
|
✓ |
|
EmployeeCostPerHour |
Saat Başına Maliyet (Çalışan) |
dxNumberBox |
|
✓ |
|
Description |
Açıklama |
dxTextArea |
|
✓ |
|
Ürün Kapasitesi — App.Production.WorkCenterCapacity
| Özellik |
Değer |
| Wizard |
wizard/WorkCenterCapacity.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Production.WorkCenterCapacity + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
İş Merkezi Ürün Kapasitesi — iş merkezinin bir çevrimde bir üründen kaç birim işleyebildiği. |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_WorkCenterCapacity · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
WorkCenterId |
İş Merkezi |
dxSelectBox |
|
|
sorgu: Prd_T_WorkCenter |
ProductId |
Ürün |
dxSelectBox |
✓ |
✓ |
sorgu: Inv_T_Product |
Capacity |
Kapasite |
dxNumberBox |
✓ |
✓ |
|
UomId |
Birim |
dxSelectBox |
|
✓ |
sorgu: Adm_T_Uom |
SetupTimeMin |
Kurulum Zamanı (dk) |
dxNumberBox |
|
✓ |
|
CleanupTimeMin |
Temizlik Zamanı (dk) |
dxNumberBox |
|
✓ |
|
Açıklamalar — App.Production.OperationInstruction
| Özellik |
Değer |
| Wizard |
wizard/OperationInstruction.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Production.OperationInstruction + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Operasyon Açıklamaları — bir operasyonda operatöre gösterilen iş talimatları. |
| Geliştirme talebi |
Inventory -> Tanımlamalar |
| Kaynak |
Prd_T_OperationInstruction · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
OperationId |
Operasyon |
dxSelectBox |
|
|
sorgu: Prd_T_Operation |
Title |
Başlık |
dxTextBox |
✓ |
✓ |
|
InstructionType |
Tip |
dxSelectBox |
✓ |
✓ |
liste: Text, Pdf, Image, Link |
Reference |
Referans |
dxTextBox |
|
✓ |
|
Note |
Not |
dxTextArea |
|
✓ |
|
SortOrder |
Sıra |
dxNumberBox |
|
✓ |
|