Aracılığıyla paylaş


Özel İş Akışı Oluşturma (Ana Veri Hizmetleri)

Şunlar için geçerlidir:Windows Azure SQL Yönetilen Örneği üzerinde SQLServer

Önemli

Sql Server 2025'te (17.x) Ana Veri Hizmetleri (MDS) kaldırıldı . SQL Server 2022 (16.x) ve önceki sürümlerde MDS'yi desteklemeye devam ediyoruz.

Ana Veri Hizmetleri, belirttiğiniz koşullara göre verileri otomatik olarak güncelleştirme ve doğrulama ve e-posta bildirimleri gönderme gibi temel iş akışı çözümleri oluşturmak için iş kurallarını kullanır. Yerleşik iş akışı eylemlerinin sağladığından daha karmaşık bir işlemeye ihtiyacınız olduğunda, özel bir iş akışı kullanın. Özel iş akışı, oluşturduğunuz bir .NET derlemesidir. İş akışı derlemeniz çağrıldığında kodunuz durumunuzun gerektirdiği eylemi gerçekleştirebilir. Örneğin, iş akışınız çok katmanlı onaylar veya karmaşık karar ağaçları gibi karmaşık olay işleme gerektiriyorsa, Ana Veri Hizmetleri'ni verileri analiz eden ve onay için nereye gönderileceğini belirleyen özel bir iş akışı başlatacak şekilde yapılandırabilirsiniz.

Özel İş Akışları nasıl işlenir?

Özel iş akışlarını işlemek için üç ana bileşen vardır: Master Data Manager web uygulaması, SQL Server MDS İş Akışı Tümleştirme Hizmeti ve iş akışı işleyicisi derlemesi. Bu bileşenler özel bir iş akışını aşağıdaki gibi işler:

  1. İş akışı başlatan bir varlığı doğrulamak için Ana Veri Yöneticisi'ni kullanırsınız.

  2. Ana Veri Yöneticisi, iş kuralı koşullarını karşılayan üyeleri Ana Veri Hizmetleri veritabanındaki bir Hizmet Aracısı kuyruğuna gönderir.

  3. SQL Server MDS İş Akışı Tümleştirme Hizmeti düzenli aralıklarla Ana Veri Hizmetleri veritabanında bir saklı yordam çağırır.

  4. Bu saklı yordam Hizmet Aracısı kuyruğundaki kayıtları bulduğunda, bunları SQL Server MDS İş Akışı Tümleştirme Hizmeti'ne döndürür.

  5. SQL Server MDS İş Akışı Tümleştirme Hizmetleri, verileri iş akışı işleyici derlemenize yönlendirir.

Uyarı

Not: SQL Server MDS İş Akışı Tümleştirme Hizmeti basit işlemleri tetiklemektedir. Özel kodunuz karmaşık işleme gerektiriyorsa, işlemenizi ayrı bir iş parçacığında veya iş akışı işleminin dışında tamamlayın.

Özel İş Akışları için Ana Veri Hizmetlerini Yapılandırma

Özel iş akışı oluşturmak için bazı özel kodlar yazılması ve iş akışı işleyicinize iş akışı verilerini geçirmek için Ana Veri Hizmetleri'nin yapılandırılması gerekir. Özel iş akışı işlemeyi etkinleştirmek için şu adımları izleyin:

  1. Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender uygulayan bir .NET derlemesi oluşturun.

  2. SQL Server MDS İş Akışı Tümleştirme Hizmeti'ne Ana Veri Hizmetleri veritabanınıza bağlanacak ve bir etiketi iş akışı işleyicinizle ilişkilendirecek şekilde yapılandırın.

  3. SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni başlatın.

  4. Ana Veri Yöneticisi'nde iş akışı işleyicinizin adıyla etiketlenmiş bir iş akışı başlatan bir iş kuralı oluşturun.

  5. İş kuralını özel iş akışınızı tetikleyen bir üyeye uygulayın.

İş Akışı İşleyici Derlemesi Oluşturma

Özel iş akışı, Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender arabirimini uygulayan bir .NET sınıf kitaplığı derlemesidir. SQL Server MDS İş Akışı Tümleştirme Hizmeti, kodunuzu çalıştırmak için Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* yöntemini çağırır. Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* uygulayan kod için bkz. Özel İş Akışı Örneği (Ana Veri Hizmetleri).

Visual Studio 2010'u kullanarak SQL Server MDS İş Akışı Tümleştirme Hizmeti'nin özel bir iş akışını işlemek için çağırabileceği bir derleme oluşturmak için şu adımları izleyin:

  1. Visual Studio 2010'da, seçtiğiniz dili kullanan yeni bir Sınıf Kitaplığı projesi oluşturun. C# Sınıf Kitaplığı oluşturmak için Visual C#\Windows proje türlerini seçin ve Sınıf Kitaplığı şablonunu seçin. Projeniz için MDSWorkflowTest gibi bir ad girin ve Tamam'a tıklayın.

  2. Microsoft.MasterDataServices.WorkflowTypeExtender.dllbaşvurusu ekleyin. Bu derleme, Yükleme klasörünüz<\Ana Veri Hizmetleri\WebApplication\bin içinde bulunabilir>.

  3. C# kod dosyanıza 'Using Microsoft.MasterDataServices.Core.Workflow;' ekleyin.

  4. Sınıf bildiriminizde Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender'dan devralın. Sınıf bildirimi şuna benzer olmalıdır: 'public class WorkflowTester : IWorkflowTypeExtender'.

  5. Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender arabirimini uygulayın. İş akışınızı başlatmak için SQL Server MDS İş Akışı Tümleştirme Hizmeti tarafından Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* yöntemi çağrılır.

  6. Derlemenizi, yükleme klasörünüz<\Master Data Services\WebApplication\bin içindeki Microsoft.MasterDataServices.Workflow.exe>adlı SQL Server MDS İş Akışı Tümleştirme Hizmeti yürütülebilir dosyasının konumuna kopyalayın.

SQL Server MDS İş Akışı Tümleştirme Hizmetini Yapılandırma

Ana Veri Hizmetleri yapılandırma dosyasını, Ana Veri Hizmetleri veritabanınızın bağlantı bilgilerini içerecek ve aşağıdaki adımları izleyerek bir etiketi iş akışı işleyici derlemenizle ilişkilendirecek şekilde düzenleyin:

  1. yükleme klasörünüz<\Ana Veri Hizmetleri\WebApplication\bin konumunda Microsoft.MasterDataServices.Workflow.exe.config >bulun.

  2. Ana Veri Hizmetleri veritabanı bağlantı bilgilerini "ConnectionString" ayarına ekleyin. SQL Server yüklemeniz büyük/küçük harfe duyarlı harmanlama kullanıyorsa, veritabanının adı veritabanındakiyle aynı şekilde girilmelidir. Örneğin, ayar etiketinin tamamı aşağıdaki gibi görünebilir:

    <setting name="ConnectionString" serializeAs="String">  
        <value>Server=myServer;Database=myDatabase;Integrated Security=True</value>  
    </setting>  
    
  3. "ConnectionString" ayarının altına bir etiket adını iş akışı işleyici derlemenizle ilişkilendirmek için bir "WorkflowTypeExtenders" ayarı ekleyin. Örneğin:

    <setting name="WorkflowTypeExtenders" serializeAs="String">  
        <value>TEST=MDSWorkflowTestLib.WorkflowTester, MDSWorkflowTestLib</value>  
    </setting>  
    

    Değer etiketinin <iç metni workflow tag>=<assembly-qualified iş akışı türü adı> biçimindedir<.> <İş akışı etiketi> , Ana Veri Yöneticisi'nde bir iş kuralı oluşturduğunuzda iş akışı işleyici derlemesini tanımlamak için kullandığınız bir addır. <derleme nitelikli iş akışı türü adı> , iş akışı sınıfınızın ad alanı nitelenmiş adı, ardından virgül ve ardından derlemenin görünen adıdır. Derlemeniz kesin olarak adlandırılmışsa, sürüm bilgilerini ve PublicKeyToken'ini de eklemeniz gerekir. Farklı iş akışı türleri için birden çok <iş akışı işleyicisi oluşturduysanız, birden çok ayar> etiketi ekleyebilirsiniz.

Uyarı

Sunucunuzun yapılandırmasına bağlı olarak, Microsoft.MasterDataServices.Workflow.exe.config dosyasını kaydetmeye çalıştığınızda "Erişim reddedildi" hatasıyla karşılaşabilirsiniz. Bu durumda, sunucuda Kullanıcı Hesabı Denetimi'ni (UAC) geçici olarak devre dışı bırakın. Bunu yapmak için Denetim Masası'nı açın , Sistem ve Güvenlik'e tıklayın. İşlem Merkezi'nin altında Kullanıcı Hesabı Denetim Ayarlarını Değiştir'e tıklayın. Kullanıcı Hesabı Denetim Ayarları iletişim kutusunda, size hiçbir zaman bildirimde bulunılmaması için çubuğu en alta kaydırın. Bilgisayarınızı yeniden başlatın ve yapılandırma dosyanızı düzenlemek için önceki adımları yineleyin. Dosyayı kaydettikten sonra UAC ayarlarınızı varsayılan düzeye sıfırlayın.

SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni başlatma

Varsayılan olarak, SQL Server MDS İş Akışı Tümleştirme Hizmeti yüklü değildir. Hizmeti kullanılabilmesi için önce yüklemeniz gerekir. En yüksek güvenlik için hizmet için yerel bir kullanıcı oluşturun ve bu kullanıcıya yalnızca iş akışı işlemlerini gerçekleştirmek için gereken izinleri verin. Kullanıcı oluşturmak, hizmeti yüklemek ve hizmeti başlatmak için şu adımları izleyin:

  1. Örneğin, mds_workflow_service adlı bir yerel kullanıcı oluşturmak için Yerel Kullanıcılar ve Gruplar yöneticisini kullanın.

  2. [mdm] mds_workflow_service kullanıcısına yürütme izni vermek için SQL Server Management Studio'yu kullanın. [udpExternalActionsGet] saklı yordamı. Bunu yapmak için mds_workflow_service hesabı için yeni bir oturum açma hesabı oluşturun, Ana Veri Hizmetleri veritabanında yeni bir kullanıcı oluşturun, bu kullanıcıyı mds_workflow_service oturum açma bilgileriyle eşleyin ve kullanıcıya [mdm] için EXECUTE izni verin. [udpExternalActionsGet] saklı yordamı.

  3. mds_workflow_service kullanıcısına iş akışı işleyici derlemesini yürütme izni verin. Bunu yapmak için mds_workflow_service kullanıcıyı iş akışı işleyici derlemesinin Özelliklersekmesine ekleyin ve mds_workflow_service kullanıcıya OKUMA ve YÜRÜTME izni verin.

  4. mds_workflow_service kullanıcısına SQL Server MDS İş Akışı Tümleştirme Hizmeti yürütülebilir dosyasını yürütme izni verin. Bunu yapmak için, mds_workflow_service kullanıcıyı yükleme klasörünüz\Ana Veri Hizmetleri\WebApplication\bin içindeki Microsoft.MasterDataServices.Workflow.exe<> sekmesine ekleyin ve mds_workflow_service kullanıcıya OKUMA ve YÜRÜTME izni verin.

  5. InstallUtil.exeadlı .NET yükleme yardımcı programını kullanarak SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni yükleyin. InstallUtil.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\ gibi .NET yükleme klasöründe bulunabilir. Yükseltilmiş bir komut istemine aşağıdakileri girerek SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni yükleyin:

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Microsoft.MasterDataServices.Workflow.exe  
    

    Yükleme sırasında istendiğinde mds_workflow_service kullanıcıyı belirtin.

  6. Hizmetler ek bileşenini kullanarak SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni başlatın. Bunu yapmak için, Hizmetler ek bileşeninde SQL Server MDS İş Akışı Tümleştirme Hizmeti'ni bulun, seçin ve Başlat bağlantısına tıklayın.

İş Akışı İş Kuralı Oluşturma

Uygulandığında iş akışını başlatacak bir iş kuralı oluşturmak ve yayımlamak için Ana Veri Yöneticisi'ni kullanın. İş kuralınızın öznitelik değerlerini değiştiren eylemler içerdiğinden emin olmanız gerekir, böylece kural bir kez uygulandıktan sonra false olarak değerlendirilir. Örneğin, bir Price öznitelik değeri 500'den büyük olduğunda ve Approved öznitelik değeri boş olduğunda iş kuralınız true olarak değerlendirebilir. Kural daha sonra iki eylem içerebilir: Biri Onaylandı öznitelik değerini Beklemede olarak, diğeri de iş akışını başlatmak için. Alternatif olarak, "değişti" koşulunu kullanan bir kural oluşturmak ve özniteliklerinizi izleme gruplarını değiştirmek için eklemek isteyebilirsiniz. İş kuralları hakkında daha fazla bilgi için bkz. İş Kuralları (Ana Veri Hizmetleri).

Aşağıdaki adımları izleyerek Ana Veri Yöneticisi'nde özel bir iş akışı başlatan bir iş kuralı oluşturun:

  1. Ana Veri Yöneticisi'nin iş kuralı düzenleyicisinde, iş kuralınızın koşullarını belirttikten sonra, İş Akışını Başlat eylemini Dış eylemler listesinden O ZAMAN bölmesinin Eylem etiketine sürükleyin.

  2. Eylemi Düzenle bölmesindeki İş Akışı türü kutusuna iş akışı işleyici derlemenizi tanımlayan etiketi yazın. Bu, derlemenizin yapılandırma dosyasında belirttiğiniz etikettir( örneğin, TEST).

  3. İsteğe bağlı olarak Üye verilerini ekle onay kutusunu seçin. İş akışı işleyicisine geçirilen XML'de öznitelik adlarını ve değerlerini eklemek için bunu seçin.

  4. İş akışı sitesi kutusuna bir web sitesinin adını yazın. Özel iş akışınız için bu geçerli olmayabilir, ancak eklenen bağlam için kullanılabilir.

  5. İş akışı adı kutusuna Visual Studio'dan iş akışınızın adını yazın. Özel iş akışınız için bu geçerli olmayabilir, ancak eklenen bağlam için kullanılabilir.

  6. İş kuralını kaydedin ve yayımlayın.

İş Akışı Başlatmak için İş Kuralları Uygulama

İş akışını başlatmak için verilerinize iş kuralı uygulayın. Bunu yapmak için Master Data Manager'ı kullanarak doğrulamak istediğiniz üyeleri içeren varlığı düzenleyin. İş kurallarını uygula'ya tıklayın. İş kuralına yanıt olarak Ana Veri Yöneticisi, Ana Veri Hizmetleri veritabanının Hizmet Aracısı kuyruğuna doldurur. SQL Server MDS İş Akışı Tümleştirme Hizmeti kuyruğu denetlediğinde, verileri belirtilen iş akışı işleyici derlemesine gönderir ve kuyruğu temizler. İş akışı işleyicisi derlemesi, kodladığınız eylemleri gerçekleştirir.

Özel İş Akışları sorunlarını giderme

İş akışı işleyicisi derlemeniz veri almıyorsa SQL Server MDS İş Akışı Tümleştirme Hizmeti'nin hatalarını ayıklamayı veya Hizmet Aracısı kuyruğunun görüntülenmesini deneyebilirsiniz.

SQL Server MDS İş Akışı Tümleştirme Hizmeti'nin Hatalarını Ayıklama

SQL Server İş Akışı Tümleştirme Hizmeti'nin hatalarını ayıklamak için aşağıdaki adımları izleyin:

  1. Hizmeti durdurmak için Hizmetler ek bileşenini kullanın.

  2. Bir komut istemi açın, hizmetin konumuna gidin ve şu komutu girerek hizmeti konsol modunda çalıştırın: Microsoft.MasterDataServices.Workflow.exe -console.

  3. Ana Veri Yöneticisi'nde üyenizi güncelleştirin ve iş kurallarını yeniden uygulayın. Ayrıntılı günlükler konsol penceresinde görüntülenir.

Hizmet Aracısı Kuyruğu'nı görüntüleme

İş akışının parçası olarak geçirilen ana verileri içeren Hizmet Aracısı kuyruğu: mdm.microsoft/mdm/queue/externalaction. Kuyruklar, SQL Management Studio'nun Nesne Gezgini'nde Ana Veri Hizmetleri veritabanının Hizmet Aracısı düğümü altında bulunabilir. Hizmet kuyruğu düzgün temizlediyse bu kuyruğun boş olacağını unutmayın.

Ayrıca Bkz.

Özel İş Akışı Örneği (Ana Veri Hizmetleri)
Özel İş Akışı XML Açıklaması (Ana Veri Hizmetleri)