Kullanıcı tanımlı iş kuralları ile Backoffice üzerinden, pop-up seçim (browser) ya da değer giriş formlarıyla veri giriş/seçim yapılmasından sonra, alınan değerin bir kural ile çalıştırılarak, işlem yapılmasını sağlayan kullanıcı tanımlı (etkileşimli) iş kuralı çalıştırma özelliği ürünümüze eklenmiştir.
Bu özellik, sevkiyat Planlama gibi fişlerde yoğunlukla kullanılan personel atama, peron atama, araç atama ya da öncelik belirleme gibi işlemlerin kullanıcı etkileşimli iş kurallarıyla yapılabilmesi amacıyla geliştirilmiştir.
Planlama fiş satırlarına personel atama işleminin iş kurallarıyla nasıl yapılacağının işlem adımları aşağıda sıralanmıştır.
1. Sistem işletmeni ekranından İş kuralları formu açılır.
İş kurallı çalıştırılırken hangi tip (Seçim formu, Değer giriş formu)veri giriş formunun kullanılacağı 1.
Işlem de seçilir.
Seçim Formu: Kullanıcı, Adres, Araç browserlarının popup açılıp seçim yapılmasını sağlar. Değer giriş Formu: Metin, Tam Sayı, Numeric, Tarih tipinden popup açılacak ekrandan değer girilmesini sağlar.
- Sağ tık ile kullanıcı tanımlı kural çalışltırma menü seçeneğinde görünecek kural ismi Kural Adı bölümüne yazılır. (Planlama Satır Kullanıcı Belirle)
- Kural 1. Satırında İşlem türü olarak Seçim Formu seçilir ardından Detaylar bölümünden Kullanıcı browserının açılması için "Kullanıcı" listeden seçilir. Kural Sonucu Başarılıysa tik işaretlenir.
- Scrip editörden Rule scripti açılarak bu kod parçası scripte eklenir. Browserdan seçilen değer {Actions.1.RuleResponse} içinde kuralda kullanılır.
Bu script Planlama fiş satırlarınında dönerek planlama fiş satırlarının AssignTo alanına browserdan seçilen kullanıcıyı yazar.
BeginForm(PlanlamaSatırlarıKullaniciBelirle)
Set(@userId, {Actions.1.RuleResponse})
If(@userId != "")
For(@i,1,@GridSelectList.rowCount,1)
Warehouse.Get(@[email protected])
PlanningSlip.Get(@[email protected])
If(@@PlanningSlip!="")
PlanningSlipLine.List("SlipId=@@PlanningSlip.Id", "" , @PlanningSlipLine)
For(@k,1,@PlanningSlipLine.rowCount,1)
PlanningSlipLine.Get(@[email protected])
If(@@PlanningSlipLine!="")
User.Get(@userId)
PlanningSlipLine.Save()
EndIf()
Next()
EndIf()
Next()
EndIf()
ExitForm:
Set(@test,1)
EndForm()
- Kural tanımının 2. Satırına "Ön Koşulu" 1. Eylem, "Durumu" Başarılıysa seçilerek, "İşlem Türü" Komut çalıştır olarak belirlenir. Detaylar dan PlanlamaSatirlariKullaniciBelirle seçilerek kural işletme adım tanımları tamamlanır.
- Belirlenen kuralın nerede çalışacağını belirlemek için ""Menüye Eklle" işaretlenir, Listeden kuralın nereye bağlanacağı seçilir ""Planlama Fişi"
Planlama browserında seçilen planlama'nın satırları için bu kural çalıştırılacaktır.
Bu kuralı değiştirerek planlama fiş satırlarına bağlayarakta satır bazında seçimle çalıştırmakta mümkündür.
Kural tanımlandıktan sonra Backoffice açıldığında yazılan kural, ilgili form'un sağ tık ile gelen "Kullanıcı tanımlı Kural" menü seçeneği altında görünecektir. Seçim yapılan satır için ilgili kural kullanıcı tarafından seçilerek çalıştırılır.
Planlama fişi satırlarında incele modunda öncelik belirlemek için örnek kural ;
BeginForm(PlanlamaSatirlariOncelikBelirle)
Set(@Oncelik, {Actions.1.RuleResponse})
If(@Oncelik != "")
For(@i,1,@GridSelectList.rowCount,1)
Warehouse.Get(@[email protected])
If(@@Warehouse!="")
PlanningSlip.Get(@[email protected])
PlanningSlipLine.Get(@[email protected])
If(@@PlanningSlipLine!="")
PlanningSlipLine.Set({"Priority": "@Oncelik"})
PlanningSlipLine.Save()
EndIf()
EndIf()
Next()
EndIf()
ExitForm:
Set(@test,1)
EndForm()
Planlama browserında Araç atama için örnek kural ;
BeginForm(PlanlamaAracBelirle)
Set(@VehicleId, {Actions.1.RuleResponse})
If(@VehicleId != "")
For(@i,1,@GridSelectList.rowCount,1)
Warehouse.Get(@[email protected])
If(@@Warehouse!="")
PlanningSlip.Get(@[email protected])
If(@@PlanningSlip!="")
Vehicle.Get(@VehicleId)
Warehouse.Get(@@PlanningSlip.WarehouseId)
PlanningSlip.Save()
EndIf()
EndIf()
Next()
EndIf()
ExitForm:
Set(@test,1)
EndForm()
Planlama fişi satırlarında incele modunda kullanıcı atama
BeginForm(PlanlamaSatirlariKullaniciBelirle)
Set(@userId, {Actions.1.RuleResponse})
If(@userId != "")
For(@i,1,@GridSelectList.rowCount,1)
Warehouse.Get(@[email protected])
If(@@Warehouse!="")
PlanningSlip.Get(@[email protected])
PlanningSlipLine.Get(@[email protected])
If(@@PlanningSlipLine!="")
User.Get(@userId)
PlanningSlipLine.Save()
EndIf()
EndIf()
Next()
EndIf()
ExitForm:
Set(@test,1)
EndForm()