kategorie Argief: Path 2007 // Vorms Server

Vinnige Hit: Lees Path XML direk vanaf 'n SPListItem in SharePoint

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 (wat net XML-lêers, So dit is eintlik baie maklik).

Terwyl ek die opbou van die projek, I started by downloading an InfoPath form and saving it to my local hard drive. My c# code was reading directly from that instance. Egter, 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. Egter, there’s no need to go through those hoops as you can read it directly from the library. This little snippet shows how:

/// Klas definisie dinge hier, insluitende:
private SPFile mySharePointFile; /* Deel van 'n SPList */
// Meer kode gaan hier en binne 'n metode van die klas het ons 'n:
XmlTextReader textReader;
textReader = nuwe XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Geen;

textReader.Read();

// Indien die knoop het waarde

terwyl (textReader.Read())
{

… and so on and so forth …

Hulle het die sleutel bietjie bogenoemde is dat ons kan die Path direk lees via die OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags:

Programmaties Uittreksels aanhegsels van Path Vorms (Insluitend hul name!)

I have an expense entry solution for a client that leverages InfoPath and workflow. At one point during the approval process, Ek het 'n e-pos wat al van daardie goeie Path data sowel as die aanhegsels hulself te genereer sodat (sug) iemand kan neem dat die data en die hand te re-sleutel dit in 'n Oracle databasis aansoek.

It’s not very difficult to get at or parse the InfoPath form. I didn’t know how to handle the attachments, egter. After an hour or two of poking around the Internets ('n ewigheid!) Ek het gevind dat hierdie artikel: http://support.microsoft.com/kb/892730

It provide some handy code to extract the attachment from a node in the form. (Jy moet nog steeds die knoop en al wat te vind, maar dit is net XML-ontleding).

Ek weet dat die beslaglegging is base64 geënkodeerde-en ek oorspronklik het die pad van net onttrek die die base64 data, decoding it and saving it. Egter, Ek het gou besef ek het nie geweet hoe om die lêer naam kry homself totdat ek het gevind dat die genoemde artikel.

Ek het eintlik het bevind dat baie vroeë, maar ek was sit af deur sy gesplete persoonlikheid. Aan die een kant, the article *says* it’s good for InfoPath 2007. Tog, die kode en instruksies is al oor die Visual Studio 2003 en verwysings na Path 2003.

Bottom line, die kode wat artikel wat verskaf is goed werk vir my (so ver). I can get my InfoPath form, Ek kan ontleed dit, I can find and decode the attachment and I know its name. What more can one ask of one’s life?

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags: ,,

As jy bekommerd is dat jou SharePoint omgewing kan 'n bietjie ongesond wees, Laat my toe om jou te los wat met 'n gesondheid tjek.

Bestuur Goedkeuring Groepe met Path in 'n FBA Omgewing

Ek het 'n uitgawe goedkeuring-proses wat ek nodig het om te implementeer met behulp van Path in 'n vorm gebaseer verifikasie (FBA) omgewing met behulp van vorms dienste (web-gebaseerde Path).

Daar is twee groepe goedkeuring en die proses werk soos hierdie:

  • Gebruikers vul 'n uitgawe verslag en lê dit voor vir goedkeuring.
  • Wat snellers 'n e-pos aan die eerste vlak Goedkeurder groep.
  • Eerste vlak Goedkeurder resensies en goedkeur of ontken die verslag.
  • As eerste vlak persoon dit goedkeur, stelsel in kennis tweede vlak Goedkeurder.

Op die Path kant van die saak, Ek het verskillende afdelings wat wegkruip / gebaseer op verskyn of die gebruiker 'n lid van een van die goedkeuring groepe.

In 'n FBA omgewing die rekening() funksie gee altyd leeg, ongelukkig. What I’ve done is set up a a custom list called “Approval Groups”.

Ek voeg nie enige bykomende kolomme aan die lys.

Wanneer die vorm oopmaak, dit het 'n reël soos hierdie:

image

Die "stel 'n gebied se waarde" is hier:

image

Dit is basies sê: Bevraagteken die goedkeuring groep persoonlike lys en filter wat navraag deur op soek na enige ry waar titel se waarde = "NORDIC".

As dit terugkeer enige waarde, 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, indien die huidige gebruiker het nie gepaste sekuriteit toegang tot daardie item het dan die navraag sal nie terugkeer nie, 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.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags: ,

Path // Een verduideliking vir "Onhanteerde uitsondering wanneer die lewering van vorm System.Xml.XmlException: Onverwagse einde van die lêer met die pars eer van Naam het voorgekom. "

Ek was op 'n InfPath vorm vandag en hardloop teen 'n ou vriend, "Onhanteerde uitsondering wanneer die lewering van vorm System.Xml.XmlException: Onverwagse einde van lêer terwyl parsing Naam plaasgevind het. "

This happened to me a long time ago and I don’t know what exactly I did to resolve it. Honestly, Ek dink ek het die oorgang na 'n nuwe projek en het nog nooit gesien het hierdie een opgelos (my vervanging te doen gehad met daardie hoofpyn). I do remember it was a devil of a problem. I spent several unsuccessful days dealing with it. Since then, Ek het gesien dat dit op die MSDN forums ten minste een keer oor die afgelope jaar en het nooit regtig 'n antwoord vir dit gesien.

Ek druk dit vandag en gelukkig hierdie tyd , 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.

In my geval, die probleem is veroorsaak deur hierdie stappe:

  1. Voeg 'n nuwe element aan 'n data bron as 'n teks veld.
  2. Gooi dit op die vorm.
  3. Verander dit se vertoning in 'n keuselys.
  4. Vertel die keuselys sy waardes te trek uit 'n SharePoint persoonlike lys.

Ek weet nie indien daardie stappe veroorsaak 'n probleem of miskien, een of ander manier die data in die lys self is 'n probleem. I’m going to experiment a bit and see if I can nail downt he parameters of this with any more detail.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags:

Embed Ontwikkelaar Notes binne-in jou Path Vorms

Ek nog in die lewe in Path Vorms wêreld, en ek moes een van daardie "klein" veranderinge te maak aan 'n vorm wat, ongelukkig, breaks a naming convention I adopted with it two weeks ago. Ek het gedink, "Iemand gaan om te kyk na hierdie ding 'n jaar van nou af en sê:, "Wat was Paulus dink? By Jove, sy Naming Convention maak nie sin nie!"

Ek het besef dat ek kon 'n oog op die vorm te skep vir hierdie en dan, weer, 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

Ek het ingestel om die vorm sodat gebruikers dit kan nie aan daardie siening en dus, 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!

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags:

Die bestuur van Path Views

Dit lyk asof ek deur Path fases waar om te gaan, uit die bloute, 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.

Ek is in die middel van 'n Path-fase en ek skep die Path vorms met 'n baie wisseling. Een ding wat jy moontlik agterkom, is dat die Path 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, soos geïllustreer hier:

image

I wish I had been doing this all along.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags:

Path Vorm dienste te lewer, Vorm verifikasie (FBA) en Unieke lêername

Ek werk op sommige Path vorm in MOSS hierdie week in 'n FBA omgewing en geleer, toe ek die vorms in te sit om 'n produksie-omgewing met 'n FBA sone dat die gebruikersnaam() function function does not work. I was using it to generate unique file names.

Wel, dat die funksie nie werk in 'n FBA-omgewing (ten minste, nie uit die boks). En, op weerspieëling, die gebruik van gebruikersnaam in die manier wat ek beplan het nie gewaarborg nie 'n unieke naam vir die lêer in elk geval.

My oplossing was om die nou te gebruik() 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. (Ek wys dit nie in die kiekie, maar sit 'n toestand op die reël slegs brand wanneer "myFilename" is leeg). I used to set the file name at the data source level. Typically, Ek wil iets doen (slegte) soos hierdie:

image

Die probleem met dit is dat as gebruiker 'n open die vorm op Maandag en die gebruiker B verander op Dinsdag, jy eindig met twee verskillende vorme omdat twee verskillende gebruikers gered word met ander gebruikers name.

So, irriterende as FBA kan wees in die algemeen en met Path in die besonder, dit het my weer dink 'n klein maar baie belangrike tegniese detail en benadering dat ek nie anders sou gedoen het!

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Technorati Tags:

Vinnige en maklike: Maak 'n Path Vorm Slegs lees (Path Vorms in MOSS)

Daar is 'n algemene scenario soos hierdie:

  • Gebruikers vul 'n Path vorm.
  • Lê vorm.
  • Lang-lopende workflow proses skop af.
  • Terwyl die workflow loop, Ons wil nie aan enigiemand die inhoud van die vorm te verander.

Hierdie office.microsoft.com voorbeeld beskryf hoe om 'n aparte "view te skep" 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. Over time, met ander ontwikkelaars, there can be some divergence.

Hierdie alternatief sou beter werk in sommige gevalle:

  • Voeg 'n nuwe veld op die vorm genaamd "IsEditable".
  • Stel die verstek waarde aan ware.
  • Bevorder dit wanneer publiseer te MOSS.
  • In die workflow, stel om die waarde van IsEditble valse.
  • Gaan terug na die vorm.
  • Voeg 'n reël wat "op die oop van die vorm", skakel jou save knoppie wanneer IsEditable is vals.

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, moontlik in groot rooi letters oor die bokant van die bladsy.

In een projek, Ek het 'n workflow status" sien. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, die "oop vorm" heers outomaties oorgeskakel na wat die oog en die gebruiker het 'n mooi klein opsomming status.

</einde>

Technorati Tags: ,

Skryf in op my blog.

Skakel skerm op grond van gebruikers ID in 'n Path vorm

Ons het 'n ontwikkelde 'n Path vorm 'n nuwe huur met verskeie standpunte te ondersteun. / on-boarding process. When the company hires a new person, die IT-departement en ander groepe nodig om aksie te neem (op die betaalstaat, in staat stel om toegang tot toepaslike programme, soek 'n lessenaar, ens.). We use on form but a different view of the form for each of those functions.

Op hierdie maatskappy, Die meeste van die mense wat betrokke is in die besigheid is IT-vaardig, so wanneer hulle toegang tot die vorm, hulle op die regte pad is 'n "menu" view with buttons that direct them to their specific function. Egter, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. In werklikheid, sy moet net een siening van die vorm en nie eens 'n opsie om die ander mening te sien.

In ons geval, dat direkte bestuurder se rekening word direk gekoppel aan die vergunning van 'n kontak selector (wat ek wil altyd 'n "mense picker te roep" vir een of ander rede).

Die stappe is soos volg:

1. In die ontwerp af, Gaan na Tools -> Vorm opsies -> Oopmaak en stoor.

2. Kies "reëls".

3. Skep 'n nuwe reël wie se optrede is "skakel om te sien" en wie se toestand maak gebruik van die gebruikersnaam() funksie.

gebruikersnaam() gee die "eenvoudige" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", gebruikersnaam() return "kussings".

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 elk geval in my omgewing) gee die domein en gebruikers ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("Domain kussing") sal nooit gelyk gebruikersnaam() ("Pillow").

Ons kan kry om die gebruik van die "bevat" operateur: AccountID bevat gebruikersnaam().

Ons kan dit verder en pre-pend 'n harde-gekodeerde gebied in die voorkant van die gebruikersnaam() funksie te kry gaan ons gelykheid en elimineer die risiko van 'n vals positief op die bevat operateur.

We would have REALLY like to automatically switch view for other users based on their AD security group membership. Byvoorbeeld, Wanneer 'n lid van die "IT Analytics" groep toegang tot die vorm, automatically switch to the IT Analytics view. We didn’t have time to implement it, maar my eerste gedagte is om 'n web te skep wat 'n metode soos "IsMemberOfActiveDirectorySecurityGroup", slaag dit die gebruikersnaam() and return back true or false. Does anyone have any other, meer slim idee? Is there any SharePoint function we can leverage from InfoPath to make that determination?

</einde>

Technorati Tags: