Arxius de la categoria: L'InfoPath 2007 // Servidor de formes

L'èxit ràpid: Llegint l'InfoPath XML directament des d'un SPListItem en SharePoint

Jo sóc estat treballant en un projecte on cal extreure els arxius adjunts d'un formulari InfoPath. Hi ha alguns bons recursos per a l'anàlisi de formes d'InfoPath (que són només els fitxers XML, Així que és de fet bastant fàcil).

Mentre jo estava construint el projecte, Vaig començar descarregant un formulari InfoPath i desant-lo en el meu disc dur local. Estava llegint el meu codi de c# directament des d'aquesta instància. No obstant això, les formes d'InfoPath realment viuen dins una biblioteca de formularis del SharePoint. Feia mig cor una mica de recerca per esbrinar com llegir-lo directament des de la biblioteca i gairebé donava amunt, en aquest cas tindria desat el formulari en un directori temp local i llegir-lo des d'allà. No obstant això, hi ha necessitat d'anar a través dels cèrcols com pot llegir-lo directament des de la biblioteca. Aquest petit fragment Mostra com:

/// Matèria de definició de classe aquí, incloent-hi:
privat SPFile mySharePointFile; /* Part d'una SPList */
// Reservat per més codi i dins d'un mètode de la classe hem:
XmlTextReader textReader;
el textReader = nou XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Cap;

textReader.Read();

// Si el node té valor

mentre (textReader.Read())
{

... i així successivament i així successivament...

Ells clau mica damunt és que podem llegir directament mitjançant la OpenBinaryStream l'InfoPath() mètode crida a l'SPFile com a paràmetre per al constructor a XmlTextReader. Treballa gran.

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati:

Programàticament extreure els arxius adjunts de formes d'InfoPath (Incloent-hi els seus noms!)

Tinc una solució d'entrada de despesa per a un client que aprofita l'InfoPath i flux de treball. En un moment durant el procés d'aprovació, Cal generar un e-mail que té totes les dades de l'InfoPath bons, així com les adjuncions ells mateixos per tal que (sospir) algú pot prendre aquelles dades i manualment re-clau-lo en una aplicació de base de dades d'Oracle.

No és molt difícil d'aconseguir al o analitzar la forma de l'InfoPath. No sé com gestionar les adjuncions, No obstant això. Després d'una hora o dues de estrenyent al voltant de l'Internets (una eternitat!) He trobat aquest article: http://support.microsoft.com/kb/892730

-Proporcionar algun codi manejable per extreure l'adjunció d'un node en forma. (Encara cal trobar el node i tots els que, però això és només anàlisi XML).

Sé que el fitxer adjunt és amb codificació base64 i originalment anava pel camí de només extraient el les dades base64, descodificació i guardant-lo. No obstant això, Ràpidament em vaig adonar que no sabia com aconseguir el nom del fitxer fins que vaig trobar l'article esmentat.

En realitat havia trobat que molt aviat, però es va ajornar pel seu desdoblament de personalitat. D'una banda, l'article * diu * és bo per a l'InfoPath 2007. No obstant això, el codi i les instruccions són tots sobre Visual Studio 2003 i referències a l'InfoPath 2003.

Bottom line, el codi que l'article sempre està treballant bé per a mi (fins ara). Puc portar la meva forma de l'InfoPath, Jo pot analitzar-lo, Que pugui trobar i descodificar el fitxer adjunt i sé el seu nom. Què més es pot demanar a la vida?

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati: ,,

Si vostè està preocupat que el seu entorn del SharePoint pot ser una mica malaltissa, Deixi'm ajuda vostè arreglar allò amb un xec de salut.

Gestió de grups d'aprovació amb InfoPath en un entorn els FBA

Tinc un procés d'aprovació de despesa que necessito per implantar l'InfoPath a una autenticació basada en formularis (FBA) utilitzar formes serveis medi ambient (basada en web de l'InfoPath).

Hi ha dos grups de l'aprovació i el procés d'obres com aquesta:

  • L'usuari omple un informe de despeses i ho sotmet a aprovació.
  • Que provoca un correu electrònic a primer nivell Aprovador grup.
  • Primer nivell Aprovador clients i s'aprova o rebutja l'informe.
  • Si primer nivell persona l'aprova, sistema notifica Aprovador segon nivell.

Al costat de les coses l'InfoPath, Tinc diferents seccions que amaga/apareixen basats en si l'usuari és membre d'un d'aquests grups de l'aprovació.

En un entorn FBA el nom d'usuari() funció sempre retorna en blanc, tristament. El que he fet és establir un costum trobaràs una llista anomenada "Aprovació grups".

No afegeixo cap columnes addicionals a la llista.

Quan el formulari s'obre, té una norma com aquest:

image

El "defineix un valor de camp" és aquí:

image

Això és bàsicament dient: Consulta la llista personalitzada de grup de l'aprovació i el filtre que consulta per buscant qualsevol fila on valor de títol = "NORDIC".

Si que retorna cap valor, llavors l'usuari actual és membre d'aquest grup. Sé que conté aquest valor perquè la longitud de la corda és superior a zero.

Tancar el cicle, garantint els elements individuals de la llista de grup de l'aprovació. Al temps d'execució, Si l'usuari actual no té accés de seguretat adequades a aquell element llavors la consulta no tornar-lo, corda-longitud mostrarà zero cites i ja saps que l'usuari actual no és part d'aquest grup. Vostè pot utilitzar aquest fet necessaris en forma.

Aquest és un súper breu reportatge. Jo estic pressionats pel temps o vaig donar més detalls.

No sé com rellevant és que estic en un entorn FBA. Probablement això funcionaria bé en un ambient no-FBA però m'imagino casos on això seria útil.

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati: ,

L'InfoPath // Una explicació per a "excepció inmanejada quan representació forma System.Xml.XmlException: Final del fitxer inesperat quan s'analitzaven nom s'ha produït. “

Jo estava treballant en una forma d'InfPath avui i va córrer en contra d'un vell amic, "Una excepció no controlada en representació formen System.Xml.XmlException: Final del fitxer inesperat quan s'analitzaven nom s'ha produït."

Això que em va passar fa molt de temps i no sé què exactament feia per resoldre'l. Sincerament, Crec que jo havia estat transició a un nou projecte i mai no veia aquest un resolts (meu substitucions havia de tractar amb aquell mal de cap). Recordo que era un diable d'un problema. Vaig passar diversos dies sense èxit tractar amb ell. Des de llavors, He vist això surt en fòrums MSDN almenys una vegada durant el darrer any i mai vaig veure una resposta per a això.

Em va colpejar-lo avui en dia i per sort aquesta vegada , Jo acabava de fer un canvi a la forma. Feia retrocedir fora que el canvi i el problema es va anar. Resulta que és possible crear un de plantilla amb el dissenyador d'InfoPath de tal manera que es genera un analitzar error en el costat de servidor de formes de la tanca.

En el meu cas, el problema va ser causada per aquests passos:

  1. Afegir un nou element a un origen de dades com un camp de text.
  2. Deixeu-lo anar a la mateixa forma.
  3. Canviï la seva exhibició en una llista desplegable.
  4. Explicar la gota avall llista per treure els seus valors d'una llista de costum SharePoint.

No sé si aquells passos causen un problema o potser, d'alguna manera les dades de la llista en si és un problema. Vaig a experimentar una mica i veure si em pot clau downt paràmetres d'això amb més detall.

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati:

Inserir Notes desenvolupador dins les seves formes d'InfoPath

Encara estic vivint en el món de l'InfoPath formes i jo necessitava per fer un d'aquests canvis "petits" a un formulari que, per desgràcia, trenca una convenció de nomenclatura que adoptava amb ell fa dues setmanes. Em vaig dir a mi mateix, "algú va a mirar aquesta cosa d'un any des de ara i dir, "Què estava pensant Paul? Per Jove, Convenció de la seva manca de sentit!”

Em vaig adonar que pot crear una visualització del formulari per a això i llavors, una vegada més, es va adonar que podria haver estat fent alguna cosa com això tot el temps. He afegit una vista "Desenvolupador Notes" com a tal al formulari de l'InfoPath:

image

He configurat el formulari per tal que els usuaris no pot arribar a aquesta visualització i per tant, només és visible amb el client de l'InfoPath en vista Disseny. Ara em sento una mica Inoculats contra alguns desenvolupadors desconegut futur mirant el meu formulari i mals pensaments pensar sobre mi. Uf!

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati:

Gestió de l'InfoPath visites

Em sembla que passen per fases de l'InfoPath on, fora de la blava, Jo sóc l'elaboració de un munt de formes. Meus dits aprendre a utilitzar l'eina bé i després passar per sequera nou mes i han d'aprendre tot de nou.

Sóc enmig d'una fase de l'InfoPath i estic creant formes d'InfoPath amb un munt de visites. Una cosa que vostè probablement notar és que l'InfoPath 2007 client Mostra una vista en ordre alfabètic. Això és una molèstia real algunes vegades. El meu millor tècnica en aquests dies és anteposar un nombre amb el nom de visualització per tal que sempre van mostrar en l'ordre que voleu, com s'il·lustra aquí:

image

M'agradaria que havia estat fent això tot el temps.

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati:

Formulari InfoPath serveis, Formes basat en l'autenticació (FBA) i noms de fitxer únic

He estat treballant en algunes formes d'InfoPath aquesta setmana a molsa en un entorn FBA i aprendre, Quan vaig anar a desplegar les formes a un entorn de producció amb un FBA zona que l'usuari() funció de funció no funciona. El feia servir per generar noms d'arxiu únic.

Pou, que la funció no treballa en un entorn FBA (com a mínim, no fora de la caixa). I, després de reflexionar, utilitzant el nom d'usuari de la manera que jo havia planejat no tenen garantit un nom de fitxer únic en qualsevol cas.

La meva solució era utilitzar l'ara() funció i una norma que els incendis en carregar-lo de la forma. Assignar el nom del fitxer a l'element de dades quan està en blanc:

image

image

L'avantatge d'aquest enfocament és que el nom del fitxer ocupa només una vegada. (No em presento a la captura de pantalla, però posar una condició a la regla per disparar només quan "myFilename" està en blanc). Solia posar el nom del fitxer en el nivell d'origen de dades. Típicament, Jo faria una cosa (dolent) d'aquesta:

image

El problema amb això és allò si usuari obre el formulari el dilluns i el canvia l'usuari B dimarts, acabarà amb dues formes diferents ja que dos usuaris diferents desat amb noms d'usuari diferents.

Així, com molest com FBA pot ser en general i amb l'InfoPath en particular, Això em va fer repensar un detall tècnic petit però realment important i l'enfocament que no ho hauria fet contrari!

</final>

Subscriure's al meu blog.

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

Etiquetas de Technorati:

Ràpid i senzill: Fer una lectura formulari InfoPath només (Serveis dels formularis de InfoPath en MOSS)

Hi ha un escenari comú de negoci com aquest:

  • L'usuari omple un formulari InfoPath.
  • Sotmet la forma.
  • Procés de flux de treball de llarga durada s'arrenca.
  • Mentre el flux de treball s'està executant, no volem que ningú per canviar el contingut de la forma.

Aquest exemple office.microsoft.com descriu com crear una "visió independent" i marcar la vista sencer com a només de lectura. Això és un plantejament viable però té el desavantatge que efectivament heu creat dues versions de tot de la mateixa forma i ha ara mantenir-los en sincronia manualment. Si afegiu un camp a la vista editable, llavors cal afegir-lo a la vista no editable, així. Amb el temps, amb diferents desenvolupadors, no hi pot haver alguna divergència.

Aquesta alternativa podria funcionar millor en alguns casos:

  • Afegeix un camp nou a la forma anomenada "IsEditable".
  • Posi el seu valor per defecte a true.
  • Promocionar-lo quan el publiqueu a la molsa.
  • En el flux de treball, posi el valor de IsEditble a false.
  • Tornar a la forma.
  • Afegir una norma que "en obert de la forma", Impossibiliti el seu salvar botó quan IsEditable és fals.

L'inconvenient d'aquest enfocament és que tots els camps encara es pot editables a la pantalla. L'usuari pot obtenir una impressió falsa que realment pot canviar contingut. Vostè pot mitigar que posant en un text que s'impossibilita el formulari, possiblement en grans lletres vermelles a la part superior de la pàgina.

En un projecte, He creat un estatus de flux de treball"" Vista. Segons avançava el flux de treball, ho vols actualitzar camps situació específica que havia estat promogut des del formulari. Quan l'usuari obrir el formulari, la forma «oberta" regla canviava automàticament a que la vista i l'usuari tenia un estatus resum poc agradable.

</final>

Subscriure's al meu blog.

Canviar la visualització de vista basada en l'ID d'usuari en un formulari InfoPath

Vam tenir un desenvolupat un formulari InfoPath amb múltiples vistes per donar suport a un nou de lloguer / incloure el procés. Quan l'empresa contracta una persona nova, el Departament d'informàtica i altres grups cal prendre mesures (configurar la nòmina, permetre l'accés a les aplicacions adequades, Localitzi una recepció, etc). Utilitzem en forma però una visió diferent de la forma per a cadascuna de les funcions.

En aquesta empresa, la majoria de les persones implicades en el procés de negoci són coneixedors d'IT, Així que quan van accedir al mòdul de, seva vista d'omissió és un menú de"" veure amb botons que dirigir-los a la seva funció específica. No obstant això, que necessitàvem simplificar les coses per cap directe del lloguer nou. Aquesta persona no ha de veure algun dels seus relacionats amb la matèria. De fet, ella hauria de veure una vista de la forma i ni tan sols té una opció per veure els altre punts de vista.

En el nostre cas, que dirigir compte del gestor és directament lligat a la forma de cortesia de un selector de contacte (que sempre estic amb ganes de trucar a un selector de persones"" per alguna raó).

Els passos són els següents:

1. En mode de disseny, Aneu a eines-> Opcions de forma-> Obrir i desar.

2. Seleccioneu "regles".

3. Crear una norma nova, l'acció és "passar per veure" i l'estat aprofita el nom d'usuari() funció.

nom d'usuari() Retorna el simple"" nom d'usuari sense el domini. Si registro en SharePoint amb credencials "domainpagalvin", nom d'usuari() torna "pagalvin".

El selector de contacte proporciona tres bits d'informació per a un contacte. El "Account" part és més útil per a aquest escenari. L'única cosa que fa que això fins i tot una mica de repte és que el selector de contacte (en el meu entorn de tota manera) Retorna l'identificador de domini i l'usuari, com en "domainpagalvin". Això ens impedeix fer una condició senzilla igualtat des Account ("domainpagalvin") mai serà igual a nom d'usuari() ("pagalvin").

Podem aconseguir tot això utilitzant el "conté" operador: Account conté el nom d'usuari().

Puguem fer-lo més i pre-pend un domini codificats directament davant l'usuari() funció per aconseguir els nostre comprovació d'igualtat i eliminar el risc d'un fals positiu en el conté operador.

Tindríem realment com canviar automàticament la vista per a altres usuaris basaven sobre la seva pertinença a un grup AD seguretat. Per exemple, Quan un membre de la "que Analytics" grup accedeix a la forma, Canvia automàticament a la visualització d'IT Analítica. No tenim temps per implantar-lo, però el meu primer pensament és crear un servei web que tindria un mètode com "IsMemberOfActiveDirectorySecurityGroup", donar-lo el nom d'usuari() i tornar altra vegada vertader o fals. Ningú té qualsevol altre, més brillant idea? És allà qualsevol funció de SharePoint que ens poden aprofitar de l'InfoPath per fer aquesta determinació?

</final>

Etiquetas de Technorati: