Forum

Archiving Report fo...
 
Bildirimler
Hepsini Temizle

Archiving Report for OCS 2007 R2

2 Yazılar
2 Üyeler
0 Likes
443 Görüntüleme
Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33009
Illustrious Member Yönetici
Konu başlatıcı
 

OCS Üzerinde Kullanıcı Görüşmelerini İzleme

Eğer Quest vb bir program satın almak istemiyorsanız , ancak OCS
üzerinde kullanıcıların konuşmalarını raporlamak istiyorsanız aşağıdaki
SQL queryleri işinize yarayacaktır.
/*  Bir kişinin UserId’sinin bulunması         */

SELECT *
FROM [LcsLog].[dbo].[Users]
WHERE [UserUri] LIKE ‘aaaaaaaa%’
GO

öncelikle yukarıdaki query ile OCS üzerindeki kullanıcıların veri
tabanı üzerinde hangi ID numarası ile saklandığını bulmamız
gerekmektedir. Buradaki format değişken olabilir yani şirket içerisinde
ocs için nasıl bir isimlendirme yapısı kullanıyorsanız ona göre
değişiklik yapabilirsiniz.

User ID yi aldıktan sonra aşağıdaki query ile bu kullanıcının tüm
kullanıcılar ile belirli bir tarih aralığında konuştuğu verilere
ulaşabilirsiniz. Not ; OCS standart kurulum ile bu logları “lcslog” veri
tabanında tutmaktadır.
/*  Bir kişinin tüm görüşmeleri             */

DECLARE @IlkTarih DateTime
DECLARE @SonTarih DateTime
DECLARE @PersonelId Int

SET @PersonelId = XXXX       /* RAPORLANACAK KİŞİNİN OCS’deki IDsi */
SET @IlkTarih = ’01/01/2010′ /* BAŞLANGIÇ TARİHİ */
SET @SonTarih = ’06/15/2010′ /* BİTİŞ TARİHİ */

SELECT M.SessionIdTime, M.MessageIdTime, u1.UserUri as [From],
u2.UserUri as [To], M.Body
FROM LcsLog.dbo.Messages M
LEFT JOIN LcsLog.dbo.Users u1 ON M.FromId = u1.UserId
LEFT JOIN LcsLog.dbo.Users u2 ON M.ToId = u2.UserId
WHERE
(M.FromId = @PersonelId OR M.ToId = @PersonelId)
/*           AND LcsLog.dbo.Messages.MessageIdTime BETWEEN @IlkTarih AND
@SonTarih?*/
AND (DATALENGTH(M.Body) > 0)
ORDER BY M.SessionIdTime, M.MessageIdTime

Bir kişinin tüm görüşmeleri değilde iki kişi arasındaki görüşmeler
için aşağıdaki query’ yi kullanabilirsiniz

/*  İki Kişi arasındaki görüşmeler            */

DECLARE @IlkTarih DateTime
DECLARE @SonTarih DateTime
DECLARE @PersonelId1 Int
DECLARE @PersonelId2 Int

SET @PersonelId1 = XXXX       /* RAPORLANACAK 1. KİŞİNİN OCS’deki
IDsi */
SET @PersonelId2 = XXXX       /* RAPORLANACAK 2. KİŞİNİN OCS’deki IDsi
*/
SET @IlkTarih = ’01/01/2010′  /* BAŞLANGIÇ TARİHİ */
SET @SonTarih = ’06/15/2010′  /* BİTİŞ TARİHİ */

SELECT M.SessionIdTime, M.MessageIdTime, u1.UserUri as [From],
u2.UserUri as [To], M.Body
FROM LcsLog.dbo.Messages M
LEFT JOIN LcsLog.dbo.Users u1 ON M.FromId = u1.UserId
LEFT JOIN LcsLog.dbo.Users u2 ON M.ToId = u2.UserId
WHERE
((M.FromId = @PersonelId1 AND M.ToId = @PersonelId2) OR (M.FromId =
@PersonelId2 AND M.ToId = @PersonelId1))
/*           AND LcsLog.dbo.Messages.MessageIdTime BETWEEN @IlkTarih AND
@SonTarih?*/
AND (DATALENGTH(M.Body) > 0)
ORDER BY M.SessionIdTime, M.MessageIdTime

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 08/07/2010 13:01

(@ufuktatlidil)
Gönderiler: 5718
Illustrious Member
 

Harika bilgi hocam ,

Teşekkürler.

 
Gönderildi : 08/07/2010 14:19

Paylaş: