Kategoria: Archiwum: Program InfoPath 2007 // Forms Server

Szybkie Hit: Czytanie XML programu InfoPath bezpośrednio Z SPListItem w programie SharePoint

Jestem już pracuje nad projektem gdzie trzeba wyodrębnić załączników z formularza programu InfoPath. Istnieje kilka dobrych zasobów dla analizy formularzy programu InfoPath (które są tylko pliki XML, Dlatego też całkiem łatwa).

Podczas gdy został I budowania projektu, Zacząłem pobierając formularz programu InfoPath i zapisanie go na dysku twardym lokalnego. Mój kod c# czytał bezpośrednio od wystąpienia. Jednakże, Formularze programu InfoPath naprawdę żyją wewnątrz biblioteki formularzy programu SharePoint. Zrobiłem trochę pół sercem szukają przekonaæ siê jak wobec przeczytać ono bezpośrednio z biblioteki i prawie zrezygnował, w tym przypadku bym zapisać formularz do lokalnego katalogu temp i przeczytaj go stamtąd. Jednakże, nie trzeba przejść przez te obręcze, jak można przeczytać go bezpośrednio z biblioteki. Ten mały fragment kodu pokazuje, jak:

/// Klasa definicji stuff tutaj, tym:
prywatne SPFile mySharePointFile; /* Część SPList */
// Więcej kodu tu i wewnątrz metody klasy mamy:
XmlTextReader elementu textReader;
elementu textReader = Nowy XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Brak;

textReader.Read();

// Jeżeli węzeł posiada wartość

podczas (textReader.Read())
{

... i tak dalej i tak dalej...

Klucz bitowe brzmi, że możemy czytać i InfoPath bezpośrednio za pośrednictwem OpenBinaryStream() Wywołanie metody na SPFile jako parametr do konstruktora na XmlTextReader. Ono prace wielki.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki:

Programowo wyodrębnianie załączniki z formularzy programu InfoPath (Łącznie z ich nazwy!)

Mam rozwiązanie wpis koszt dla klienta, który korzysta z programu InfoPath i przepływu pracy. W pewnym momencie podczas procesu zatwierdzania, Należy wygenerować wiadomości e-mail, zawierającą wszystkie dobre danych programu InfoPath, jak również załączniki, same tak, aby (Sigh) ktoś może podjąć dane i ręcznie re-key do aplikacji bazy danych Oracle.

To nie jest bardzo trudno dostać lub analizy formularza programu InfoPath. Nie wiem jak sie obslugiwac załączniki, Jednakże. Po godzinę lub dwie grzebie Internets (wieczności!) Znalazłem ten artykuł: http://support.microsoft.com/kb/892730

Zapewniają kilka przydatny kod, aby wyodrębnić załączników z węzła w formie. (Nadal trzeba znaleźć węzła i wszystko, ale to tylko analizy składni XML).

Wiem, że załącznik jest algorytmem base64 i pierwotnie poszedłem dół ścieżki tylko wyodrębnianie danych base64, dekodowaniu i zapisanie go. Jednakże, Szybko zauważyłem, że wiedziałam jak zdobyć samej nazwy pliku, dopóki nie znalazłem wymienionego artykułu.

I miały rzeczywiście stwierdzono że dość wcześnie, ale był układam przez jego split personality. Z jednej strony, artykuł * mówi * to jest dobre dla programu InfoPath 2007. Jeszcze, kod i instrukcje są wszystkie informacje o Visual Studio 2003 i odniesienia do programu InfoPath 2003.

Motto, kod, który Artykuł pod warunkiem działa dobrze dla mnie (pory). Można dostać mój formularz programu InfoPath, I można je analizować, Można znaleźć i dekodowanie załączników i ja znać jego nazwę. Co więcej można prosić o życiu?

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki: ,,

Jeśli użytkownik jest zaniepokojony, że środowisko programu SharePoint mogą być tad niezdrowy, Pozwól mi pomoc, którą można ustalić, że z kontroli zdrowia.

Zarządzanie grup zatwierdzania z programem InfoPath w środowisku, w Paryżu w rodzinie Żydowskiej

Mam procesu zatwierdzania wydatków, który trzeba zaimplementować za pomocą programu InfoPath w uwierzytelniania formularzy opartych (PARYŻU W RODZINIE ŻYDOWSKIEJ) środowisku przy użyciu usługi formularzy (oparte na sieci Web programu InfoPath).

Istnieją dwie grupy zatwierdzenia i proces działa jak to:

  • Użytkownik wypełnia raport z wydatków i przesyła do zatwierdzenia.
  • Powoduje, że e-mail do pierwszej grupy poziom osoby zatwierdzającej.
  • Pierwszy poziom zatwierdzającą Gości i zatwierdza lub odrzuca sprawozdanie.
  • Jeśli pierwszy poziom osoby to, system powiadomi drugą osobę zatwierdzającą poziom.

Na stronie programu InfoPath rzeczy, Mam różne sekcje, które pojawiają się/Ukryj oparte na czy użytkownik jest członkiem jednej z tych grup zatwierdzenie.

W formularzach środowisko użytkownika() Funkcja zawsze zwraca pusty, Niestety. Co mam zrobić to skonfigurować niestandardową listę o nazwie "Zatwierdzenia grupy".

Nie dodać dodatkowe kolumny do listy.

Kiedy otwiera formularz, regułą jak to:

image

"Ustaw wartość pola" jest tutaj:

image

To jest zasadniczo mówiąc: Kwerendy listy niestandardowe grupy zatwierdzenia i filtru, które kwerendy patrząc za wiersz gdzie tytuł wartość = "NORDIC".

Jeśli to zwraca wartość, następnie bieżący użytkownik jest element członkowski grupy. Wiem, że to zawiera tę wartość, ponieważ długość ciąg jest większa niż zero.

Zabezpieczenia poszczególnych elementów na liście grupy zatwierdzenia w pobliżu pętli. W czasie wykonywania, Jeśli bieżący użytkownik nie ma odpowiednich zabezpieczeń dostęp do tego elementu, a następnie kwerenda nie zwraca go, długość ciąg będzie równa zero i teraz wiesz, że bieżący użytkownik nie jest częścią tej grupy. Można użyć tego faktu w razie potrzeby w formie.

Jest to bardzo krótka Recenzja. Jestem wciśnięty do czasu lub prosiłbym o podanie więcej szczegółów.

Nie wiem, jak istotne jest to, że jestem w środowisku FBA. To prawdopodobnie będzie działać dobrze w środowisku nie FBA, ale można sobie wyobrazić, przypadki, w których byłoby to przydatne.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Program InfoPath // Jeden wyjaśnienie dla "nieobsługiwany wyjątek przy renderowaniu formularza System.Xml.XmlException: Wystąpił nieoczekiwany koniec pliku podczas analizowania nazwa. “

Pracował w formularzu InfPath dziś i uruchomiono ma starego przyjaciela, "Nieobsługiwany wyjątek przy renderowaniu formularza System.Xml.XmlException: Nieoczekiwany koniec pliku podczas analizowania nazwa wystąpił."

To zdarzyło mi się dawno temu i nie wiem co dokładnie zrobiłem go rozwiązać. Szczerze mówiąc, I think I miał zostały przejście do nowego projektu i nigdy nie widział to jeden rozwiązany (Moje zamian musiał radzić sobie z tym ból głowy). Pamiętaj, że to diabeł problem. Spędziłem kilka dni nieskuteczne Radzenie sobie z nim. Od tego czasu, Widziałem to nadejdzie na forum MSDN co najmniej raz w ciągu ostatniego roku i nigdy nie widział odpowiedzi dla niego.

I hit it dzisiaj i na szczęście tym razem , Po prostu miał wprowadzone zmiany do postaci. Ja wycofał się zmianą i problem poszed³ daleko. Okazuje się, że jest możliwość tworzenia szablonu przy użyciu programu InfoPath Designer w taki sposób, że generuje błąd parsowania po stronie serwera formy ogrodzenia.

W moim przypadku, problem został spowodowany przez następujące kroki:

  1. Dodania nowego elementu do źródła danych jako pole tekstowe.
  2. Upuść ją w formie.
  3. Zmienić jego wyświetlania do listy rozwijanej.
  4. Powiedz rozwijalnej listy do ściągania jego wartości z listy niestandardowych programu SharePoint.

Nie wiem, jeśli te kroki spowodować problem lub być może, jakiś sposób dane w samej listy jest problem. I 'm going to eksperymentowanie i zobacz, jeśli można paznokci Loka on parametry tego z żadnych więcej szczegółów.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki:

Osadzić autora notatki wewnątrz formularzy programu InfoPath

Nadal żyję w świecie formularze programu InfoPath i musiałem zrobić jedną z tych "małych" zmian do formularza,, Niestety, łamie konwencji nazewnictwa, które przyjęła z nim dwa tygodnie temu. Myślałem, że sobie, "ktoś będzie patrzeć na to w roku od teraz i powiedzieć, "To, co myślał Paweł? Na Jowisza, jego konwencja nazewnictwa sprawia, że nie ma sensu!”

Zdałem sobie sprawę, że mogę stworzyć widok na formularzu do tego i tamtego, Jeszcze raz, sobie sprawę, że może robili coś jak to wszystko razem. Dodałem "Notatki autora" widok na formularzu programu InfoPath jako takie:

image

Już skonfigurowany postaci, dzięki czemu użytkownicy nie może dostać się do tego widoku i dlatego, tylko jest on widoczny z klientem programu InfoPath w widoku Projekt. Teraz czuję się trochę zaszczepione przeciwko niektórych przyszłych nieznanego autora patrząc na mój formularz i myśli złe myśli o mnie. Uff!

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki:

Zarządzanie widokami programu InfoPath

Wydaje mi się przejść przez etapy programu InfoPath gdzie, z niebieskim, Jestem crafting kilka form. Palce Dowiedz się, jak również za pomocą narzędzia, a następnie przejść przez dziewięć miesięcy suszy i trzeba nauczyć go znowu.

Jestem w fazie programu InfoPath i jestem tworzenie formularzy programu InfoPath z wielu widoków. Jedną rzeczą, którą zauważysz pewnie jest to, że program InfoPath 2007 klient przedstawia widok w kolejności alfabetycznej. To jest prawdziwym utrapieniem kilka razy. Moja najlepsza technika tych dni jest dołączana numer do nazwy widoku tak, aby zawsze pokazują w żądanej kolejności, jak pokazano tutaj:

image

Żałuję, że robił to cały czas.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki:

Formularz programu InfoPath usług, Formularze oparte uwierzytelniania (PARYŻU W RODZINIE ŻYDOWSKIEJ) i unikatowe nazwy pliku

I been pracy na niektórych formularzy programu InfoPath tym tygodniu w MOSS w środowisku, w Paryżu w rodzinie Żydowskiej i zapamiętanych, Kiedy ja poszedłem do wdrażania formularzy do środowiska produkcyjnego z Paryżu w rodzinie Żydowskiej strefy nazwa użytkownika() funkcja nie działa. Używałem go do generowania nazw plików unikalne.

Również, Ta funkcja nie działa w środowisku, w Paryżu w rodzinie Żydowskiej (co najmniej, nie z polu). I, Po chwili refleksji, przy użyciu nazwy użytkownika w sposób, w jaki miał w planach nie zagwarantowały unikatowej nazwy pliku w każdym przypadku.

Moje rozwiązanie było używać teraz() funkcja i regułę, że pożary na ładowanie formularza. Przypisz nazwę pliku do elementu danych, gdy jest puste:

image

image

Zaletą tego podejścia jest to, że nazwa pliku jest ustawiana tylko raz. (Nie wyświetlić w zdjęcie ekranu, ale warunek reguły na ogień tylko podczas "myFilename" jest puste). Kiedyś, aby ustawić nazwę pliku na poziomie źródła danych. Zazwyczaj, Czy zrobić coś (Bad) Jak to:

image

Problem z tym, że jeśli użytkownik a otwiera formularz w poniedziałek i użytkownik b zmieni go we wtorek, użytkownik będziesz skończyć z dwóch różnych form ponieważ dwóch różnych użytkowników zapisana z nazwy różnych użytkowników.

Tak, jako irytujące w Paryżu w rodzinie Żydowskiej może być ogólnie i z programem InfoPath w szczególności, It made me przemyślenie tworzenia małych, ale naprawdę ważnych szczegółów technicznych i podejście, które I nie miało to miejsce w przeciwnym razie!

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki:

Szybkie i proste: Dokonać odczytu formularza programu InfoPath są tylko (Usługi InfoPath Forms Services w MOSS)

Istnieje wspólne scenariusza biznesowego tak:

  • Użytkownik wypełnia formularz programu InfoPath.
  • Przesłaniu formularza.
  • Proces przepływu pracy długotrwałych kicks.
  • Gdy przepływ pracy jest uruchomiony, nie chcemy każdy zmianę zawartości formularza.

W tym przykładzie office.microsoft.com opisano, jak utworzyć osobny widok"" i zaznaczyć cały widok tylko do odczytu. To jest podejście praktyczne ale ma wadę, że skutecznie stworzyliśmy dwie wersje całą tę samą formę i musi teraz utrzymywać je w synchronizacji ręcznie. Po dodaniu pola do widoku edycji, Następnie należy ją dodać do widoku nie można edytować jak również. Z biegiem czasu, z różnych deweloperów, można istnieć pewne rozbieżności.

To alternatywne może działać lepiej w niektórych przypadkach:

  • Dodać nowe pole do formularza o nazwie "IsEditable".
  • Ustawiona wartość domyślna do PRAWDA.
  • Wspierają go podczas publikowania do MOSS.
  • W przepływie pracy, ustawiona wartość IsEditble na false.
  • Wróć do formularza.
  • Dodać regułę że "na otwarcie formularza", wyłączanie zapisywania przycisk po IsEditable ma wartość false.

Wadą tej metody jest to, że wszystkie pola wciąż będzie można edytować na ekranie. Użytkownik może uzyskać fałszywe wrażenie, że rzeczywiście można zmienić zawartość. Można zmniejszyć, umieszczając w jakiś tekst, że formularz jest wyłączona, ewentualnie w wielkie litery czerwony w górnej części strony.

W jednym projekcie, Utworzony stan przepływu pracy"" Widok. W pracy, chcieliby zaktualizować pola szczególnego statusu, które uzyskał awans z formularza. Gdy użytkownik otworzy formularz, otworzyć formularz"" z reguły to automatycznie zamieniana, że widok i użytkownik miał ładny mały status podsumowanie.

</koniec>

Subskrybowanie mój blog.

Przełącz widok na podstawie identyfikatora użytkownika w formularzu programu InfoPath

Mieliśmy opracowany formularza programu InfoPath, z wielu widoków do obsługi nowych Wynajem / na pokład proces. Kiedy firma wynajmuje nową osobę, dział IT i innych grup trzeba podjąć działania (Konfigurowanie listy płac, umożliwienia dostępu do odpowiednich aplikacji, Zlokalizuj biurko, itp). Używamy na formie, ale inny widok formularza dla każdej z tych funkcji.

W tej firmie, Większość ludzi zaangażowanych w proces biznesowy IT-bystry, więc kiedy oni dostępu do formularza, ich widok domyślny jest "menu" widok z przycisków, które kierują je do ich szczególnych funkcji. Jednakże, nam potrzebne uprościć do bezpośredniego przełożonego wynajem nowy. Ta osoba nie powinna zobaczyć rzeczy związanych z IT. W zasadzie, ona powinna zobaczyć tylko jeden widok formularza i nawet nie ma opcji aby zobaczyć inne poglądy.

W naszym przypadku, bezpośrednie Menedżera konta jest bezpośrednio powiązana z postaci dzięki uprzejmości skontaktować się selektora (co jestem zawsze chcą nazwać "ludzie picker" z jakiegoś powodu).

Kroki są następujące:

1. W trybie projektowania, Przejdź do menu Narzędzia-> Opcje formularza-> Otwieranie i zapisywanie.

2. Wybierz "zasady".

3. Utwórz nową regułę, w której akcja jest "Przełącz się na widok" i którego stan wykorzystuje nazwę użytkownika() Funkcja.

Nazwa użytkownika() zwraca "simple" Nazwa użytkownika bez domeny. Czy zalogować się do programu SharePoint przy użyciu poświadczeń "domainpagalvin", Nazwa użytkownika() zwraca wartość "pagalvin".

Kontakt z selektor zawiera trzy bity informacji o kontakt. "AccountID" część jest najbardziej przydatne dla tego scenariusza. Jedyną rzeczą, która sprawia, że jest to nawet trochę z wyzwaniem jest to, że kontakt z selektora (w moim środowisku tak) zwraca identyfikator domeny i użytkownika, Podobnie jak w "domainpagalvin". To zabezpiecza nas przed tym warunku równości prosta od AccountID ("domainpagalvin") nigdy nie będzie równa użytkownika() ("pagalvin").

My puszka metalowa dostać wokoło ten za pomocą "zawiera" operatora: AccountID zawiera nazwę użytkownika().

Możemy go dalej i pre-pend zakodowane domeny przed nazwa użytkownika() funkcja, aby sprawdzić nasze równości i wyeliminować ryzyko pewien fa³szywy pozytywny na zawiera operator.

Mamy naprawdę jak automatyczne przełączanie widoku dla innych użytkowników na podstawie ich członkostwa grup zabezpieczeń AD. Na przykład, gdy członek "to Analytics" Grupa uzyskuje dostęp do formularza, automatycznie Przełącz do widoku IT Analytics. Nie mieliśmy czasu, aby je wdrożyć, ale moja pierwsza myśl jest stworzenie serwisu, który miałby Metoda jak "IsMemberOfActiveDirectorySecurityGroup", przekazać nazwę użytkownika() i Powrót powrót true lub false. Ma ktoś inne, Więcej sprytny pomysł? Jest tam dowolnej funkcji programu SharePoint, które możemy wykorzystać z programu InfoPath do tego ustalenia?

</koniec>

Technorati znaczniki: