Açıklama:
Bir sürecin başlatılmasına rağmen Emakinde dashboard raporlarında görünmediği durumlarda veritabanından ilgili süreçleri hızlı bir şekilde kontrol edebilmek için form datası ile birlikte çekmemiz işleri kolaylaştıracaktır.
Yöntem:
Aşağıdaki sorgunun ProcessVersionId'sini ve Start alanını değiştirerek aranan sürece uygun hale getirebilirsiniz.
SELECT inst.ProcessVersionId, inst.Number, inst.Start, inst.State, inst.AgentState, workit.DataId, fd.Graph FROM wInstances as inst INNER JOIN wWorkItems as workit ON inst.InitiatorWorkItemId = workit.Id INNER JOIN wFormData as fd ON workit.DataId = fd.Id WHERE inst.ProcessVersionId='3E05F2DF-862B-40C7-8C90-F21AACB74B2E' AND inst.Start>='2015-10-05 00:00:51.5356284 +03:00' ORDER BY inst.Start DESC
Tabloda Xml tipinde veri tutan bir sütun varsa ve bu veri üzerindeki bir değere göre kontrol yapmak ya da sadece bu xml içindeki belirli bir node'u da sonuçlar arasında göstermek isterseniz aşağıdaki şekilde bir sorgu kullanabilirsiniz:
SELECT inst.ProcessVersionId, inst.Number, inst.Start, workit.DataId, fd.Graph, fd.Graph.query('form/InternetTransferleri/Transfer/KaynakHesap/Tutar , form/Transfer/KaynakHesap/Tutar') as ParaTutari FROM wInstances as inst INNER JOIN wWorkItems as workit ON inst.InitiatorWorkItemId = workit.Id INNER JOIN wFormData as fd ON workit.DataId = fd.Id WHERE inst.ProcessVersionId IN (SELECT Id FROM wVersions WHERE ProcessId = '0bb248b2-f6a0-4ba5-87b1-a77ff2ccac2e') AND inst.Start>='2016-09-07 00:00:51.5356284 +03:00' ORDER BY inst.Start DESC
FormData tablosundaki Xml alanında (Graph) arama yapmak için aşağıdaki sorguyu kullanabilirsiniz:
SELECT TOP 1000 fd.[Id] ,[Graph] ,[Repository] ,[CollectionId] ,wi.Id as workItemId FROM [ALTIKARE].[dbo].[wFormData] fd JOIN wWorkItems wi ON fd.Id = wi.DataId JOIN wInstances ins ON ins.Id = wi.InstanceId WHERE ins.ProcessVersionId IN (SELECT Id FROM wVersions WHERE ProcessId = '536904d8-5e5a-4831-b190-584924392d7c') AND Graph.value('(//General/FormNo)[1]', 'varchar(max)') = '249334'
value fonksiyonu ilk parametre olarak karşılaştırma yapılacak olan node'un xpath'ini alır, ikinci parametre ise bu değerin hangi tipteki değerle karşılaştırılacağını belirtir.
select Graph.query('//Identities/Identity/Id'), * from wFormData where ID IN (select DISTINCT wi.DataId from wWorkItems wi inner join wInstances ins on ins.Id = wi.InstanceId where ins.InitiatedDomainID = (select ID from wDOmains where name = 'betakimya') and wi.Name = 'Organization Database Designer' and wi.[End] > '2017-09-13 13:23:51.9543626 +02:00') and Graph.value('(//Identities/Identity/Id)[1]', 'varchar(max)') = '827affbd-692f-4ad2-bcd1-583a4c96bce4'
Bu sorgu ile form datasında belirli bir user Id geçen Organization Database Designer akışı formlarını aratabilirsiniz. Herhangi bir kullanıcının silindiği/yeniden yaratıldığı durumlarda kullanışlı olabilir.