катэгорыя Архівы: InfoPath 2007 // Forms Server

Параўнанне без уліку рэгістра ў InfoPath

Я напісаў артыкул для SharePointBriefing.com and they put it up live today.

Вось тізер:

image

Праверце гэта.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Хуткія Гітоў: Чытанне InfoPath XML непасрэдна з SharePoint ў SPListItem

I’m been working on a project where I need to extract attachments from an InfoPath form. There are some good resources for parsing InfoPath forms (якія з'яўляюцца толькі XML файлы, так што гэта на самай справе даволі лёгка).

Пакуль я будаваў праект, I started by downloading an InfoPath form and saving it to my local hard drive. My c# code was reading directly from that instance. Аднак, the InfoPath forms are really living inside a SharePoint forms library. I did a little half hearted searching to find out how to read it directly from the library and almost gave up, in which case I would have saved the form to a local temp directory and read it from there. Аднак, there’s no need to go through those hoops as you can read it directly from the library. This little snippet shows how:

/// Вызначэнне класа матэрыял тут, у тым ліку:
прыватны SPFile mySharePointFile; /* Частка SPList */
// Больш тут размяшчаецца код і ўнутры метаду класа ў нас ёсць:
XmlTextReader TextReader;
TextReader = новы XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhiteSpaceHandling.Ні адзін;

textReader.Read();

// Калі вузел мае значэння

у той час як (textReader.Read())
{

… and so on and so forth …

Яны ключ трохі вышэй у тым, што мы можам прачытаць InfoPath непасрэдна праз OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Праграмна здабываць ўкладання з InfoPath Forms (Уключаючы іх імёны!)

I have an expense entry solution for a client that leverages InfoPath and workflow. At one point during the approval process, Мне трэба стварыць электронную пошту, якая мае ўсе, што добрыя дадзеныя InfoPath, а таксама ўкладання сябе так, што (ўздых) нехта можа лічыць, што дадзеныя і ўручную паўторна ключ яго ў дадатак базы дадзеных Oracle.

It’s not very difficult to get at or parse the InfoPath form. I didn’t know how to handle the attachments, аднак. After an hour or two of poking around the Internets (вечнасці!) Я знайшоў гэты артыкул: http://support.microsoft.com/kb/892730

It provide some handy code to extract the attachment from a node in the form. (Вам усё яшчэ трэба знайсці вузел і ўсё, што, але гэта толькі разбору XML).

Я ведаю, што ўкладанні ў кадоўцы base64 і я першапачаткова пайшлі па шляху проста выманне дадзеных base64, decoding it and saving it. Аднак, Я хутка зразумеў, што не ведае, як атрымаць само імя файла, пакуль не знайшоў вышэйзгаданым артыкуле.

На самай справе я выявіў, што даволі рана, але я палохаўся яго раздваенне асобы. З аднаго боку, the article *says* it’s good for InfoPath 2007. Яшчэ, кода і інструкцыі, усё пра Visual Studio 2003 і спасылкі на InfoPath 2003.

Вынік, код, які артыкул прадугледжвае працуе добра для мяне (да гэтага часу). I can get my InfoPath form, Я магу разабраць яго, I can find and decode the attachment and I know its name. What more can one ask of one’s life?

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,,

Калі вы турбуецеся, што ваш SharePoint асяроддзе можа быць трохі нездаровую, Дазвольце мне дапамагчы вам вырашыць, што з праверкі здароўя.

Упраўленне зацвярджэнні груп з InfoPath ў асяроддзі FBA

У мяне ёсць працэс зацвярджэння расходаў, што мне трэба рэалізаваць, выкарыстоўваючы InfoPath у формы праверкі сапраўднасці на аснове (FBA) навакольнага асяроддзя з выкарыстаннем формаў паслуг (вэб InfoPath).

Ёсць дзве групы зацвярджэння і працэс як гэта працуе:

  • Карыстальнік запаўняе справаздачу аб выдатках і падае яго на зацвярджэнне.
  • , Які выклікае ліст першай групе ўзровень якi зацвярджае.
  • Першая якi зацвярджае ўзроўню разглядае і дазваляе або адмаўляе ў дакладзе.
  • Калі першы чалавек, сцвярджае яго ўзроўню, Сістэма паведамляе другога якi зацвярджае узроўні.

На InfoPath бок рэчаў, У мяне ёсць розныя раздзелы, якія хаваюць / адлюстроўвацца ў залежнасці ад таго, карыстальнік з'яўляецца сябрам адной з гэтых груп сцвярджэнні.

У асяроддзі FBA імя карыстальніка() функцыя заўсёды вяртае пусты, сумна. What I’ve done is set up a a custom list called “Approval Groups”.

Я не дадаць любыя дадатковыя калонкі ў спіс.

Калі форма адкрываецца, яна мае наступнае правіла:

image

"Усталяваць значэнне поля" тут:

image

Гэта ў асноўным кажа: Запыт да сцвярджэнні групы карыстацкі спіс і фільтр, што запыт, шукае любую радок, у якой значэнне загалоўка ў выглядзе = "Nordic".

Калі гэта вяртае любое значэнне, then the current user is a member of that group. I know it contains that value because the string length is greater than zero.

Close the loop by securing the individual items in the Approval Group list. At run-time, Калі бягучы карыстальнік не мае адпаведных бяспекі доступу да гэтага пытання, то гэты запыт не верне яго, string-length will be zero and now you know the current user is not part of that group. You can use that fact as needed in the form.

This is a super brief write-up. I’m pressed for time or I’d provide more detail.

I don’t know how relevant it is that I’m in an FBA environment. This would probably work well in a non-FBA environment but I can imagine cases where this would be useful.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,

InfoPath // Адным з тлумачэнняў "неапрацаванае выключэнне пры візуалізацыі форму System.Xml.XmlException: Нечаканы канец файла падчас разбору Імя адбылося. "

Я працаваў над InfPath форме сёння, і сутыкнуўся з старым сябрам, "Неапрацаванага выключэнне пры адмалёўцы формы System.Xml.XmlException: Нечаканы канец файла падчас разбору Імя мела месца ".

This happened to me a long time ago and I don’t know what exactly I did to resolve it. Honestly, Я думаю, што я быў пераход на новы праект і ніколі не бачыў гэтую вырашаны (маёй замены даводзілася мець справу з гэтай галаўным болем). I do remember it was a devil of a problem. I spent several unsuccessful days dealing with it. Since then, Я бачыў гэта прыдумалі на форумах MSDN крайняй меры адзін раз на працягу апошняга года і ніколі не бачыў за гэта адказаць.

Я стукнуў яго сёння, і, на шчасце, на гэты раз , I had just made a change to the form. I backed out that change and the problem went away. It turns out that it’s possible to create a from template using InfoPath Designer in such a way that it generates a parse error on the forms server side of the fence.

У маім выпадку, Праблема была выкліканая гэтымі крокамі:

  1. Дадаць новы элемент да крыніцы дадзеных у выглядзе тэкставага поля.
  2. Змесціце яго на форму.
  3. Змяніць яго дысплей у выпадальным спісе.
  4. Раскажы выпадальнага спісу вывесці свае значэння з спісу SharePoint карыстацкіх.

Я не ведаю, калі гэтыя крокі выклікаць праблемы або, можа быць, неяк дадзеныя ў спісе само па сабе з'яўляецца праблемай. I’m going to experiment a bit and see if I can nail downt he parameters of this with any more detail.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Уставіць Распрацоўшчык адзначае Усярэдзіне вашых формаў InfoPath

Я ўсё яшчэ жыву ў свеце InfoPath Forms і мне трэба было зрабіць адзін з тых "невялікіх» змяненняў у форму,, на жаль, breaks a naming convention I adopted with it two weeks ago. Я падумаў пра сябе, "Хто-то будзе глядзець на гэтую рэч праз год і сказаць, «Што думае Павел быў? By Jove, назвах яго не мае сэнсу!"

Я зразумеў, што я мог бы зрабіць выгляд на форму для гэтага, а затым, яшчэ раз, realized that I could have been doing something like this all along. I added a “Developer Notes” view to the InfoPath form as such:

image

Я настроены формы так, каб карыстальнікі не могуць дабрацца да гэтага пункту гледжання і, такім чынам,, it’s only visible with the InfoPath client in design view. Now I feel a little inoculated against some future unknown developer looking at my form and thinking bad thoughts about me. Phew!

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Упраўленне InfoPath праглядаў

Я, здаецца, праходзяць InfoPath фаз, пры якіх, зусім нечакана, I’m crafting a bunch of forms. My fingers learn how to use the tool well and then I go through nine month drought and have to learn it all over again.

Я знаходжуся ў сярэдзіне InfoPath фазы і я ствараю InfoPath Forms з вялікай колькасцю праглядаў. Адна рэч, якую вы, верагодна, заўважыце, што InfoPath 2007 client shows views in alphabetical order. This is a real nuisance some times. My best technique these days is to prepend a number to the view name so that they always show in the order I want, як паказана на малюнку:

image

I wish I had been doing this all along.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Sevices формаў InfoPath, Аўтэнтыфікацыю на аснове формаў (FBA) і унікальныя імёны файлаў

Я працую на некаторых формаў InfoPath на гэтым тыдні ў MOSS ў асяроддзі FBA і даведаўся, калі я пайшоў у разгортванні формы ў вытворчую сераду з зонай FBA, што імя карыстальніка() function function does not work. I was using it to generate unique file names.

Добра, гэтая функцыя не працуе ў асяроддзі FBA (па меншай меры, Ці не з скрынкі). І, пры адбіцці, выкарыстаннем імя, які не так, як я планаваў бы не гарантавана унікальнае імя файла ў любым выпадку.

Маё рашэнне было выкарыстоўваць зараз() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (Я не паказваю гэта на скрыншоце, але паставіў умову на вяршэнстве толькі агонь, калі "MyFileName" пусты). I used to set the file name at the data source level. Typically, Я хацеў бы зрабіць што-то (дрэнны) вось так:

image

Праблема ў тым, што калі карыстальнік адкрывае форму ў панядзелак і карыстальнік B змяняе яго на аўторак, вы ў канчатковым выніку з двух розных формах, так як два розныя карыстальнікаў захавалі яго з рознымі імёнамі карыстальнікаў.

Так, як раздражняе, як FBA можа быць у цэлым і, у прыватнасці, InfoPath, гэта прымусіла мяне пераасэнсаваць невялікі, але вельмі важных тэхнічных дэталяў і падыход, які я не зрабіў бы інакш!

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі:

Хутка і проста: Зрабіць InfoPath Form Толькі для чытання (InfoPath Forms Services у MOSS)

Там у агульнай бізнес-сцэнар, як гэта:

  • Карыстальнік запаўняе форму InfoPath.
  • Ўяўляе форму.
  • Працяглыя працоўны працэс стартуе.
  • У той час як працоўны працэс працуе, мы не хочам, каб хто-то змяніць змест выглядзе.

This office.microsoft.com example describes how to create a separate "view" and mark the whole view as read-only. This is a workable approach but has the drawback that you’ve effectively created two entire versions of the same form and must now keep them in sync manually. If you add a field to the editable view, you must then add it to the non-editable view as well. Праз некаторы час, with different developers, there can be some divergence.

This alternative might work better in some cases:

  • Add a new field to the form called "IsEditable".
  • Set its default value to true.
  • Promote it when publishing to MOSS.
  • У працоўным працэсе, set the value of IsEditble to false.
  • Go back to the form.
  • Add a rule that "upon open of the form", disable your save button when IsEditable is false.

The drawback to this approach is that all the fields will still be editable on the screen. The user can get a false impression that they can actually change content. You can mitigate that by putting in some text that the form is disabled, possibly in big red letters across the top of the page.

In one project, I created a "workflow status" глядзець. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, the "open form" rule automatically switched to that view and the user had a nice little summary status.

</канец>

Падпісацца на мой блог.

Пераключыць выгляд прадстаўлення на аснове ідэнтыфікатар карыстальніка ў формы InfoPath

Мы распрацавалі формы InfoPath з некалькімі ўяўленнямі для падтрымкі новага супрацоўніка / on-boarding process. When the company hires a new person, ІТ-аддзела і іншых груп павінны прыняць меры (створана заработнай платы, забяспечыць доступ да адпаведных прыкладанням, знайсці стол, і г.д.). We use on form but a different view of the form for each of those functions.

У гэтай кампаніі, большасць людзей, якія ўдзельнічаюць у бізнес-працэсе з'яўляюцца IT-падкаваных, таму, калі яны атрымліваюць доступ да форме, their default view is a "menu" view with buttons that direct them to their specific function. Аднак, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. На самай справе, яна павінна ўбачаць толькі адзін від на форме і нават не маюць магчымасць убачыць іншыя меркаванні.

У нашым выпадку, што кошт прамога мэнэджара напрамую звязана з формай ласкі Выбар кантактаў (which I am always wanting to call a "people picker" па некаторых прычынах).

Меры заключаюцца ў наступным:

1. У рэжыме канструктара, перайдзіце ў меню Сэрвіс -> Параметры формы -> Адкрыць і Захаваць.

2. Select "rules".

3. Create a new rule whose action is "switch to view" і чый стан выкарыстоўвае імя карыстальніка() функцыя.

имя_пользователя() returns the "simple" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", имя_пользователя() returns "pagalvin".

The contact selector provides three bits of information for a contact. The "AccountID" portion is most useful for this scenario. The only thing that makes this even a little bit of challenge is that the contact selector (у маім асяроддзі ўсё роўна) вяртае імя дамена і карыстальніка ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") ніколі не будзе роўная имя_пользователя() ("pagalvin").

We can get around this using the "contains" аператар: AccountID ўтрымлівае имя_пользователя().

Мы можам узяць яго, а таксама папярэдне залежаць жорстка дамена перад імем карыстальніка() функцыю, каб атрымаць нашу раўнавагу праверыць і выключыць рызыку ілжывых спрацоўванняў на аператара ўтрымлівае.

We would have REALLY like to automatically switch view for other users based on their AD security group membership. Напрыклад, when a member of the "IT Analytics" група атрымлівае доступ да форме, automatically switch to the IT Analytics view. We didn’t have time to implement it, but my first thought is to create a web service that would have a method like "IsMemberOfActiveDirectorySecurityGroup", перадаць яго імя карыстальніка() and return back true or false. Does anyone have any other, больш разумная думка? Is there any SharePoint function we can leverage from InfoPath to make that determination?

</канец>

Technorati Тэгі: