Özel kaynak kısıtlamalarıyla Universal Resource Scheduling'i genişletme
Dynamics 365 Field Service ve Project Service Automation temelindeki zamanlama motoru olan Universal Resource Scheduling, iş için doğru kaynakları ayırmak üzere kapsamlı kaynak eşleştirme özellikleriyle birlikte gelir. Universal Resource Scheduling çözümü Field Service ve Project Service ile birlikte gelirken Universal Resource Scheduling ayrıca Dynamics 365'te tüm iş akışlarını zamanlamak için de kullanılabilir. Bu makalede, yerleşik kaynak kısıtlamalarının nasıl uygulanacağını ve Universal Resource Scheduling'in özel kaynak kısıtlamalarıyla nasıl özelleştirileceğini inceleyeceğiz.
Kaynaklar, Gereksinimler ve Kısıtlamalar
Kaynaklar
Universal Resource Scheduling için temel olan Kaynak (bookableresource
) varlığıdır. Ayırma (bookableresourcebooking
) kaynakları oluşturulduğunda bunlar Kaynak kaydı ile ilişkilendirilir. Universal Resource Scheduling, doğru kaynağın seçildiğinden emin olmak amacıyla kaynakları kategorilere ayırmak için kullanılacak birçok yerleşik filtre ve kısıtlama ile birlikte gelir. Örnekler şunlardır: Kaynak Türü, kaynağın Kullanıcı, İlgili Kişi, Firma, Ekipman vb. olduğunu gösterir; Özellik, kaynakları uzmanı oldukları becerilere göre filtreler; Bölge, kaynakları belirli bölgelere atar; Kuruluş Birimi, kuruluş hiyerarşisini modeller vb.
Kaynak kaydı ve bununla ilişkili kısıtlamalar, diğer varlıklar için öznitelikler veya ilişkiler üzerinden modellenir. Örneğin Ad ve Kaynak Türü, Kaynak varlığındaki öznitelikleridir. Kaynak Özellikleri ve Kaynak Bölgeleri, kaynak bunların birden fazlasıyla ilişkili olabileceğinden alt ilişkilerdir. Bu varlıklar, Kaynak VE Özellik/Bölge varlığı için alt ilişkilerdir. Kuruluş Birimi, Kuruluş Birimi varlığı için Kaynak varlığındaki bir arama özniteliğidir.
Gereksinimler
Universal Resource Scheduling'deki diğer önemli varlık, Kaynak Gereksinimi (msdyn_resourcerequirement
) varlığıdır. Gereksinim varlığı, yapılacak iş için bir gereksinim kaydeder. Bu, işin yapılacağı zaman aralığını kısıtlayan Başlangıç ve Bitiş tarihi alanları; işin tahmin edilen tamamlanma süresi için Süre alanı; gerekli işin konumunu gösteren İş Konumu gibi talep edilen iş hakkında parametreleri yakalar. Gereksinim varlığı ayrıca bu gereksinim için karşılanabilecek ve ayrılabilecek kaynakları kısıtlamak üzere kaynak kısıtlamalarını da yakalar. Kaynak varlığı gibi kaynak kısıtlamaları da Gereksinim varlığında öznitelikler veya diğer varlıklar için ilişkiler olarak ifade edilir. Bölge, işin yapılacağı bölgeyi gösterecek şekilde Gereksinim varlığından Bölge varlığına bir arama özniteliğidir ve bu nedenle aynı bölgeden kaynak bulmamız gerekir. Gereksinim Özelliği, işi tamamlamak için gerekli becerileri ifade eden Özellik varlığı için Gereksinim ile ilgili bir alt ilişkidir ve bu nedenle gereksinim yalnızca eşleşen becerilere sahip kaynaklarla eşleştirebilir.
Universal Resource Scheduling'de sağlanan kısıtlamalar
Universal Resource Scheduling ile birlikte sağlanan kısıtlamaların listesi aşağıdadır:
- Özellikler: Kaynağın sahip olduğu becerileri modellemek için kullanılabilir. Ayrıca kaynağın her beceride ne kadar uzman olduğunu derecelendirmek için isteğe bağlı derecelendirme değerlerini de destekler
- Kategoriler: Kaynaklar, kategorilerle ilişkilendirilebilir
- Bölgeler: Kaynakları bölgelere atar
- Kuruluş Birimleri: Kuruluş hiyerarşisini modeller
- Kaynak Türü: Kaynağın türünü tanımlar
- Takımlar: Kaynağın üyesi olduğu takımlardır
- Departmanlar: Kaynağın parçası olduğu departmanlardır
Zamanlama Panosu'nda filtreleme
Zamanlama Panosu, kaynakları ve bunlara atanan ayırmaların listesini gösterir. Zamanlama Panosu'ndaki Filtre paneli, kaynakların listesini kısıtlamalarına göre filtrelemenizi sağlar: ör. Kaynak Türü açılan menüsünde Kullanıcı kaynak türünü seçmek, Kullanıcı türünde olanlar için kaynak listesini filtreler. Benzer şekilde kaynakları, eşleşen özelliklere veya bölgelere göre filtreleyebilirsiniz.
Kaynakları filtrelemek için Filtre panelini kullanmak, eşleşen kaynakları bulmanın bir yöntemidir. Bu yöntem, belirli kısıtlamalar kümesiyle eşleşen kaynakların listesini el ile göstermek istediğinizde kullanılır.
Zamanlama Yardımcısı ile kullanılabilir kaynakları bulma
Zamanlama Panosu'nun alt kısmında Gereksinim kayıtlarının listesini bulursunuz. Bunlardan birini belirleyip kullanılabilirlik bulmayı seçebilirsiniz. Bu eylem Zamanlama Yardımcısı'nı açar. Zamanlama Yardımcısı, ayırmak için kullanılabilir olan eşleşen kaynakları bulmak üzere seçilen Gereksinim kaydında yakalanan kısıtlamaları kullanır. Yalnızca Gereksinimdeki kısıtlamalarla eşleşen ve Gereksinimde belirtilmiş istenen zaman aralığında kullanılabilir olan kaynaklar panoda gösterilir.
Benzer bir deneyim, Dynamics 365 liste görünümleri ve formlarındaki Gereksinim varlığında ve diğer zamanlanabilir varlıklardaki "Ayır" şerit düğmesi ile elde edilebilir. "Ayır" düğmesine tıklandığında Zamanlama Yardımcısı açılarak seçilen Gereksinim kaydının kısıtlamalarıyla eşleşen kaynakları gösterir.
Kaynakları el ile filtrelemek için Filtre panelini kullandığınız daha önce bahsedilen Zamanlama Panosu modundan farklı olarak Zamanlama Yardımcısı modunda, Filtre paneli Gereksinim kaydından kaynak kısıtlamalarını otomatik olarak doldurur ve yalnızca eşleşen kaynaklar gösterilir.
Kısıtlamaları eşleme nasıl çalışır
Kısıtlamalar varlıkları
Bazı kısıtlamalar ilişkiler üzerinden tanımlanırken bazıları doğrudan Kaynak varlığında öznitelik olarak belirtilir. Kısıtlama ikinci bir ana varlığa başvururken ilişkilere dikkat edilmesi gerekir.
Bir Kaynak kaydını ve ilişkili Bölge ve Özellik kısıtlamalarını inceleyelim.
Öncelikle ana kayıtlar. Bölge varlığında depolanan bölgelere sahibiz:
Bölge |
---|
New York |
New Jersey |
Seattle |
Ayrıca Özellik varlığında da özelliklere sahibiz:
Özellik |
---|
Proje Yöneticisi |
Tasarımcı |
Mali Analist |
Kuruluş Birimi varlığı:
Kuruluş Birimi |
---|
Contoso ABD |
Contoso AB |
Son olarak Kaynak varlığına sahibiz:
Kaynak | Kaynak Türü | Kuruluş Birimi |
---|---|---|
Jorge Galt | User | Contoso ABD |
Abraham McCormick | İlgili Kişi | Contoso AB |
Tek Kaynak kaydı, yukarıdaki Kaynak Türü ve Kuruluş Birimi gibi tek değerli kısıtlamaları yakalamaya çalışır. Kaynağı birden çok Bölge veya Özellik kaydıyla ilişkilendirmek istersek bu ilişkileri depolamak için üçüncü bir varlık olan bir çoka çok (N:N) ilişkisini kullanmamız gerekir.
Kaynak ile birden çok bölgeyi ilişkilendirmek için Kaynak Bölgesi varlığını kullanırız.
Kaynak Bölgesi Kayıtları:
Kaynak | Bölge |
---|---|
Jorge Galt | New York |
Jorge Galt | New Jersey |
Abraham McCormick | Seattle |
ve kaynak için birden çok özelliği depolamak üzere Kaynak Özelliği varlığı.
Kaynak Özelliği Kayıtları:
Kaynak | Özellik |
---|---|
Jorge Galt | Tasarımcı |
Abraham McCormick | Proje Yöneticisi |
Abraham McCormick | Mali Analist |
Kaynak ile benzer şekilde Gereksinim kaydı da tek değerli kısıtlamaları yakalar ve alt kayıtlar, çok değerli kısıtlamaları depolar.
Gereksinim varlığı aşağıdadır:
Gereksinim | Süre | Bölge |
---|---|---|
1. İş | 1 sa | New York |
2. İş | 1 sa | Seattle |
Gereksinim Özelliği varlığı:
Gereksinim Özelliği Kayıtları:
Gereksinim | Özellik |
---|---|
1. İş | Tasarımcı |
2. İş | Proje Yöneticisi |
2. İş | Mali Analist |
Bazen kaynak N:N tablosunda eşleşen öznitelikleri depolayabilirken gereksinim, arama özniteliği olarak modellenmiş bir kısıtlamaya sahip olabilir. Örneğin, Gereksinim söz konusu olduğunda Bölge kısıtlaması, Bölge varlığı için bir arama özniteliğidir. Gereksinim, bir iş isteği ile işin yapılacağı bölgeyi yakalar. Ancak Kaynak kaydı birçok Bölge kaydıyla ilişkilendirilebilir.
Kısıtlamalar özellik paketleri
Kullanıcı, Filtre panelinde değerler seçtiğinde ve Ara düğmesi seçildiğinde değerler Kaynak Eşleştirme API'sine gönderilir. Çok değerli kısıtlamalar için Filtre paneli, Bölge ve Özellik ana varlıklarından veriler gösterir ve kısıtlamalar özellik paketinde seçilen değerleri içerir.
Kısıtlamaların Kaynak Eşleştirme API'sine gönderildiği örnek özellik paketi aşağıdadır:
Ad | Value |
---|---|
ResourceType |
User |
Territories |
New York New Jersey |
Bu, New York veya New Jersey bölgeleriyle ilişkili Kullanıcı türündeki kaynakları bulacak Kaynak Eşleştirme API'sini belirtir.
Zamanlama Yardımcısı'nda, kısıtlamalar ilk olarak Gereksinim Kısıtlamalarını Al API'si üzerinden Gereksinim kaydını alır. Alınan kısıtlamalar, Filtre panelinde önceden doldurulmuştur ve Kaynak Eşleştirme API'sine gönderilir.
Gereksinim Kısıtlamalarını Al API'si, Gereksinim kaydını ve tüm ilgili alt kısıtlamaları (örneğin Gereksinim Özelliği) sorgular. Bu, seçilen Gereksinimde yakalanan tüm kaynak kısıtlamalarını ifade eden kısıtlamalar özellik paketiyle yanıt verir.
Gereksinim Kısıtlamalarını Al API'sinden gelen bir örnek yanıt aşağıdadır:
Ad | Value |
---|---|
Requirement |
2. İş |
Duration |
1 sa |
Territories |
Seattle |
Characteristics |
Proje Yöneticisi Mali Analist |
Kaynak Eşleştirme API'si kısıtlamalar özellik paketini giriş olarak alır ve eşleşen kaynakları sorgular. Eşleşen kaynaklar daha sonra Zamanlama Panosu'nda veya Zamanlama Yardımcısı'nda gösterilir.
Kaynak eşleştirme için kullanılan varlıkları özetleme
- Örnek ana varlıklar
- Bölge: Kısıtlama olarak başvurulur
- Özellik: Kısıtlama olarak başvurulur
- Kaynak: Ayırmalara atanır
- Kaynak Bölgesi: Kaynakları Bölgelerle ilişkilendirir
- Kaynak Özelliği: Kaynakları Özellikler ile ilişkilendirir
- Örnek işlem tabanlı varlıklar
- Gereksinim: İş isteği yakalar ve Bölgeye başvurur
- Gereksinim Özelliği: Gereksinimleri Özellikler ile ilişkilendirir
Kaynak eşleştirme akışlarını özetleme
El ile filtreleme. Filtre Paneli > Kaynak Eşleştirme API'si
- Kullanıcı, Filtre panelinde kısıtlamaları el ile ekler
- Kısıtlamalar Kaynak Eşleştirme API'sine gönderilir
- Kaynakların filtrelenen listesi gösterilir
Gereksinim filtreleme. Gereksinim Kısıtlamalarını Al API'si > Filtre Paneli > Kaynak Eşleştirme API'si
- Kullanıcı (Zamanlama Panosu içinden veya şeritteki Ayır düğmesinden) Gereksinim kaydı için kullanılabilirliği bulur.
- Kısıtlamalar, Gereksinim Kısıtlamalarını Al API'si üzerinden alınır ve Filtre panelinde gösterilir.
- Kısıtlamalar Kaynak Eşleştirme API'sine gönderilir
- Kaynakların filtrelenen listesi gösterilir
Universal Resource Scheduling'i özel kısıtlamalarla genişletme
Universal Resource Scheduling, özel kaynak kısıtlamalarıyla genişletilebilir. Kısıtlamaları genişletme Universal Resource Scheduling'de oluşturulanlarla aynı şekilde çalışır; Dynamics 365'te öznitelikler ve ilişkiler olarak modellenir.
Her adım için gerekli kod örneklerinin bulunduğu adım adım kılavuz Universal Resource Scheduling'i genişletme: Dile göre kaynak bulma - Adım adım kılavuz bölümünde açıklanmaktadır
Özel kısıtlamalar
Örnek senaryo olarak "dil" kullanacağız. Bir kuruluş, kaynakları konuştukları dile göre filtrelemek istemektedir. Ayrıca Gereksinim kaydında iş için gerekli dili yakalamak istemektedirler. Bu kısıtlama, yerleşik Bölge kısıtlamasına benzer bir düzen izler. Yeni bir ana varlık olan Dil, kaynağın konuşabildiği farklı dilleri depolar. Kaynak kaydı, bir çok-çok ilişkisi varlığı üzerinden birçok Dil ile ilişkilendirilebilir. Gereksinim varlığında iki yeni arama özniteliği oluşturacağız: Required Language
ve Secondary Language
. Gereksinim için kullanılabilir kaynakları bulurken yalnızca Required Language
veya Secondary Language
ile ilişkili kaynaklar gösterilir.
Burada size özel dil kısıtlamasını açıklayacağız. İlk olarak yeni Dil varlığımız vardır:
Language |
---|
İngilizce |
İspanyolca |
ve yeni Kaynak Dil çok-çok alt varlığımız:
Kaynak | Language |
---|---|
Jorge Galt | İngilizce |
Abraham McCormick | İngilizce |
Abraham McCormick | İspanyolca |
Bu gereksinimle eşleştirmek için kaynağın konuşması gereken dilleri temsil eden iki yeni öznitelik olan Gerekli Dil ve İkincil Dil özniteliklerimizin bulunduğu Gereksinim varlığı aşağıdadır:
Gereksinim | Süre | Bölge | Gerekli Dil | İkincil Dil |
---|---|---|---|---|
1. İş | 1 sa | New York | İngilizce | --- |
2. İş | 1 sa | Seattle | İspanyolca | İngilizce |
Genişletilebilirlik noktaları
Yukarıda açıklanan kaynak eşleştirme akışları bölümüne göre çalıştırılacak özel kısıtlamalarımızı düzenlememiz gereken genişletilebilirlik noktaları şunlardır:
Gereksinim Kısıtlamalarını Al API'si
API'nin yeni Gerekli Dil ve İkincil Dil özniteliklerimizi okuması gerekir, böylece kullanıcı Gereksinim için kullanılabilirlik bulduğunda yeni kısıtlamalarımız alınır.
Filtre paneli
Kullanıcı, eşleşen kaynaklar için Filtre panelinde Dil kayıtlarının listesinden seçim yapabilmelidir. Filtre paneli, Gereksinim için kullanılabilirlik bulurken Diller listesinde önceden seçilmiş Gereksinim kaydından Gerekli Dil ve İkincil Dil'i göstermelidir.
Kaynak Eşleştirme API'si
API yeni Dil kısıtlamalarını giriş olarak alır; yalnızca seçili dilleri konuşan kaynakları döndürmesi gerekir.
Genişletilebilir sorgular
Dahili olarak Kaynak Eşleştirme API'si (yukarıda birinci) ve Kaynak Eşleştirme API'si (yukarıda üçüncü) Dynamics 365'te verileri sorgulamak için FetchXML kullanır. Gereksinim Kısıtlamalarını Al API'si, Gereksinim kaydını ve alt kısıtlamalarını (örneğin Gereksinim Özelliği vb.) almak için birden çok sorgu yapar. Kaynak Eşleştirme API'si giriş olarak aktarılan kaynak kısıtlamalarına göre doğru FetchXML sorgusunu dinamik olarak oluşturur, böylece Dynamics 365'ten yalnızca belirli FetchXML kriterleriyle eşleşen Kaynak kayıtları döndürülür.
Genişletilebilir kaynak eşleştirmeyi desteklemek üzere Temmuz 2017 güncelleştirmesinde Universal Resource Scheduling için Evrensel FetchXML (UFX) sunulmuştur. UFX'in FetchXML'e eklediği iki önemli özellik: 1) Birden çok sonuç kümesi, tek UFX Sorgusu birden çok varlıktan sonuç döndürebilir ve 2) Dinamik FetchXML, UFX Sorgusu giriş verilerine göre FetchXML'i dinamik olarak oluşturabilir.
UFX ile tek sorgu, Gereksinim kaydını ve tüm alt kayıtlarını sorgulayacak şekilde oluşturulabilir. Gereksinim Kısıtlamalarını Al API'si, Gereksinimi ve alt kısıtlamalarını alacak şekilde özelleştirilebilir UFX Sorgusu yürütür. Sorgu, özel kısıtlama kayıtlarını alacak şekilde de özelleştirilebilir.
Gereksinim Kısıtlamalarını Al API'sinden döndürülen kısıtlamalar özellik paketi, giriş olarak Kaynak Eşleştirme API'sine aktarılır. API, özelleştirilebilir UFX sorgusu yürütür. UFX ile sorgu, eşleşen kaynakları bulmak üzere doğru FetchXML'i dinamik olarak oluşturmak için giriş kısıtlamalarını kullanır. Bu UFX sorgusu da yalnızca özel kısıtlamalarla eşleşen kaynakları döndürmek üzere uygun FetchXML'i oluşturmak için değiştirilebilir.
Genişletilebilir Filtre Düzeni ve Kaynak Şablonu
XML düzen tanımı üzerinden özelleştirmeyi destekleyecek şekilde Filtre paneli (yukarıda ikinci), Universal Resource Scheduling için Temmuz 2017 güncelleştirmesi ile güncelleştirilmiştir. Yeni düzen, ana varlıklardan ve tipik number
, datetime
ve checkbox
denetimlerinden gelen kayıtların listesini gösterecek şekilde açılan menü denetimlerini destekler. Düzen, kullanıcıların özel kısıtlama varlıklarından gelen kayıtları seçmesine olanak tanıyacak şekilde değiştirilebilir. Universal Resource Scheduling ile sağlananlar gibi özel kısıtlamalar daha sonra giriş olarak Kaynak Eşleştirme API'sine aktarılır.
Temmuz 2017 güncelleştirmesi ile kullanıma sunulan başka bir istemci tarafı genişletilebilirlik noktası, kaynak hücresidir. Kaynak hücresi, özelleştirilebilir Handlebars.js şablonu üzerinden işlenir. Kaynak Eşleştirme API'sinden gelen sonuçlar ,şablon için kullanıma sunulur. Bu nedenle özel veriler, Kaynak Eşleştirme API'si tarafından yürütülen sorguyu özelleştirme yoluyla kaynak hücresinde işlenebilir.
Her adım için gerekli kod örneklerinin bulunduğu adım adım kılavuz Universal Resource Scheduling'i genişletme: Dile göre kaynak bulma - Adım adım kılavuz bölümünde açıklanmaktadır
Ek notlar
- Bir zamanlanabilir varlık bir kaynak gereksinimi yerine ilişkili bir gereksinim grubu kullandığında, filtre düzeni yapılandırılamaz.
Ayrıca bkz.
Universal Resource Scheduling genişletilebilirliği sürüm notları