Herramientas de usuario

Herramientas del sitio


start

¡Esta es una revisión vieja del documento!


Tabla de Contenidos

Manual del Desarrollador de Integrabilidad

Original file <font 12pt:normal/auto;;blue;;white>Iniciativa de INTEGRABILIDAD </font>

<font 12pt:normal/auto;;blue;;white>Manual del DESARROLLADOR</font>

manualdesarrolladorpage1.jpg

_Toc346883581

Manual de Desarrollo

Autor Versión Fecha
Gervasio Claverie 1 22-03-2010
Eduardo Aceto 2 10-01-2013


Web-Services de Integrabilidad

Servicio Web de AUTENTICACIÓN

La URL del mismo es http://autentica.neuquen.gov.ar:8080/scripts/autenticacion.exe?intf=IAutenticacion

A continuación se detallan las distintas funciones que incluye.

iautenticacionxml.jpg

Función LoginPecas: realiza la validación del usuario

string LoginPecas(string Usuario, string Password)

Donde el resultado de tipo string es el ID de sesión de pecas. Si el usuario no es válido, devuelve una cadena vacía.

Función LoginJosso: Verifica si el id de sesión de JOSSO sigue siendo válido.

CResultadoLoginJosso LoginJosso(string IDSesionJosso)

El parámetro de entrada IDSessionJosso es de tipo string y contiene el número identificador de la sesión creada por Josso cuando valida un usuario.

El resultado de la función de tipo CResultadoLoginJosso y está compuesto de los siguientes atributos:

String IDSesssion (Número identificador de la sesión Pecas)

String Username (Username que inició sesión en Josso)

Función VerificarSesionActivaPecas: Verifica que el id de sesión no haya expirado.

String VerificarSesionActivaPecas(string IdSesionPecas)

Aquí el parámetro de entrada de tipo string IdSesionPecas es el ID de sesión entregado por PECAS.

Devuelve el resultado de la validación también en formato string. Si el ID no expiró devuelve el texto 'SESION OK', caso contrario devuelve 'SESION ERROR'

Nota: ésta función es obsoleta por lo cual se recomienda utilizar VerificarSesionActivaPecas_V2

Función ObtenerUserNameDeSesion: Obtiene el username asociado al id de sesión PECAS

String ObtenerUserNameDeSesion(string IdSesionPecas)

Aquí el parámetro de entrada de tipo string IdSesionPecas es el ID de sesión entregado por PECAS.

Devuelve como resultado el username del usuario asociado al id de sesión PECAS, también en formato string.

Función FijarBaseDeSesion: Asigna la base de datos con la que trabajará el usuario

Boolean FijarBaseDeSesion(string IdSesion, string Base)

Donde Base es el nombre de la base de datos

Retorna en tipo de dato boolean (true o false) indicando si se pudo realizar la operación.

Función ObtenerBaseDeSesion: Obtiene base de datos con la que trabaja el usuario asociado al id de sesión PECAS

String ObtenerBaseDeSesion(stringIdSesion)

Aquí el parámetro de entrada de tipo string IdSesion es el ID de sesión entregado por PECAS.

Devuelve como resultado el nombre de la base de datos, también en formato string.

Función ObtenerDatosDeSesión: Obtiene el username y la base de datos del usuario asociado al id de sesión PECAS

TDatosSesionPecas ObtenerDatosDeSesion(stringidSesion)

Aquí el parámetro de entrada de tipo string IdSesion es el ID de sesión entregado por PECAS.

El resultado de tipo TDatosSesionPecas es una estructura, que devuelve una serie de campos definidos de la siguiente manera:

String Usuario

String BaseDeDatos

Donde Usuario es el username, y BaseDeDatos es el nombre de la base.

Función ObtenerNivelDeSesion: Obtiene el nivel de autorización de la sesión.

Es para autorización por dos factores. Durante la sesión el usuario puede cambiar de nivel, se va guardando el máximo nivel en la sesión.

Int ObtenerNivelDeSesion(stringidSesion)

Aquí el parámetro de entrada de tipo string IdSesion es el ID de sesión entregado por PECAS.

Donde lo que retorna es un numero de tipo int que representa el nivel 0=nivel básico, 1=2 factores

Función ObtenerInvolucrado: Dado un id de sesión de PECAS, se busca ese usuario en el servidor LDAP y se recupera el parámetro que identifica al usuario como involucrado de los servicios

Por ejemplo si en el LDAP todos los usuarios tienen el campo UID con su nro de DNI, entonces ObtenerInvolucrado devolvería siempre el dni del user.

String ObtenerInvolucrado(string idSesion)

Aquí el parámetro de entrada de tipo string IdSesion es el ID de sesión entregado por PECAS.

El resultado de la función de tipo string es el dato que representa al involucrado (por ejemplo dni)

Función VerificarSesionActivaPecas_V2: Verifica que el id de sesión no haya expirado.

String VerificarSesionActivaPecas_V2(string IdSesionPecas)

Aquí el parámetro de entrada de tipo string IdSesionPecas es el ID de sesión entregado por PECAS.

Devuelve el resultado de la validación también en formato string. Si el ID no expiró devuelve el texto 'SESION OK', caso contrario devuelve 'SESION ERROR'

Función Logout(string idSesion): finaliza la sesión de trabajo.

boolean Logout(string idSesion)

Aquí el parámetro de entrada de tipo string IdSesionPecas es el ID de sesión entregado por PECAS.

Devuelve el resultado de la operación del cierre de sesión también en formato boolean. Si fue exitoso retorna True.

Función ObtenerDuracionSesion: Retorna el tiempo de dura la sesión en minutos.

int ObtenerDuracionSesion(string IdSesion)

Aquí el parámetro de entrada de tipo string IdSesion es el ID de sesión entregado por PECAS.

Devuelve el resultado que contiene la cantidad de minutos que dura la sesión en formato int.

Función Echo: Testea si está activo el servidor de autenticación.

TResultadoEcho Echo (string texto)

Aquí el parámetro de entrada de tipo string se llama texto.

Devuelve el resultado de la llamada al servidor de autenticación en formato TResultadoEcho. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado (es 0 si no hubo error, sino aparece en su lugar el código del error).

String MensajeResultado (es el texto del mensaje de error devuelto si hubiese error).

String Resultado (es el texto enviado al servidor como parámetro de entrada).

Función Encriptar: Encripta o codifica el texto solicitado.

String Encriptar(string texto)

Aquí el parámetro de entrada de tipo string es el texto que se desea encriptar.

Devuelve el texto encriptado también en formato string.

Función Desencriptar: Desencripta o decodifica el texto de entrada.

String Desencriptar(string texto)

El parámetro de entrada de tipo string es el texto que se quiere desencriptar.

Devuelve el resultado de la desencriptación o decodificación también en formato string.

Servicio Web de AUTORIZACIÓN

La URL del Servicio es http://autoriza.neuquen.gov.ar:8080/scripts/autorizacion.exe/wsdl/IAutorizacion.

A continuación se detallan las distintas funciones que incluye.

iautorizacionxml.jpg

Función Solicitar_Servicio : El cliente solicita al autorizador la ejecución de un servicio

Nota: Versión obsoleta, reemplazada por la versión 3.

El cliente solicita al autorizador la ejecución de un servicio. El autorizador verifica si está autorizado para solicitarlo y envía la solicitud a la fuente auténtica.

La fuente auténtica resuelve el servicio y envía el resultado al autorizador que a su vez lo envía al cliente.

El autorizador guarda log de la transacción.

TResultadoServicio Solicitar_Servicio(string IdSesionPecas, string Cliente, string Proveedor, string Servicio, string DatoAuditado, string Operador, byte[] Cuerpo, Boolean CuerpoFirmado, Boolean CuerpoEncriptado)

Donde:

-IdSesionPecas: identificador de sesión del cliente, entregado por el autenticador

-Cliente: código del cliente que solicita el servicio

-Proveedor: código del actor que es la Fuente Auténtica de la información

-Servicio: servicio de la Fuente Auténtica solicitado por el cliente

-DatoAuditado: involucrado de la consulta, generalmente DNI, legajo de quien se pide información

-Operador: Nombre de usuario del operador del sistema cliente.

-Cuerpo: es un archivo o array de bytes con información necesaria para realizar el servicio

-CuerporFirmado: Indica si el cliente firmó digitalmente el cuerpo del resultado.

-CuerpoEncriptado: Indica si el cliente encriptó el cuerpo del resultado.

Y el resultado de la función TResultadoServicio es una estructura, que devuelve una serie de campos definidos de la siguiente manera:

byte[] Resultado

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

int NumPedido

int CodResultado

string MensajeResultado

int TipoResultado

Donde:

-Resultado1..ResultadoN: arrays de bytes devueltos por la fuente auténtica.

-NumPedido: número de transacción con la que el autorizador guarda la solicitud

-CodResultado: Código del resultado del servicio. 0=ok, 1..N códigos de error

-MensajeResultado: En caso de error, se devuelve un texto descriptivo.

-TipoResultado: Indica si el error lo genera el autorizador o la fuente auténtica: 1=autorizador 2=fuente autentica

Función Solicitar_Servicio2 : en esta versión se pasa la firma separada.

Nota: Versión obsoleta, reemplazada por la versión 3.

El cliente solicita al autorizador la ejecución de un servicio. El autorizador verifica si está autorizado para solicitarlo y envía la solicitud a la fuente auténtica.

La fuente auténtica resuelve el servicio y envía el resultado al autorizador que a su vez lo envía al cliente.

El autorizador guarda log de la transacción.

TResultadoServicio2 Solicitar_Servicio2(string IdSesionPecas, string Cliente, string Proveedor,

string Servicio, string DatoAuditado, string Operador,

byte[] Cuerpo, byte[] Firma,

Boolean CuerpoFirmado, Boolean CuerpoEncriptado)

Donde:

-IdSesionPecas: identificador de sesión del cliente, entregado por el autenticador

-Cliente: código del cliente que solicita el servicio

-Proveedor: código del actor que es la Fuente Auténtica de la información

-Servicio: servicio de la Fuente Auténtica solicitado por el cliente

-DatoAuditado: involucrado de la consulta, generalmente DNI, legajo de quien se pide información

-Operador: Nombre de usuario del operador del sistema cliente.

-Cuerpo: es un archivo o array de bytes con información necesaria para realizar el servicio

-Firma: firma que se envía como primera parte de la firma digital.

-CuerporFirmado: Indica si el cliente firmó digitalmente el cuerpo.

-CuerpoEncriptado: Indica si el cliente encriptó el cuerpo.

Y el resultado de la función TResultadoServicio2 es una estructura, que devuelve una serie de campos definidos de la siguiente manera:

byte[] Resultado

byte[] FirmaResultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

int NumPedido

int CodResultado

string MensajeResultado

int TipoResultado

Donde:

-Resultado1..ResultadoN: arrays de bytes devueltos por la fuente auténtica.

-FirmaResultado1: Dato que se retorna como la segunda parte para completar la firma digital.

-NumPedido: número de transacción con la que el autorizador guarda la solicitud

-CodResultado: Código del resultado del servicio. 0=ok, 1..N códigos de error

-MensajeResultado: En caso de error, se devuelve un texto descriptivo.

-TipoResultado: Indica si el error lo genera el autorizador o la fuente auténtica: 1=autorizador 2=fuente autentica

Función Solicitar_Servicio3: a diferencia de Solicitar_servicio2, en esta versión se pasa la firma en forma separada y en el resultado total se envían los resultados parciales y las firmas correspondientes separadas.

El cliente solicita al autorizador la ejecución de un servicio. El autorizador verifica si está autorizado para solicitarlo y envía la solicitud a la fuente auténtica.

La fuente auténtica resuelve el servicio y envía el resultado al autorizador que a su vez lo envía al cliente.

El autorizador guarda log de la transacción.

TResultadoServicio Solicitar_Servicio3(string IdSesionPecas, string Cliente, string Proveedor,

string Servicio, string DatoAuditado, string Operador,

byte[] Cuerpo, byte[] Firma, Boolean CuerpoFirmado,

Boolean CuerpoEncriptado)

Donde:

-IdSesionPecas: identificador de sesión del cliente, entregado por el autenticador

-Cliente: código del cliente que solicita el servicio

-Proveedor: código del actor que es la Fuente Auténtica de la información

-Servicio: servicio de la Fuente Auténtica solicitado por el cliente

-DatoAuditado: involucrado de la consulta, generalmente DNI, legajo de quien se pide información

-Operador: Nombre de usuario del operador del sistema cliente.

-Cuerpo: es un archivo o array de bytes con información necesaria para realizar el servicio

-Firma: firma que se envía como primera parte de la firma digital.

-CuerporFirmado: Indica si el cliente firmó digitalmente el cuerpo.

-CuerpoEncriptado: Indica si el cliente encriptó el cuerpo.

Y el resultado de la función TResultadoServicio3 es una estructura, que devuelve una serie de campos definidos de la siguiente manera:

byte[] Resultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

byte[] FirmaResultado1

byte[] FirmaResultado2

byte[] FirmaResultado3

byte[] FirmaResultado4

byte[] FirmaResultado5

int NumPedido

int CodResultado

string MensajeResultado

int TipoResultado

boolean ResultadoFirmado

boolean ResultadoEncriptado

Donde:

-Resultado1..ResultadoN: arrays de bytes devueltos por la fuente auténtica.

-FirmaResultado1.. FirmaResultado1: arrays de bytes con el dato que se retorna como la segunda parte para completar la firma digital.

-NumPedido: número de transacción con la que el autorizador guarda la solicitud

-CodResultado: Código del resultado del servicio. 0=ok, 1..N códigos de error

-MensajeResultado: En caso de error, se devuelve un texto descriptivo.

-TipoResultado: Indica si el error lo genera el autorizador o la fuente auténtica: 1=autorizador 2=fuente autentica.

-ResultadoFirmado: Avisa con valor verdadero si el resultado fue firmado digitalmente.

-ResultadoEncriptado: Avisa con valor verdadero si el resultado fue encriptado o codificado.

Función Solicitar_ClavePublica: brinda la clave pública del actor solicitado

El autorizador tiene registradas las claves públicas de firma digital de todos los actores. Cualquier actor que haya sido autenticado puede solicitar la clave pública de otro actor.

byte[] Solicitar_ClavePublica(string IdSesionPecas, string Proveedor)

Donde los parámetros de entrada son:

-IdSesionPecas: identificador de sesión del cliente

-Proveedor: código del actor del que se pide la clave pública.

Retorna el resultado como un array de bytes conteniendo la clave pública

Función Informar_Resultado_del_Servicio: el cliente informa si los datos recibidos son correctos

Cuando el cliente recibe el resultado del servicio que solicitó, puede informar si los datos recibidos son correctos

Informar_Resultado_del_Servicio(string IdSesionPecas, int NumPedido, string Cliente,string Proveedor, int CodResultado)

Donde:

-IdSesionPecas: identificador de sesión del cliente

-NumPedido: número de la transacción generada por el servicio

-Cliente: cliente que informa el resultado

-Proveedor: fuente auténtica consultada

-CodResultado: Código del resultado del servicio. 0=ok, 1..N códigos de error

Función RecuperarMenuDeUsuario: Brinda la lista de servicios que el cliente tiene disponibles para utilizar

CResultadoMenu RecuperarMenuDeUsuario(string IdSesionPecas, string CodigoMenu)

Donde los parámetros de entrada son:

-IdSesionPecas: identificador de sesión del cliente

-CodigoMenu: código del nodo que es raíz del árbol de autorizaciones

El valor resultado CResultadoMenu es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

- boolean Resultado

- ArrayDeMenu Menu

- Int Codigo

- String Descripcion

- Int codigopadre

- String CodigoExterno

- Int NivelAutorizacion

Donde:

-Resultado: indica si se pudo resolver la solicitud.

-Menu: array de servicios del tipo ArrayDeMenu organizado como una estructura padre/hijo, donde cada elemento contiene un objeto del tipo TNodoMenu, descripto a continuación:

Int Codigo: código numérico del servicio

String Descripcion: nombre del servicio

Int codigopadre: padre del servicio (la fuente auténtica)

String CodigoExterno: código alfanumérico del servicio

Int NivelAutorizacion: Nivel de autorización (lectura, escritura, ejecución)

Función RecuperarMenuDeUsuarioParaJava: Brinda la lista de servicios que el cliente tiene disponibles para utilizar en formato compatible Java

Este método es igual al método anterior, pero el resultado lo devuelve en otra estructura, compatible con JAVA

CResultadoMenuJava RecuperarMenuDeUsuarioParaJAVA(string IdSesionPecas,

string CodigoMenu)

Donde la descripción de los parámetros de entrada:

-IdSesionPecas: identificador de sesión del cliente

-CodigoMenu: código del nodo que es raíz del árbol de autorizaciones

El resultado de la funcion es del tipo CResultadoMenuJava, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

Boolean Resultado 

ArrayDeInt Codigo

ArrayDeString Descripcion

ArrayDeInt CodigoPadre

ArrayDeString CodigoExterno

ArrayDeInt NivelAutorizacion

Donde la salida son array paralelos conteniendo la lista de servicios solicitadas. Esta organizada como una estructura padre/hijo.

- Resultado: indica si se pudo recuperar la lista de servicios autorizados

- Codigo: array con los códigos numéricos de los servicios

- Descripcion: array con las descripciones de los servicios

- CodigoPadre: array con los códigos numéricos de los padres de cada servicio (la fuente auténtica)

- CodigoExterno: codigo alfanumérico del servicio.

- NivelAutorizacion: array con el nivel de autorización de cada servicio

Función RecuperarMenuDeUsuario_V2 : en esta versión el resultado tiene más datos (programa, comentarios)

Nota: Esta Versión es obsoleta y fue reemplazada por la Versión 3.

CResultadoMenu_V2 RecuperarMenuDelUsuario_V2(string IdSesionPecas, string Codigomenu)

Donde los parámetros de entrada se describen de la siguiente manera:

- IdSesionPecas : identificador de sesión del cliente

- CodigoMenu : código del nodo que es raíz del árbol de autorizaciones

El resultado entregado por la función es del tipo CResultadoMenu_V2, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

Boolean Resultado

TIntegerDynArray Codigo

TStringDynArray Descripcion

TIntegerDynArray CodigoPadre

TStringDynArray CodigoExterno

TIntegerDynArray NivelAutorizacion

TStringDynArray ProgramaAsociado

TStringDynArray Comentarios

Donde:

- Resultado: indica si se pudo recuperar la lista de servicios autorizados

- Codigo: array con los códigos numéricos de los servicios

- Descripcion: array con las descripciones de los servicios

- CodigoPadre: array con los códigos numéricos de los padres de cada servicio (la fuente auténtica)

- CodigoExterno: codigo alfanumérico del servicio.

- NivelAutorizacion: array con el nivel de autorización de cada servicio

- ProgramaAsociado: path o url asociado al item

Función RecuperarMenuDeUsuario_V3: en esta versión el resultado tiene más datos (programa, comentarios)

CResultadoMenu_V4 RecuperarMenuDelUsuario_V3(string IdSesionPecas, string Codigomenu)

Donde los parámetros de entrada se describen de la siguiente manera:

- IdSesionPecas : identificador de sesión del cliente

- CodigoMenu : código del nodo que es raíz del árbol de autorizaciones

El resultado entregado por la función es del tipo CResultadoMenu_V4, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

Boolean Resultado

TIntegerDynArray Codigo

TStringDynArray Nombre

TIntegerDynArray CodigoPadre

TStringDynArray CodigoExterno

TIntegerDynArray NivelAutorizacion

TStringDynArray ProgramaAsociado

TStringDynArray Comentarios

TStringDynArray Descripcion

String MensajeResultado

Donde:

- Resultado: indica si se pudo recuperar la lista de servicios autorizados

- Codigo: array con los códigos numéricos de los servicios

- Nombre: array con los nombres de los servicios

- CodigoPadre: array con los códigos numéricos de los padres de cada servicio (la fuente auténtica)

- CodigoExterno: codigo alfanumérico del servicio.

- NivelAutorizacion: array con el nivel de autorización de cada servicio

- ProgramaAsociado: array con path o url asociado a cada item

- Comentarios: array con los comentarios de cada servicio.

- Descripcion: array con las descripciones de los servicios

- MensajeResultado: mensaje de texto con el resultado de esta consulta.

Función ObtenerParametrosDeServicio: retorna los parámetros necesarios para utilizar un servicio.

TParametrosDeServicio ObtenerParametrosDeServicio(string IdSesionPecas, string Servicio, string Proveedor)

Donde los parámetros de entrada se describen de la siguiente manera:

- IdSesionPecas : identificador de sesión del cliente

- Servicio : Nombre del servicio que se desea consultar

- Proveedor: Quien es el proveedor del servicio a utilizar.

El resultado entregado por la función es del tipo TParametrosDeServicio, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

TStringDynArray Nombres

TStringDynArray Tipos

TStringDynArray Valores

Int CodResultado

String MensajeResultado

Donde:

- Nombres: array con los nombres de los parámetros necesarios para llamar al servicio.

- Tipos: array con los tipos de datos de cada uno de los parámetros de llamada al servicio.

- Valores: array con los valores de los parámetros de llamada al servicio.

- CodResultado: Código del resultado de la llamada al servicio. 0=ok, 1..N códigos de error

- MensajeResultado: mensaje de texto con el resultado de esta consulta.

Función RecuperarCatalogoServicios: retorna el listado de servicios disponibles de un determinado lugar.

CResultadoMenu_V3 RecuperarCatalogoServicios(string IdSesionPecas, string Codigomenu)

Donde los parámetros de entrada se describen de la siguiente manera:

- IdSesionPecas : identificador de sesión del cliente

- Codigomenu : identificador del menu al cual se desea utilizar.

El resultado entregado por la función es del tipo CResultadoMenu_V3, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

Boolean Resultado

TIntegerDynArray Codigo

TStringDynArray Nombre

TIntegerDynArray CodigoPadre

TStringDynArray CodigoExterno

TIntegerDynArray NivelAutorizacion

TStringDynArray ProgramaAsociado

TStringDynArray Comentarios

TStringDynArray Descripcion

Donde:

- Resultado: valor verdadero o falso para determinar si la consulta fue exitosa.

- Codigo: array con los codigos de servicios presente en este catálogo.

- Nombre: array con los nombres de los servicios disponibles.

- CodigoPadre: array con los códigos de los padres correspondientes a cada uno de los servicios del catálogo.

- CodigoExterno: array con la lista de los códigos externos de los servicios listados en el catálogo.

- NivelAutorizacion: array con los niveles de autorización correspondientes a cada uno de los servicios.

- ProgramaAsociado: array con el listado de programas asociados a cada servicio.

- Comentarios: array con los comentarios correspondientes a cada servicio listado.

- Descripcion: array con la descripción de que es lo que hace cada servicio aparecido en el catálogo.

Función ObtenerEjemploResultadoServicio: retorna un valor de ejemplo del tipo retornado por un servicio.

TResultadoEjemploServicio ObtenerEjemploResultadoServicio(string IdSesionPecas, string Servicio)

Donde los parámetros de entrada se describen de la siguiente manera:

- IdSesionPecas : identificador de sesión del cliente

- Servicio : identificador del servicio desde el cual se desea obtener el ejemplo.

El resultado entregado por la función es del tipo TResultadoEjemploServicio, el cual es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

int CodResultado

string MensajeResultado

byte[] Resultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

Donde:

- CodResultado : Código del resultado del servicio. 0=ok, 1..N códigos de error.

- MensajeResultado: En caso de error, se devuelve un texto descriptivo del mismo.

- Resultado1..ResultadoN : arrays de bytes devueltos por la fuente auténtica.

Función Echo: Testea si está activo el servidor de autorización.

TResultadoEcho Echo (string texto)

Aquí el parámetro de entrada de tipo string se llama texto.

Devuelve el resultado de la llamada al servidor de autorización en formato TResultadoEcho. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado (es 0 si no hubo error, sino aparece en su lugar el código del error).

String MensajeResultado (es el texto del mensaje de error devuelto si hubiese error).

String Resultado (es el texto enviado al servidor como parámetro de entrada).

Función RecuperarListaNodosIntegrabilidad: Retorna el listado de los nodos que existen para ser utilizados en el marco de integrabilidad.

TListaNodosIntegrabilidadRecuperarListaNodosIntegrabilidad(string IdSesionPecas)

Aquí el parámetro de entrada de tipo string se llama IdSesionPecas y contiene al identificador de sesión del cliente.

Devuelve el resultado de la llamada al servidor de autorización en formato TListaNodosIntegrabilidad . Este tipo de dato esta compuesto de los siguientes atributos:

TStringDynArray Codigos

 TStringDynArray Nombres

 Byte[] Tipos

Byte[] Estados

TStringDynArray IPs

TStringDynArray Mensajes

Int CodResultado

String MensajeResultado

Donde:

- Codigos: es un arrary con los codigos de identificación de los nodos de integrabilidad.

- Nombres: es un array con los nombres de los nodos de integrabilidad.

- Tipos: es un array con los tipos de los nodos, por ejemplo: si es un nodo autenticador (0), autorizador(1), y fuente auténtica(3).

- Estados: es un array que contiene los respectivos estados de los nodos, siendo los posibles valores de estado: ok(1) o con error en los test de acceso(2).

- IPs: es un array de las direcciones IPs correspondientes a cada nodo del listado.

- Mensajes: es un array con los mensajes recibidos de cada nodo.

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: aquí se detalla con un mensaje de texto lo que ocurrió con la función.

Función RecuperarListaWebServicesDeFA: Obtiene el listado de los webservices con que cuenta una fuente auténtica en particular.

TListaServiciosDeFA RecuperarListaWebServicesDeFA(string IdSesionPecas, string CodigoFa)

Aquí los parámetros de entrada son de tipo string. El primero se llama IdSesionPecas y contiene al identificador de sesión del cliente. Y el segundo es CodigoFA y se usa para guardar el código de la Fuente Auténtica, de la cual se obtendrá la lista de webservices disponibles.

Devuelve el resultado de la llamada al servidor de autorización en formato TListaServiciosDeFA. Este tipo de dato esta compuesto de los siguientes atributos:

TStringDynArray Codigos

 TStringDynArray Nombres

TStringDynArray Descripciones

TStringDynArray SistemaFuenteDatos

TStringDynArray ComoTrabaja

TStringDynArray DatosParaTest

TStringDynArray RespuestaEsperada

TStringDynArray Responsable

Byte[] Estados

TStringDynArray URLs

TStringDynArray Mensajes

Int CodResultado

String MensajeResultado

Donde:

- Codigos: es un arrary con los codigos de identificación de los WebServices de la FA.

- Nombres: es un array con los nombres de los webservices con que cuenta esa FA.

- Descripciones: es un array con las descripciones de cada uno de los webservices de esta FA.

- SistemaFuenteDatos: es un array que contiene en cada elemento del mismo, el sistema que originó el dato.

- ComoTrabaja:es un array conteniendo las descripciones de cómo trabaja cada uno de los servicios para recuperar los datos.

- DatosParaTest:es un array con parámetros de ejemplo para invocar al servicio.

- RespuestaEsperada: es un array que contiene un descripción del formato que va a tener el resultado del servicio. Por ejemplo si es xml, cual es la estructura.

- Responsable: es un array con los responsables de cada uno de los webservices provistos por la FA.

- Estados: es un array que contiene los respectivos estados de los servicios siendo los posibles valores de estado: ok(1) o con error en los test de acceso(2).

- URLs: es un array de las direcciones URLs correspondientes a cada webservice provisto por la FA.

- Mensajes: es un array con los mensajes recibidos de cada webservice.

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: aquí se detalla con un mensaje de texto lo que ocurrió con la función de consulta.

Función RecuperarUsuariosDeMenu: Obtiene el listado de los usuarios con acceso a un determinado menú.

TListaUsuariosDeMenu RecuperarUsuariosDeMenu(string IdSesionUsuario, string Raiz, string Opcion)

Aquí los parámetros de entrada son de tipo string. El primero se llama IdSesionUsuario y contiene al identificador de sesión del cliente. El segundo es Raiz y se usa para guardar la raíz del menú al que se quiere acceder. Y finalmente el tercero, Opcion, es para indicar que opción del menú es a la que se quiere consultar.

Devuelve el resultado de la llamada al servidor de autorización en formato TListaUsuariosDeMenu. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

TStringDynArray Codigos

TStringDynArray Nombres

TStringDynArray CodigosPadre

TStringDynArray CodigosUsuarios

TStringDynArray CodigosItems

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en caso que hubo error en la consulta.

- Codigos: es un arrary con los codigos de identificación de los ítems del menú.

- Nombres: es un array con los nombres de los ítems del menú.

- CodigosPadre: es un array con las código del padre de un determinado ítem del menú.

- CodigosUsuarioss: es un array de los códigos de los usuarios con acceso a esta opción del menu.

- CodigosItems: es un array con los códigos de los ítems correspondientes a cada uno de los usuarios del menú.

Función AutorizarUsuarioMenu: Procesa el permiso de acceso de un usuario a un menú en particular.

TResultadoAsignacionMenu AutorizarUsuarioMenu(string IdSesionUsuario, string Raiz,string Usuario, string Opcion,TNivelPermiso Nivel Permiso)

Aquí los tres primeros parámetros de entrada son de tipo string. El primero se llama IdSesionUsuario y contiene al identificador de sesión del cliente. El segundo es Raiz y se usa para guardar la raíz del menú al que se quiere autorizar. Y el tercero, Opcion, es para indicar que opción del menú es a la que se quiere autorizar.

El cuarto parámetro de entrada es del tipo TNivelPermiso y permite elegir entre los siguientes valores de tipo string: npNinguno, npLectura, npInsercion, npModificacion y npBorrado.

La función devuelve el resultado de la llamada al servidor de autorización en formato TResultadoAsignacionMenu. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

Función DesAutorizarUsuarioMenu: Procesa la cancelación del permiso de acceso de un usuario a un menú en particular.

TResultadoAsignacionMenu AutorizarUsuarioMenu(string IdSesionUsuario, string Raiz,string Usuario, string Opcion,TNivelPermiso Nivel Permiso)

Aquí los tres primeros parámetros de entrada son de tipo string. El primero se llama IdSesionUsuario y contiene al identificador de sesión del cliente. El segundo es Raiz y se usa para guardar la raíz del menú al que se quiere cortar el acceso. Y el tercero, Opcion, es para indicar que opción del menú es a la que se quiere suspender el acceso.

El cuarto parámetro de entrada es del tipo TNivelPermiso y permite elegir entre los siguientes valores de tipo string: npNinguno, npLectura, npInsercion, npModificacion y npBorrado.

La función devuelve el resultado de la llamada al servidor de autorización en formato TResultadoAsignacionMenu. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

Función UsuarioHabilitadoParaMenu: informa si un usuario en particular tiene autorización de uso de un Menú.

TResultadoUsuarioHabilitadoParaMenu AutorizarUsuarioMenu(string IdSesionUsuario, string Raiz, string Menu)

Aquí los parámetros de entrada son de tipo string. El primero se llama IdSesionUsuario y contiene al identificador de sesión del cliente. El segundo es Raiz y se usa para guardar la raíz del menú al que se quiere evaluar el permiso. Y el tercero, Menu, es para indicar que opción del menú es a la que se quiere analizar el permiso de este usuario.

La función devuelve el resultado de la llamada al servidor de autorización en formato TResultadoUsuarioHabilitadoParaMenu. Este tipo de dato esta compuesto de los siguientes atributos:

Boolean Habilitado

Int CodResultado

String MensajeResultado

Donde:

- Habilitado: dice si el usuario esta habilitado o no para utilizar un menú en particular.

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

Función RolesDeUsuario: Retorna la lista de los roles que se le otorgaron a un usuario para una determinada versión de un proceso.

TResultadoRolesDeUsuario RolesDeUsuario(string IdSesionUsuario, int Proceso, int Version)

Aquí el primero parámetro de entrada es de tipo string, se llama IdSesionUsuario y contiene al identificador de sesión del cliente. El segundo es de tipo int, Proceso, y guarda el código identificador del proceso. Y finalmente el tercero, Version, también de tipo int, indica el numero de la versión del proceso a la que se hace referencia.

La función devuelve el resultado de la llamada al servidor de autorización en formato TResultadoRolesDeUsuario. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

TIntegerDynArray ListaRoles

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

- ListaRoles: es un array y donde cada elemento del array contiene los códigos numéricos de cada uno de los roles.

Función UsuariosDependientes: Retorna la lista de los usuarios dependientes.

TResultadoUsuariosDependientes UsuariosDependientes (string IdSesionUsuario)

Aquí el único parámetro de entrada es de tipo string, se llama IdSesionUsuario y contiene al identificador de sesión del cliente.

La función devuelve el resultado de la llamada al servidor de autorización en formato TResultadoUsuariosDependientes. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

TIntegerDynArray Usuarios

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

- Usuarios: es un array y donde cada elemento del array contiene los códigos numéricos de identificación de cada uno de los usuarios.

Función RecuperaBasesDeUsuario: Retorna la lista de los bases a las que podría acceder un usuario.

TBasesDeUsuario RecuperaBasesDeUsuario(string IdSesionUsuario)

Aquí el único parámetro de entrada es de tipo string, se llama IdSesionUsuario y contiene al identificador de sesión del cliente.

La función devuelve el resultado de la llamada al servidor de autorización en formato TBasesDeUsuario. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado

String MensajeResultado

Donde:

- CodResultado: es un número para representar el código de resultado de esta función. En donde 0 significa que no hubo error.

- MensajeResultado: es el texto que devuelve distinto de vacío en el caso en que hubo error en la ejecución de la función.

Función RecuperarMenuDeOtroUsuario: Retorna el menú de otro usuario distinto al de la sesión actual.

CResultadoMenu_V4 RecuperarMenuDeOtroUsuario(string IdSesionPecas, string CodigoMenu, string usuario)

Los tres parámetros de entrada son de tipo string. El primero se llama IdSesionPecas y contiene al identificador de sesión del cliente. El segundo es el Codigomenu y guarda el código del menú al cual se refiere la consulta. Y finalmente usuario es el usuario del cual se quiere recuperar el menú.

La función devuelve el resultado de la llamada al servidor de autorización en formato CResultadoMenu_V4. Este tipo de dato esta compuesto de los siguientes atributos:

Boolean Resultado

TIntegerDynArray Codigo

TStringDynArray Nombre

TIntegerDynArray CodigoPadre

TStringDynArray CodigoExterno 

TIntegerDynArray NivelAutorizacion 

TStringDynArray ProgramaAsociado

TStringDynArray Comentarios

TStringDynArray Descripcion

String MensajeResultado

Donde:

- Resultado: indica si se pudo recuperar la lista de servicios autorizados

- Codigo: array con los códigos numéricos de los servicios

- Nombre: array con los nombres de los servicios

- CodigoPadre: array con los códigos numéricos de los padres de cada servicio (la fuente auténtica)

- CodigoExterno: codigo alfanumérico del servicio.

- NivelAutorizacion: array con el nivel de autorización de cada servicio

- ProgramaAsociado: array con path o url asociado a cada item

- Comentarios: array con los comentarios de cada servicio.

- Descripcion: array con las descripciones de los servicios

- MensajeResultado: mensaje de texto con el resultado de esta consulta.

Servicio Web de ESTRUCTURA de USUARIOS

La URL del Servicio es http://autoriza.neuquen.gov.ar:8080/scripts/usuarios.exe.

A continuación se detallan las distintas funciones que incluye.

iusuariosxml.jpg

Función RecuperarAreas: Recupera las Áreas de la organización

CResultadoAreas RecuperarAreas(string IdSesion)

Donde el parámetro de entrada de tipo string, IDSesión, es el identificador de la sesión del cliente

Esta función retorna un objeto del tipo CResultadoAreas, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

 ArrayDeInt Areas

 boolean Resultado

Donde:

- Áreas: es un array conteniendo los códigos de las áreas.

- Resultado: indica si se pudo resolver el servicio

Función RecuperarUsuarios: Recupera las usuarios definidos de la organización

CResultadoUsuarios RecuperarUsuarios(string IdSesion)

Donde el parámetro de entrada de tipo string, IDSesión, es el identificador de la sesión del cliente

Esta función retorna un objeto del tipo CResultadoUsuarios que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

 ArrayDeInt Areas

 boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Usuarios: es un array conteniendo los códigos de los usuarios.

Función RecuperarDescripcionUsuarios: Recupera los nombres de los usuarios recibidos

ArrayDeString RecuperarDescripcionUsuarios(string IdSesion, ArrayDeInt CodigosUsuarios)

Donde el parámetro de entrada de tipo string, IDSesión, es el identificador de la sesión del cliente.

Y CodigosUsuarios es unArrayDeInt, o sea es un array conteniendo los códigos de usuarios.

Esta función retorna un objeto del tipo ArrayDeString. ArrayDeString es un array conteniendo las descripciones de los usuarios

Función RecuperarPuestos: Recupera los códigos de los puestos de la organización

CResultadoPuestosRecuperarPuestos(string IdSesion)

Donde el parámetro de entrada de tipo string, IDSesión, es el identificador de la sesión del cliente

Esta función retorna un objeto del tipo CResultadoPuestos que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Puestos

ArrayDeInt Padres

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Puestos: array conteniendo los códigos de las puestos.

- Padres: array paralelo a puestos, conteniendo los códigos de los padres de cada puesto.

Función RecuperarBasesDeUsuario: Recupera las bases de datos disponibles para el usuario

CResultadoBases RecuperarBasesDeUsuarios(string IdSesion, string Usuario, string Password)

Donde los tres parámetros de entrada son de tipo string. IDSesión es el identificador de la sesión del cliente. Usuario es el username. Por último, Password es la contraseña del mismo y en el caso de validación con LDAP puede ser nula.

Esta función retorna un objeto del tipo CResultadoBases que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

 ArrayDeString Bases

 boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Bases: array conteniendo los códigos de las bases de datos.

Función RecuperarBasesDeAdministrador: Recupera las bases de datos disponibles para el administrador

  • Cómo se solicita

Idem función RecuperarBasesDeUsuario

  • Cómo nos responde

Idem función RecuperarBasesDeUsuario

Función RecuperarPuesto: Recupera la información de un puesto

CResultadoPuesto RecuperarPuesto(string IdSesionPecas, int CodigoPuesto)

Donde el parámetro de entrada IdSesionPecas es de tipo string. IDSesiónPecas es el identificador de la sesión del cliente. Por último, CodigoPuesto es de tipo int y contiene código del puesto del que se quieren recuperar datos.

Esta función retorna un objeto del tipo CResultadoPuesto que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

String Nombre

String Descripcion

Int Padre

boolean Resultado

string CodigoExterno

Donde:

- Nombre: es el nombre del puesto

- Descripcion: es la descripción adicional del puesto

- Padre: es el código del puesto padre

- Resultado: indica si se pudo resolver el servicio

- CodigoExterno: es el código externo del puesto (si tuviera).

Función RecuperarArea: Recupera la información de un Área

CResultadoAreas RecuperarAreas(string IdSesionPecas, int CodigoArea)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoArea, es de tipoint y contiene el código del Área del que se quieren recuperar datos.

Esta función retorna un objeto del tipo CResultadoArea, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

string Nombre

string Descripcion

boolean Resultado

Donde:

- Nombre: es el nombre del Área

- Descripcion: es la descripción adicional del Área

- Resultado: indica si se pudo resolver el servicio

Función RecuperarDescripcionAreas: Recupera la información de determinadas Áreas

ArrayDeString RecuperarDescripcionAreas(string IdSesion, ArrayDeInt CodigosAreas)

Donde el parámetro de entrada de tipo string, IDSesión, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigosAreas, es de tipoArrayDeInt con los códigos de las Áreas de las que se quieren recuperar datos.

Esta función retorna un objeto del tipo ArrayDeString, que es un Array con las descripciones de las areas.

Función RecuperarGruposDePuestos: Recupera los códigos de todos los grupos de puestos

CResultadoGruposDePuestos RecuperarGruposDePuestos (string IdSesionPecas)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente.

Esta función retorna un objeto del tipo CResultadoGruposDePuestos, es una estructura que devuelve una serie de campos y vectores definidos de la siguiente manera:

 ArrayDeInt GrupoDePuestos

 boolean Resultado

Donde:

- GrupoDePuestos: es un array con los códigos de los grupos de puestos.

- Resultado: indica si se pudo resolver el servicio

Función RecuperarGrupoDePuestos: Recupera la descripción y los código de puestos de un grupo de puestos

CResultadoGrupoDePuestos RecuperarGrupoDePuestos (string IdSesionPecas,

int CodigoPuesto)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. Y el último parámetro de entrada contiene una variable de tipo int y se llama CodigoPuesto.

Esta función retorna un objeto del tipo CResultadoGrupoDePuestos, es una estructura que devuelve una serie de campos y vectores definidos de la siguiente manera:

string NombreGrupo

ArrayDeInt Puestos

boolean Resultado

Donde:

- NombreGrupo: nombre del grupo

- Puestos: array con los códigos de puestos que pertenecen al grupo

- Resultado: indica si se pudo resolver el servicio

Función RecuperarGruposDeUsuarios: Recupera los códigos de todos los grupos de usuarios

CResultadoGruposDeUsuarios RecuperarGruposDeUsuarios (string IdSesionPecas)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente.

Esta función retorna un objeto del tipo CResultadoGruposDeUsuarios, es una estructura que devuelve una serie de campos y vectores definidos de la siguiente manera:

 ArrayDeInt GrupoDeUsuarios

 boolean Resultado

Donde:

- GrupuDeUsuarios: es un array con los códigos de los grupos de usuarios.

- Resultado: indica si se pudo resolver el servicio

Función RecuperarGrupoDeUsuarios: Recupera la descripción y los código de usuarios de un grupo de usuarios

CResultadoGrupoDeUsuarios RecuperarGrupoDeUsuarios (string IdSesionPecas, int CodigoGrupo)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoGrupo, es de tipoint y contiene el código del grupo del que se quieren recuperar datos.

Esta función retorna un objeto del tipo CResultadoGrupoDeUsuarios, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

string Nombre

boolean Resultado

ArrayDeInt Usuarios

Donde:

- Resultado: indica si se pudo resolver el servicio

- NombreGrupo: nombre del grupo

- Usuarios: es un array con los códigos de los usuarios que pertenecen al grupo

Función RecuperarEquiposDeUsuarios: Recupera los códigos de todos los equipos de usuarios

CResultadoEquipoDeUsuarios RecuperarEquiposDeUsuarios(string IdSesionPecas)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente.

Esta función retorna un objeto del tipo CResultadoEquipoDeUsuarios, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Equipos

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Equipos: es un array con los códigos de los equipos de usuarios.

Función RecuperarUsuario: Recupera los datos de un usuario

CResultadoUsuario RecuperarUsuario(string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo CResultadoUsuario, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

string Nombre

string EMail

boolean Resultado

Donde:

- Nombre: es el nombre de usuario

- Email: es el email del usuario

- Resultado: indica si se pudo resolver el servicio

Función RecuperarPuestosDeUsuario: Recupera los códigos de puestos que ocupa un usuario

CResultadoUsuario RecuperarPuestosDeUsuario (string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo CResultadoPuestosDeUsuario, que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Puestos

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Puestos: es un array con los códigos de puestos que el usuario ocupa

Función RecuperarDescripcionPuestosDeUsuario: Recupera la descripción de los puestos que ocupa un usuario

ArrayDeString RecuperarDescripcionPuestosDeUsuario(string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo ArrayDeString, que es un vector con la descripción de los puestos que ocupa el usuario

Función RecuperarAreasDeUsuario: Recupera los códigos de Área donde pertenece un usuario

CResultadoRecuperarAreasDeUsuario RecuperarAreasDeUsuario (string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo CResultadoRecuperarAreasDeUsuario, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Areas

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Areas: es un array con los códigos de las Áreas que el usuario ocupa

Función RecuperarGruposDeUsuarios_DeUsuario: Recupera los códigos de grupos de usuarios a los que pertenece un usuario

CResultadoGruposDeUsuarios_DeUsuario RecuperarGruposDeUsuarios_DeUsuario (string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo CResultadoGruposDeUsuarios_DeUsuario, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Grupos

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Grupos: es un array con los códigos de los grupos a los cuales el usuario pertenece

Función RecuperarDescripciónGruposDeUsuarios_DeUsuario: Recupera la descripción de los grupos de usuarios a los que pertenece un usuario

ArrayDeStringRecuperarDescripcionGruposDeUsuarios(string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo ArrayDeString que es un vector con la descripción de los grupos de usuarios a los que pertenece un usuario

Función RecuperarEquiposDeUsuarios_DeUsuario: Recupera los códigos de los equipos de usuarios a los que pertenece un usuario

CResultadoEquiposDeUsuarios_DeUsuarioRecuperarEquiposDeUsuarios_DeUsuario(string IdSesionPecas, int CodigoUsuario)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigoUsuario, de tipo int.

Esta función retorna un objeto del tipo CResultadoEquiposDeUsuarios_DeUsuario que es una estructura, que devuelve una serie de campos y vectores definidos de la siguiente manera:

ArrayDeInt Equipos

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Equipos: es un array con los códigos de los equipos a los que el usuario pertenece

Función RecuperarDescripciónEquiposDeUsuarios_DeUsuario: Recupera la descripción de equipos de usuarios

ArrayDeStringRecuperarEquiposDeUsuarios_DeUsuario(string IdSesionPecas, ArrayDeInt CodigosEquipos)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es CodigosEquipos, de tipo ArrayDeInt, quees un vector con los códigos de los equipos de usuario.

Esta función retorna un objeto del tipo ArrayDeString que es un vector con las descripciones de los equipos solicitados

Función RecuperarDatos_DeUsuario: Recupera los datos del usuario correspondiente al IdSesionPecas

CResultadoDatos_DeUsuario RecuperarDatos_DeUsuario (string IdSesionPecas)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente.

Esta función retorna un objeto del tipo CResultadoDatos_DeUsuario que es una estructura con una serie de campos y vectores definidos de la siguiente manera:

int Codigo

string Descripcion

string CodigoExterno

Donde:

- Código: es el id de usuario

- Descripción: es el nombre del usuario

- CodigoExterno: es el código externo del usuario

Función RecuperarMarcas_DeUsuario: Recupera las marcas pertenecientes a una persona con el DNI dato (Marcas&Señales)

CResultadoMarcas_DeUsuarioRecuperarMarcas_DeUsuario (string IdSesionPecas, String DNI)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es también de tipo string, DNI, y almacena el DNI del usuario requerido.

Esta función retorna un objeto del tipo CResultadoMarcas_DeUsuarioque es una estructura con una serie de campos y vectores definidos de la siguiente manera:

ArrayDeMarcas Marcas

boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Marca: es de tipo ArrayDeMarcas, que es un vector definido de la siguiente manera:

string Codigo

int Tipo

cuyo significado correspondiente sería:

- Código: indica el código de la marca

- Tipo: 1=marca,2=señal

Función RecuperarMarcas_DeUsuarioParaJava: Recupera las marcas pertenecientes a una persona con el DNI dato (Marcas&Señales) en formato compatible Java

CResultadoMarcas_DeUsuarioParaJava RecuperarMarcas_DeUsuarioParaJava (string IdSesionPecas, string DNI)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada contiene el numero de DNI del usuario.

Esta función retorna un objeto del tipo CResultadoMarcas_DeUsuarioParaJava que es una estructura con una serie de campos y vectores definidos de la siguiente manera:

ArrayDeString Codigo

ArrayDeInt Tipo

Boolean Resultado

Donde:

- Resultado: indica si se pudo resolver el servicio

- Codigos: array con los codigos de las marcas

- Tipo: array paralelo a codigos, con los tipos de cada marca (1=marca,2=señal)

Función RecuperarUnaMarca: Recupera la marca de un código dado (Marcas&Señales)

CresultadoByteArchivo RecuperarUnaMarca(string IdSesionPecas, string CodMarca, int TipoMarca)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada CodMarca, contiene el código de la marca y es también de tipo string. Y por último el tercer parámetro es de tipo int, TipoMarca, cuyos valores podrán ser: 1=marca,2=señal

Esta función retorna un objeto del tipo CResultadoByteArchivo que es una estructura con una serie de campos y vectores definidos de la siguiente manera:

Byte[] Codigo

Boolean Resultado

Donde:

- Datos: es la imágen de la marca o señal.

- Resultado: indica si se pudo resolver el servicio.

Función GetArchivo: Recupera la marca con un nombre determinado (Marcas&Señales)

CResultadoByteArchivo GetArchivo(string IdSesionPecas, string NombreArchivo)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada NombreArchivo, contiene el nombre del archivo que se quiere obtener y es también de tipo string.

Esta función retorna un objeto del tipo CResultadoByteArchivo que es una estructura con una serie de campos y vectores definidos de la siguiente manera:

Byte[] Datos

Boolean Resultado

Donde:

- Datos: es el archivo que se está pidiendo.

- Resultado: indica si se pudo resolver el servicio.

Servicio Web de Fuente Auténtica

La URL del Servicio es http://fautentica.neuquen.gov.ar:8080/scripts/fapecas.exe.

A continuación se detallan las distintas funciones que incluye.

ifuenteautenticaxml.jpg

Función Solicitar_Servicio_FA: Da respuesta a una solicitud de información a una fuente auténtica

TResultadoServicioFASolicitar_Servicio_FA (string IdSesionPecas,string coordinador, byte[] clave_publica_cliente, string Proveedor, string Servicio,string DatoAuditoria, byte[] Cuerpo, byte[] Firma, boolean CuerpoFirmado,boolean CuerpoEncriptado)

Descripción de los parámetros de entrada:

-IdSesionPecas: identificador de sesión del cliente

-coordinador: Identifica al coordinador que solicita el servicio

-clave_publica_cliente: clave publica de firma digital del cliente, utilizada para verificar la firma del pedido

-Proveedor: código de la fuente autentica que es dueña del servicio

-Servicio: código del servicio que solicita el cliente.

-DatoAuditoria: datos del involucrado en el servicio, por ejemplo dni o legajo.

-Cuerpo: datos adicionales opcionales si son necesarios para resolver el servicio.

-Firma: Resultado de firmar el cuerpo del mensaje con la clave privada del cliente.

-CuerpoFirmado: indica si el cuerpo fue firmado. Esto indica que hay que verificar la firma

-CuerpoEncriptado: indica si el cuerpo viene encriptado. Esto indica que hay que desencriptar el contenido primero.

La función retorna un objeto del tipo TResultadoServicioFA, que es una estructura con una serie de campos definidos de la siguiente manera:

int CodResultado

byte[] Resultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

byte[] FirmaResultado1

byte[] FirmaResultado2

byte[] FirmaResultado3

byte[] FirmaResultado4

byte[] FirmaResultado5

string MensajeResultado

Donde:

-CodResultado: número que representa el resultado del servicio. 0 en caso de éxito. Cualquier valor distinto de cero en caso de error.

-Resultado1: array de bytes donde se devuelve el resultado del servicio. Este array puede ser un archivo xml, una imagen, un archivo binario, etc.

-FirmaResultado(1..5): resultado de firmar el resultado(1..5) respectivamente, con la clave privada de la fuente auténtica.

-Resultado(2 a 5): array de bytes con resultados adicionales.

-MensajeResultado: en caso de error, contiene un mensaje descriptivo del código de error.

Función ObtenerListaServicios: Ofrece la lista de servicios disponibles para un usuario

TListaServiciosFA ObtenerListaServicios (string IdSesionPecas, string Coordinador)

Donde el parámetro de entrada de tipo string, IDSesiónPecas, es el identificador de la sesión del cliente. El segundo parámetro de entrada es Coordinador, de tipo string.

Esta función retorna un objeto del tipo TListaServiciosFA, que devuelve una serie de campos y vectores definidos de la siguiente manera:

  boolean Resultado

 int CodigoResultado

 string MensajeResultado

 TStringDynArray Servicios

 TStringDynArray Descripciones

 TStringDynArray Nombres

 TStringDynArray CodigosFuentesAutenticas

TStringDynArray SistemaFuenteDatos

TStringDynArray ComoTrabaja

TStringDynArray Responsable

TStringDynArray DatosParaTest

TStringDynArray RespuestaEsperada

TStringDynArray QuienLoUsa

Donde:

-Resultado: indica si se resolvió el servicio correctamente.

-CodigoResultado: número que representa el resultado del servicio. 0 en caso de éxito. Cualquier valor distinto de cero en caso de error.

-MensajeResultado: en caso de error, contiene un mensaje descriptivo del código de error.

-Servicios: array de cadenas de texto que contiene los códigos de los servicios disponibles en la Fuente Auténtica.

-Descripciones: array con la descripción de los servicios.

-Nombres: array con los nombres descriptivos de los servicios.

-CodigosFuentesAutenticas: array con los códigos de la fuente auténtica dueña de cada servicio

-SistemaFuenteDatos: es un array que contiene en cada elemento del mismo, el sistema que originó el dato.

-ComoTrabaja:es un array conteniendo las descripciones de cómo trabaja cada uno de los servicios para recuperar los datos.

-Responsable: es un array con los responsables de cada uno de los webservices provistos por la FA.

-DatosParaTest:es un array con parámetros de ejemplo para invocar al servicio.

-RespuestaEsperada: es un array que contiene un descripción del formato que va a tener el resultado del servicio. Por ejemplo si es xml, cual es la estructura.

-QuienLoUsa: array con los sistemas clientes que son los posibles usuarios de cada servicio.

Función ObtenerParametrosDeServicio: solicita los parámetros necesarios para utilizar un determinado servicio

TParametrosDeServicioObtenerParametrosDeServicio (string servicio)

El parámetro de entrada de tipo string, servicio, es el código del servicio que solicita el cliente.

La función retorna un objeto del tipo TParametrosDeServicio, que es una estructura con una serie de campos definidos de la siguiente manera:

TStringDynArray Nombres

TStringDynArray Tipos

TStringDynArray Valores

int CodResultado

string MensajeResultado

Donde:

-Nombres: array con los nombres de los parámetros necesarios para utilizar el servicio.

-Tipos: array con los tipos de datos de los parámetros solicitados por el servicio.

-Valores: array con los valores de default de los correspondientes parámetros.

-CodResultado: número que representa el resultado del servicio. 0 en caso de éxito. Cualquier valor distinto de cero en caso de error.

-MensajeResultado: en caso de error, contiene un mensaje descriptivo del código de error.

Función ObtenerEjemploResultadoServicio: un cliente (puede ser tanto aplicación como usuario) solicita un ejemplo de un posible resultado del servicio.

TResultadoEjemploServicioObtenerEjemploResultadoServicio (string servicio)

El parámetro de entrada es de tipo string, se llama servicio, y contiene el nombre del servicio al cual se quiere consultar por un ejemplo de resultado.

La función retorna un objeto del tipo TResultadoEjemploServicio, que es una estructura con una serie de campos definidos de la siguiente manera:

int CodResultado

string MensajeResultado

byte[] Resultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

 

Donde:

-CodResultado: número que representa el resultado del servicio. 0 en caso de éxito. Cualquier valor distinto de cero en caso de error.

-MensajeResultado: en caso de error, contiene un mensaje descriptivo del código de error.

-Resultado1: array de bytes donde se devuelve el resultado del servicio. Este array puede ser un archivo xml, una imagen, un archivo binario, etc.

-Resultado(2 a 5): son array de bytes con resultados adicionales.

Función Echo: testea si el servidor de Fuente Auténtica está activo.

TResultadoEcho Echo (stringtexto)

Aquí el parámetro de entrada de tipo string se llama texto.

Devuelve el resultado de la llamada al servidor de autenticación en formato TResultadoEcho. Este tipo de dato esta compuesto de los siguientes atributos:

Int CodResultado (es 0 si no hubo error, sino aparece en su lugar el código del error).

String MensajeResultado (es el texto del mensaje de error devuelto si hubiese error).

String Resultado (es el texto enviado al servidor como parámetro de entrada).

Servicio Web de Workflow

La URL del Servicio es http://200.69.219.197:9101/scripts/wsworkflow.exe/wsdl/IWSWorkflow.

A continuación se detallan las distintas funciones que incluye.

iwsworkflowxml.jpg

Función IniciarProceso: Da inicio a un proceso generando una instancia de tarea. Se combina con la función IniciaTarea para efectivamente ejecutarla

TareaAEjecutar IniciarProceso (string Ticket, int TareaInicial)

Donde Ticket (o IDSesión en la versión más reciente) es lo que retorna la función LoginPecas del servicio de Autenticación y TareaInicio es ID de la instancia de tarea.

Devuelve un objeto TareaAEjecutar, el cual es una estructura que deriva de CBaseRespuestay con una serie de campos definidos de la siguiente manera:

Int AnchoPantalla: Uso en pantallas dinámicas.

Int AltoPantalla: Uso en pantallas dinámicas.

Int RojoFondoPantalla: Uso en pantallas dinámicas.

Int VerdeFondoPantalla: Uso en pantallas dinámicas.

Int AzulFondoPantalla: Uso en pantallas dinámicas.

string Caption: Uso en pantallas dinámicas.

string CondicionPrevia: condición necesaria para iniciar la tarea.

CEncabezamiento Encabezamiento.

ModoInicio ModoDeIniciar: Pantalla automática, pantalla dinámica o programa de

terceros.

ArrayOfElementoTexto PrevPrmProc: parámetros de proceso previos visibles para la

tarea.

ArrayOfElementoTexto PrevPrmTask: parámetros de tarea previos visibles para la tarea.

String ProgramaEjecutable: programa o dirección de página web a iniciarse.

ArrayOfCampoDinamico CamposDinamicos: Uso en pantallas dinámicas.

ArrayOfCampoPantalla TaskParams: Lista de parámetros de tarea a ingresar.

ArrayOfCampoPantalla ProcessParams: Lista de parámetros de proceso a ingresar.

ArrayOfElementoEstructura ElementosEstructura: De uso interno de Thinknet.

El tipo CEncabezamiento también es una estructura y se muestra su composición a continuación en el inciso d.

El tipo ModoInicio es un string y podría tener alguno de los siguientes valores: PantallaAutomatica, PantallaDinamica o ProgramaTerceros.

Función ListadoProceso: brinda la lista de procesos que un usuario determinado puede iniciar

CRespuestaListados ListadoProceso (string Ticket)

Donde Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación

El resultado es un objeto del tipo CRespuestaListados, que es una estructura conteniendo una serie de campos y vectores definidos de la siguiente manera:

Es un tipo heredado del tipo CBaseRespuesta.

Donde CBaseRespuesta es la clase base de las respuestas del WF. Provee información sobre posibles errores en la ejecución del pedido.

Campos:

Boolean HayError: retorna verdadero cuando se produjo algún error al ejecutar el pedido.

String MensajeError: descripción del error.

Para completar CRespuestaListados se agregan los siguientes campos:

ListaTareas MesaEntradas

ListaTareas BandejaEntradas

ListaTareas EnEjecucion

ListaTareas TareasFuturas

ListaTareas TareasAReasignar

ListaProcesos Procesos

Ahora ListaTareas es una estructura formada por el siguiente campo:

ArrayOfLineaTareas Listado

Donde ArrayOfLineaTareas es un array de LineaTareas. El tipo estructurado LineaTareas está compuesto de los siguientes campos:

int Instancia (Instancia de la tarea)

string Tarea (Nombre de la tarea)

string Proceso (Nombre del proceso)

string Descripcion (Descripción de la instancia de la tarea)

string Tercero (Tercero asociado a la tarea, ejecutor o ejecutor anterior)

int Prioridad (prioridad de la tarea)

int Comentarios (Cantidad de comentarios asociados a la tarea)

dateTime Creacion (Fecha de creación de la instancia de tarea)

Función ListadoTareas: brinda la lista de las tareas en las distintas bandejas del usuario, excepto las futuras

CRespuestaListados ListadoTareas (string Ticket)

Donde Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación

El resultado es un objeto del tipo CRespuestaListados, que es una estructura conteniendo una serie de campos y vectores definidos de la siguiente manera:

Es un tipo heredado del tipo CBaseRespuesta

Donde CBaseRespuesta es la clase base de las respuestas del WF. Provee información sobre posibles errores en la ejecución del pedido. Esta clase se describió en ListadoProceso.

Función AceptaTarea: Se trata de un método que permite a un usuario aceptar una tarea de su mesa de entradas y pasarlo a la bandeja de entradas. Cuando se use el cliente de workflow de Thinknet es de uso interno.

CRetornoWF AceptarTarea (string Ticket, int Instancia)

Donde el primer parámetro es de tipo string,Ticket, es lo que retorna la función Login del servicio de Autenticación. El segundo parámetro de entrada es de tipo int, Instancia, y contiene el id de la instancia de la tarea referida.

El resultado es un objeto del tipo CRetornoWF, que es una estructura conteniendo una serie de campos y vectores definidos de la siguiente manera:

Es un tipo heredado del tipo CBaseRespuesta.

Donde CBaseRespuesta es la clase base de las respuestas del WF. Provee información sobre posibles errores en la ejecución del pedido. Esta clase se describió en detalle en ListadoProceso. A este tipo estructurado heredado se le agrega un campo mas de tipo array de CEncabezamiento denominado Encabezamiento, el cual provee la información general de cualquier comando. La estructura del tipo CEncabezamiento se muestra a continuación:

Int ActionClass: código del comando a ejecutar (ver tabla 1).

Int SubAction: código de uso interno.

Int ActionKey: código según tabla 2.

Int UserCode: usuario ejecutante.

String SessionCode: texto que retorna inalterado (para uso interno).

Int TaskClass: código de definición de la tarea.

Int TaskSample: instancia de la tarea involucrada.

Int ProcessSample: Instancia del proceso involucrado.

Int ProcessClass: código de definición del proceso.

Int SampleVersion: Versión de la definición del proceso.

Función ListadoTareasFuturas: Lista las tareas futuras del usuario, es decir, las tareas en bandejas de otros usuarios que se crearon a partir de tareas ejecutadas por el usuario correspondiente al ticket

CRespuestaListados ListadoTareasFuturas (string Ticket)

Donde Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación

El resultado es un objeto del tipo CRespuestaListados, que es una estructura conteniendo una serie de campos y vectores definidos de la siguiente manera:

Es un tipo heredado del tipoCBaseRespuesta

Donde CBaseRespuesta es la clase base de las respuestas del WF. Provee información sobre posibles errores en la ejecución del pedido. Esta clase se describió en detalle en el inciso b).

Función AjustarListaDinamica: Ajusta el contenido de una lista dinámica cuando algún campo del que depende la misma se ha modificado. Es de uso interno para pantallas dinámicas si se usa el cliente workflow de Thinknet.

Función CompletoPantallaAutomatica: Indica al WF que una tarea que se ejecuta mediante pantalla automática se ha completado. Esde uso interno cuando se usa workflow de Thinknet.

CRetornoWF CompletoPantallaAutomatica (string Ticket, CRespuestaAut Pantalla)

Donde el primer parámetro de entrada es de tipo string, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación.

El segundo parámetro es del tipo CRespuestaAut, Pantalla, que hereda a la clase CBaseRespuesta (la cual se explicó más arriba), es la clase asociada a la ejecución de tareas usando pantallas automáticas. Los campos agregados a este tipo son:

Int CodigoRetorno: código de retorno de la rutina. Si es 0 significa ok.

CEncabezamiento Encabezamiento: datos generales del pedido.

ArrayOfParamRespAut ParametrosTarea: Lista de los parámetros de tarea

asociados.

ArrayOfParamRespAut ParametrosProceso: Lista de los parámetros de proceso

asociados.

A su vez el tipo ArrayOfParamRespAut es un array de objetos del tipo ParamRespAut, el cual contiene información general sobre los parámetros y está compuesto de los siguientes campos:

int Codigo : código del parámetro en la base Pecas.

int Clase : tipo de variable asociada al parámetro según tabla 3.

String Valor: contenido del parámetro.

El resultado es un objeto del tipo CRetornoWF, que es una estructura conteniendo una serie de campos y vectores definidos en el inciso d).

Función DispararTarea: Inicia la ejecución de una tarea a partir de su instancia.

TareaAEjecutar DispararTarea(string Ticket, int Instancia)

Donde el primer parámetro de entrada es de tipo string, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación.

El segundo parámetro es del tipo int, Instancia, contiene el ID de la instancia de la tarea

El resultado es un objeto del tipo TareaAEjecutar, heredado de CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso a).

Función DownloadArchivo: Se usa para recuperar un archivo del repositorio.

CRetornaDownload DownloadArchivo (string Ticket, string Alias, string Tabla, string Campo,string Archivo, string Referencia)

Donde todos los parámetros de entrada son de tipo string, el primero, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. Los parámetros de entrada Alias, Tabla, Campo, Archivo son los que identifican al documento. El último parámetro, Referencia, es el texto que retorna inalterado en la respuesta y se usa para asociar las respuestas a los pedidos

El resultado es un objeto del tipo CRetornaDownload, heredado de CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d). Para completar este objeto de tipo CRetornaDownload, se agregaron los siguientes campos:

String Referencia (ayuda a asociar la respuesta al pedido)

String NombreArchivo (Nombre del archivo)

Byte[] Bytes (Contenido del archivo)

Función EjecutarQueryLista: Se usa para ejecutar un query desde el workflow.

CRetornaListaDinamica EjecutarQueryLista(string Ticket, string Campo, string Alias, string Query, dateTime FechaPedido)

Donde los tres primeros parámetros de entrada son de tipo string, el primero, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. El parámetro de entrada Campo, es el campo asociado a la lista que se refresca.

El resultado es un objeto del tipo CRetornaListaDinamica, heredado de CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d). Para completar este objeto de tipo CRetornaListaDinamica, se agregaron los siguientes campos:

String Campo

String FechaHora (momento en que realizo la consulta)

ArrayOfElementoLista Lista (Datos obtenidos mediante el query)

Y aquí ArrayOfElementoLista es un array de objetos del tipo ElementoLista. ElementoLista está compuesto de los siguientes campos o atributos:

String Codigo

String Descripcion

Función EnviarCorreo: Envía un correo electrónico desde el workflow.

CRetornaBooleano EnviarCorreo(string Ticket, string ListaDirecciones, string Asunto, string Texto)

Donde todos los parámetros de entrada son de tipo string, el primero, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. El parámetro de entrada ListaDirecciones, contiene las direcciones de email a las cuales el correo será enviado. El tercer parámetro de entrada, Asunto, es el asunto asociado a este email. Y por último Texto contiene el mensaje que dentro del email.

El resultado es un objeto del tipo CRetornaBooleano, heredado de CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d). Para completar este objeto de tipo CRetornaBooleano, se agregó el siguiente campo:

Boolean ProcesoOK (contendrá el valor True o False dependiendo si el proceso funcionó

correctamente).

Función ObtenerProximoAutonumerico: Determina el próximo autonumérico. Es de uso interno para pantallas dinámicas.

Función ObtenerProximoCodigoArchivo: Determina el código del próximo archivo a registrar.

CRetornaEntero ObtenerProximoCodigoArchivo(string Ticket)

Donde el parámetro de entrada es de tipo string, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación.

El resultado es un objeto del tipo CRetornaEntero, heredado de CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d). Para completar este objeto de tipo CRetornaEntero, se agregó el siguiente campo:

int ValorEntero (número del código del próximo archivo a registrar)

Función ReasignarTarea: Reasigna una tarea a otro usuario, cambiando la asignación original del workflow.. Si se usa fuera del entorno del cliente Thinknet hay que asegurarse de que el usuario tenga los derechos para hacerlo.

CBaseRespuesta ReasignarTarea(string Ticket, int InstanciaTarea, int AsignarUsuario)

Donde el primer parámetro de entrada es de tipo string, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. El segundo parámetro es de tipo int, InstanciaTarea, e identifica el número de la instancia.

El resultado es un objeto del tipo CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d).

Función RetrotraerTarea: Revierte la ejecución de una tarea y, según lo que se indique, reejecuta la anterior o deja la tarea de referencia lista para ejecutarse otra vez.

CBaseRespuesta RetrotraerTarea(string Ticket, int InstanciaTarea, boolean ReEjecutarAnterior)

Donde el primer parámetro de entrada es de tipo string, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. El segundo parámetro es de tipo int, InstanciaTarea, e identifica el número de la instancia. Y el último parámetro de entrada es de tipo boolean, ReEjecutarAnterior, o sea si se reejecuta o no la tarea anterior.

El resultado es un objeto del tipo CBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d).

Función UploadArchivo: Se usa para recuperar un archivo del repositorio.

CRetornaUploadUploadArchivo (string Ticket, string Alias, string Tabla, string Campo,

string Archivo, string Referencia, byte[] DatosArchivo)

Donde todos los parámetros de entrada son de tipo string, el primero, Ticket (o IDSesión en la versión más reciente) es lo que retorna la función Login del servicio de Autenticación. Los parámetros de entrada Alias, Tabla, Campo, Archivo son los que identifican al documento. El anteúltimo parámetro, Referencia, es el texto que retorna inalterado en la respuesta y se usa para asociar las respuestas a los pedidos. El último parámetro es un array de bytes, DatosArchivo, el cual almacena el contenido del archivo.

El resultado es un objeto del tipo CRetornaUpload, heredado deCBaseRespuesta, que es una estructura conteniendo una serie de campos y vectores definidos previamente en el inciso d). Para completar este objeto de tipo CRetornaUpload, se agregaron los siguientes campos:

Int Codigo (código asignado al archivo)

String Referencia (la referencia que se envió en el pedido)

Tabla 1: Código de comandos disponibles.

WF_ACTION_USER_ENABLE=1; verifica que el usuario pueda ejecutar la tarea WF_ACTION_FILL_ROL_LIST=2; lista los roles que puede asumir un usuario

WF_ACTION_TASK_ENABLE=5; crea entradas en TasksPending WF_ACTION_WRITE_AGRTM=4; inserta un compromiso

WF_ACTION_TASK_COMPLETED=6; instancia de tarea cumplida WF_ACTION_PROCESS_CREATE=7; crea una instancia de un proceso

WF_ACTION_LIST_TASKS=8; llena una lista con las tareas a ejecutar WF_ACTION_ACCEPT_TASK=9; acepta una instancia de tarea (de mesa a bandeja)

WF_ACTION_LEAVE_TASK=10; aborta la tarea WF_ACTION_USER_ENTRY=11; el usuario entra al WF

WF_ACTION_USER_LIST=12; lista de usuarios WF_ACTION_NEXT_TASKS=14; listado de las tareas próximas a las propias

WF_ACTION_BEGIN_DIALOG=16; inicia un dialogo WF_ACTION_ACCEPT_DIALOG=18; se envía la respuesta de un dialogo al WFS

WF_ACTION_PROCESS_LIST=19; lista de procesos que puede iniciar el usuario WF_ACTION_TASK_ASSIGN=20; asigna tareas pendientes

WF_ACTION_TASK_RUN=21; corre una instancia de tarea (desde bandeja) WF_ACTION_LIST_MODIFIED=22; se modifico lista de tareas (actualizar)

WF_ACTION_TRY_PENDING=24; el usuario trata de iniciar una tarea pendiente WF_ACTION_LIST_ALL=25; lista de procesos, tareas y tareas próximas

WF_ACTION_LEAVE_CLIENT=27; el cliente (de la tarea) aborta la ejecución WF_ACTION_LIST_AGRTM=28; Lista los compromisos de una tarea

WF_ACTION_LOAD_AGRTM=29; edita un compromiso WF_ACTION_TASK_DIALOG=30; muestra un dialogo

WF_ACTION_PREV_PARAMS=31; muestra la historia de parámetros previa a una tarea WF_ACTION_TASK_RETURN=32; retorna la tarea que estaba en la bandeja de entrada

WF_ACTION_FORCE_TASK=33; pone en la bandeja de entrada WF_ACTION_TASK_ASSIGN_DINAM=40; define y asigna tareas dinamicas

WF_ACTION_ASK_COMMAND=41; pide un comando de la cola de default WF_ACTION_UNDO_TASK=42; retrotraer tarea y dejarla en el usuario anterior

WF_ACTION_RETURN_TO_TASK=44; después de correr en 4×4 retornar a una tarea WF_ACTION_PARAM_MOD=45; indicar que se desea modificar parámetros

WF_ACTION_CLOSE_THREAD=80; cierra un hilo dinámico WF_ACTION_PREOPEN_THREAD=81; manda el listado de posibles tareas

WF_ACTION_OPEN_THREAD=82; inicia la ejecución de un subproceso dinámico WF_ACTION_NEW_DYN_TASK=84; muestra la pantalla de completar y reiniciar

WF_ACTION_ADD_DYN_TASK=85; completa una tarea dinámica e inicia otra WF_ACTION_ASK_PARAM_MOD=86; lista de parámetros a modificar

WF_ACTION_MOD_PARAMETER=88; modifica un parámetro WF_ACTION_SEND_MAIL=89; envía un email (desde el WFClient)

WF_ACTION_TASK_STATE=90; pregunta como esta la tarea WF_ACTION_ROLLBACK_TASK=91; retrotraer una tarea

WF_ACTION_LIST_NEXT_TASKS=92; listar las tareas próximas WF_ACTION_INFORM_COMPLETED=93; la tarea se informa

WF_ACTION_UPDATE_DESC=94; actualizar descripciones de tareas (1 vez) WF_ACTION_SET_USER=95; Envía el usuario como parámetro ExternUser

WF_ACTION_PRINT_WORD=96; Imprimir archivos Word WF_ACTION_QUERY_UPDATE=97; pide actualizar listas

WF_ACTION_ROL_LIST=98; lista los roles de un proceso WF_ACTION_WORK_LIST=99; lista de puestos de trabajo

WF_ACTION_GET_CLIENTNAME=100; trae nombre y código externo del cliente WF_ACTION_START_PROCESS=101; desde un programa de tercero

WF_ACTION_FIX_PARAMS=102; desde un programa de tercero WF_ACTION_TIMER=104; el WFS pide el proceso de timer

WF_ACTION_GET_AUTOINC=106; obtiene Autoincrement y registra WF_ACTION_GET_MULT_KEY=108; obtiene multiple key

WF_ACTION_FILL_CFG=109; llena la ventana con FillCfgScreen WF_ACTION_QUERY=110; para correr un query

WF_ACTION_WRITE_CFG=111; para insertar un registro WF_ACTION_DELETE_CFG=112; para borrar un registro

WF_ACTION_MEN_CFG=114; para pedir el menú WF_ACTION_ALL_PEND=115; crea todas las tareas pendientes

WF_ACTION_ALL_ARROWS=116; crea flechas para las tareas truncas WF_ACTION_INIT_PROCESS=118; inicia un proceso dando por ejecutada la primera tarea

WF_ACTION_SEG_PROC=119; arma los datos para el seguimiento WF_ACTION_DELETE_PROC=120; borra una instancia de proceso

WF_ACTION_TIMER_EVENT=121; dispara la rutina para verificar si hay eventos de tiempo WF_ACTION_USER_DEP=122; trae una lista de usuarios dependientes del usuario

WF_ACTION_NEXT_FILE=123; retorna el código del próximo archivo. WF_ACTION_QUERY_TABLE=124; ejecuta un query sobre una tabla del WF.

WF_ACTION_INIT_THREAD=125; inicia un hilo de ejecución paralelo. WF_ACTION_BLOCK_PROCESS=128; bloquea la ejecucion de un proceso (instancia).

WF_ACTION_UNBLOCK_PROCESS=129; desbloquea el proceso. WF_ACTION_COMPLETED_NO_LIST=140; Completa la tarea pero no refresca las listas.

Tabla 2: Modo de ejecutar tareas.

DIBUJA_TAREA_SALIDA=3; Es una tarea de cierre del proceso. DIBUJA_TAREA_COMUN=1; Tarea regular.

DIBUJA_TAREA_PANTALLA=27; Es una tarea asociada a una pantalla automática. DIBUJA_TAREA_COLABORATIVA=4; Tarea colaborativa (documentación).

DIBUJA_TAREA_ENTRADA=6; Tarea de inicio de un proceso. DIBUJA_TAREA_INVOCA_PROCESO=8; Invoca a otro proceso y sigue ejecutando.

DIBUJA_TAREA_DISPARA_PROCESO=9; Dispara otro proceso y queda a la espera. DIBUJA_TAREA_AUTOMATICA=10; nicamente ejecuta una rutina.

DIBUJA_TAREA_WF_LIBRE=12; Ejecuta una tarea de WF libre. DIBUJA_TAREA_DISPARA_PROGRAMA=25; Dispara un programa de terceros.

Tabla 3: Tipo de variable para parámetros de tareas automáticas.

WF_TYPE_INTEGER = 1; entero.

WF_TYPE_FLOAT = 2; real.

WF_TYPE_DATE = 3; fecha.

WF_TYPE_BOOLEAN = 5; booleano.

WF_TYPE_STRING = 6; texto.

Web Service Externo de Fuente Auténtica

Para definir un web service que pueda ser consumido directamente por el sistema de integrabilidad es necesario que respecte cierta estructura interna:

El web service debe tener el nombre IFuenteAutenticaExterna. El método para solicitar el servicio debe tener el nombre Solicitar_Servicio_FAytenerlossiguientesparámetros de entrada

TResultadoServicioFA Solicitar_Servicio_FA(string Servicio, string DatoAuditoria, byte[] Cuerpo)

En el caso de implementar más de un servicio, el parámetro Servicioidentificacuálsequiere utilizar.

El parámetro DatoAuditoriaeslalistadeparámetrosnecesarios para hacer la consulta. Con el formato nombre=valor. Si es necesario pasar más de un parámetros, se deben separar con punto y coma.

Por ejemplo, para pasar dos parámetros

dni=11222333;legajo=abc123

El parámetro Cuerpopuedeserutilizadoparaenviarinformación adicional (un texto en formato XML, un archivo, una imagen, un certificado, etc) que pueda ser necesario para resolver el servicio.

El resultado del método es una estructura llamada TResultadoServicioFA, que contiene los siguientes campos:

int CodResultado

byte[] Resultado1

byte[] Resultado2

byte[] Resultado3

byte[] Resultado4

byte[] Resultado5

byte[] FirmaResultado1

byte[] FirmaResultado2

byte[] FirmaResultado3

byte[] FirmaResultado4

byte[] FirmaResultado5

String MensajeResultado

-CodResultado: un cero indica que el servicio se resolvió correctamente. Otro número indica algún tipo de error. Este número depende únicamente del implementador del servicio.

-MensajeResultado: en caso de error se puede adjuntar un mensaje explicando el código de resultado.

-Resultado1, Resultado2…Resultado5, son arrays de bytes donde se devuelven hasta 5 resultados diferentes. Cada array puede contener un archivo, imagen, certificado, documento, texto en formato XML, etc., transformado a una secuencia de bytes. Si el resultado es el resultado de una consulta a una base de datos, se recomienda transformar el resultado a XML y cargar el texto correspondiente en el campo Resultado.

Si se utiliza .Net, se puede consultar la siguiente documentación para guardar el resultado de un Dataset a XML: http://msdn.microsoft.com/es-es/library/sa57x5f2(v=vs.80).aspx

Para que el resultado sea compatible con el sistema E-Fotocopias debe ser un texto XML bajo el formato RowsetSchema de Microsoft. Ver ejemplo más abajo. Puede encontrar una guía para saber cómo armar un documento XML con este formato en este enlace: http://msdn.microsoft.com/en-us/library/windows/desktop/ms676547(v=vs.85).aspx

Para ver la definición de un web service de ejemplo, se puede consultar la siguiente URL http://integradesa.neuquen.gov.ar:8080/scripts/faexternav2.exe/wsdl/IFuenteAutenticaExterna

-FirmaResultado1, FirmaResultado2,…,FirmaResultado5: son arrays de bytes que contiene las firmas correspondientes a cada resultado.

- Ejemplo de archivo XML con formato RowsetSchema

<xml xmlns:s="uuid:..." xmlns:dt="." xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> 
 <s:Schema id="RowsetSchema"> 
 <s:ElementType name="row" content="eltOnly" rs:updatable="true"> 
 <s:AttributeType name="attribute1"> 
 <s:datatype dt:type="int" dt:maxLength="4" rs:precision="0" rs:fixedlength="true" rs:maybenull="false"/>  </s:AttributeType> 
 <s:AttributeType name="attribute2" rs:number="2" rs:nullable="true" rs:write="true"> 
 <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="4294967295" rs:precision="0" rs:long="true" rs:maybenull="false"/>
 </s:AttributeType> 
 ... 
 </s:ElementType>
 </s:Schema>
 <rs:data>
 <z:row attribute1="1" attribute2="425/Tve"/>
 <z:row attribute1="2" attribute2="543/Tve"/> 
 <z:row attribute1="3" attribute2="653/Tve"/>
 <z:row attribute1="4" attribute2="3/Tve"/>
 </rs:data> </xml> 

SDK para Sistemas Clientes

Con el fin de facilitar el desarrollo de los sistemas clientes, se proveé de librerías en C# para que el programador/desarrollador de un Sistema Cliente pueda solicitar los Servicios provistos por el modelo de Integrabilidad con el solo uso de 5 funciones.

Estas funciones encapsulan la operación de los Web Services de Integrabilidad simplificando su utilización. Esta librería opera con los siguientes componentes del modelo de integrabildiad, que son:

- Componente de Autenticación: Permite autenticar a un usuario sobre un servidor de directorio LDAP.

  1. function LoginPecas
  2. function ObtenerInvolucrado

- Componente menú de autorizaciones: Permite obtener las autorizaciones de un usuario sobre el modelo MABAC, esta lista de opciones autorizadas se presentan como un menú para un usuario.

  1. function RecuperarMenuDeUsuario
  2. functionRecuperarDatos_DeUsuario
  3. function SolicitarServicioFA

- Componente de Firma Digital: Permite firmar los envíos y desencriptar los mensajes recibidos, estas funcionalidades están totalmene encapsuladas y resultan transparentes al programador solo se debe.

  1. En el programa c# se solicita el pedido, lo único que se requiere es pasar el certificado, la firma y encriptación se hace dentro de la DLL. La función recibe el certificado como un archivo (el path del archivo).
  2. El programa c# es el responsable de tener almacenado el certificado en algún lugar seguro del equipo.

/

Integrabilidad.cs

En este módulo se implementa la clase Integrabilidad, que es una interfaz para las funciones contenidas en la librería DllInteg.dll.

public class DatosUsuario { 
  public int Codigo; 
  public string Descripcion; 
  public string CodigoExterno; 
                        }
 
public class ItemMenuDeUsuario { 
  public int Codigo; 
  public string Descripcion; 
  public int CodigoPadre; 
  public string CodigoExterno; 
  public int NivelAutorizacion; 
  public string Programa; 
  public string Comentario; 
                             } 
 
public class MenuUsuario { 
  public bool resultado; 
  public List<ItemMenuDeUsuario> Items; 
                       } 
 
public class Integrabilidad { 
  public string Login( string username, string password); 
  public MenuUsuario RecuperarMenuUsuario ( string IDSesionPecas);
  publicDatosUsuario RecuperarDatosDeUsuario ( string IdSesionPecas);  
  publicbool SolicitarServicio ( string IDSesionPecas, string Cliente, string Proveedor, string Servicio, string Involucrado, string CertificadoFirma, string PassPhrase, out string archivoresultado ); 
                                } 

Librería DLLInteg.dll

Contiene funciones para invocar a los web services de Autenticacion y Autorización. Permiten hacer el login en integrabilidad, recuperar la lista de servicios disponibles y solicitar un servicio. Al solicitar el servicio se puede firmar y encriptar el pedido y al llegar el resultado, desencriptarlo y verificar la firma de la FA.

function SolicitarServicioFA( IDSesionPecas: pchar; 
                              Cliente : pchar; 
                              Proveedor : pchar; 
                              Servicio : pchar; 
                              Involucrado : pchar; 
                              Operador : pchar; 
                              Cuerpo: TByteDynArray; 
                              Certificado : pchar; 
                              PassPhrase : pchar; 
                              FirmarCuerpo : boolean; 
                              EncriptarCuerpo : boolean; 
                              URL : pchar; archivoresultado : pchar; 
                            ) : boolean; stdcall; 
 
function LoginPecas( usuario, password, url, IDSesionPecas : pchar ) : boolean; stdcall; 
 
function ObtenerInvolucrado( idSesion, url, Involucrado : pchar ) : boolean; stdcall; 
 
function RecuperarMenuDeUsuario( idSesion, url, CodigoMenuRaiz, Codigo, Descripcion, CodigoPadre, CodigoExterno, NivelAutorizacion, Programa, Comentario: pchar; var Cantidad : integer ) : boolean; stdcall; 
 
function RecuperarDatos_DeUsuario( IdSesionPecas : pchar; URLAutorizador: pchar; var Codigo: integer; Descripcion : pchar; CodigoExterno : pchar ): boolean; stdcall; 

Registros para auditoría

Registros de Auditoria

En el Servidor Coordinador se encuentra la base de datos PecasLog donde se registran todas las actividades de intercambio de información que se producen. Estos registros son utilizados para las actividades de auditoría por cualquiera de los actores.

Se describen a continuación las tablas y códigos utilizados:

Tabla: AuditoriaFA Registra los servicios que un sistemas cliente solicita de una fuente auténtica. Registra si el servicio está autorizado, cual es el involucrado y si el servicio se ejecutó correctamente.

Cliente Es el código del cliente que solicita el servicio
Proveedor Es el código de la FA que brinda el servicio
Servicio Es el código del servicio que se quiere consumir
ResultadoProveedor código de resultado de la ejecución del servicio, 0=exitoso, -1=alguna excepción, 1, 2, 3, …: distintos códigos de error.
MensajeResultado En caso de error, es una descripción del error, relacionado al campo ResultadoProveedor
ResultadoCliente Código de resultado que puede informar el cliente. 0=exitoso, cualquier otro número para error.
PedidoValido + Y: esto indica que el pedido es válido, es decir, que existe el cliente, existe la FA, existe el servicio en la FA y el cliente está autorizado a utilizarlo.
+ N: esto indica que el pedido no se puede realizar, porque no se cumple alguna razón de las anteriores
Fecha Registra la fecha y hora de resolución del servicio.
NumPedido Es el identificador único de la transacción
DatoAuditoria Es el involucrado en el servicio, es decir de quién se solicita información. Por ejemplo dni=11.222.333 o legajo=9999
Cuerpo Datos adicionales necesarios para resolver el servicio. Puede ser un archivo de texto, un archivo binario, etc.
TipoResultado 1: si hay error, significa que lo informó el coordinador
2: si hay error, significa que lo informó la FA
Operador Si el sistema cliente tiene otra forma de validación de usuarios, puede informar quien es el operador del sistema que solicita el servicio.

Tabla: Resultados que contiene la descripción de los posibles resultados de error al solicitar un servicio. Describe el contenido del campo ResultadoProveedor de la tabla AuditoriaFA

Registros de tiempos

En la base PecasLog también se encuentran tablas cuyo objetivo es registrar parámetros de tiempo para poder desarrollar las actividades de control y monitoreo del modelo en operación.

Tabla: AuditoriaFATiempos: para registrar el tiempo de ejecución de cada servicio del coordinador.

Mensaje Es el código del ws que se ejecuta (ver tabla AuditoriaFAMensajes)
Inicio Es el instante donde recibe el pedido desde el Cliente.
Si el que informa es una FA, es el instante en que recibe el pedido del Coordinador
Fin Es el instante en que recibe la respuesta de la FA.
Si el que informa es una FA, es el instante en que completa el servicio.
NumPedido Si el mensaje = 6, corresponde a una solicitud de servicio, se guarda el número de pedido de la tabla AuditoriaFA.
Si el mensaje <> 6, el NumPedido será 0

Tabla: AuditoriaFATiempos

Tabla: AuditoriaFATiemposFA: para registrar el tiempo de ejecución de los servicios en la Fuente auténtica.

Mensaje Es el código del ws que se ejecuta (ver tabla AuditoriaFAMensajes)
Inicio Es el instante en que recibe el pedido del Coordinador
Fin Es el instante en que completa el servicio y se lo envía al Coordinador.
FuenteAutentica Es el código externo de la Fuente Autentica que resolvió el servicio
Servicio Es el código externo del servicio solicitado
Coordinador Es el código externo del coordinador que solicitó el servicio

AuditoriaFATiemposFA

Tabla: AuditoriaFAMensajes: contiene los códigos de mensajes y sus descripciones

Mensaje Códigos de mensajes soportados en integrabilidad
Descripción Descripción del mensaje

AuditoriaFAMensajes

Anexo 1

La URL del Servicio es http://autoriza.neuquen.gov.ar:8080/scripts/autorizacion.exe/wsdl/IAutorizacion. A continuación se detallan las distintas funciones que incluye.

Función Solicitar_Servicio (obsoleta, reemplazada por la versión 3): El cliente solicita al autorizador la ejecución de un servicio

El cliente


start.1363714429.txt.gz · Última modificación: 2019/10/22 13:56 (editor externo)