ݺߣ
Submit Search
Lotus Notes - .NET entegrasyonu
•
Download as DOCX, PDF
•
0 likes
•
279 views
D
Dr. Kerem Koseoglu
Follow
Lotus Notes ve .NET entegrasyonu yaptığım bir projede aldığım teknik notlar
Read less
Read more
1 of 9
Download now
Downloaded 10 times
More Related Content
Lotus Notes - .NET entegrasyonu
1.
2008 Dr. KeremKöseoğlu 10/27/2008 Lotus Notes
ve .NET
2.
Özet Bu dökümaniçerisinde,LotusNotesileveri alışverişiyapabilen
.NETuygulamalarınınnasıl geliştirilebileceğine dairbazıanahtar noktalarbulunmaktadır. Lotus Hazırlıkları Kullanıcı Hesabının Ayarlanması Lotus Notesiçerisinde,File Tools User ID menüsüne girin.Burada,entegrasyonişlerinde kullanılacakUseriçinaşağıdaki kutucuğunişaretlenmişolmasıgerekmektedir. Veritabanındaki Alanları Görmek Lotus Notesveritabanındaki alanlarınteknikisimlerini ve detaylarınıgörmekiçin,öncelikle veritabanı dosyasınıaçın. Karşınıza kayıtlargeldiğinde,herhangi birkaydasağtıklayınve “Document Properties...”menüsüne girin.
3.
Bu şekilde açılacakolanpencere
üzerinde,veritabanındaki alanlarınteknikisimlerini ve seçmiş olduğunuzdökümandaki değerleri görebilirsiniz. Bu alanlara,.NETiçerisindeki erişimsırasındaihtiyacınızolacak. .NET Hazırlıkları Makinanıza LotusNotes’ukurduktansonraVisual Studioiçerisinde ilkyapmanızgerekenşey, projenize AddReference menüsüile (COMtipindeki)“LotusDominoObjects”referansınıeklemektir.
4.
Veritabanındaki KayıtlaraErişim Tüm Kayıtları
Listelemek Aşağıdaki örnek.NETkodu,bir LotusNotesveritabanındaki tümkayıtlarılisteleyecektir. Aynıörnek içerisinde,“$Revisions”gibi birdenfazlakayıtiçerenalanlarınnasıl okunabileceğinide görebilirsiniz. static void listEquipments() { Domino.NotesSessionClass session = new Domino.NotesSessionClass(); session.Initialize("pass"); Domino.NotesDatabaseClass database = (Domino.NotesDatabaseClass)session.GetDatabase("", "Equipment.nsf", false); Domino.NotesDocumentCollection ndc = (Domino.NotesDocumentCollection)database.AllDocuments; for (int n = 0; n < ndc.Count; n++) { Domino.NotesDocumentClass doc = (Domino.NotesDocumentClass)ndc.GetNthDocument(n); String outs = ""; String s = (String)((Object[])doc.GetItemValue("txtartbenenn"))[0]; s += ":" + (String)((Object[])doc.GetItemValue("txtfabriknr"))[0]; try { int x = ((Object[])doc.GetItemValue("$Revisions")).Length; DateTime d = (DateTime)((Object[])doc.GetItemValue("$Revisions"))[x - 1]; if (limit >= d) count++; outs = s + " - " + d; } catch(Exception ex) { outs = s; } } Console.WriteLine(count.ToString() + " döküman"); Console.WriteLine("Bitti"); Console.ReadKey(); }
5.
Bazı Kayıtları Listelemek Belli
birkoşulabağlıolarakkayıtları çekenörnekbirkoduaşağıda bulabilirsiniz. static void listEquipments() { Domino.NotesSessionClass session = new Domino.NotesSessionClass(); session.Initialize("pass"); Domino.NotesDatabaseClass database = (Domino.NotesDatabaseClass)session.GetDatabase("", "Equipment.nsf", false); Console.WriteLine(database.Title); Domino.NotesDocumentCollection ndc = (Domino.NotesDocumentCollection)database.Search("txtartbenenn = 'C450'", null, 1); for (int n = 0; n < ndc.Count; n++) { Domino.NotesDocumentClass doc = (Domino.NotesDocumentClass)ndc.GetNthDocument(n); String outs = ""; String s = (String)((Object[])doc.GetItemValue("txtartbenenn"))[0]; s += ":" + (String)((Object[])doc.GetItemValue("txtfabriknr"))[0]; Console.WriteLine(s); } Console.WriteLine("Bitti"); Console.ReadKey(); } Yeni Kayıt Yaratmak Aşağıda,yeni kayıt yaratanörnekbir kodbulabilirsiniz. static void createName() { Domino.NotesSessionClass session = new Domino.NotesSessionClass(); session.Initialize("pass"); Domino.NotesDatabaseClass database = (Domino.NotesDatabaseClass)session.GetDatabase("", "names.nsf", false); Console.WriteLine(database.Title); Domino.NotesDocumentClass doc = (Domino.NotesDocumentClass)database.CreateDocument(); doc.AppendItemValue("FirstName", "Kerem.NET"); doc.AppendItemValue("Form", "Person"); doc.AppendItemValue("FullName", "Kerem.NET Koseoglu"); doc.AppendItemValue("LastName", "Koseoglu"); doc.AppendItemValue("Logo", "beach"); doc.AppendItemValue("NameDisplayPref", "1"); doc.AppendItemValue("Type", "Person"); doc.Save(false, false, false); } Mevcut Kaydı Güncellemek Aşağıda, mevcutkaydı güncelleyenörnekbirkodbulabilirsiniz. doc = (Domino.NotesDocumentClass)docs.GetNthDocument(m); doc.ReplaceItemValue("anzeige1", "KK anzeige1"); doc.ReplaceItemValue("anzeige2", "KK anzeige2"); doc.ReplaceItemValue("anzeige3", "KK anzeige3"); doc.ReplaceItemValue("city", "KK city"); doc.ReplaceItemValue("anzeige3", "KK anzeige3"); doc.ReplaceItemValue("FORM", "frm_eq"); doc.ReplaceItemValue("KundenInfo", "KK KundenInfo"); doc.ReplaceItemValue("numeqicon", "78"); doc.ReplaceItemValue("numeqnr", Sap.shiftLeft(E[n].EQUNR, "0")); doc.ReplaceItemValue("numsort", "2"); doc.ReplaceItemValue("SalesOfficeTemp", "TR 001"); doc.ReplaceItemValue("state", "KK state"); doc.ReplaceItemValue("txtartbenenn", E[n].EQKTX); doc.ReplaceItemValue("txtartpkid", E[n].ZZPMSID); doc.ReplaceItemValue("txtartsachnr", "KK txtartsachnr");
6.
doc.ReplaceItemValue("txtfabriknr", "KK txtfabriknr"); doc.ReplaceItemValue("txtkdinventamr",
"KK txtkdinventamr"); doc.ReplaceItemValue("txtkdkrzbez", "KK txtkdkrzbez"); doc.ReplaceItemValue("txtkdnr", "KK txtkdnr"); doc.Save(false, false, false); View Çağırmak View’ın Yaratılması Lotus Notes’taüzerinde çalıştığınızveritabanınıaçın.Create View menüsüne girin. View’auygunbirisimverinve formül içerisindeformismi olarakveritabanındageçerli olan formlardanbirini verdiğinizdeneminolun.Eğerformadınıbilmiyorsanız,yaratılmışolandiğer View’larıörnekalabilirsiniz. “OK” düğmesine baktığınızdaViewyaratılacaktır.BuView’ıaçmakiçin,LotusNotes’unView GoTo menüsüne girin.Bulistede,yaratmışolduğunuzView’useçin.
7.
Bunuyaptığınızda; Viewkarşınıza(muhtemeleniçi boşbirşekilde)
açılacaktır. View’undetaylarınıdüzenlemekiçinActions View Options Designmenüsüne girin.Bu pencerede View’ungörüntülenecekalanlarınıseçebilir,hesaplamayapmayadayananyeni alanlar tanımlayabilirveyaseçimkoşullarınıbelirleyebilirsiniz. YeniAlanTanımlamak Örnekolarakbu View’ayeni biralanekleyelim.Sütunlarınolduğubölgeyesağtıklayınve InsertNew Columnkomutunuseçin.
8.
Aşağıdaki bölgede yenisütununiçeriğine
ne geleceğini belirleyebilirsiniz.Buradabirfonksiyon, veritabnaıalanıveyaformül seçilebilir.Bizbuörnekte biralanseçtik. Burada tanımlayacağınızalanlar,sadece ekrangörüntüsüiçindir..NETiçerisindenView’ı çağırdığınızda, buradabulunmayanveritabanıalanlarınadaerişebilirsiniz. YeniKoşul Tanımlamak Bu işlemiçin,sol menüdeki“View”bölümüne girmelisiniz. Örneğimizde;sadece son30 gündüryaratılmış/ değişmişverilereerişmekistediğimizi varsayalım.Bu durumdaformülüşuhale getirmeliyiz: SELECT (form="frm_eq"|Form="frm_ueq") &!@IsAvailable($Conflict) & @Modified>= @Adjust(@Today;0;0; -30; 0; 0; 0) View’uTestEtmek View’ukaydettiktensonraDesign PreviewinNotesmenüsündensonuçlarınıgörebilirsiniz. Alternatif olarak;normal ekrandaView GoTo...menüsüne de girebilirsiniz.
9.
View’un .NET İçinden
Çağırılması Aşağıda,View’uçağıranörnekbir kod bulabilirsiniz. static void listEquipmentsView() { Domino.NotesSessionClass session = new Domino.NotesSessionClass(); session.Initialize("pass"); Domino.NotesDatabaseClass database = (Domino.NotesDatabaseClass)session.GetDatabase("", "Equipment.nsf", false); Console.WriteLine(database.Title); Domino.NotesViewClass view = (Domino.NotesViewClass)database.GetView("KEREMTEST"); for (int n = 0; n <= view.AllEntries.Count; n++) { Domino.NotesDocumentClass doc = (Domino.NotesDocumentClass)view.GetNthDocument(n); if (doc != null) { String outs = ""; String s = (String)((Object[])doc.GetItemValue("txtartbenenn"))[0]; s += ":" + (String)((Object[])doc.GetItemValue("txtfabriknr"))[0]; Console.WriteLine(s); } } Console.WriteLine("Bitti"); Console.ReadKey(); }
Download