Aracılığıyla paylaş


Universal Resource Scheduling'i özel kaynak kısıtlamalarıyla genişletin

Dynamics 365 Field Service ve Project Service Automation'ın temelini oluşturan zamanlama altyapısı olan Universal Resource Scheduling, bir iş için doğru kaynakları ayırmak için kapsamlı kaynak eşleştirme yetenekleriyle birlikte gelir. Universal Resource Scheduling çözümü Field ve Project servisiyle birlikte gelirken, Universal Resource Scheduling Dynamics 365'teki herhangi bir iş akışını zamanlamak için de kullanılabilir. Bu makalede, yerleşik kaynak kısıtlamalarının nasıl uygulandığına ve Evrensel Kaynak Zamanlaması'nın özel kaynak kısıtlamalarıyla nasıl özelleştirileceğine göz atacağız.

Kaynaklar, Gereksinimler ve Kısıtlamalar

Kaynaklar

Universal Resource Scheduling'in çekirdeği Kaynak (bookableresource) varlığıdır. Ayırma (bookableresourcebooking) kaynakları oluşturulduğunda bunlar Kaynak kaydı ile ilişkilendirilir. Doğru kaynağın seçildiğinden emin olmak için, Universal Resource Scheduling kaynakları kategorilere ayırmak için birçok yerleşik filtre ve kısıtlama ile birlikte gelir. Örnekler şunlardır: Kaynağın bir Kullanıcı, İlgili Kişi, Hesap, Ekipman vb. olup olmadığını belirten Kaynak Türü, Özellik, kaynakları yetkin oldukları becerilere göre filtrelemek için, Bölge, kaynakları belirli bölgelere atamak için, bir organizasyon hiyerarşisini modellemek için Organizasyon Birimi ve çok daha fazlası.

Bir Kaynak kaydı ve ilişkili kısıtlamaları, öznitelikler veya diğer varlıklarla olan ilişkiler aracılığıyla modellenir. Örneğin, Ad ve Kaynak Türü, Kaynak varlığındaki özniteliklerdir. 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 bir diğer önemli varlık da Kaynak Gereksinimi (msdyn_resourcerequirement) varlığıdır. Gereksinim varlığı, yapılacak iş için bir gereksinim kaydeder. Başlangıç ve Bitiş tarihi alanları gibi talep edilen işle ilgili parametreleri yakalayarak işin yapılabileceği zaman dilimini kısıtlar; işin ne kadar sürmesinin beklendiğini belirten Süre alanı; Gerekli işin yerini gösteren Çalışma Yeri. Gereksinim varlığı, kaynak sınırlamaları kayda alarak bu gereksinimi hangi kaynakların karşılayabileceğini ve ayrılabileceğini kısıtlar. Kaynak varlığı gibi, kaynak kısıtlamaları da Gereksinim varlığındaki öznitelikler veya diğer varlıklarla 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 Karakteristiği, işi tamamlamak için gereken becerileri ifade eden Gereksinim ile Karakteristik varlık arasında bir alt ilişkidir ve bu nedenle gereksinim yalnızca eşleşen becerilere sahip kaynaklarla eşleştirilebilir.

Universal Resource Scheduling'de yer alan kısıtlamalar

Universal Resource Scheduling ile birlikte gelen kısıtlamaların listesi aşağıdadır:

  • Özellikler - Bir kaynağın sahip olduğu becerileri modellemek için kullanılabilir. Ayrıca, bir kaynağın her beceride ne kadar yetkin olduğunu derecelendirmek için isteğe bağlı derecelendirme değerlerini de destekler
  • Kategoriler - Kaynaklar kategorilerle ilişkilendirilebilir
  • Bölgeler - Kaynakları bölgesel bölgelere atamak için
  • Kuruluş Birimleri - Bir kuruluş hiyerarşisi modellemek için
  • Kaynak Türü - Kaynağın türünü tanımlar
  • Takımlar - Bir kaynağın üyesi olduğu takımlar
  • Departmanlar - Kaynağın hangi departmana ait olduğu

Zamanlama Panosu'nda Filtreleme

Zamanlama Panosu, kaynakların listesini ve bunlara atanan ayırmaları gösterir. Zamanlama Panosu'ndaki Filtre paneli, kaynak listesini kısıtlamalarına göre filtrelemenize olanak tanır; örneğin, Kaynak Türü açılır menüsünde Kullanıcı kaynak türünü seçtiğinizde, kaynak listesi Kullanıcı türündekilere göre filtrelenir. 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 bir kısıtlama 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 bir listesini bulacaksınız. Bunlardan birini seçebilir ve müsaitlik durumunu bulmayı seçebilirsiniz. Bu eylem Zamanlama Yardımcısı'nı açar. Zamanlama Yardımcısı, rezerve edilmek üzere uygun olan eşleşen kaynakları bulmak için seçilen Gereksinim kaydında yakalanan kısıtlamaları kullanır. Yalnızca Gereksinim üzerindeki kısıtlamalara uyan ve Gereksinim üzerinde belirtilen istenen zaman diliminde mevcut olan kaynaklar panoda gösterilir.

Benzer bir deneyim, Dynamics 365 liste görünümlerinde veya formlarında Gereksinim varlığı ve diğer zamanlanabilir varlıklarda bulunan bir "Rezerve Et" şerit düğmesi aracılığıyla kullanılabilir. "Kitap" tıklandığında, seçilen Gereksinim kaydının kısıtlamalarıyla eşleşen kaynakları gösteren Zamanlama Yardımcısı açılır.

Kaynakları manuel olarak 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ındaki kaynak kısıtlamalarını otomatik olarak doldurur ve yalnızca eşleşen kaynaklar gösterilir.

Kısıtlama eşleştirme nasıl çalışır?

Kısıtlamalar varlıkları

Bazı kısıtlamalar doğrudan Kaynak varlığında öznitelik olarak belirtilirken, diğerleri ilişkiler aracılığıyla tanımlanır. Bir kısıtlama ikinci bir ana varlığa başvurduğunda ilişkilere ihtiyaç vardır.

Bir Kaynak kaydını ve bununla ilişkili Bölge ve Karakteristik kısıtlamalarını ele alalım.

Öncelikle ana kayıtlar. Bölge varlığında depolanan bölgelere sahibiz:

Bölge
New York
New Jersey
Seattle

Karakteristik varlıkta da özelliklerimiz var:

Karakteristik
Proje Yöneticisi
Tasarımcı
Finansal Analist

Kuruluş Birimi varlığı:

Kuruluş Birimi
Contoso ABD
Contoso AB

Son olarak Kaynak varlığına sahibiz:

Kaynak Kaynak Türü Kuruluş Birimi
Jorge Galt Kullanıcı Contoso ABD
İbrahim McCormick İletişim Contoso AB

Tek bir Kaynak kaydı, yukarıdaki Kaynak Türü ve Kuruluş Birimi gibi tek değerli kısıtlamaları yakalamak için çalışır. Bir Kaynağı birden çok Bölge veya Özellik kaydıyla ilişkilendirmek istiyorsak, bu ilişkilendirmeleri depolamak için üçüncü bir varlık, çoka çok (N:N) ilişkisi kullanmalıyız.

Bir kaynak için birden çok bölgeyi ilişkilendirmek üzere Kaynak Bölgesi varlığını kullanırız.

Kaynak Bölgesi Kayıtları:

Kaynak Bölge
Jorge Galt New York
Jorge Galt New Jersey
İbrahim McCormick Seattle

ve kaynak için birden çok özelliği depolamak üzere Kaynak Özelliği varlığı.

Kaynak Karakteristik Kayıtları:

Kaynak Karakteristik
Jorge Galt Tasarımcı
İbrahim McCormick Proje Yöneticisi
İbrahim McCormick Finansal 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ığı şu şekildedir:

Gereksinim Süre Bölge
1. İş 1 sa New York
2. İş 1 sa Seattle

Gereksinim Özelliği varlığı:

Gereksinim Özelliği Kayıtları:

Gereksinim Karakteristik
1. İş Tasarımcı
2. İş Proje Yöneticisi
2. İş Finansal Analist

Bazen, gereksinim bir arama özniteliği olarak modellenmiş bir kısıtlamaya sahip olabilirken, kaynak eşleşen öznitelikleri N:N tablosunda depolayabilir. Örneğin, Gereksinim için Bölge kısıtlaması, Bölge varlığına yönelik bir arama özniteliğidir. Gereksinim, iş talebini ve işin yapılacağı bölgeyi yakalar. Bununla birlikte, bir Kaynak kaydı birçok Bölge kaydıyla ilişkilendirilebilir.

Kısıtlamalar özellik paketleri

Kullanıcı, Filtre panelindeki değerleri ve Ara düğmesini seçtiğinde, değerler Kaynak Eşleştirme API'sine gönderilir. Birden çok değerli kısıtlamalar için, Filtre paneli Territory ve Characteristic ana varlıklarından gelen verileri gösterir ve seçilen değerleri constraints özellik paketine dahil eder.

Kaynak Eşleştirme API'sine gönderilen kısıtlamaları içeren örnek bir özellik paketi aşağıda verilmiştir:

İsim Değer
ResourceType Kullanıcı
Territories New York
New Jersey

Bu, Kaynak Eşleştirme API'sine New York veya New Jersey bölgeleriyle ilişkili Kullanıcı türündeki kaynakları bulmasını söyler.

Zamanlama Yardımcısı'ndayken, kısıtlamalar ilk olarak Gereksinim Kısıtlamalarını Al API'si aracılığıyla bir Gereksinim kaydından alınır. Alınan kısıtlamalar daha sonra Filtre panelinde önceden doldurulur ve Kaynak Eşleştirme API'sine gönderilir.

Gereksinim Kısıtlamalarını Al API'si, Gereksinim kaydını ve ilgili tüm alt kısıtlamaları (örneğin, Gereksinim Karakteristiği) sorgular. Seçilen Gereksinimde yakalanan tüm kaynak kısıtlamalarını ifade eden bir kısıtlamalar özellik paketiyle yanıt verir.

Gereksinim Kısıtlamalarını Al API'sinden örnek bir yanıt aşağıda verilmiştir:

İsim Değer
Requirement 2. İş
Duration 1 sa
Territories Seattle
Characteristics Proje Yöneticisi
Finansal Analist

Kaynak Eşleştirme API'si, constraints özellik paketini ve eşleşen kaynaklar için sorguları giriş olarak alır. 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 - Bir sınırlama olarak referans alınır
    • Karakteristik - Kısıtlama olarak başvurulur
    • Kaynak: Ayırmalara atanır
    • Kaynak Bölgesi - Kaynakları Bölgelerle İlişkilendirir
    • Kaynak karakteristiği - kaynakları özelliklerle ilişkilendirir
  • Örnek işlem varlıkları
    • Gereksinim - İş talebini kaydeder ve Bölgeyi referans alır
    • Gereksinim karakteristiği - gereksinimleri özelliklerle ilişkilendirir

Kaynak eşleştirme akışlarını özetleme

  • Manuel filtreleme. Filtre Paneli > Kaynak Eşleştirme API'si

    1. Kullanıcı, Filtre paneline manuel olarak kısıtlamalar ekler
    2. Kısıtlamalar Kaynak Eşleştirme API'sine gönderilir
    3. Filtrelenmiş kaynak listesi gösterilir
  • Gereksinimlerin filtrelenmesi. Gereksinim Kısıtlamalarını Al API'si > Filtre Paneli > Kaynak Eşleştirme API'si

    1. Kullanıcı bir Gereksinim kaydı için kullanılabilirlik bulur (Zamanlama Panosu'ndan veya şeritteki Kitap düğmesinden).
    2. Kısıtlamalar, Gereksinim Kısıtlamalarını Al API'si aracılığıyla alınır ve Filtre panelinde gösterilir.
    3. Kısıtlamalar Kaynak Eşleştirme API'sine gönderilir
    4. Filtrelenmiş kaynak listesi gösterilir

Universal Resource Scheduling'i özel kısıtlamalarla genişletme

Evrensel Kaynak Zamanlaması, özel kaynak kısıtlamalarıyla genişletilebilir. Genişletme kısıtlamaları, Universal Resource Scheduling'de yerleşik olanlarla aynı şekilde çalışır, bunlar Dynamics 365'te öznitelikler ve ilişkiler olarak modellenir.

Her adım için gereken kod örneklerini içeren adım adım kılavuz, Universal Resource Scheduling'i Genişletme: Dilleri için kaynak bulma - adım adım kılavuz bölümünde açıklanmıştır

Özel kısıtlamalar

Örnek bir senaryo olarak "dil" kullanacağız. Bir kuruluş, kaynakları konuştukları dile göre filtrelemek istiyor. Ayrıca, bir iş için gereken dili Gereksinim kaydında yakalamak istiyorlar. Bu kısıtlama, yerleşik Bölge kısıtlamasına benzer bir model izler. Yeni bir ana varlık Dil, bir kaynağın konuşabileceğ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. Bir gereksinim için kullanılabilir kaynakları bulurken, yalnızca Required Language veya Secondary Language ile ilişkili olan kaynaklar gösterilir.

Burada, özel dil kısıtlamasını açıklayacağız. İlk olarak, yeni Dil varlığımız var:

Dil
İngilizce
İspanyolca

ve yeni Kaynak Dil çok-çok alt varlığımız:

Kaynak Dil
Jorge Galt İngilizce
İbrahim McCormick İngilizce
İbrahim McCormick İspanyolca

Kaynağın bu gereksinimle eşleşmesi için konuşması gereken dilleri temsil eden Gerekli Dil ve İkincil Dil olmak üzere iki yeni özniteliğimize sahip Gereksinim varlığı aşağıda verilmiştir:

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ına bağlı olarak, özel kısıtlamalarımızın çalışması için değiştirmemiz gereken genişletilebilirlik noktaları şunlardır:

  1. Gereksinim Kısıtlamaları API'sini Al

    API'nin yeni Gerekli Dil ve İkincil Dil özelliklerimizi okuması gerekir, böylece bir kullanıcı bir Gereksinim için kullanılabilirlik bulduğunda yeni kısıtlamalarımız alınır.

  2. Filtre paneli

    Kullanıcı, eşleşen kaynakları filtrelemek için Filtre panelindeki Dil kayıtları listesinden seçim yapabilmelidir. Bir Gereksinim için kullanılabilirlik bulurken, Filtre paneli, Diller listesinde önceden seçilmiş Gereksinim kaydından Gerekli Dili ve İkincil Dili göstermelidir.

  3. Kaynak Eşleştirme API'si

    API, yeni Dil kısıtlamalarını girdi olarak alacaktır; Yalnızca seçili dilleri konuşan kaynakları döndürmesi gerekir.

Genişletilebilir sorgular

Dahili olarak, Gereksinim Kısıtlamalarını Al API'si (yukarıda #1) ve Kaynak Eşleştirme API'si (yukarıda #3), Dynamics 365'ten veri sorgulamak için FetchXML'i kullanır. Gereksinim Kısıtlamalarını Al API'si, Gereksinim kaydını ve alt kısıtlamalarını (örneğin, Gereksinim Karakteristiği vb.) almak için birden çok sorgu yayınlar. Kaynak Eşleştirme API'si, kendisine girdi olarak geçirilen kaynak kısıtlamalarına bağlı olarak, Dynamics 365'ten yalnızca belirtilen FetchXML ölçütleriyle eşleşen Kaynak kayıtlarının döndürülmesi için doğru FetchXML sorgusunu dinamik olarak oluşturur.

Temmuz 2017'de Universal Resource Scheduling güncelleştirmesinde, genişletilebilir kaynak eşleştirmeyi desteklemek için Universal FetchXML (UFX) kullanıma sunulmuştur. UFX'in FetchXML'e eklediği iki önemli özellik şunlardır: 1) Birden çok sonuç kümesi, tek bir UFX Sorgusu birden fazla varlıktan sonuç döndürebilir ve 2) Dinamik FetchXML, bir UFX Sorgusu, girdi verilerine dayalı olarak dinamik olarak FetchXML oluşturabilir.

UFX ile, bir Gereksinim kaydını ve tüm alt kayıtlarını sorgulamak için tek bir sorgu oluşturulabilir. Gereksinim Kısıtlamalarını Al API'si, bir Gereksinimi ve alt kısıtlamalarını almak için özelleştirilebilir bir UFX Sorgusu yürütür. Sorgu, özel kısıtlama kayıtlarını da alacak şekilde ö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 bir UFX sorgusu yürütür. UFX ile sorgu, eşleşen kaynakları bulmak için 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 için uygun FetchXML'i oluşturacak şekilde değiştirilebilir.

Genişletilebilir Filtre Düzeni ve Kaynak Şablonu

Universal Resource Scheduling için Temmuz 2017 güncelleştirmesinde, Filtre paneli (yukarıdaki #2) bir XML düzen tanımı aracılığıyla özelleştirmeyi destekleyecek şekilde güncelleştirildi. 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 kayıt seçmesine izin verecek şekilde değiştirilebilir. Universal Resource Scheduling ile gönderilenler gibi özel kısıtlamalar daha sonra Kaynak Eşleştirme API'sine giriş olarak geçirilir.

Temmuz 2017 güncelleştirmesinde kullanıma sunulan bir diğer istemci tarafı genişletilebilirlik noktası da kaynak hücresidir. Kaynak hücresi, özelleştirilebilir Handlebars.js şablonu üzerinden işlenir. Kaynak Eşleştirme API'sinden elde edilen sonuçlar şablonda kullanılabilir hale getirilir. Bu nedenle, Kaynak Eşleştirme API'si tarafından yürütülen sorguyu özelleştirerek, kaynak hücresinde özel veriler işlenebilir.

Her adım için gereken kod örneklerini içeren adım adım kılavuz, Universal Resource Scheduling'i Genişletme: Dilleri için kaynak bulma - adım adım kılavuz bölümünde açıklanmıştır

Ek notlar

  • Zamanlanabilir bir varlık kaynak gereksinimi yerine ilişkili bir gereksinim grubu kullandığında filtre düzeni şu anda yapılandırılamaz.

Ayrıca bakınız

Evrensel Fetch XML

Universal Resource Scheduling genişletilebilirlik sürüm notları