lunes, 24 de noviembre de 2008

Modulo 11 (Verificador de RUT), y como crear elemento de Plantilla.

En esta oportunidad lo que veremos, es como crear el módulo 11, en Chile conocido como Verificador de RUT o RUN, pero, con la particularidad de crearlo como elemento de plantilla, es decir, lo podremos utilizar en todos los formularios de InfoPath que queramos.. sin volverlo a "diseñar".

El módulo 11 corresponde al método o algoritmo para validar el RUT (Rol Único Tributario) o RUN (Rol Único Nacional), existen otros metodos para validar números, pero en Chile ocupamos unicamente el módulo 11, es por esta razón que decidí tomar esta validación para explicar los elementos de plantilla.

(tu puedes probar con cualquier metodo de comprobación que necesites. Lo más importante de este mini-tutorial es crear los elementos de plantilla)

Un elemento de plantilla es una parte o sección de una plantilla InfoPath, es como crear un componente en visual basic que después es utilizado en asp o como crear una función para después llamarla desde el programa principal, la finalidad es reducir el tiempo de desarrollo.

En fin, ya sabes lo que es el módulo 11 y lo que es un elemento de plantilla.

Comenzamos...

1.- Creamos un nuevo elemento de plantilla como se ve en la imagen:


(la opción "Habilitar solamente características compatibles con el explorador" esta abierta, ustedes deciden si la habilitan o no, yo le puse un check, ya que este elemento de plantilla lo ocupare en plantillas de InfoPath que funcionarán en SharePoint)

Seleccionamos las opciones y presionamos aceptar...


2.- Presionamos "Guardar Como...", y seleccionamos donde guardaremos el elemento de plantilla, como verán, la extensión del archivo es xtp.

(Siempre guarden periódicamente sus proyectos, no queremos que se nos reinicie el computador en la mitad del desarrollo y tener que partir desde cero otra vez)


3.- Luego creamos la siguiente estructura de campos:


Estos campos serán los que utilizaremos para crear el módulo 11, como única consideración... si se fijan, el campo Modulo11 es un campo(elemento) y los demás son campo(atributo)


4.- En el campo Modulo11, ingresaremos el rut (cuando este todo funcionando) el formato de ingreso es:

XX.XXX.XXX-Y

Algunos ejemplos son: 1-9, 2-7, 6-k, etc

5.- Nos vamos a propiedaddes del campo M11_estandar.

...El objetivo de este campo es estandarizar el rut, es decir, quitarle los puntos o comas y dejar el RUT en minúscula.


Le he puesto la siguiente función:

translate(translate(.., ",.", ""),"QWERTYUIOPASDFGHJKLÑZXCVBNM",
"qwertyuiopasdfghjklñzxcvbnm")

Esta función tiene 2 translate anidados, sin embargo, es sólo necesario uno, así:

translate(..,"QWERTYUIOPASDFGHJKLÑZXCVBNM.,",
"qwertyuiopasdfghjklñzxcvbnm")


Pero yo ocupe la primera alternativa, para los que no están familiarizados con la función translate, lo que hace es traducir o reemplazar los elementos de la segunda cadena, por los elementos de la tercera, pero en forma lineal, es decir, el primer caracter de la cadena 2 se reemplaza por el primer caracter de la cadena 3... el segundo caracter de la cadena 2 por el segundo de la cadena 3 y asi susesivamente... la cadena 1 (que es nuestro RUT), si tiene un caracter que existe en la cadena 2 es reemplazado por el de la cadena 3, como indique anteriormente...


6.- Nos vamos a las propiedades del campo M11_ConCeros:

El objetivo de este campo es estandarizar el RUT, es decir, si tenemos un 1-9 llevarlo a 00000001-9, esto lo logramos con la siguiente función:

concat(substring("00000000-1", 1, 10 - string-length(../@my:M11_Estandar)), ../@my:M11_Estandar)



7.- Ya que tenemos estandarizado el RUT Nos vamos a las propiedades del campo M11_DigitoVerificador:

El objetivo de este campo es obtener el dígito verificador que se encuentra después del guion

Este dígito lo obtenemos con la siguiente función:

substring-after(../@my:M11_ConCeros, "-")


8.- Ahora separaremos el dígito verificador del dígito que se encuentra antes del guión, ingresamos en las propiedades del campo M11_Digito

Ingresamos la siguiente función:

substring-before(../@my:M11_ConCeros, "-")


9.- Ahora ingresamos en las propiedades de M11_Total e ingresamos la siguiente función:

number(substring(../@my:M11_Digito , 1 , 1)) * 3 + number(substring(../@my:M11_Digito , 2 , 1)) * 2 + number(substring(../@my:M11_Digito , 3 , 1)) * 7 + number(substring(../@my:M11_Digito , 4 , 1)) * 6 + number(substring(../@my:M11_Digito , 5 , 1)) * 5 + number(substring(../@my:M11_Digito , 6 , 1)) * 4 + number(substring(../@my:M11_Digito , 7 , 1)) * 3 + number(substring(../@my:M11_Digito , 8 , 1)) * 2

El objetivo de este campo es realizar el calculo del verificador de RUT que se realizara multiplicando el primer digito x 2 el segundo x 3, desde derecha a izquierda, algo así:

  +---+---+---+---+---+---+   +---+
| 2 | 6 | 1 | 5 | 3 | 3 | - | 9 |
+---+---+---+---+---+---+ +---+
| | | | | |
x7 x6 x5 x4 x3 x2
| | | | | |
=14 =36 =5 =20 =9 =6
+---+---+---+---+---+-> = 90


Recuerden que cuando el multiplicador llega a 7 parte de 2 nuevamente.


10.- Luego ingresamos en las propiedades del campo M11_Calculo e ingresamos la siguiente función:

11 - (../@my:M11_Total mod 11)

Esta función nos permitirá obtener el dígito verificador calculado, es decir, que dígito verificador que debe tener el RUT.

11.- Luego ingresamos en las reglas del campoM11_DigitoVerificador y debemos crear 3 reglas, como se indica en la imagen:


La primera condición es cuando M11_DigitoVerificador="k"



Y la acción será establecer el valor de @M11_DigitoComprobador = 10


La segunda condición será cuando el campo M11_DigitoVerificador="0"


La acción será @M11_DigitoComprobador=11


Para finalizar agregamos una nueva regla, esta vez sin condición, en la cual estableceremos el @M11_DigitoComprobador=número(.)


12.- Luego, guardamos y cerramos nuestro elemento de plantilla (ya lo hemos configurado todo), ahora creamos una plantilla de formulario en blanco:


13.- En el panel de controles seleccionamos la última opción "Agregar o quitar controles personalizados"


14.- En esta pantalla yo tengo agregado un control personalizado, el "Contact Selector", lo que aremos será agregar el verificador de rut como un control personalizado. Presionamos Agregar...


15.- Seleccionamos "Elemento de plantilla"


16.- Ingresamos la dirección en donde se encuentra el elemento de plantilla y presionamos finalizar.



17.- Nos aparecerá un mensaje indicándonos que el control personalizado se agregó.


18.- Luego, tendremos el modulo 11 como componente personalizado.



En el panel de controles aparecerá el módulo 11 al final del listado.


Utilizando el elemento de plantilla, Módulo 11

1.- Agregamos el modulo 11 al formulario, se crearán todos los campos que hemos creado en el elemento de plantilla.

Nota Importante: Los campos me aparecen con una terminación _1, es decir cada vez que nosotros agreguemos elementos o modulos 11 a nuestra plantilla, se agregarán mas grupos de campos, diferenciandolos con un _1, _2, _3 al final de cada campo, por lo tanto, las funciones deberán adaptarlas dependiendo de sus campos.



Nota: Si se fijan en la imagen, todos los campos del módulo 11 quedaron con un "_1" al final, cada vez que agreguen nuevos elementos de plantilla Módulo 11 o cualquiera que ustedes creen, el valor _1 aumentará, ejemplo: _2, _3

2.- Creamos el campo tipo texto en el formulario, yo lo llamaré RUN.


3.- Establecemos una nueva regla para el campo RUN, esta regla asignará automáticamente el valor del campo Modulo1_1 con el valor del RUN que ingresemos, de la siguiente forma:


En acción debemos seleccionar establecer el valor de un campo

Campo: Seleccionar el campo Modulo11_1
Valor: Seleccionamos el campo RUN. (En este caso se muestra como un ".")


4.- Agregamos el campo RUN al formulario, como se ve en la imagen, y nos vamos a la "Validación de datos..".


5.- Presionamos el botón agregar


6.- Ingresamos la condición si M11_Calculo_1 no es igual a M11_DigitoComprobador_1

En:

Mostrar este mensaje de error:
Información en pantalla: Rut Incorrecto



7.- Si presionamos Vista Previa, e ingresamos un rut que sabemos es incorrecto, nos aparecerá el siguiente mensaje :

Este elemento de plantilla lo puedes descargar desde el centro de descargas de desachile.com, en la siguiente dirección: http://www.desachile.com/biblioteca/infopath.html

Saludos, espero les sirva, cualquier duda, deja tu comentario

Francisco Rojas C.-

jueves, 13 de noviembre de 2008

Publicar plantilla de formulario aprobada por el administrador

En esta oportunidad lo que mostraré, será como publicar una plantilla de InfoPath desde cero en SharePoint, pero con la opción "Plantilla de formulario aprobada por el administrador". Espero les sirva a muchos que quieren publicar plantillas en SharePoint y han incluido algo de código personalizado en C# o VB.

1.- Partiremos creando un formulario en blanco


2.- Luego agregaré algunos campos, un botón y un titulo, la verdad, pongan lo que deseen, en este punto lo importante es que creen una plantilla de formulario InfoPath.


3.- Ahora debemos publicar la plantilla, yo no he agregado código ni conexiones a la plantilla, ya que me evocaré únicamente a la publicación... Pero tengan presente, que cuando creen código en su plantilla, deberán utilizar este método de publicación.

Vamos a [Archivo][Publicar...]


4.- Seleccionamos "En un servidor de SharePoint con o sin InfoPath Forms Services"


5.- Ahora debemos ingresar la URL del sitio en donde deseamos publicar la plantilla de formulario, debido a que nuestra plantilla será administrada centralmente, este paso es irrelevante, pueden ingresar cualquier URL de SharePoint en donde ustedes tengan permiso. Lo importante es ingresar una URL para habilitar el botón [Siguiente].

Cuando ingresen una URL presionan Siguiente.


6.- Ahora lo que nos interesa, seleccionamos "Plantilla de formulario aprobada por el administrador (avanzado)". Esta opción nos obliga a ser administradores, o enviar la plantilla para ser publicada por un administrador. Ya veremos más adelante a que me refiero.

...Presionamos [Siguiente]


7.- Ahora nos pide que especifiquemos una ubicación y un nombre de archivo para la plantilla de formulario, esto significa que en esta opción seleccionaremos una dirección dentro de nuestra red o donde sea, que pueda ser accesada por el administrador, si ustedes son los administradores de SharePoint da igual.


8.- Si ponemos "Examinar" nos aparece la misma ventana que "Guardar Como...", lo que aremos exactamente lo mismo, yo dejare la plantilla en mi escritorio en una carpeta llamada "Formulario", lo importante es el nombre de la plantilla, yo la denominare FormularioCodigo.

...Presionamos [Guardar] y luego Presionamos [Siguiente]

9.- Esta pantalla ustedes ya la deben conocer, basicamente es para transformar nuestros campos de InfoPath en columnas de SharePoint, tengo otras publicaciones donde lo explico un poco más. Por ahora solo presionamos [Siguiente].


10.- Ahora tenemos un paso de comprobación, no hacemos nada sólo presionamos "Publicar".


11.- Nos aparecerá un mensaje indicando que nuestra plantilla se publico correctamente. Presionamos [Cerrar].


12.- Hasta aquí todo bien!!!, ya tenemos la plantilla, ahora debemos ir a la administración central de SharePoint e ingresamos en el menu "Administración de aplicaciones". Luego como vemos en la imagen, en la sección "InfoPath Form Service", seleccionamos "Cargar plantilla de formulario".

13.- En esta pantalla ustedes deben seleccionar la plantilla que hemos creado, por esta razón ustedes debian guardar la plantilla en una ubicación en donde el administrador tuviera acceso. Presionamos [Examinar...]


14.- Luego nos vamos a la carpeta donde guardamos la plantilla y la seleccionamos. Presionamos el botón [Abrir], Luego presionamos el botón [Cargar].


15.- Una vez presionado el botón cargar, esperamos unos segundos y nos aparecerá un mensaje indicandonos que la plantilla se ha cargado correctamente, Presionamos [Aceptar].

16.- Luego nos aparecerá un listado con todas las plantillas que hemos cargado, en nuestro caso la plantilla FormularioCodigo.xsn, como ven en la imagen, la plantilla aún se esta instalando, debemos esperar un momento hasta que la plantilla esta en estado "listo".


17.- Esperamos unos segundos y presionamos [F5] para actualizar la pagina, como vemos, ya esta en estado [Listo].


18.- Ahora que tenemos nuestra plantilla lista, nos vamos a las opciones y presionamos "Activar para una colección de sitios", como se ve en la imagen. Esta opción nos permitirá habilitar la plantilla en una colección de sitios, de esta forma, podremos utilizarla en una biblioteca de documentos.


19.- En la pantalla "Activar la plantilla de formulario" la única configuración que debemos hacer es seleccionar la colección de sitios donde deseamos que ocupen nuestra plantilla, puede ser un sitio dos o los que deseemos. pero sólo de uno por vez.

En mi caso la publicare en la dirección "http://misitiosharepoint:903/sitios/prueba"

Presionamos aceptar...

20.- Ahora ya tenemos casi todo configurado, vamos bien, nos salimos de la administración central de SharePoint y vamos al sitio en donde activamos la plantilla... en mi caso "http://misitiosharepoint:903/sitios/prueba"


21.- Ingresamos en "Acciones del sitio" y luego en "Configuración del sitio"


22.- En la configuración del sitio, ingresamos en la opción "Características de la colección de sitios", ubicada en la sección "Administración de la colección de sitios".

23.- Entre las características del sitio, debemos buscar la plantilla que hemos activado, debería aparecer así:


Si la característica, no estuviese activada, deberán presionar el botón [Activar], en mi caso ya se encontraba activada.

...vamos bien!!, ya tenemos la plantilla activada para nuestro sitio

24.- Ahora nos vamos a "Ver todo el contenido del sitio" esta opción la encontrarás en el menú de la izquierda, similar a este:


25.- En "Todo el contenido del sitio", encontraremos nuestra plantilla en la biblioteca de documentos "Plantillas de formulario".

...Ingresamos en el menú "Plantillas de formulario"


26.- Como vemos nuestra plantilla se encuentra disponible.


Felicidades!!!!.. ya puede ocupar la plantilla...

pero...¿no sabes como?... entonces continuamos....

Lo que debemos hacer para poder utilizar la plantilla de formulario, es crear una biblioteca de documentos y enlazarla a la plantilla, ahora explicaré como...

27.- Nos vamos a Todo el contenido del sitio y presionamos Crear como se indica en la imagen:


28.- En Crear, seleccionamos Biblioteca de documentos.


29.- Seleccionamos un nombre para la biblioteca de documentos, en mi caso le he puesto "MiBiblioteca", las otras opciones las podemos dejar como se ven en la imagen, lo importante es que en la opción "plantilla de documentos" seleccionen "Ninguna", Presionamos Crear.

30.- Ahora ingresamos a la biblioteca que hemos creado, y nos vamos a "Configuración" y luego a "Configuración de Biblioteca de documentos"


31.- En la configuración general ingresamos en "Configuración avanzada"

32.- Y debemos configurar dos elementos que serán claves.

En la opción:

Tipos de contenido
> ¿Desea permitir la administración de tipos de contenido?
Debemos seleccionar ""

y en Documentos habilitados por el explorador
Seleccionamos "Mostrar como página web"... Esta opción dependerá si nuestro formulario fue creado para ser visualizado como página web, y si así lo deseamos.

Lo importante en esta configuración es permitir los tipos de contenido


...Luego de configurar presionamos Aceptar.

33.- Ahora volvemos a la configuración de nuestra biblioteca, (si no sabes donde estoy mira el punto 30).

Lo importante de esta pantalla es que si se fijan en la imagen, ahora tenemos una sección denominada "Tipos de contenido", es aquí donde debemos cargar nuestra plantilla, por lo tanto debemos seleccionar: "Agregar a partir de tipos de contenido de sitio".

34.- Luego debemos agregar el tipo de contenido a nuestra biblioteca, en el listado de la izquierda debemos buscar nuestra plantilla.

35.- Una vez que la encontremos la seleccionamos, presionamos agregar y luego Aceptar.


36.- Ahora, tendremos 2 tipos de contenido en nuestra biblioteca de documentos, como se ve en la imagen. presionemos la opción "Cambiar orden del nuevo botón y tipo de contenido predeterminado".


37.- Nos aparecerán los dos tipos de contenidos de la biblioteca de documentos, en la columna Posición desde arriba, seleccionemos nuestra plantilla como número 1. y presionamos Aceptar


...Esto nos permitirá que en la biblioteca de documentos al presionar "nuevo", se abra automáticamente nuestro formulario.

38.- Ahora nos vamos a la biblioteca y presionamos "Nuevo"


39.- Y al FIN!!! tenemos nuestra plantilla funcionando correctamente....




Eso ha sido todo... Espero les sirva... es un poco largo el proceso, pero.. al final abran aprendido mucho, Saludos.

Francisco Rojas C.