لقد كتبت مقالة عن SharePointBriefing.com وكانا يضعان أنه يعيش اليوم.
وإليك دعابة:
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
لقد كتبت مقالة عن SharePointBriefing.com وكانا يضعان أنه يعيش اليوم.
وإليك دعابة:
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
وأنا لقد يعمل على مشروع حيث أحتاج إلى استخراج المرفقات من نموذج InfoPath. وهناك بعض موارد جيدة لتحليل نماذج InfoPath (ما هي ملفات XML فقط, لذلك فمن السهل في الواقع تماما).
وبينما كنت في بناء المشروع, بدأت بتحميل نموذج InfoPath وحفظه إلى محرك الأقراص الثابت المحلي. رمز c# القراءة مباشرة من هذا المثيل. ومع ذلك, نماذج InfoPath حقاً يعيشون داخل مكتبة نماذج SharePoint. فعلت قليلاً البحث نصف القلب لمعرفة كيفية قراءته مباشرة من المكتبة وتخلى تقريبا, في هذه الحالة لدى حفظ النموذج إلى دليل temp محلي وقراءتها من هناك. ومع ذلك, ليس هناك حاجة للذهاب من خلال تلك الأطواق كما يمكنك قراءتها مباشرة من مكتبة. يظهر هذا المقتطف قليلاً كيف:
/// فئة تعريف الأشياء هنا, بما في ذلك:
القطاع الخاص SPFile ميشاريبوينتفيلي; /* جزء من سبليست */ // رمز أكثر هنا ولدينا داخل أسلوب من فئة: textReader = الجديد XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = ويتيسباسيهاندلينج.لا شيء; textReader.Read(); // إذا كانت العقدة قيمة في حين (textReader.Read()) { |
وهي مفتاح بت أعلاه هو أننا يمكن قراءة InfoPath مباشرة عن طريق أوبينبيناريستريم() استدعاء الأسلوب في SPFile كمعلمة للمنشئ في XmlTextReader. وهو يعمل كبيرة.
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
لقد حلاً دخول حساب لعميل روافع InfoPath وسير العمل. عند نقطة واحدة خلال عملية الموافقة, بحاجة لإنشاء رسالة بريد إلكتروني يحتوي على كافة البيانات InfoPath جيدة، فضلا عن المرفقات أنفسهم حتى (تنفس الصعداء) شخص ما يمكن أن يأخذ تلك البيانات ويدويًا إعادة الرئيسية في تطبيق قاعدة بيانات أوراكل.
ليس من الصعب جداً الحصول على أو تحليل نموذج InfoPath. لم أكن أعرف كيفية التعامل مع المرفقات, ومع ذلك. وبعد ساعة أو ساعتين من دس حول الإنترنت (إلى الأبد!) لقد وجدت هذه المادة: http://support.microsoft.com/kb/892730
أنها توفر بعض التعليمات البرمجية مفيد لاستخراج المرفق من عقده في النموذج. (كنت لا تزال بحاجة إلى العثور على العقدة، وكل ذلك, ولكن هذا هو مجرد XML تحليل).
وأنا أعلم أن المرفق ترميز base64 وذهبت أصلاً في الطريق لمجرد استخراج البيانات base64, فك عليه وحفظه. ومع ذلك, أدركت بسرعة لم أكن أعرف كيفية الحصول على اسم الملف نفسه حتى وجدت المادة المذكورة أعلاه.
كنت قد وجدت فعلا أن وقت مبكر جداً, ولكن تم تأجيل بشخصيتها سبليت. من ناحية, المادة * يقول * أنها جيدة ل InfoPath 2007. بعد, التعليمات البرمجية والتعليمات كل شيء عن Visual Studio 2003 والإشارات إلى InfoPath 2003.
خلاصة, تعمل التعليمة البرمجية أن المادة شريطة جيد بالنسبة لي (وحتى الآن). يمكنني الحصول على بلدي نموذج InfoPath, ويمكن تحليل, يمكن أن أجد وفك المرفق واعرف اسمها. أكثر ما يمكن أحد أطلب من حياته?
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
إذا كنت قلقا من أن بيئة SharePoint الخاص بك قد يكون غير صحي صبي, واسمحوا لي أن التعليمات يمكنك إصلاح ذلك مع التحقق من الصحة.
لدى عملية موافقة على مصاريف التي يجب أن تنفذ باستخدام InfoPath في مصادقة نماذج التي تعتمد (FBA) استخدام نماذج خدمات البيئة (InfoPath على شبكة الإنترنت).
هناك مجموعتان من الموافقة والعملية مثل هذه الأعمال:
على الجانب InfoPath من الأشياء, لدى الأقسام المختلفة التي تظهر/إخفاء استناداً إلى ما إذا كان المستخدم عضوا في واحدة من تلك الجماعات الموافقة.
في بيئة FBA اسم المستخدم() الدالة دوماً بإرجاع فارغة, ومن المحزن. ما قمت به هو إعداد قائمة مخصصة تسمى "مجموعات الاعتماد".
لا يمكنني إضافة أية أعمدة إضافية إلى القائمة.
عندما تفتح النموذج, أنه يملك قاعدة مثل هذا:
"تعيين قيمة حقل" هنا:
وهذا هو أساسا قائلا: الاستعلام قائمة مخصصة لمجموعة الموافقة وعامل تصفية الاستعلام التي تبحث عن أي صف فيها قيمة عنوان = "الشمال".
إذا كان التي تقوم بإرجاع أي قيمة, ثم يكون المستخدم الحالي عضوا في هذه المجموعة. وأنا أعلم أنه يحتوي على هذه القيمة لأن طول سلسلة أكبر من الصفر.
إغلاق الحلقة بتأمين العناصر الفردية في قائمة المجموعة الموافقة. في وقت التشغيل, إذا لم يكن لدى المستخدم الحالي لن تعيدها الوصول الأمان المناسبة إلى هذا العنصر ثم الاستعلام, ستكون سلسلة ذات طول صفري، والآن أنت تعرف المستخدم الحالي ليس جزءا من هذه المجموعة. يمكنك استخدام هذه الحقيقة كما هو مطلوب في نموذج.
وهذا هو الكتابة سوبر قصيرة. وأنا أشعر بضغط الوقت أو أن تفاصيل أكثر.
أنا لا أعرف كيف ذات الصلة أنني في بيئة FBA. وهذا ربما تعمل جيدا في بيئة غير FBA ولكن يمكنني أن أتصور الحالات حيث هذا سيكون من المفيد.
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
تعمل في نموذج InfPath اليوم، ويدير ضد صديق قديم, "استثناء غير معالج عند تقديم النموذج System.Xml.XmlException: وقد وقع نهاية ملف غير متوقع أثناء تحليل اسم. "
وهذا ما حدث لي منذ فترة طويلة ولا أعرف ماذا بالضبط فعلت لحلها. بصراحة, وأعتقد أن قد تم الانتقال إلى مشروع جديد وأن لم ير هذا أحد حلها (وقد بلدي البدلاء للتعامل مع هذا الصداع). أتذكر أنه شيطان مشكلة. قضيت عدة أيام غير الناجحة التي تتعامل معها. ومنذ ذلك الحين, لقد رأيت هذا الخروج على المنتديات MSDN مرة واحدة على الأقل خلال السنة الماضية وشهدت إجابة ابدأ حقا له.
أنا ضربت اليوم وحسن الحظ هذه المرة , قدمت مجرد تغيير للنموذج. أنني المدعومة بهذا التغيير والمشكلة ذهب بعيداً. كما تبين أنه من الممكن لإنشاء من القالب باستخدام مصمم InfoPath بطريقة أن فإنه يقوم بإنشاء خطأ الظاهر على جانب الملقم أشكال الجدار.
في حالتي, وكان السبب في المشكلة بهذه الخطوات:
لا أعرف إذا كانت هذه الخطوات يسبب مشكلة أو ربما, على نحو ما البيانات الموجودة في القائمة نفسها مشكلة. أنا ذاهب إلى تجربة قليلاً وانظر إذا أنا يمكن مسمار دوونت المعلمات أنه هذا مع أي مزيد من التفاصيل.
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
أنا يعيشون في العالم نماذج InfoPath وكنت بحاجة لجعل واحدة من تلك التغييرات "الصغيرة" لنموذج التي, للأسف, فواصل اصطلاح تسمية الأول اعتمدت معها قبل أسبوعين. وقلت لنفسي, "شخص هو الذهاب لإلقاء نظرة على هذا الشيء في السنة من الآن ويقول:, ' ما أفكر بول? بجوف, لا معنى له اصطلاح التسمية!”
أدركت أنه يمكن إنشاء طريقة عرض على الشكل لهذا ومن ثم, مرة أخرى, أدرك أنه يمكن قد يفعل شيئا مثل هذا على طول. قمت بإضافة طريقة عرض "الملاحظات المطور" إلى نموذج InfoPath على هذا النحو:
لقد تم تكوين النموذج حيث أنه لا يمكن للمستخدمين الحصول على هذا الرأي، وبالتالي, كان مرئياً فقط مع عميل InfoPath في طريقة العرض تصميم. الآن أشعر بقليل الملقحين ضد بعض المطور مجهولة المستقبل تبحث في بلدي النموذج والتفكير الأفكار السيئة عني. اوففف!
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
ويبدو لي أن اذهب من خلال مراحل InfoPath حيث, من فراغ, وأنا أشعر بصياغة مجموعة من النماذج. أصابعي تعلم كيفية استخدام الأداة بشكل جيد، وثم تذهب من خلال تسعة أشهر من الجفاف، ويجب أن تعلم أنه في كل مرة أخرى.
وأنا في منتصف مرحلة InfoPath، وأنا خلق نماذج InfoPath مع الكثير من وجهات النظر. شيء واحد ستلاحظ ربما هو أن InfoPath 2007 يظهر العميل وجهات النظر في ترتيب أبجدي. هذا مصدر إزعاج حقيقيا في بعض الأحيان. أسلوبي أفضل في هذه الأيام هو إلى prepend عدد إلى اسم طريقة العرض حيث تظهر دائماً في الترتيب الذي أريده, كما هو موضح هنا:
وأود أن كنت قد تم القيام بهذا على طول.
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
لقد تم العمل على بعض نماذج InfoPath هذا الأسبوع في موس في بيئة FBA والمستفادة, عندما ذهبت إلى نشر النماذج إلى بيئة إنتاج مع FBA المنطقة أن اسم المستخدم() لا تعمل وظيفة الدالة. تم استخدامه لإنشاء أسماء ملفات فريدة.
بئر, أن الدالة لا يعمل في بيئة FBA (على الأقل, ليس من خارج منطقة الجزاء). و, بعد التفكير, استخدام اسم المستخدم في الطريقة التي كنت قد خططت لن يكون مضمونة اسم ملف فريد من نوعه وعلى أي حال.
وكان بلدي الحل لاستخدام الآن() الدالة وقاعدة لحرائق في تحميل النموذج. تعيين اسم الملف إلى عنصر البيانات عندما يكون فارغاً:
وميزة هذا النهج أن يتم تعيين اسم الملف مرة واحدة فقط. (لا تظهر في لقطة الشاشة, ولكن وضع شرط على القاعدة لإطلاق النار فقط عندما "ميفيلينامي" فارغ). أنا استخدم لتعيين اسم ملف على مستوى مصدر البيانات. عادة, أود أن تفعل شيئا (سيئة) أحب هذا:
المشكلة مع ذلك أنه إذا كان المستخدم بفتح النموذج يوم الاثنين ويغير المستخدم ب أنه يوم الثلاثاء, فسوف ينتهي مع اثنين من أشكال مختلفة منذ اثنين من المستخدمين مختلفة حفظه مع أسماء مستخدمين مختلفة.
حتى, مزعج FBA يمكن أن تكون بصورة عامة ومع InfoPath لا سيما, قدمت لي إعادة التفكير تفاصيل تقنية صغيرة ولكنها هامة حقاً والنهج التي لا يستطيعون القيام به وإلا!
</نهاية>
اتبعني على التغريد في http://www.twitter.com/pagalvin
وهناك سيناريو أعمال مشتركة مثل هذا:
هذا المثال office.microsoft.com توضح هذه المقالة كيفية إنشاء عرض "منفصلة" ووضع علامة عرض كامل للقراءة فقط. وهذا هو نهج عملي ولكن العيب أن قمت بإنشائها فعالية كامل إصدارين من نفس النموذج ويجب الآن الاحتفاظ بها في المزامنة يدوياً. إذا قمت بإضافة حقل إلى طريقة عرض قابلة للتحرير, ثم يجب إضافته إلى طريقة عرض غير قابل للتحرير، وكذلك. مع مرور الوقت, مع مطوري مختلفة, يمكن أن يكون هناك بعض الاختلاف.
هذا البديل قد تعمل بشكل أفضل في بعض الحالات:
والعيب في هذا النهج أن يكون كافة الحقول القابلة للتحرير على الشاشة. ويمكن للمستخدم الحصول على انطباعا خاطئا أن يمكنهم في الواقع تغيير المحتوى. يمكنك تقليل هذا بوضع بعض النصوص أن الشكل معطل, ربما بأحرف حمراء كبيرة عبر الجزء العلوي من الصفحة.
ففي أحد المشاريع, أنا خلقت حالة سير عمل "" طريقة العرض. ومع تقدم سير العمل, سوف تقوم بتحديث حقول الحالة المحددة التي عززت من النموذج. عند فتح المستخدم النموذج, نموذج مفتوح "" تحولت القاعدة تلقائياً إلى أنه لطيف قليلاً موجزاً حالة العرض والمستخدم.
</نهاية>
كان لدينا بلد متقدم نموذج InfoPath مع وجهات نظر متعددة لدعم جهاز توظيف جديدة / عملية على الصعود. عندما توظف الشركة شخص جديد, قسم تكنولوجيا المعلومات ومجموعات أخرى بحاجة لاتخاذ إجراءات (إعداد كشوف المرتبات, تمكين الوصول إلى التطبيقات المناسبة, حدد موقع مكتب, إلخ). نحن نستخدم في النموذج ولكن طريقة عرض مختلفة للنموذج لكل من هذه المهام.
في هذه الشركة, معظم الأشخاص الذين شاركوا في العملية التجارية من البارعين في تكنولوجيا المعلومات, حتى عندما يقومون بالوصول النموذج, هذه طريقة العرض الافتراضية قائمة "" عرض مع الأزرار التي توجيهها إلى وظيفتها المحددة. ومع ذلك, أننا بحاجة إلى تبسيط الأمور للمدير المباشر لتأجير جديد. هذا الشخص يجب أن لا نرى أي من تكنولوجيا المعلومات المتعلقة بالأشياء. في الحقيقة, وقالت أنها ينبغي أن انظر عرض واحد فقط من النموذج وحتى لا يكون خياراً لمعرفة آراء أخرى.
وفي حالتنا, أن المباشرة الحساب لمدير يرتبط مباشرة بشكل مجاملة اتصل محدد (وأنا دائماً الرغبة في استدعاء منتقي أشخاص "" لسبب من الأسباب).
الخطوات كما يلي:
1. في وضع التصميم, انتقل إلى أدوات-> خيارات النموذج-> فتح وحفظ.
2. قم بتحديد "قواعد".
3. إنشاء قاعدة جديدة للعمل الذي هو "التبديل إلى عرض" وحالته وروافع اسم المستخدم() الدالة.
اسم المستخدم() تقوم بإرجاع "بسيطة" اسم المستخدم دون المجال. إذا كان تسجيل الدخول إلى SharePoint باستخدام بيانات الاعتماد "domainpagalvin", اسم المستخدم() تقوم بإرجاع "باجالفين".
المحدد من الاتصال يوفر ثلاث بتات المعلومات لجهة اتصال. أككونتيد "" جزء مفيد جداً لهذا السيناريو. الشيء الوحيد الذي يجعل هذا حتى قليلاً من التحدي هو أن المحدد من الاتصال (في بلدي البيئة على أي حال) تقوم بإرجاع معرف المستخدم والمجال, كما هو الحال في "domainpagalvin". وهذا يمنعنا من القيام بشرط مساواة مستقيم إلى الأمام منذ أككونتيد ("domainpagalvin") وسوف ابدأ المساواة في اسم المستخدم() ("باجالفين").
يمكننا الحصول على حول هذا باستخدام "يحتوي على" عامل التشغيل: أككونتيد يحتوي على اسم المستخدم().
يمكن أن نأخذ فيها مرة أخرى وقبل تعليق مجال الثابت تلوينها أمام اسم المستخدم() دالة الحصول على الاختيار لدينا المساواة والقضاء على خطر إيجابية كاذبة في يحتوي على عامل التشغيل.
كنا حقاً مثل التبديل تلقائياً عرض لمستخدمين آخرين استناداً إلى عضوية مجموعة الأمان الإعلانية على. وعلى سبيل المثال, عندما يقوم عضو من "أنها تحليلات" الفريق يصل إلى النموذج, تلقائياً بالتبديل إلى عرض تحليلات تقنية المعلومات. لم يكن لدينا الوقت لتنفيذه, ولكن فكرتي الأولى هي لإنشاء خدمة ويب التي سوف تحتوي على أسلوب مثل "إيسميمبيروفاكتيفيديريكتوريسيكوريتيجروب", تمرير اسم المستخدم() والعودة إلى الوراء true أو false. أي شخص لديه أي شيء آخر, أكثر من فكرة ذكية? هل هناك أي وظيفة SharePoint أننا يمكن الاستفادة من InfoPath البت في ذلك?
</نهاية>