Ben bir makale yazdı SharePointBriefing.com ve onlar bugün canlı.
İşte bir teaser:
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
Ben bir makale yazdı SharePointBriefing.com ve onlar bugün canlı.
İşte bir teaser:
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
Ben yere ekleri bir InfoPath formundan ayıklamak için bir proje üzerinde. InfoPath formları ayrıştırma için iyi bir kaynak (hangi sadece XML dosyalar?, Bu yüzden aslında oldukça kolaydır).
Projeyi inşa ederken, InfoPath formu İndiriyor ve benim yerel sabit diskinize kaydederek başladı. Benim c# kodu doğrudan o örneğinden okuyordum. Ancak, InfoPath formları gerçekten bir SharePoint form kitaplığında içinde yaşıyoruz. Biraz yürekli yarı doğrudan kitaplıktan okumak nasıl öğrenmek için arama yaptı ve neredeyse vazgeçti, Bu durumda olurdu formun yerel bir temp dizinine kaydedilir ve oradan okuyun. Ancak, doğrudan kitaplıktan okuyabilirsiniz bu çemberin içinden gitmek gerek yoktur. Bu küçük kod parçası gösterir nasıl:
/// Sınıf tanımı şeyler burada, dahil olmak üzere:
Özel SPFile mySharePointFile; /* Bir SPList bir parçası */ // Buraya daha fazla kod ve sınıf yönteminin içinde var.: textReader = Yeni XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = WhitespaceHandling.Hiçbiri; textReader.Read(); // Düğüm değeri varsa süre (textReader.Read()) { |
Onlar bit anahtar yukarıda OpenBinaryStream üzerinden doğrudan InfoPath okuyabilirsiniz olduğunu() yöntemini çağırın üzerinde SPFile XmlTextReader Oluşturucu parametre olarak. O inşaat büyük.
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
InfoPath ve iş akışı yararlanan bir müşteri için bir masraf giriş çözüm var. Onay işlemi sırasında bir noktada, Tüm iyi InfoPath verilerin yanı sıra ekleri olan e-posta oluşturmak gerekiyor ki (siir) birisi bu verileri alır ve el ile Oracle veritabanı uygulama girmek.
Almak veya InfoPath formu ayrıştırmak çok zor değil. Ekleri nasıl bilmiyordum, Ancak. Bir saat veya iki Internets poking sonra (bir sonsuzluk!) Bu makale bulunamadı: http://support.microsoft.com/kb/892730
Formdaki bir düğümden eki ayıklamak için bazı kullanışlı kod sağlamak. (Hala düğümü ve tüm bu bulmak gerekir, ama bu sadece xml ayrıştırma).
Eki Base64 ile kodlanmış ve başlangıçta sadece çıkarma yolu aşağı gitti biliyorum base64 verileri, Bu kod çözme ve kaydetme. Ancak, Çabuk nasıl dosya adı anılan makale bulundu kadar almak bilmiyordum fark.
Ben aslında bu oldukça erken buldu, ama onun bölünmüş kişilik tarafından ertelendi. Bir yandan, makaleyi * diyor * InfoPath için iyidir 2007. Henüz, kodu ve talimatları hakkında tüm Visual Studio vardır 2003 ve InfoPath başvuruları 2003.
Alt çizgi, sağlanan eşya kodu iyi benim için çalışıyor (defa). -Ebilmek I almak benim InfoPath formu, O ayrıştırabileceğiniz, Ben bulmak ve eki şifresini çözmek ve adını biliyorsanız. Bir tane daha fazla ne yapabilirim kişinin yaşam isteyin?
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
If you're worried SharePoint ortamınız biraz sağlıksız olabilir, bana yardım bu çözmek bir sağlık kontrolü ile.
I-si olmak InfoPath forms tabanlı kimlik doğrulama içinde kullanarak uygulamak için gereken masraf onay işlemi (FBA) ortamı kullanarak forms services (InfoPath Web tabanlı).
Orada iki onay grupları ve süreç şöyle işler:
Şeylerin InfoPath tarafında, Kullanıcı bu onay gruplarının bir üyesi olup olmadığına bağlı gizle/görünür farklı bölümü vardır.
FBA ortamında kullanıcı adı() her zaman işlevi boş döndürür, Ne yazık ki. Yaptığım şeyi kurmak bir özel bir liste olarak adlandırılan "Onay grupları".
Ek sütunlar listesine eklemek değil.
Form açıldığında, Böyle bir kural vardır:
İşte "Bir alanın değerini ayarla":
Bu temelde söylüyor: Herhangi için bakarak sorgulamak sorgu onay grubu özel liste ve filtre satır nerede başlık'ın değeri = "NORDIC".
Eğer, herhangi bir değer döndürür, sonra geçerli kullanıcı bu grubun bir üyesidir. Dize uzunluğu sıfırdan büyük olduğu için bu değeri var biliyor musun.
Döngüyü onay grubuyla liste içindeki öğeleri güvenli hale getirme. Çalışma zamanı sırasında, Geçerli kullanıcının sahip değilse uygun güvenlik erişim bir madde daha sonra sorgu cevap vermiyor, dize uzunluğu sıfır olur ve artık geçerli kullanıcının biliyorsun o grupta değil. Sen-ebilmek kullanma bu gerçeği formda gerektiği gibi.
Süper kısa bir yazma-up bu. Zaman kalmadı ya da daha fazla ayrıntı sağlar.
Ne kadar alakalı bir FBA ortamda ben olduğunu bilmiyorum. Bu muhtemelen iyi bir FBA ortamında çalışmaya devam eder ama nerede bu-cekti var olmak yararlı durumlarda hayal edebiliyorum.
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
Bugün InfPath form üzerinde çalışıyordu ve karşı eski bir arkadaşı koştu, "Form System.Xml.XmlException işlenirken işlenmeyen özel durum: Beklenmeyen adı ayrıştırılırken dosya sonu oluştu."
Bu bana çok uzun zaman önce oldu ve tam olarak çözmek için ne yaptığımı bilmiyorum. Dürüst olmak gerekirse, Sanırım yeni bir proje için geçiş ve bu bir çözüme görmedim (benim yedek bu baş ağrısı ile uğraşmak zorunda kaldı.). Bir şeytan bir sorunun olduğunu hatırlıyor musun. Ben onunla ilgili birkaç başarısız gün geçirdi. O zamandan beri, Bu MSDN forumlarında geçen yıl en az bir kez geldi ve hiç bir cevap için gördüm gördüm.
Bugün ve neyse ki bu sefer vurdum , Ben sadece formda bir değişiklik yapılan. Bu değişiklik sırt ve problem went uzağa. Oluşturmak mümkün olduğu ortaya çıktı bir çitin formlar sunucu tarafında bir ayrıştırma hatası üretir şekilde InfoPath Designer kullanarak şablondan.
Benim durumumda, sorun adımları tarafından neden:
Eğer bu adımları bir sorun neden bilmiyorum ya da belki, bir şekilde listesindeki verilerin bir sorundur. Biraz deneme ve downt tırnak görmek için gidiyorum bu o parametreleri ile daha fazla ayrıntı.
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
InfoPath formları dünyada hala yaşıyorum ve forma bir "küçük" Bu değişiklikleri yapmak için gereken bu, ne yazık ki, Onunla iki hafta önce kabul edilen bir adlandırma kuralı tatili. Kendi kendime düşündüm, "biri şu şeye bir yıl şimdi ve söylemek olacak, ' Ne olduğunu düşünerek Paul? Aman Tanrım, onun adlandırma kuralı hiçbir mantıklı!”
Farkettim ki bunun için formdaki bir görünüm oluşturabilir ve sonra, Bir daha, Ben her zaman böyle bir şey yapıyor olabilir olduğunu fark. InfoPath formu gibi bir "Geliştirici notları" görünüm eklendi:
Böylece kullanıcılar cant'almak o görünüme formu yapılandırdıktan ve bu nedenle, yalnızca InfoPath istemcisi Tasarım görünümünde görünür. Şimdi biraz inoculated gelecekteki bazı bilinmeyen geliştirici formu ve hakkımda kötü düşüncelerle bakarak karşı hissediyorum. Vay be!
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
InfoPath aşamalardan gitmek gibi görünüyor nerede, mavi, Formlar bir demet işçiliği. Parmaklarımı iyi aracı kullanmayı öğrenmek ve sonra dokuz aylık kuraklık gidin ve her yerde tekrar öğrenmek zorunda.
Ben bir InfoPath faz ve sayısı çok InfoPath formları oluşturma. Bir şey muhtemelen InfoPath olduğunu fark 2007 istemci sayısı alfabetik sırasına göre gösterir.. Bu bazen gerçek bir baş belası olduğunu. Benim en iyi bu gün böylece her zaman istediğim sırayla göster görünüm adı bir sayıya önüne tekniktir, aşağıda gösterildiği gibi:
Keşke bu başından beri yapıyordum.
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
Bazı InfoPath formları MOSS bu hafta FBA ortamında üzerinde çalışıyor ve öğrenmiş oldum, formlar bir FBA ile üretim ortamına dağıtmak için gittiğimde bu bölge kullanıcı adı() fonksiyonu işlevi çalışmıyor. Ben benzersiz dosya adları oluşturmak için kullanıyordum.
İyi, işlev bir FBA ortamda çalışmaz (en az, kutudan değil). Ve, yansıması üzerine, planladığım şekilde kullanıcı adınızı kullanarak benzersiz bir dosya adı olursa olsun garantili değil.
Benim çözüm şimdi kullanımı yapıldı.() işlev ve form yükleme üzerinde yangınları bir kural. Boş olduğunda veri öğesine dosya adını atayın:
Bu yaklaşımın avantajı dosya adını yalnızca bir kez ayarlamanız olduğunu. (Belgili tanımlık perde atış gösterme., Ama sadece "myFilename" boş olduğunda yangın için kuralı koşulu koy). Dosya adını veri kaynak düzeyinde ayarlamak için kullanılan. Genellikle, Bir şeyler yapmak (kötü) Böyle:
Bu sorun bir kullanıcı Pazartesi günü formunu açar ve kullanıcı B Salı günü değiştirirse olduğunu, iki farklı kullanıcılar farklı kullanıcı adlarıyla kaydettiğinizden bu yana iki farklı formları ile bitireceğiz.
Yani, FBA genel ve InfoPath ile özellikle olabileceği kadar rahatsız edici olarak, küçük ama çok önemli teknik ayrıntı ve başka türlü yapmazdım yaklaşımı yeniden düşündüm!
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin
İşte böyle ortak bir iş senaryosu:
Bu office.microsoft.com örnek ayrı bir "görünümü oluşturma açıklanmaktadır" ve tüm görünüm salt okunur olarak işaretle. Bu uygulanabilir bir yaklaşım ama etkili bir şekilde formun iki tüm sürümlerini oluşturduktan ve şimdi eşit el ile tutmak gerekir dezavantajı var. Alan düzenlenebilir görünümüne eklerseniz, o zaman düzenlenemez görünümüne eklemeniz gerekir. Zaman içinde, farklı geliştiriciler, orada-ebilmek var olmak biraz sapma.
Bu alternatif bazı durumlarda iş daha iyi olabilir:
Bu yaklaşımın dezavantajı tüm alanları hala ekranda düzenlenebilir olmasını olur. Kullanıcı yanlış bir izlenim onlar aslında içeriği değiştirebilirsiniz alabilirsiniz. Bu formu devre dışı bazı metinde koyarak azaltabilir, muhtemelen büyük kırmızı harflerle sayfanın üstünde.
Bir proje, "İş akışı durumu oluşturuldu" Görünüm. İş akışı ilerledikçe, formdan teşvik edilmiştir özel durum alanları güncelleştirmek. Kullanıcı formu açtığında, "açık formu" Kural otomatik olarak görünüm ve kullanıcı bir güzel küçük özet durumu vardı açık.
</sonunda>
Biz gelişmiş bir vardı bir InfoPath formu ile yeni bir Kiralık desteklemek için birden çok kez bakıldı / yatılı üzerinde işlem. Ne zaman şirket yeni bir kişi işe alır, BT bölümü ve diğer grupları eyleme gerek. (Bordro ayarla, uygun uygulamalara erişimi etkinleştir, bir masa bulun, vb). Formu, ancak formun farklı bir görünümü üzerinde bu işlevleri için kullandığımız.
Bu şirkette, o açıdan iş sürecine dahil insanların çoğu, Bu forma eriştiğinizde, "menü kendi varsayılan görünümdür" onları belirli işlevleri için doğrudan düğmeleri göster. Ancak, Biz şeyler için yeni Kiralık'ın doğrudan Yöneticisi basitleştirmek için gerekli. Bu kişi herhangi bir BT ilgili şeyler görmelisin değil. Aslında, o bir formun görünümünü görmek ve hatta diğer görünümü için bir seçenek var.
Bizim durumumuzda, Bu doğrudan yöneticinin hesabına doğrudan nezaketi şeklinde bağlıdır bir kişi seçici (hangi her zaman "kişi seçici aramasını isteyen PM" için biraz neden).
Adımlar aşağıdaki gibidir:
1. Tasarım modunda, gitgidmek alet-> Form Seçenekleri-> Açma ve kaydetme.
2. "Kuralları" seçin.
3. Olan eylem "görüntülemek için geçiş olduğu yeni bir kural oluşturmak" ve durumu kullanıcı yararlanıyor.() işlevi.
Kullanıcı adı() "basit döndürür" Kullanıcı adı etki alanı olmadan. "Domainpagalvin" kimlik bilgileri ile SharePoint oturum, Kullanıcı adı() "pagalvin" verir.
Kişi seçici üç kişi hakkındaki bilgileri parçaları sağlar. "AccountID" Bu senaryo için en yararlı bölümüdür. Bu birazcık bile kılan tek şey bu kişi seçici mücadeledir (benim ortamda zaten) etki alanı ve kullanıcı kimliği döner., "domainpagalvin" olduğu gibi. Bu bize bir düz ileri eşitlik koşulu AccountID beri yapmasını engeller ("domainpagalvin") Kullanıcı adı asla eşit olur() ("pagalvin").
Biz-ebilmek almak istimal bu "içerir" Operatör: AccountID kullanıcı adı içeriyor().
Biz-ebilmek almak daha da ve pre-bekleme kodlanmış bir etki alanı kullanıcı adını önünde() bizim eşitlik onay almak ve yanlış pozitif olarak karşılaşma için işlev işleci içerir.
Biz onların reklam güvenlik grubu üyeliğine göre diğer kullanıcılar için görünüm otomatik olarak geçmek gerçekten gibi olurdu. Örneğin, Bu Analytics"bir üyesi" Grup formu kere görüntülendi., otomatik olarak BT Analytics görünüme. Bunu uygulamak için vaktim olmadı, Ama ilk düşüncem, "IsMemberOfActiveDirectorySecurityGroup" gibi bir yöntem olan web hizmeti oluşturmak için, Kullanıcı adı geçmektedir() ve geri true veya false döndürür. Başka kimse var mı, daha çok zekice bir fikir? Biz bu kararı InfoPath yararlanabilirim herhangi bir SharePoint işlevi yoktur?
</sonunda>