سؤال

أنا أستخدم Lotus Notes 6.5.1 API Java لقراءة ملف .nsf. كل وثيقة في ملف .NSF لديه سجل مستندات متعددة. أثناء عبور المستندات في ملف .NSF باستخدام Lotus Notes Java API، أحصل على جميع إصدارات المستندات كوثائق منفصلة.

كيف يمكنني التأكد من استرداد أحدث إصدار من كل مستند بواسطة Lotus Notes؟ هل هناك طريقة لتحديد المستند بشكل فريد وجميع تاريخ إصدارها كأطفالها؟

هل كانت مفيدة؟

المحلول

هناك ميزة مدمجة لمستندات النسخة في Notes Domino. اعتمادا على كيفية تكوينه في تصميم قاعدة البيانات (وتحمل مطور قاعدة البيانات لم تقم بتصفح خاصة به) ستكون الإصدارات إما ردود على الوالد الأصلي، أو في الاتجاه الآخر، حيث تصبح الإصدارات الجديدة الوالد، مع الإصدارات القديمة استجابات.

ومع ذلك، فإن كل هذا هو إعداد التسلسل الهرمي استجابة في قاعدة البيانات لك تلقائيا عند تحرير المستندات. كيف يتفاعل بقية تصميم قاعدة البيانات مع هذا التسلسل الهرمي هو المطور.

ما تريد القيام به هو إنشاء طريقة عرض تعرض فقط المستندات في الجزء العلوي من التسلسل الهرمي للاستجابة. يمكنك بعد ذلك اجتياز هذا الرأي ويعرف أن المستندات التي تحصل عليها من أحدث الإصدارات.

لذلك إذا كان لديك مستندات تم إنشاؤها بنموذج "مقالة" ستكون صيغة طريقة العرض.

SELECT form*="Article" & !@IsAvailable($ref)

هذا يحدد جميع مستندات المقالة التي لا تردود. الآن في التعليمات البرمجية، يمكنك ببساطة فتح العرض واجتازه.

بمجرد أن يكون لديك مقبض في وثيقة، يمكنك الحصول على ردود أطفالها المباشرة من خلال

doc.getResponses()

هذا إرجاع أ DocumentCollection يمكنك أن تنتشر لأسفل العثور على ردود على الردود. لا يمكنك الحصول على وثيقة الأصل مباشرة. تحتاج أولا للحصول على هويتها مع doc.getParentDocumentUNID() ثم اتصل db.getDocumentByUNID(). وبعد بالطبع يمكنك الجمع بين ما يلي:

db.getDocumentByUNID(doc.getParentDocumentUNID())

في أي حال، سيكون عليك أن تنظر إلى ما تقوم به قاعدة البيانات الخاصة بك بالفعل، وكيف تم تصميمها في الأصل وتتناسب مع ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top