Category Archives: InfoPath 2007 // Forms Server

Quick Hit: InfoPath XML SharePoint SPListItem bat irakurtzen du zuzenean From

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 (besterik ez XML fitxategiak dira, beraz, benetan da nahiko erraza).

Nintzen bitartean, eraikitzeko proiektua, I started by downloading an InfoPath form and saving it to my local hard drive. My c# code was reading directly from that instance. Hala eta guztiz ere, 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. Hala eta guztiz ere, there’s no need to go through those hoops as you can read it directly from the library. This little snippet shows how:

/// Class definition stuff here, barne:
pribatua SPFile mySharePointFile; /* Part of an SPList */
// More code goes here and inside a method of the class we have:
XmlTextReader textReader;
textReader = berria XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Bat ere ez;

textReader.Read();

// If the node has value

bitartean (textReader.Read())
{

… and so on and so forth …

They key bit above is that we can read the InfoPath directly via the OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags:

Programazioaren Attachments InfoPath Forms aurrera ateratzen (Haien izenak barne!)

I have an expense entry solution for a client that leverages InfoPath and workflow. At one point during the approval process, Duen helbide elektroniko bat du hori ona InfoPath datu guztiak, baita eranskinak beraiek sortu behar dut, beraz, (sigh) Norbaitek datuak eta eskuz re-gako hartu ahal Oracle datu-base aplikazioan.

It’s not very difficult to get at or parse the InfoPath form. I didn’t know how to handle the attachments, Hala ere,. After an hour or two of poking around the Internets (betikotasunaren bat!) Artikulu hau aurkitu dut: http://support.microsoft.com/kb/892730

It provide some handy code to extract the attachment from a node in the form. (Behar zara oraindik nodo eta hori guztia aurkitzeko, baina, besterik XML analisi da).

Eranskina dela 64-kodetutako ezagutu nuen, eta joan I jatorriz behera, besterik gabe, 64, datuak ateratzeko bidea, decoding it and saving it. Hala eta guztiz ere, Azkar konturatu nintzen ez nekien nola fitxategi izena lortzeko bere burua aurkitu dut aipatutako artikulu arte.

Egia esan, ez nuen aurkitu duten nahiko goiz, baina jarri nintzen off bere nortasuna zatitu arabera. Alde batetik,, the article *says* it’s good for InfoPath 2007. Oraindik, kodea eta jarraibideak dira Visual Studio buruz 2003 eta InfoPath erreferentziak 2003.

Behean line, kodearen emandako artikulu hori bai lan niretzat (orain arte). I can get my InfoPath form, Da analizatu ahal dut, I can find and decode the attachment and I know its name. What more can one ask of one’s life?

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags: ,,

Zauden kezkatuta baduzu zure SharePoint ingurune osasungarriak Tad bat izan daiteke, dizute konpontzen lagundu dit osasun-txeke bat.

Onespena Taldeak kudeatzeko FBA ingurunean InfoPath batera

Gastu bat onartzeko prozesuan behar dut ezartzea InfoPath erabiliz oinarritutako autentifikazioa forma bat daukat (FBA) ingurumena forma zerbitzuak erabiliz (web oinarritutako InfoPath).

Badira bi talde eta onesteko prozesua horrela egiten du lan:

  • Erabiltzaile betetzen out gastu eta txosten bat aurkeztuko da, onar dezaten.
  • That triggers an email to first level approver group.
  • First level approver reviews and approves or denies the report.
  • If first level person approves it, system notifies second level approver.

On the InfoPath side of things, I have different sections that hide/appear based on whether the user is a member of one of those approval groups.

In an FBA environment the username() function always returns blank, zoritxarrez. What I’ve done is set up a a custom list called “Approval Groups”.

I don’t add any additional columns to the list.

When the form opens up, it has a rule like this:

image

The “set a field’s value” is here:

image

This is basically saying: Kontsultatu onartu talde zerrenda pertsonalizatu eta kontsulta hori iragazi errenkadan edozein non Izenburua balioa = "NORDIC" bila.

Duten balioa itzultzen bada, 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, uneko erabiltzaileak ez badu, dagokion segurtasun-elementu hori eskuratu ondoren, kontsulta egingo ez itzultzeko, 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.

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags: ,

InfoPath // One "Kudeatu gabeko salbuespena da inprimakia System.Xml.XmlException emateko azalpena: Ustekabeko fitxategi amaiera izena analizatzean gertatu da. "

Formulario bat InfPath gaur egun on nintzen eta lan-ran gora lagun zahar aurka, "Kudeatu gabeko salbuespena da inprimakia System.Xml.XmlException bihurtzean: Ustekabeko fitxategi amaiera izena analizatzean gertatu da. "

This happened to me a long time ago and I don’t know what exactly I did to resolve it. Honestly, I think that I had been transitioning to a new project and never saw this one resolved (my replacements had to deal with that headache). I do remember it was a devil of a problem. I spent several unsuccessful days dealing with it. Since then, I’ve seen this come up on MSDN forums at least once over the last year and never really saw an answer for it.

I hit it today and fortunately this time , 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.

Nire kasuan, the problem was caused by these steps:

  1. Gehitu elementu berria da datu-iturburu bat testu-eremu gisa.
  2. Jaregin forma gainean.
  3. Aldatu pantailan goitibeherako zerrendan sartu.
  4. Kontatu goitibeherako zerrendan, bere balioak tira bat SharePoint zerrenda pertsonalizatu batetik.

Ez dakit urrats horiek eragin arazo bat edo, agian, bada, nolabait zerrenda bertan datuak arazo bat da. I’m going to experiment a bit and see if I can nail downt he parameters of this with any more detail.

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags:

Txertatu Garatzaile Oharrak Zure InfoPath Inprimakiak Inside

Jarraitzen dut InfoPath Inprimakiak mundu batean bizi eta horiek "txiki" aldaketa bat egiteko inprimaki bat behar nuen, zoritxarrez, breaks a naming convention I adopted with it two weeks ago. , Pentsatu nuen, "Norbaitek gauza begiratu urtebete hemendik joan eta esan, 'Zer pentsatzen ari zen Paul? By Jove, bere izen konbentzio ez du zentzurik!"

Forma ikuspegi bat dut sor honetan konturatu nintzen, eta gero, berriro ere, 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

I’ve configured the form so that users can’t get to that view and therefore, 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!

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags:

InfoPath Views kudeatzea

To InfoPath fase non pasatzen badirudi I, urdina kanpo, 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.

I’m in the middle of an InfoPath phase and I’m creating InfoPath forms with a lot of views. One thing you probably notice is that the 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, as illustrated here:

image

I wish I had been doing this all along.

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags:

InfoPath formularioa zerbitzuak, Oinarritutako autentifikazio Inprimakiak (FBA) Bakarra eta fitxategi izenak

Izan dut InfoPath batzuk osatzen lan aste honetan MOSS en FBA inguru batean, eta ikasi, denean, forma zabaldu ekoizpen ingurune FBA zona batekin joan naiz erabiltzaile izena duen() function function does not work. I was using it to generate unique file names.

Beno, that function doesn’t work in an FBA environment (gutxienez, not out of the box). Eta, upon reflection, using username in the way I had planned wouldn’t have guaranteed a unique file name in any event.

My solution was to use the now() 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. (I don’t show it in the screen shot, but put a condition on the rule to only fire when “myFilename” is blank). I used to set the file name at the data source level. Typically, I would do something (bad) hau bezalako:

image

Duten arazoa da, erabiltzaileak gero A inprimakia irekiko da astelehenean, eta erabiltzaileak B aldatzen asteartean, azkenean, ikusiko duzu bi forma desberdinak dituzten bi erabiltzaile gorde noiztik desberdineko izenak dituzten.

Beraz,, FBA gisa gogaikarriak daiteke, oro har, eta InfoPath bezala izango da, bereziki,, me berriro uste txiki bat da, baina oso garrantzitsua da xehetasun tekniko eta hurbilketa dut ez zuela egin, bestela egin!

</amaiera>

Nire blog Harpidetu.

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

Technorati Tags:

Azkarra eta sinplea: Egin InfoPath formularioa bat irakurri bakarrik (InfoPath Inprimakiak MOSS Zerbitzuak)

Ez dago honelako enpresa komun eszenatokia da:

  • Erabiltzaile betetzen out InfoPath inprimakia.
  • Aurkezten inprimakia.
  • Long-entzierroa workflow-prozesua hasten.
  • Eu exekutatzen ari den bitartean, ez dugu nahi inor inprimaki edukia aldatzeko.

Office.microsoft.com adibide honetan 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. Denborarekin, garatzaileei ezberdinekin, there can be some divergence.

Aukera hau hobeto agian kasu batzuetan:

  • Add a new field to the form called "IsEditable".
  • Ezarri bere balio lehenetsia Egia.
  • Susta ezazu noiz MOSS argitaratzeko.
  • Eu en, ezarri IsEditble balioa faltsua.
  • Itzuli inprimakia.
  • Add a rule that "upon open of the form", ezgaitu zure Gorde botoia denean IsEditable faltsua.

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, seguru asko, orrialdearen goiko zehar gorri handi letra.

Ko proiektuan, I created a "workflow status" ikusteko. 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" araua automatikoki ikuspegi hori aldatu da, eta erabiltzaileak a nice little laburpen egoera izan.

</amaiera>

Nire blog Harpidetu.

Aldatu Ikusi Erabiltzaile ID oinarrituta InfoPath formularioa batean

Bat garatu genuen InfoPath inprimaki bat hainbat aldiz berriak alokatzeko bati laguntzeko / on-boarding process. When the company hires a new person, Informatika Saila eta beste taldeek behar ekintza (sortu nominak, gaitu dagokion aplikazio sarbidea, kokatzeko mahai bat, etc). We use on form but a different view of the form for each of those functions.

Enpresa honetan, Enpresa-prozesuan parte hartzen duten pertsona gehienak dira IT-savvy, beraz, forma sartu dira, their default view is a "menu" view with buttons that direct them to their specific function. Hala eta guztiz ere, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. Izan ere,, bakar forma ikuspegi ikusi behar zuen, eta ez da, nahiz eta beste aukera bat aldiz ikusi behar.

Gure kasuan,, zuzeneko kudeatzailearen kontu hori zuzenean jarriz inprimaki lotuta harremanetan hautatzailea (which I am always wanting to call a "people picker" arrazoiren batengatik).

Urratsak honako hauek dira::

1. Diseinu moduan, joan Tresnak -> Inprimaki Aukerak -> Ireki eta gorde.

2. Select "rules".

3. Create a new rule whose action is "switch to view" eta zeinen baldintza userName baliatzen() funtzioa.

userName() returns the "simple" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", userName() 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 (Nire ingurunean Hala ere,) itzultzen domeinua eta erabiltzaile-ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") ez dira inoiz berdinak userName() ("pagalvin").

We can get around this using the "contains" operadore: AccountID dauka userName().

Da gero eta pre-PEND userName aurrean domeinu hard-kodetuak bat hartu ahal izango dugu() funtzionatzeko gure berdintasuna egiaztatu eta desagerrarazi faltsu positiboak arriskua dauka operadorearen iritsi.

We would have REALLY like to automatically switch view for other users based on their AD security group membership. Adibidez, when a member of the "IT Analytics" talde inprimaki sartzen, 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", pasatzen da, erabiltzaile izena() and return back true or false. Does anyone have any other, gehiago clever ideia? Is there any SharePoint function we can leverage from InfoPath to make that determination?

</amaiera>

Technorati Tags: