Solución al problema: “FileNotFoundException” Con mi receptor de función.

Estaba trabajando en una función la semana pasada que añadiría algunos receptores de eventos a una instancia específica de la lista. (He mencionado un poco sobre ese receptor lista aquí).

Utilizando la línea de comandos, Pude instalar la característica con ningún error (pero véase más abajo para el error oculto). Cuando trató de implementar la función en el sitio, MOSS se quejó de una "FileNotFoundException" error. Esta entrada de blog describe cómo lo solucioné.

Este es el error que MOSS me mostró en el navegador web:

Característica ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ no se pudo instalar porque la carga de la unidad del receptor de sucesos "xyzzyFeatureReceiver_0" no se pudo: System.IO.FileNotFoundException: No se pudo cargar archivo o ensamblado ' xyzzyFeatureReceiver_0’ o una de sus dependencias. El sistema no puede encontrar el archivo especificado.
Nombre de archivo: ' xyzzyFeatureReceiver_0’
en System.Reflection.Assembly.nLoad(Nombre de archivo AssemblyName, Cadena codeBase, Pruebas assemblySecurity, Asamblea locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound Boolean, ForIntrospection Boolean)
en System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Pruebas assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
en System.Reflection.Assembly.InternalLoad(Cadena assemblyString, Pruebas assemblySecurity, StackCrawlMark& stackMark, ForIntrospection Boolean)
en System.Reflection.Assembly.Load(Cadena assemblyString)
en Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
AVS: Registro de enlace de la Asamblea esté apagado.
Para habilitar el registro de falla de enlace de Asamblea, establecer el valor del registro [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Para 1.
Nota: Hay alguna penalización de rendimiento asociado con el registro de fracaso de Asamblea bind.
Para desactivar esta característica, eliminar el valor del registro [HKLMSoftwareMicrosoftFusion!EnableLog].

Solucionar problemas con Windows SharePoint Services.

Sé cómo deliberadamente causar ese error: No instale al ensamblado en la GAC. Pero, fue en la GAC. Normalmente instalar a ensamblados en la GAC arrastrándolas hasta la c:\carpeta windowsassembly explorador de windows. Nunca he sentido 100% cómodo hacerlo, porque siempre pensé que Gacutil existe por una razón … así que intenté. No hace ninguna diferencia.

He buscado en las Internets y encontré este post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

El cartel pasó a usar la misma broca de raíz del código (en el libro de WSS dentro de esta lista) así que esa fue una señal de esperanza. Sin embargo, la sugerencia de decorar el conjunto con un [Asamblea: ] Directiva no tiene sentido para mí. De todos modos lo probé y tenía razón. No hace ninguna diferencia.

Entonces me di cuenta que mi definición de la clase no era público. Le hice público y que no hizo ninguna diferencia.

Siguiente, Fui a la molestia de permitir que la "Asamblea bind fallo registro" (siguiendo las instrucciones útiles y precisas proporcionados) y esto es donde las cosas comenzaron a obtener interesantes. Ese registro me muestra que el tiempo de ejecución busca por todas partes en el servidor para mi montaje. Incluso parece ser buscando en mi botiquín. Pero … no busca en la GAC.

Puse en mi chaqueta de invierno e ir a buscar los Internets y encontrar que alguien ha tenido este problema también. La larga discusión en publicación peters apagado en nada y no encuentro una solución.

Muevo mi Asamblea en uno de los lugares que el registro afirma está buscando y hacer avanzar un poco más. Yo estoy recompensado con un nuevo error en el navegador cuando intento activar la función de:

Error al crear el objeto receptor de característica del conjunto "xyzzyFeatureReceiver_0", Escriba "Conchango.xyzzyFeatureReceiver" para la función b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valor no puede ser nulo.
Nombre de parámetro: tipo
en System.Activator.CreateInstance(Tipo tipo, Privada booleano)
en System.Activator.CreateInstance(Tipo tipo)
en Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Solucionar problemas con Windows SharePoint Services.

Tiempo para un último viaje a las Internets!

Esta vez puedo saber, como era de esperarse lo suficientemente, que MOSS emite este error porque la Asamblea no está en la GAC.

Quiero sacar algo positivo de esto y tratar de sentir un poco orgullosos que he creado el Fugitivo de ensamblados MSIL, pero no funciona. Estoy molesto solo llano. Me encontré murmurando "huevo o la gallina" bajo mi aliento.

Finalmente decido punt. Crear un proyecto completamente nuevo y copiar/pegar el código del proyecto incredible-cloaked-from-the-GAC-assembly no trabajo sobre este nuevo proyecto. (Busco una bandera de compilación llamada algo así como "hide from enlace si instalado en el GAC" pero no puede encontrar uno).

Instalar la característica y activarlo y … funciona! Por lo tanto, Después de todo lo que, Básicamente tuve que ' reiniciar’ mi proyecto. Esta es otra razón por qué odio a equipos.

Aprendo algo útil de este. Había instalado características usando la línea de comandos stsadm todo el dia y la "-la fuerza" opción por costumbre. Por alguna razón, No utilizo la fuerza opción - cuando he instalado el nuevo proyecto. A esta hora, Hice realidad, realmente olvide copiar el montaje de este nuevo proyecto en la GAC. Como un resultado, Recibí esa FielNotFoundException"" error. A esta hora, I got it from stsadm, no cuando trató de activar la función vía el web browser. Por lo tanto, -fuerza realmente juega dos papeles. Le permite volver a instalar una característica existente. También le permite instalar una característica buggy que no puede trabajar en tiempo de ejecución mediante la supresión de los errores. Probablemente dice tanto en la ayuda en alguna parte pero nunca lo noté.

</final>

Etiquetas de Technorati: ,

Domingo divertido: Arriba 10 Maneras de molestar a su esposa

  1. Comprar brócoli cuando sabes que ya hay más que suficiente en la nevera.
  2. Ir a correr. Enfriar. Sacar de la funda de almohada limpia y reemplazar con la camiseta. Cubierta con funda de almohada limpia.
  3. Al conducir, preguntar si debemos ir al revés por una calle unidireccional.
  4. Para 15 años, cada domingo esposa le sugiere ir a un Museo, expresar sorpresa que los museos están abiertos de Domingo.
  5. Para 15 años, de vez en cuando sugieren que va a la tienda de libros local el domingo. Expresar sorpresa, que no están abiertas el domingo (Muchas gracias Leyes de azul!).
  6. Uso 20 puntos para hacer una 3 punto de giro.
  7. En una fría tarde de otoño, entrar a la sala y encienda el aire acondicionado. Se quejan de que es frío. Cuando la esposa dice, "entonces ¿por qué encender, tonto" y se levanta apagarlo, agarra el punto caliente que tenía en el sofá. Puntos de bonificación si ella no se da cuenta te lo hizo hasta mucho más tarde.
  8. Abrir una lata de atún blanco deliciosa y comer directamente de la lata, en la cama, Por la noche.
  9. Ir a la cocina, mientras que la esposa es comer la cena, abrir el cajón de cubiertos y empuje utensilios hasta los gritos de la esposa, "lo que estás buscando!"
  10. En el recibo de nuevas tarjetas de visita, colocarlos en secreto todo alrededor de la casa: Debajo de la cama, en fundas de almohada, dentro de las tazas de café, en su monedero, en los bolsillos de la capa, coche guante compartimentos, la despensa — en cualquier lugar se puede pensar.
  11. Escribir entradas de blog sobre tu esposa.
  12. Despierta.
  13. Cuando caminando por las calles de la ciudad de Nueva York, estar en alerta por "crujiente" objetos en el suelo. Teniendo en cuenta los temores especiales de su esposa, llegar como para escoger uno hasta arriba y pedir, "hmm, Me pregunto qué es?" (Prepárate para esposa que cuerpo te slam como si ella es un agente del servicio secreto del Presidente contra un francotirador o encontrarás tendido sobre la espalda en la acera).
  14. Unidad dos veces alrededor de un estacionamiento en busca de espacio. Sabes que realmente has golpeado pagar suciedad cuando grita tu hijo en el asiento trasero, "Oh no! Él lo está haciendo nuevo!"
  15. Escribir "top 10" listas que no tienen 10 artículos.

===

Broma de esposa de bono:

Dos compañeros de trabajo varones salen a almorzar. Uno de ellos le dice al otro, "Desató un resbalón freudiano vergonzoso la otra noche."

"Una freudiana slip? Qué es eso?"

"Bien, cuando terminamos de comer, la camarera se acercó y preguntó cómo valoramos nuestras comidas. Quise decir, ' Me encantó la pechuga de pollo’ pero en cambio me dijo 'Me encantó sus senos'. Estaba tan avergonzado."

"Ah," su compañero respondió:. "He tenido lo mismo me sucede este fin de semana con mi esposa. Nosotros estábamos desayunando que quería pedirle que pase la mantequilla, pero en cambio grité en ella, ' Usted arruinó mi vida!’"

</final>

Etiquetas de Technorati:

ID de evento 1023: “Windows no puede cargar contador extensible DLL MSSCNTRS”

ACTUALIZACIÓN (04/08/08): Me parece que han solucionado este problema. La línea de comandos, Corrí "c:\windowssystem32lodctr /R" Según una entrada hablando de InstallShield problemas y parece que han resuelto para mí.

He notado últimamente, mi ventilador de escritorio/servidor nunca se apaga. Sé que se utiliza para apagar. Tomó un momento para comprobar lo notó que el un proceso VMware funcionaba un constante 20% utilización en una de las CPU. Revisé el registro de sucesos y vi estos errores en el registro de aplicación sucede decenas de veces por minuto:

Windows no puede cargar contador extensible DLL UGatherer, el primer DWORD de la sección de datos es el código de error de Windows.

Windows no puede cargar contador extensible DLL UGTHRSVC, el primer DWORD de la sección de datos es el código de error de Windows.

Windows no puede cargar contador extensible DLL MSSCNTRS, el primer DWORD de la sección de datos es el código de error de Windows.

Si profundizar en los detalles de uno de esos mensajes, Me sale esto:

Fuente: Perflib

Tipo: Error

Categoría: Ninguno

ID de evento 1023

Hice algunas investigaciones y había algunos indicios de que podría ser un problema de permiso en términos de acceso a la dll en cuestión. Jugaba con ese tipo de cosas, pero no podría afectar las cosas de una manera positiva por lo que desistí en eso.

VMware ha sido permanentemente me acerca de cómo realizar una actualización desde hace bastante tiempo, así apuntó la versión tenia instalado (al parecer "1.0.1 construir 29996") e hice la actualizacion. Esto me actualizó a la v1.04. Lamentablemente, no se arreglar el problema.

Puedo dejar el loco número de mensajes va a mi registro de aplicación si cierra un servicio denominado "Servicio de autorización de VMware". Esto me impide usar el software de VMware, por lo que … no esa una gran opción.

El sistema operativo es Windows XP 64 bit.

No creo que esto ha sucedido siempre, pero no recuerdo ningún evento concreto que podría haber conducido a ella.

Por eso odio equipos.

</final>

Etiquetas de Technorati:

Rápido & Fácil: Cambiar el nombre de archivo cargado mediante el modelo de objetos de SharePoint a través de un receptor de eventos

ACTUALIZACIÓN: Esto funciona, pero existen limitaciones significativas que se describen en los comentarios. Esto todavía puede ser útil en algunas circunstancias.

ACTUALIZACIÓN 2: En mi proyecto actual, los usuarios siempre subir documentos. Como un resultado, No ejecutar en un problema donde MS Word se está ejecutando y piensa que el archivo fue retitulado en él. Puso en marcha en un problema, "el archivo fue modificado por alguien" y esta solucionado por medio de una bandera de tipo semáforo simple. Los usuarios necesitan cambiar un campo de datos de la meta de su valor por defecto a algo más. El itemupdated() receptor busca un valor antes de realizar efectivamente el cambio de nombre y desde entonces, No he tenido ningún problema. Su kilometraje puede variar.

Tengo un requerimiento del cliente para cambiar el nombre de los archivos subidos a una biblioteca de documentos específica de conformidad con una Convención de nomenclatura particular. El API no proporciona un "cambio de nombre()" método. En su lugar, Utilizamos "MoveTo(…)". Aquí es un poco un mínimo del código para lograr esto:

 público reemplazar void ItemAdded(SPItemEventProperties propiedades)
        {
            SPFile f = properties.ListItem.File;

            f.moveTo(propiedades.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Sólo complicado es "propiedades. ListItem.ParentList.RootFolder.Url". El MoveTo() método requiere una dirección URL. Puré de puntos cadena me a la carpeta raíz de mi biblioteca del documento actual. Esto me permite evitar cualquier codificación dura en mi receptor de evento.

Esta es una versión más útil que hace lo mismo, pero se asigna el nombre del archivo a "Título":

 público reemplazar void ItemAdded(SPItemEventProperties propiedades)
        {
            DisableEventFiring();

            // Asignar el título de este tema con el nombre del propio archivo.
 // NOTA: Esta asignación debe realizarse antes de modificar el archivo en sí.
 // Llamar a update() en el SPFile parece invalidar las propiedades
 // algún sentido.  Actualizaciones a "título" no se pudo hasta que cambie (y actualización() llamar)
 // fueron trasladados en frente del cambio en el nombre de archivo.
            propiedades.ListItem["El título"] = properties.ListItem.File.Name;

            propiedades.ListItem.Update();

            SPFile f = properties.ListItem.File;

            // Obtener la extensión del archivo.  Necesitamos más tarde.
 cadena spfileExt = Nuevo FileInfo(f.Name).Extensión;

            // El nombre del archivo de ID del elemento de la lista y utilizar la extensión de archivo para mantener
 // esa parte intacta.
            f.moveTo(propiedades.ListItem.ParentList.RootFolder.Url +
                "/" + propiedades.ListItem["ID"] + spfileExt);

            // Cometer el movimiento.
            f.Update();

            EnableEventFiring();
        }

Foro de discusión: Imponer el cumplimiento de las prácticas mejor en entorno de MOSS no Trivial

Becario, "Mark", ha puesto en marcha una discusión newsgroup potencialmente interesantes centrándose en el "establecimiento de excelente gestión de SharePoint desde el principio" para un 35,000 entorno de usuario.

La discusión está aquí: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop en sobre y contribuir!

</final>

Acción personalizada URL no se puede acceder por novedad

Sigo en el hábito de elaboración de mis archivos XML característica a mano ya que es bastante nuevo para mí. No quiero confiar en una herramienta front-end que hace cosas que no entiendo (dijo mientras escribía una entrada de blog usando una herramienta que no entiende).

Hoy en día, Estaba tratando de agregar una acción personalizada para la configuración del sitio, pero no demuestran para arriba. Pude instalar la función y ver en las características del sitio, Pero cuando lo activé (sin error) simplemente no aparece en el menú desplegable.

Finalmente me di cuenta de que mal escrito "SharePoint" en el atributo de la ubicación de la <CustomAction> nodo. Este es el archivo elements.xml mal:

<?XML Versión="1.0" codificación="UTF-8" ?>
<Elementos xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 ID de grupo="SiteActions"
 Ubicación="Microsoft.Sharepoint.StandardMenu"
 Secuencia="100"
 Título="Hola!"
 Descripción="Acción del menú personalizado mediante una función de agregado."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL="http://www.XYZZY.com"/>

  </CustomAction>
</Elementos>

Buena:

<?XML Versión="1.0" codificación="UTF-8" ?>
<Elementos xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 ID de grupo="SiteActions"
 Ubicación="Microsoft.SharePoint.StandardMenu"
 Secuencia="100"
 Título="Hola!"
 Descripción="Acción del menú personalizado mediante una función de agregado."
    >
    <UrlAction URL="http://www.XYZZY.com"/>
  </CustomAction>
</Elementos>

That one took me a good two hours to figure out 🙂

Me consuela el hecho de algún día en el futuro, Seré capaz de decir con convicción, "en el día, Tuve que caminar tres kilómetros arriba de la colina en la nieve (pies descalzos!) para implementar una función personalizada para musgo. Que los niños, No sabes lo fácil que tenerlo! Bajar mi césped!"

No puedo esperar.

</final>

Etiquetas de Technorati: ,

Estadísticas del blog

Pensé en que algunas personas podrían estar interesadas en las estadísticas de mi blog. Mina puede utilizar como punto de referencia para comparar su propio.

Estoy presentando mi blog en windows live espacios. Recogen estadísticas para mí y no sé ninguna manera de controlar. Es bueno que va, pero es bastante limitado en que no puedo hacer mucho análisis real con ella. Me encantaria, por ejemplo, para poder generar un listado de mi más frecuentemente puestos de golpe pero no podemos hacer eso sin un proceso manual prohibitivo. Si alguien sabe mejor, por favor, dime.

Espacios estado Dime en vivo: totales hits para el día, totales hits de las semana y total visitas desde el día cero. También me dice que lo que hicieron para llegar a mi blog (por ejemplo:. Google, Enlace de foro MSDN, etc.).

De alguna manera, un éxito"" es obvio. Si estás leyendo esta frase ahora, Seguramente te registraste como un solo golpe.

RSS es un poco confuso. Por un lado, Veo todo el dia golpes individuales de RSS. Pero, También veo RSS "barridos". Un barrido es cuando veo 20 o 30 Hits RSS en una segunda ventana uno o dos. Supongo que estas son cosas automatizadas como check-in en mi sitio de google, Tal vez los navegadores de los demás … No estoy seguro. Son definitivamente algún tipo de proceso automatizado. No te puedo decir, Sin embargo, ¿Cuántos de mis hits totales están automatizadas y cuántos tienen un humano real en el otro lado. Supongo que por lo menos 100 visitas por día están automatizadas.

A los números!

Escribí mi primera entrada en el blog el 27 de julio, 2007.

He escrito aproximadamente 60 desde entonces las entradas de blog, más de 50 de los cuales se relacionan directamente con SharePoint.

Empecé a hacer un seguimiento de mis éxitos en una hoja de cálculo sobre una base diaria al final de septiembre.

Comienza mensual:

Primera semana de: Totales Hits
Octubre 1,234
Noviembre 2,162
Diciembre 3,071
Enero 2008 4,253

Total por mes

Mes Totales Hits
Octubre 6,620
Noviembre 11,110
Diciembre 13,138

Marcas de agua de alta

Tipo Totales Hits
Mejor día 958
Mejor semana 4,253
Totales Hits desde el día cero 42,438

Estoy interesado en otros’ gráficas de las estadísticas. Si desea compartir el tuyo en los comentarios, por favor haga!

</final>

Etiquetas de Technorati:

Mañana Domingo divertido: “Sí, Sí, Sí. Bla, bla, bla, bla.”

Hace unos seis años, mi hijo de cuatro años y yo estábamos viendo arriba un Canal Discovery "los ataques de tiburón" especial (Posiblemente éste). Era muy joven en el punto y siempre estaba preocupada de lo que él podría ver un espectáculo como este y cómo él puede tomarlo. No quería que se desarrollan, por ejemplo, cualquier temores especiales del agua o la lengua algo inapropiado a sus amigos y posiblemente causar su red amigo bebé se derrumbara.

Descubrimiento encarga de este tipo de temas muy bien. Trata de no crear un miedo de algo, sino más bien mostrar cómo inusual para que los tiburones que atacan a los seres humanos.

Por lo tanto, nos estamos viendo y hay esta un ataque particularmente aterrador que a una niña pequeña. Como descubrimiento está construyendo el drama del ataque, mi hijo (que siempre ha sido extremadamente nervioso de todos modos), está muy emocionado. Hacer algunos ruidos como inusual que es para que los tiburones a atacar a personas, y lo mal que debe sentir la pobre muchacha. Estoy tratando de explicar que las personas recuperan de estos eventos y ser más fuertes para. Sin embargo, Yo había malinterpretado su emoción. Él no estaba preocupado sobre la chica en todo. En su lugar, mientras sus manos aplaudiendo, Él me dice, "Los tiburones encanta! Es buenísimo. Es maravilloso. Su sueño hecho realidad!"

Pensé que era muy gracioso, pero también muy inquietante. Por un lado, Me alegré — incluso un poco orgulloso — que podría tener fuertes sentimientos de empatía, entre especies aunque pueden ser. Como seres humanos, Debemos desarrollar nuestros músculos empáticos"" Así hablar o terminarás como Este tipo 🙂 On the other hand, él estaba sintiendo empatía especie hacia una especie que fue exhibir comportamiento hostil a su propia. Realmente estaba luchando con esto cuando el narrador usa la palabra "paradigma". Mi hijo escogió para arriba por que y me pregunto que significaba.

Eso no es una palabra tan fácil para describir a un niño de cuatro años, pero dio un intento. Cuando pienso en la palabra "paradigma", Thomas Kuhn está nunca lejos de mis pensamientos. Leo La estructura de las revoluciones científicas en Lafayette y para bien o para mal, la palabra "paradigma" está embarazada con más significado para mí. (Como la palabra "contacto" después de escuchar una voz película teléfono Dime donde pude ver esa película [Creo que el libro es mejor]; Siempre digo a mí mismo, "CONTACTO!" cada vez que veo u oír a alguien decir "contacto").

De todos modos, Estoy tratando de explicarle una definición kuhniana, que es "un movimiento histórico del pensamiento" y que es una "forma de pensar con un número de asunciones incorporadas que son difíciles de escapar para personas que viven en aquel momento." Claro, No puedes hablar como un cuatro años, por lo que estoy tratando de definir sucesivamente más pequeños pedazos y sentirse bastante orgulloso de mí mismo como lo hago. (Sólo Sabía que alguien fuera del colegio le importaría que había leído Kuhn!).

Yo sólo soy calentamiento a la tarea cuando él me interrumpe. Agitando su mano en mi dirección general y nunca tomar sus ojos de otro ataque de tiburón brutal, dice, "Sí, Sí, Sí. Bla, bla, bla"..

So much for that 🙂

En ese momento, Decidí huir, retóricamente, sentarse, y disfrutar viendo los tiburones atacan a los seres humanos con mi hijo.

</final>

Etiquetas de Technorati:

Cambiar vista basado en el ID de usuario en un formulario de InfoPath

Tuvimos un desarrollado un formulario de InfoPath con varias vistas para apoyar un nuevo empleado / proceso de incorporación. Cuando la empresa contrata a una nueva persona, el Departamento de TI y otros grupos deben tomar acción (Configurar nóminas, permitir el acceso a las aplicaciones apropiadas, Localice un escritorio, etc.). Utilizamos en forma sino una visión diferente de la forma de cada una de las funciones.

En esta empresa, la mayoría de las personas involucradas en los procesos de negocios es expertos en IT, Así que cuando acceden a la forma, su vista predeterminada es un "menú" Ve con los botones que se dirigen a su función específica. Sin embargo, Necesitamos simplificar las cosas para el gestor directo de la contratación. Esta persona no debería ver cualquiera de la TI relacionadas con cosas. En realidad, debería ver una vista de la forma y ni siquiera tiene una opción para ver las otras vistas.

En nuestro caso, que dirigir la cuenta de administrador está ligada directamente a la forma de cortesía de un selector de contacto (que yo siempre estoy queriendo llamar un selector de personas"" por alguna razón).

Los pasos son los siguientes:

1. En modo de diseño, Vaya a herramientas-> Opciones de forma-> Abrir y guardar.

2. Seleccione "reglas".

3. Crear una nueva regla cuya acción es "cambiar para ver" y cuya condición aprovecha el nombre de usuario() función.

nombre de usuario() Devuelve la "simple" nombre de usuario sin el dominio. Si registro en SharePoint con credenciales "domainpagalvin", nombre de usuario() Devuelve "pagalvin".

El selector de contacto proporciona tres pedacitos de la información para un contacto. El "ID de cuenta" porción es más útil para este escenario. Lo único que lo hace incluso un poco de reto es que el selector de contacto (en mi entorno de todos modos) Devuelve el identificador de usuario y dominio, como en "domainpagalvin". Esto nos impide hacer una condición de igualdad directa desde el ID de cuenta ("domainpagalvin") Nunca será igual a userName() ("pagalvin").

Podemos conseguir todo esto usando el "contiene" operador: AccountID contiene userName().

Podemos tomar más lejos y pre-pend un dominio codificadas delante el nombre de usuario() función para obtener el cheque de la igualdad y eliminar el riesgo de un falso positivo en el operador contiene.

¿Tenemos realmente como para automáticamente cambiar vista por otros usuarios basados en su pertenencia de grupo de seguridad de AD. Por ejemplo, Cuando un miembro de la "que Analytics" Grupo accede a la forma, cambia automáticamente a la vista de análisis IT. No tenemos tiempo para implementarlo, Pero mi primer pensamiento es para crear un servicio web que tendría un método como "IsMemberOfActiveDirectorySecurityGroup", pasar el nombre de usuario() y devolver true o false. Alguien tiene alguna otra, idea más inteligente? ¿Hay alguna función de SharePoint que podemos aprovechar de InfoPath para realizar esa determinación?

</final>

Etiquetas de Technorati:

Sin querer añadir código a un formulario de InfoPath; Deliberadamente quitarlo

Cuando se trabaja con los botones de un formulario, a menudo añadimos reglas. Acceso el editor de reglas de las propiedades del botón de.

Haga clic en rápidamente, es fácil hacer clic en "editar formulario código accidentalmente" en lugar de "reglas …".

La primera vez que hice esto, Cancelé en el editor de código. Sin embargo, Cuando intenté publicar la forma un poco más tarde, es necesario que publico como una plantilla de formulario aprobada por el administrador" (avanzado)". En realidad no hice ninguna programación y absolutamente no quería pasar por un proceso de aprobación innecesarios. Estaba en un poco de pánico en el momento debido a las limitaciones de tiempo. Para obtener más allá de ella, Yo simplemente restaurar una copia de seguridad anterior y continuó. Recientemente había visto algunos blogs de gente que va en XML de la forma para modificar cosas y tenía miedo que le tengo que hacer algo similar.

Hoy en día, Lo hice otra vez. A esta hora, Tuve un poco más de tiempo en mis manos y encontró que fácilmente puede deshacer esta.

Vete a:

Herramientas-> Opciones de forma-> Programación: "Eliminar el código"

No hay nada más fácil que eso.

</final>

Etiquetas de Technorati: ,