Ես գրել մի հոդված է SharePointBriefing.com and they put it up live today.
Ահա մի կատակ:
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin
Ես գրել մի հոդված է SharePointBriefing.com and they put it up live today.
Ահա մի կատակ:
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin
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 (որոնք ընդամենը թեմա ֆայլեր, այնպես որ դա իրականում բավականին հեշտ է).
Մինչ ես կառուցապատման նախագիծը, 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 */ // More կոդը գնում ու մեջը մի մեթոդով, որը դասի մենք: textReader = նոր XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = WhitespaceHandling.Ոչ մեկը; textReader.Read(); // Եթե ուռուցք ունի արժեք ժամանակ (textReader.Read()) { |
Նրանք կարեւոր քիչ վերեւում է, որ մենք կարող ենք կարդալ InfoPath ուղղակի միջոցով OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin
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 encoded, եւ ես ի սկզբանե իջան ճանապարհով պարզապես բերելով այն է 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
Եթե դուք մտահոգված, որ ձեր Sharepoint միջավայրը կարող է լինել անառողջ tad, թույլ տվեք օգնել ձեզ ամրագրել է, որ ինչպես առողջապահության անդորրագրի.
Ես մի ծախսային հաստատման գործընթացը, որ ես պետք է իրականացնել, օգտագործելով InfoPath մի ձեւերի վրա հիմնված իսկությունը ստուգելու (FBA) միջավայր օգտագործելով ձեւերը ծառայություններ (վեբ վրա հիմնված InfoPath).
Կան երկու հաստատման խմբեր, եւ այդ գործընթացը աշխատում նման:
Ին InfoPath կողմում բաներ, Ես տարբեր բաժիններից, որ թաքցնել / երեւում հիման վրա, թե արդյոք օգտագործողի անդամ որեւէ հաստատման խմբերի.
Մի FBA միջավայրի Մականուն() գործառույթը միշտ վերադառնում դատարկ, տխուր. What I’ve done is set up a a custom list called “Approval Groups”.
Ես չեմ ավելացնել ցանկացած լրացուցիչ սյունյակները ցուցակում.
Երբ ձեւը բացում, այն ունի կանոն նման:
The "սահմանել մի դաշտ արժեքի" այստեղ:
Սա հիմնականում ասում: Հարցում հաստատման խմբի գործարկողի ցուցակը եւ զտիչ այդ հարցմանը, ըստ փնտրում յուրաքանչյուր տողում, որտեղ վերնագիրը արժեքի = "Հյուսիսային".
Եթե դա վերադարձնում որեւէ արժեք, 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
Ես աշխատում է InfPath ձեւով այսօր եւ վազեց դեմ մի հին ընկեր, "Unhandled բացառություն, երբ մատուցելու ձեւ 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.
Իմ դեպքում,, Խնդիրն այն է առաջացրել այդ քայլերը:
Ես չգիտեմ, եթե այդ քայլերը կարող է առաջացնել խնդիրներ Կամ գուցե, ինչ - որ կերպ այդ տվյալները ցուցակում ինքը խնդիր. 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
Ես դեռ ապրում են InfoPath տեսակները աշխարհում, եւ ես պետք է այն «փոքր մասնաճյուղի փոփոխությունների մի ձեւով այդ, դժբախտաբար, breaks a naming convention I adopted with it two weeks ago. Ես մտածեցի ինքս ինձ, «Ինչ - որ մեկը պատրաստվում է նայել այս բանի մեկ տարի հետո եւ ասում, Ինչ էր մտածում Paul? 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:
Ես կազմաձեւված ձեւը, որպեսզի օգտվողները չեն կարող ստանալ այդ տեսանկյունից եւ հետեւաբար, 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
Ես կարծես թե անցնում 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 ձեւերը, ինչպես նաեւ բազմաթիվ տեսակետների. Մի բան դուք հավանաբար նկատել է, որ 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, Պահեստավորված նաեւ այստեղ::
I wish I had been doing this all along.
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin
Ես աշխատում է ինչ - որ 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:
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, Ես մի բան (վատ) այսպես:
Խնդիրն այն է, որ եթե օգտվողին A բացում է ձեւը երկուշաբթի, իսկ օգտվողին B փոխում եմ երեքշաբթի, Դուք հայտնվում է երկու տարբեր ձեւերով, քանի որ երկու տարբեր օգտվողները փրկեց նրան տարբեր անուններով Օգտվողի մասին.
Այնքան, ինչպես նաեւ annoying FBA կարող է լինել ընդհանրապես, եւ մասնավորապես InfoPath, դա ինձ նորից թվում է, մի փոքր, բայց, իրոք, կարեւոր է, եւ տեխնիկական մանրամասն մոտեցում, որ ես չէի արել, հակառակ դեպքում!
</վերջ>
Գտեք Twitter-ում http://www.twitter.com/pagalvin
Կա մի ընդհանուր բիզնես սցենար նման:
Այս office.microsoft.com օրինակ նկարագրում է, թե ինչպես ստեղծել առանձին msgstr "Տեսաբերել" 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. Ժամանակի ընթացքում, տարբեր ծրագրավորողներ, there can be some divergence.
Այս այլընտրանք կարող է ավելի լավ աշխատենք, որոշ դեպքերում:
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, հնարավորինս մեծ, կարմիր տառերով ամբողջ էջի վերեւում.
Մի ծրագիր, Ես ստեղծել է աշխատանքի արդյունքում կարգավիճակ" դիտել. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, - ին «բաց ձեւը" բացառում ավտոմատ անցել այդ տեսակետին, եւ մի գեղեցիկ փոքրիկ օգտվողին ամփոփ կարգավիճակ.
</վերջ>
Մենք զարգացած է 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.
At this company, most of the people involved in the business process are IT-savvy, so when they access the form, 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. Ի դեպ, she should see just one view of the form and not even have an option to see the other views.
Մեր դեպքում,, that direct manager’s account is directly tied to the form courtesy of a contact selector (which I am always wanting to call a "people picker" for some reason).
The steps are as follows:
1. In design mode, go to Tools -> Form Options -> Open and Save.
2. Select "rules".
3. Create a new rule whose action is "switch to view" and whose condition leverages the userName() ֆունկցիա.
Մականուն() 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 (in my environment anyway) returns the domain and user ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") will never equal userName() ("pagalvin").
We can get around this using the "contains" operator: AccountID contains userName().
Մենք կարող ենք վերցնել այն ավելի ու նախընտրական pend է դժվար կոդավորված դոմեյն դիմաց Մականուն() գործառույթ ստանալ մեր հավասարություն ստուգել եւ վերացնել վտանգը կեղծ դրական է պարունակում օպերատորին.
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" Խումբը, որին accesses ձեւը, 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?
</վերջ>