Validación de Datos

Entre los Business Services que Siebel provee de caja se encuentra el “Data Validation Manager”. Este servicio es capaz de validar los datos de un Business Component, basado en un conjunto de reglas de negocio. En caso de que alguna regla falle aparecerá un código y/o un mensaje de error personalizables. Las reglas de validación se escriben en Lenguaje de Consulta de Siebel.

Debido a que todo es configurable desde la aplicación, no se necesitan scripts ni compilaciones de srf. Esto reduce los costos de implementación y mejora el desempeño de la aplicación. Algunas de las características del “Data Validation Manager” son:

  • Búsqueda automática del conjunto de reglas apropiado para ejecutar, basado en los Business Objects y vistas activas.
  • Escritura de “Data Validation Rules” basadas en campos de múltiples Business Components.
  • Aplicación de una “Data Validation Rule” a un conjunto de registros de Business Components hijos para verificar si una violación a la regla ocurre desde uno o más registros.
  • Llamado de acciones específicas en caso de una violación de regla.
  • Escritura de “Data Validation Rules” que operen sobre datos dinámicos suplidos en tiempo de ejecución sin que dichos datos tengan que venir desde un campo de Business Component.
  • Bitacoreo automático de eventos que violen de reglas.

Administración de Data Validation Rules

Primero hay que crear el Data Validation Rule Set, que funciona como un contenedor con argumentos, y puede tener una o más Data Validation Rules.

Las reglas contienen expresiones que son evaluadas verdaderas o falsas. Si la expresión evaluada resulta falsa, la regla determina cuál es el comportamiento a seguir, ya sea desplegar un mensaje de error, actualizar datos, etc. Si la expresión es evaluada verdadera quiere decir que todo está bien y continua con la siguiente regla.

La Administración de Reglas de Validación involucra los siguientes procedimientos:

  • Definir el Data Validation Rule Set.
  • Definir los argumentos del Data Validation Rule Set.
  • Definir las Data Validation Rules.
  • Definir las acciones de cada Data Validation Rule.
  • Activación del Data Validation Rule Set.

Definiendo un Data Validation Rule Set

Se debe ingresar a la vista de Administración – Validación de los datos, desde donde se pueden modificar los Data Validation Rule Sets existentes o crearlos nuevos. También se pueden importar o exportar Data Validation Rule Sets desde esta vista, eligiendo las opciones “Exportar conjunto de reglas” o “Importar conjunto de reglas” del botón de Menú. El Data Validation Rule Set es salvado a disco como un archivo de documento XML.

Cuando se crea un Data Validation Rule Set, se deben especificar el Business Object y el Business Component donde se desea aplicar la validación. El Data Validation Rule Set tendrá uno o más argumentos y contendrá una o más Data Validation Rules. Algunos campos se describen en la siguiente tabla:

Campo Comentario
Business Component Especifica el nombre del Business Component que será validado.
Business Object El Business Object que contiene al Business Component donde ocurrirá la validación.

Si el el argumento de entrada del servicio “Tipo de objeto de búsqueda” tiene el valor Business Object, el Data Validation Manager validará que el Business Object activo coincida con el indicado en este campo.

End Date Especifica la última fecha en que el Data Validation Rule Set podrá ser utilizado. Si no se llena, el Data Validation Rule Set nunca expira.
Group Categoriza Data Validation Rule Set en grupos. Se puede agrupar un número de Data Validation Rule Set juntos mediante asignarles con un nombre común de grupo.

Se puede ejecutar todo el grupo de Data Validation Rule Set mediante indicar el nombre del grupo en el argumento de entrada “Group” del servicio Data Validation Manager.

Data Validation Manager ejecuta cada Data Validation Rule Set uno por uno en ningún orden particular.

(Nota: Si ambos el nombre del grupo y el nombre del Data Validation Rule Set son dados, entonces el nombre del grupo será ignorado).

Name Nombre del Data Validation Rule Set que se está creando.

Se puede ejecutar un Data Validation Rule Set particular indicando este nombre en el parámetro de entrada “Rule Set Name” del servicio Data Validation Manager.

Conditional Expression Este es uno de los criterios de selección bajo los cuales un Data Validation Rule Set es seleccionado para su ejecución.

Si la expresión condicional es especificada (no nula) para un Data Validation Rule Set, y además al ser evaluada en tiempo de ejecución resulta falsa entonces la regla no será ejecutada.

Si la expresión condicional no es especificada (es nula), entonces es interpretada como verdadera y por lo tanto ejecutada.

Start Date Fecha en que el Data Validation Rule Set empieza a ser efectivo.
Status Especifica el estado del Data Validation Rule Set. Las opciones posibles son:

En progreso: es el estado por defecto cuando se crea un nuevo Data Validation Rule Set.

Activo: estado que aparece después de haber hecho clic sobre el botón “Activar”.

Obsoleto: estado que aparece cuando se activa una nueva versión del Data Validation Rule Set.

Inactivo: estado que aparece cuando se selecciona “Desactivar conjunto de reglas” desde el botón de Menú del applet.

Version Valor numérico para diferenciar diferentes versiones de un mismo Data Validation Rule Set.

Haciendo clic en el botón “Revisar” se crea una nueva versión de un Data Validation Rule Set existente, con el número de versión incrementado en 1.

Aggregate Error Cuando este campo se marca (verdadero), Data Validation Manager ignorará la bandera de despliegue inmediato de cada regla que se procese. Irá acumulando los mensajes de error que vayan en un solo string para luego desplegarlos todos juntos ante el usuario.

Para modificar un Data Validation Rule Set existente:

  1. Navegar a Administración – Validación de los datos.
  2. En la lista de Data Validation Rule Sets, seleccionar el registro del conjunto que se desea modificar y hacer clic en el botón “Revisar”.


  3. Esto creará una nueva versión del Data Validation Rule Set en estado “En progreso”.


  4. Hacer los cambios apropiados y luego hacer clic en “Activar”.
  5. Esto activará cambiará el estatus de “En progreso” a “Activo” y hace que el registro sea no editable.
  6. El Data Validation Rule Set viejo aun aparece pero con estado “Obsoleto”.


NOTA: Se puede borrar un Data Validation Rule Set de la misma forma que se puede borrar cualquier otro registro en las aplicaciones de Siebel. Cuando se borra un Data Validation Rule Set, el historial asociado a él también se borra.

Para exportar un Data Validation Rule Set:

  1. Navegar a la vista Administración – Validación de los datos
  2. En la lista de Data Validation Rule Sets, seleccionar el o los conjuntos de reglas que se desean exportar y elegir la opción “Exportar conjunto de reglas” desde el botón de Menú del applet.
  3. Seguir las cajas de diálogos que aparecerán para guiar la exportación del Data Validation Rule Set como archivo XML.

Para importar un Data Validation Rule Set:

  1. Navegar a la vista Administración – Validación de los datos
  2. Hacer clic en el botón de Menú del applet y elegir la opción “Importar conjunto de reglas”.
  3. En la caja de dialogo que aparecerá, localizar el archivo XML que contiene el o los conjuntos de reglas que se desean importar y luego hacer clic en “Importar”.
  4. El Data Validation Rule Set aparece en estado “En progreso”.
  5. Para activar el Data Validation Rule Set importado, se debe seleccionar en la lista de conjuntos de reglas y hacer clic en el botón “Activar”. Esto cambiará el estado a “Activo” y dejará el registro como no editable.


Definición de argumentos de un Data Validation Rule Set

Se pueden escribir expresiones de validación de una regla que contiene argumentos personalizados, usando una sintaxis como: [nombreCampo] = [&nombreArgumento]. Estos argumentos deben ser definidos de primero en la lista de argumentos. Los valores de esos argumentos pueden ser asignados usando el campo de Valor por defecto. También pueden ser asignados en tiempo de ejecución dándole al servicio de Data Validation Manager un argumento de entrada.

El nombre de ese argumento de entrada debe ser el mismo que el del argumento definido en la lista de argumentos.

Los argumentos de entrada del Business Service sobrescribirán cualquier valor por defecto que se haya especificado en la lista de argumentos.

Los valores por defecto solo serán efectivos cuando los argumentos de entrada no sea especificados.

Se pueden definir argumentos para los Data Validation Rule Set que están en estado “En progreso” únicamente.

Para definir un argumento de un Data Validation Rule Set:

  1. Navegar a la vista Administración – Validación de los datos
  2. Seleccionar un Data Validation Rule Set con estado “En progreso” y hacer clic en el nombre del Data Validation Rule Set.
  3. Seleccionar la pestaña “Argumentos”, crear un nuevo registro y completar los campos necesarios. Algunos de los campos se describen en la siguiente tabla:
Campo Comentario
Argument Name String que especifica el nombre del argumento. Se usa la notación [&nombreArgumento] para referirse al valor del argumento en una expresión de regla.
Default Value El valor que el argumento tomará en ausencia de un argumento de entrada con el mismo nombre en el Business Service.


Definición de Reglas de Validación de Datos

Para cada Data Validation Rule Set se definen una o más Data Validation Rules. Estas reglas representan los criterios de validación.

Solamente se pueden definir reglas para Data Validation Rule Sets que estén en estado “En progreso”. Esta tarea es parte del proceso de Administración de Reglas de Validación de Datos.


Para definir una Data Validation Rule:

  1. Navegar a la vista Administración – Validación de los datos.
  2. Seleccionar el Data Validation Rule Set con estado “En progreso” y hacer clic en el nombre del Data Validation Rule Set.
  3. Seleccionar la pestaña de la vista “Reglas”, crear un nuevo registro y completar los campos necesarios. Algunos campos se describen en la siguiente tabla:
Campo Comentario
Sequence # Identifica la secuencia numérica de esta regla dentro del conjunto de reglas. La aplicación evalúa las reglas en orden basada en este número.
Business Component El Business Component sobre el cual se basa la regla.
Expression Una sentencia expresada en Lenguaje de Consulta de Siebel. La aplicación evalúa si la expresión es verdadera o falsa. Si es verdadera, el Data Validation Manager procede a evaluar la siguiente regla. Si es falsa, la aplicación realiza las acciones definidas para la regla.

Se puede referir al valor de un campo en un Business Component usando la notación [nombreCampo]. Por ejemplo, si el Business Component de la regla es Opportunity, entonces una expresión [Sales Stage] IS NOT NULL significa que se desea saber si el campos Sales Stage del Business Component Opportunity contiene un valor o no.

Se puede usar la sintaxis [BusinessComponent.Campo] para referirse a un campo de un Business Component diferente al de la regla. Por ejemplo, se puede tener una regla cuyo Business Component sea Opportunity. Y se le puede escribir una expresión como [Sales Stage] IS NOT NULL AND [Account.Status] = “Active”. [Account.Status] se refiere al campo Status del Business Component Account. Sin un prefijo, [Sales Stage] se refiere al campo Sales Stagel del Business Component de la regla (Opportunity en este caso).

Se puede también usar la sintaxis [&Argumento] para referirse al argumento de un Data Validation Rule Set. Por ejemplo, se puede tener una expresión de regla [&Answer] = “Yes”. Aquí el argumento del Data Validation Rule Set ha sido previamente definido en el applet de lista de Argumentos. Una vez definido, el argumento viene a ser parte de los parámetros de entrada del Business Service que se pueden llenar con valores dinámicos en tiempo de ejecución (por ejemplo vía Workflow).

También se puede asignar la sentencia directamente en el campo o hacer clic en el botón de selección de Expresión para lanzar el “Expression Designer”.

El “Expression Designer” permite construir una expresión mediante apuntar y hacer clic en una ventana emergente, realiza validación de sintaxis, y busca definiciones de funciones pre-construidas soportadas por el Lenguaje de Consulta de Siebel.

Message El texto que se mostrará como mensaje de error si la expresión es evaluada falsa.

El número máximo de caracteres es 250.

Apply To Este campo puede tomar dos valores: “Registro actual” o “Todos los registros”. Cuando se elige “Registro actual”, Data Validation Manager aplica la regla al registro activo en el Business Component.

Cuando se elige “Todos los registros”, Data Validation Manager aplica la regla a todos los registros del Business Component.

Return Code Valor alfanumérico que la aplicación puede escribir en el registro de historial de validación y asignar en el argumento de salida “Código de Retorno” del Business Service si la expresión es evaluada falsa.

Cualquier valor que el argumento tuviese anteriormente será sobrescrito, por lo tanto este argumento siempre conserva el código de retorno de la última regla que fue evaluada falsa.

El número máximo de caracteres es 30.

Start Date Corresponde a la fecha en la que la regla empieza a ser efectiva. Una regla es evaluada solamente si la Fecha de Inicio es igual o anterior a la fecha actual.
End Date Especifica la última fecha en la que esta regla podrá ser usada. Si no se llena. la regla nunca expira.

Una regla es evaluada solamente si la Fecha de Finalización es igual o posterior a la fecha actual.

Seleccionar la pestaña de la vista “Detalles” y completar los campos necesarios. Algunos campos son descritos en la siguiente tabla:

Campo Comentario
Stop on Error Si la expresión es evaluada falsa y este campo fue marcado verdadero, la aplicación ignorará todas las reglas subsiguientes y detendrá la ejecución de la acción que se esté tratando de realizar.
Immediate Display Define el comportamiento del mensaje de error. Si la expresión es evaluada falsa, y ambas banderas “Visualización inmediata” y “Detener en error” están marcadas, la aplicación inmediatamente despliega el mensaje especificado.

NOTA: Si para el conjunto de reglas la bandera “Errores de agregado” está marcada, la bandera “Visualización inmediata” para cada regla será ignorada. En lugar de eso los mensajes de error de las reglas que se vayan evaluando falsas serán acumulados en un solo mensaje de error.

Message El texto que se mostrará como mensaje de error si la expresión es evaluada falsa.

El número máximo de caracteres es 250.

Definición de Acciones para data Validation Rules

El Business Service “Data Validation Manager” puede realizar una secuencia de acciones cuando una expresión de regla es evaluada falsa. Cada acción puede ser asignada para actualizar un Business Component en el Business Object activo o para ejecutar un Business Service.

Cada acción tiene un número de secuencia. Data Validation Manager ejecuta las acciones en orden ascendente usando el número de secuencia. Para definir una Acción de una Data Validation Rule:

  1. Navegar a la vista Administración – Validación de los datos
  2. Hacer clic en la pestaña de la vista “Reglas” y seleccionar la regla para la cual se desea definir una acción.
  3. Seleccionar la pestaña de la vista “Acciones”, crear un nuevo registro y completar los campos necesarios. Algunos de los campos se describen en la siguiente tabla:
Campo Comentario
Sequence # Identifica la secuencia numérica de esta acción de la regla.

La aplicación ejecuta las acciones en orden numérico basándose en este número.

Type Puede ser tanto Business Component como Business Service.

Determina si la acción es para actualizar el Business Component actualmente activo o para ejecutar un Business Service.

Business Component Nombre del Business Component que se desea actualizar. Este campo es editable solamente cuando el tipo es asignado “Business Component”.
Business Service Name Nombre del Business Service que se desea ejecutar. Este campo es editable solamente cuando el tipo es asignado “Business Service”.
Business Service

Method

Método del Business Service que se desea llamar.
Business Service

Context

Pares Nombre-Valor que se pueden usar para pasar ciertos valores como argumentos de entrada para el Business Service. Por ejemplo, “argumento1″, “valor1″, “argumento2″, “valor2″.

Para cada registro de acción de tipo Business Component, asignar la información de campo y valor como se describe en la siguiente tabla:

Campo Comentario
Field Nombre del campo del Business Component que se desea actualizar.
Value Valor con el cual se desea actualizar el campo del Business Component. Este valor debe ser una constante y no puede ser una expresión.

Activación de Data Validation Rule Sets

El paso final en la Administración de Reglas de Validación de Datos es activar el Data Validation Rule Set. Solamente entonces podrán ser ejecutadas por el Business Service “Data Validation Manager”.

Después de haber agregado y definido todos los argumentos del conjunto de reglas y las reglas, se debe activar el conjunto de reglas y esto lo hará no editable y cambiará su estado a “Activo”. Para activar un Data Validation Rule Set:

  1. Navegar a la vista Administración – Validación de los datos.
  2. En la lista de conjuntos de reglas, seleccionar la regla que se desea activar (el estado debe ser “En progreso”).
  3. Hacer clic sobre el botón “Activar”.


Proceso de llamado del Business Service “Data Validation Manager”

Se puede invocar el Data Validation Manager de dos diferentes maneras:

  • Desde un Runtime Event
  • Desde un Workflow

En cualquiera de los casos, se puede afectar la manera en que el Business Service funciona mediante llenar ciertos argumentos de entrada del Business Service.

Se pueden ver los resultados de la ejecución del Business Service al revisar el historial de validación.

Invocando al Data Validation Manager desde un Runtime Event

Se puede invocar el Business Service “Data Validation Manager” desde un Evento en tiempo de Ejecución. Cuando el evento ocurre, dispara el llamado al servicio de Validación de Datos.

Para invocar la Validación de Datos desde un Evento en Tiempo de Ejecución:

  1. Navegar a la vista de Administración – Eventos en tiempo de ejecución > Conjuntos de acciones.
  2. En la lista de Conjuntos de acciones crear un nuevo registro y completar los campos necesarios.
  3. En la lista de Acciones crear los registros de acciones para ese conjunto y completar en cada acción los campos necesarios. Algunos de los campos se describen en la siguiente tabla:
Campo Comentario

Action Type

Especifica el tipo de acción. Seleccionar “BusService”.

Sequence

Número que describe el orden en el que las acciones ocurrirán.

La ejecución iniciará con el número de secuencia que tenga el valor más bajo.

En caso de que haya varias acciones con el mismo número de secuencia, se ejecutarán en ningún orden particular.

Las Acciones ocurren en secuencia hasta que todas sean completadas.

Active

Caja de verificación para indicar si la acción será disparada o no. Las Acciones Inactivas serán ignoradas cuando el evento ocurra. Esta es una manera rápida de apagar una acción sin tener que cambiar las fechas de inicio y fin.

En el formulario “Más Información”, completar los campos descritos en la siguiente tabla:

    Campo Valor Comentario

    Business Service

    Name

    Data Validation Manager

    Nombre del Business Service a invocar, si la expresión condicional es evaluada verdadera y el tipo es “BusService”. Introducir el valor tal y como se indica.

    Business Service

    Method

    Validate

    Método a invocar en el Business Service. Introducir el valor tal y como se indica.

    Business Service

    Context

    Ejemplo:

    “Rule Set Name”, “Validation”,

    “Enable Log”, “Y”

    Parejas de Nombre-Valor para especificar los argumentos de entrada al método del Business Service.

    Ambos, el nombre y el valor deben ser entrecomillados y separados por una coma y un espacio después de la coma.

    NOTA: Fallos en el uso de la sintaxis especificada en el campo “Contexto de Business Service” puede resultar en errores.

    1. Hacer clic en la pestaña de la vista “Eventos” para asociar el Evento con un Conjunto de Acciones.
    2. En la lista de Eventos, añadir un registro y completar los campos como se describen en la siguiente tabla:
    Campo Comentario

    Name

    Opcional. Seleccionar un nombre de alias desde la lista desplegable. Seleccionar un nombre automáticamente llena los campos Tipo de Objeto, Nombre del Objeto, Evento y Sub-evento.

    Sequence

    Requerido. Un evento puede disparar múltiples conjuntos de acciones. Asignar los números de secuencia en este campo para controlar el orden en el que serán ejecutados.

    Object Type

    Requerido. Seleccionar “BusComp” desde la lista desplegable.

    Object Name

    El nombre del Business Component o Applet de la aplicación (dependiendo del tipo de objeto) en el cual ocurre el evento.

    Event

    Requerido. Seleccionar desde la lista desplegable. Las escogencias dependen del tipo de objeto que se eligió. En este caso seleccionar el evento en el cual se desea llamar a la Validación de los Datos.

    Action Set

    Requerido. Seleccionar un conjunto de acciones para ejecutar cuando el evento ocurra. El nombre se define en la vista de Conjuntos de acciones.

    1. Después de esto, seleccionar “Actualizar” desde el botón de Menú del applet.


    Invocando la Validación de Datos desde un Workflow

    Se puede invocar el Business Service “Data Validation Manager” desde un Workflow. El Workflow debe contener al menos los siguientes pasos:

    Inicio: Inicia la instancia del proceso. Cuando las condiciones se han cumplido la aplicación inicia la instancia del proceso.

    Business Service: un paso en el proceso en el que el llamado automático a la Validación de Datos será hecho.

    Fin: un paso en el proceso que especifica cuando la instancia de un proceso debe ser finalizada.

    Cuando se crea un paso de servicio, se debe incluir la siguiente información en el formulario del Business Service:

    Campo Comentario

    Business Service

    Data Validation Manager

    Method

    Validate


    En la lista de argumentos de entrada, crear nuevos registros para establecer los argumentos de entrada como se describe en la siguiente tabla:

    Campo Comentario

    Active Object

    Puede tener un valor “Y” o “N”. Si el valor es N o si este argumento de entrada no se especificó, los argumentos de entrada “Business Object” y “Object ID” deben ser establecidos y no pueden ser nulos.

    Business Object

    El nombre del Business Object en el que los eventos ocurren. Es requerido si el Active Object no es especificado.

    Object ID

    El Row ID del Business Component principal del Business Object. Requerido si el Active Object tiene como valor “N” o no ha sido especificado.

    Enable Log

    Acepta el valor “Y” o “N”. Indica si escribir en bitácora todas las instancias del conjunto de reglas que se disparan o ninguna.

    Group

    Nombre del grupo al que se restringe la selección de reglas de validación de datos.

    Rule Set Name

    Nombre del conjunto de reglas que será invocado.


    Si se desea pasar información para otro proceso, se deben establecer argumentos de salida.

    Los argumentos de salida permiten almacenar el valor de un resultado en una propiedad del proceso.

    En la lista de argumentos de salida, crear nuevos registros que establezcan las salidas deseadas como se describe en la siguiente tabla:

    Campo Comentario

    Return Code

    Contiene el valor del campo Código de Retorno de la regla de validación.

    Return Message

    Contiene el valor del campo Mensaje de la regla de validación.

    NOTA: Ambos, el Código de retorno y el Mensaje de retorno permanecerán vacíos si la validación tiene éxito.

    Revisando el Historial de Validaciones

    Se puede revisar el historial de eventos de validación en la vista “Historial de validación” que pertenece a la pantalla “Administración- Validación de los datos.

    Todos los eventos se despliegan en orden cronológico.

    Algunos de los campos que se muestran se describen en la siguiente tabla:

    Campo Comentario
    BusComp Name

    El Business Component que fue validado.

    Date

    La fecha en la que ocurrió la validación.

    Last Step #

    El número de secuencia de la regla evaluada falsa o la última regla del conjunto.

    Return Code

    El valor del campo Código de Retorno de la regla

    Return Message

    El valor del campo Mensaje de Retorno de la regla

    Started By

    El identificador del usuario que ejecutó dicha regla.

    Status

    Especifica el estado de la regla de validación:

    Errored Out: Indica que “Detener en error” es verdadero y la evaluación de la regla resultó falsa. Por lo tanto el resto de reglas de evaluación fueron ignoradas.

    Error Proceed: Indica “Detener en error” es falso y la evaluación de la regla resultó falsa. Por lo tanto la aplicación continúa evaluando el resto de las reglas.

    Completed: Indica que la aplicación ha llegado hasta la última regla del conjunto y la regla fue evaluada verdadera (no se ejecutó ninguna).


    Publicado en Siebel 7 | Etiquetado , , , , , , , | Deja un comentario

    Publicar y Consumir Servicios Web

    El consumo y publicación de servicios web en Siebel en realidad es bastante sencillo. Por su puesto, uno debe tener claros algunos conceptos básicos sobre este tipo de tecnología.

    He aquí algunos enlaces de interés para reforzar esos conceptos:

    Validación XML

    SOAP

    WSDL

    Una vez que hemos refrescado nuestros conceptos podemos comenzar con el taller. Los siguientes ejemplos fueron construidos en Siebel 7.7, pero en las versiones posteriores es muy parecido. Quizá más adelante pueda publicar un ejemplo construido en Siebel 8.1.

    Publicar un Servicio Web en Siebel

    Esto permitirá a otras aplicaciones consumir servicios que Siebel provee.

    Crear un nuevo Bussines Service, para efectos del ejemplo llamado “MyBusiness Service”, que posea las siguientes propiedades:

    Nombre 

    Valor 

    Descripción 

    Name

    MyBusinessService

    Nombre del Servicio

    Class 

    CSSService 

    Clase por defecto para un servicio a la medida.

    Project 

    MyProject 

    Proyecto al que pertenece, siempre se recomienda crear proyectos nuevos para desarrollos a la medida.

    Display Name – String Override 

    MyBussinessService 

    Nombre de despliegue, visible para uso externo.

    External Use

     

    Permite llamar al servicio desde un script o desde el simulador.

    Server Enabled

     

    Habilitado para correr en el servidor, siempre se debe marcar cuando se trata de un Servicio Web.

    Hidden

     

    No se debe marcar, de lo contrario no será visible para llamados.

    Tabla 1. Propiedades del Business Service.

    Ilustración 1. Business Service en Siebel Tools.

    Crear el método que será la operación del Web Service, en este ejemplo llamado “MyMethod”, con las siguientes propiedades:

    Nombre 

    Valor 

    Descripción 

    Name

    MyMethod

    Nombre del método.

    Display Name – String Override 

    MyMethod 

    Nombre de despliegue, visible para uso externo.

    Hiden

     

    No debe tener marcada la opción para que sea visible.

    Tabla 2. Propiedades del método.

    Ilustración 2. Método en Siebel Tools.

    Los Business Service que serán publicados como Servicios Web deben tener al menos un argumento de entrada. Para efectos de este ejemplo, el argumento funciona tanto de entrada como de salida.

    Nombre 

    Valor 

    Descripción 

    Name

    msg

    Nombre del argumento

    Data Type 

    String

    Tipo de dato del argumento.

    Type 

    Input/Output

    Puede ser solo de entrada, solo de salida o de entrada y salida.

    Storage Type 

    Property

    Tipo a nivel de estructura de datos de Siebel, propiedad, jerarquía, etc. 

    Optional 

     

    Si está marcado, el argumento puede venir o no venir. Si está desmarcado el argumento debe venir siempre, aunque su valor sea nulo.

    Hidden 

     

    Si no está marcado, el objeto está visible externamente.

    Display Name – String Override 

    msg

    Nombre de despliegue, visible externamente.

    Tabla 3. Propiedades del argumento

    Ilustración 3. Argumento en Siebel Tools.

    Hacer clic derecho sobre el Business Service e ingresar al editor de eScript para codificar la lógica de la operación. En la función Service_PreInvokeMethod se debe hacer el llamado a nuestra función “MyMethod”, en este caso el código es:

    function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
    {
        if (MethodName == “MyMethod”){
            MyMethod(Inputs, Outputs);
            return(CancelOperation);
        }
        return (ContinueOperation);
    }

    Ilustración 4. Código de la función Service_PreInvokeMethod

    Luego se escribe el código de la función como tal, en este caso responde que ha recibido el mensaje X:

    function MyMethod (Inputs, Outputs)
    {
        var msg;
        try{
        msg = “Message received: ” + Inputs.GetProperty(“msg”);
    }
        catch(exception){
            msg = exception.toString();
        }
        Outputs.SetProperty(“msg

    “,msg);
    }

    Ilustración 5. Código de la función MyMethod.

    NOTA: Es decir que si Siebel recibe como mensaje Hola, responderá Message received: Hola. Tener esto en cuenta en la sección de pruebas.

    Cerrar el editor y compilar el objeto en el archivo srf.

    Bajar el servicio de Siebel y colocar el archivo srf actualizado en la carpeta donde está apuntando el cliente web.

    Subir el servicio de Siebel nuevamente. Cuando haya terminado, ingresar a la aplicación en Administración de Servicios Web > Inbound (de Entrada)

    En el applet superior, crear un registro nuevo con las siguientes propiedades:

    Nombre 

    Valor 

    Descripción 

    Espacio de nombres

    http://siebel.com/asi/

    El llamado “NameSpace”, esto es el ámbito donde funciona la nomenclatura definida en el esquema XML, para resolver problemas de ambigüedad en nombres y otro tipo de conflictos.

    Nombre

    GFSJ MyBusinessService

    Nombre del puerto de servicio.

    Estado 

    Activo

    Debe estar activo para que funcione.

    Tabla 4. Propiedades del Servicio en la aplicación.

    Luego en el applet del medio crear un registro nuevo con las siguientes propiedades:

    Nombre 

    Valor 

    Descripción 

    Nombre

    MyBusinessService

    En este caso el nombre del Business Service, pero podría ser el nombre de un Workflow.

    Tipo

    Business Service

    Aparece un PickApplet. Si la opción deseada no aparece en el listado, el botón “Nuevo” lanza una caja de diálogo para poder introducir el nombre del Business Service o Workflow deseado.

    Nombre de Business Service/Flujo de trabajo 

    MyBusiness Service

    De nuevo, el nombre del Business Service/Workflow.

    Transporte 

    HTTP

    Para este ejemplo usaremos HTTP, pero en otros casos también se pueden usar los transportes: MQ, MSMQ, JMS o Servicio Web Local.

    Dirección 

    http://10.1.1.14
    eai_esn/start.swe?
    SWEExtSource=SecureWebService
    &SWEExtCmd=Execute
    &UserName=SADMIN

    &Password=SADMIN

    Todo pegado y sin saltos de línea. El formato para http es:

    http://<server>/eai_<lang>/start.swe?
    SWEExtSource=SecureWebService&

    SWEExtCmd=Execute&UserName=<login>

    &Password=<password>

    Enlace 

    SOAP_DOC_LITERAL

    Se pueden usar también:

    SOAP_RPC_LITERAL

    SOAP_RPC_ENCODED 

    Tabla 5. Propiedades del puerto de servicio.

    NOTA: Para el Enlace la versión 7.7 soporta los estilos RPC_Encoded, RPC_Literal, DOC_Literal, y Property Set. El enlace Property Set debería ser usado cuando el Property Set de entrada al servicio de proxy es remitido sin cambios en la dirección de destino. Esto se prevee primordialmente para su uso en combinación con transportes de Workflows o Business Services locales para evitar saturar el procesamiento de XML.

    En el applet inferior crear un nuevo registro con las siguientes propiedades:

    Nombre 

    Valor 

    Descripción 

    Nombre

    MyMethod

    Nombre del método del Business Service.

    Nombre visible del método

    MyMethod

    Nombre que se configuró como visible a nivel externo.

    Autenticación 

    Ninguna

    Para otros casos puede usarse usuario y contraseña. Ver la sección de seguridad.

    Tabla 6. Propiedades de la operación.

    Ilustración 6. Configuración del Servicio en la aplicación Siebel.

    Hacer clic en el botón “Vaciar caché” (esto publica el servicio). Luego hacer clic en el botón “Generar WSDL” y guardar el archivo como WSDL. Con este archivo las aplicaciones externas podrán acceder al servicio.

    Consumir Servicio Web de Siebel con una aplicación externa

    Desde el sistema que va a consumir el Servicio Web, importar el WSDL generado por Siebel para que pueda invocar el servicio.

    Enviar la solicitud al servicio. Para este ejemplo se usó la aplicación SOAPSonar que generó el siguiente mensaje de solicitud:

    <?xml version=”1.0″ encoding=”utf-8″?>
    <
    soap:Envelope xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns:xsd=”http://www.w3.org/2001/XMLSchema&#8221; xmlns:tns=”http://siebel.com/asi/”&gt;

    <soap:Body>

    <tns:MyBusinessService_MyMethod_Input>

    <tns:msg>Hola Siebel!</tns:msg>

    </tns:MyBusinessService_MyMethod_Input>

    </soap:Body>
    </
    soap:Envelope>

    Ilustración 7. Solicitud en SoapSonar.

    Se obtiene la respuesta. Para el ejemplo se envió el mensaje: Hola Siebel!, entonces debe obtenerse como respuesta lo que se codificó que Siebel respondiera: Message received: Hola Siebel!, que de hecho resultó correcto:

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <
    SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns:xsd=”http://www.w3.org/2001/XMLSchema”&gt;

    <SOAP-ENV:Body>

    <ns:MyBusinessService_MyMethod_Output xmlns:ns=”http://siebel.com/asi/”&gt;

    <ns:msg>Message received: Hola Siebel!</ns:msg>

    </ns:MyBusinessService_MyMethod_Output>

    </SOAP-ENV:Body>
    </
    SOAP-ENV:Envelope>

    Ilustración 8. Respuesta recibida.

    1. Consumir un Servicio Web externo en Siebel

      Pre-requisito: Tener el archivo WSDL del Servicio Web publicado por el sistema externo.

      En Siebel Tools hacer clic en el menú File > New. En la ventana emergente seleccionar la pestaña EAI con la opción Web Service.

      Se inicia un Asistente en el que hay que seleccionar un proyecto e indicarle:

      1. La ruta del archivo WSDL del Servicio Web externo.
      2. La ruta donde generará el archivo XML, que se debe importar luego para crear el puerto de servicio desde la aplicación.
      3. La ruta donde generará el archivo de log, que indica si generó Integration Objects u otros objetos.

      Modificar las rutas si no se desean las que pone por defecto y hacer clic en el botón “Siguiente”. Se presenta una pantalla de confirmación, hacer clic en el botón “Finalizar”.

      El asistente crea un Business Service de clase CSSWSOutboundDispatcher. Dependiendo de la complejidad de los argumentos en las operaciones, podría crear también otros objetos que deberán ser compilados. Además crea un archivo xml en la ruta indicada al inicio del Wizard, este contiene información de tiempo de ejecución acerca del WS que será importada luego como puerto de servicio.

      Detener el Servicio de Siebel y compilar los objetos creados en el archivo .srf. Poner el srf actualizado en la carpeta del server y subir de nuevo el Servicio de Siebel.

      Ingresar en la aplicación y navegar a Administración de Servicios Web > Outbount (de Salida)

      Hacer clic en el botón “Importar”. En la ventana de dialogo hacer clic en el botón “Examinar”, luego abrir el archivo generado por el Wizard de Tools.

      Una vez generado el puerto de servicio con el archivo importado, hacer clic en el botón “Vaciar caché“.

      El servicio
      está listo para ser llamado por medio del Business Service que generó el asistente desde script, workflow, runtime event, etc. Es decir, se llama como si fuera un Business Service normal de Siebel.

      Para una prueba breve el Ingresar a Administración de Procesos de Negocio > Simulador. En el applet superior crear un nuevo registro con las siguientes propiedades:

      Nombre 

      Valor 

      Descripción 

      Nombre de servicio

      ConsultaGenerica

      Nombre del proxy BS generado por el Wizard de Tools con base en el WSDL.

      Nombre del método

      Consulta

      Nombre del método que se desea probar, puede ser cualquier otro que pertenezca al BS.

      Tabla 7. Llamado al servicio y a la función.

      Luego en el applet central crear un registro con las siguientes propiedades:

      Nombre 

      Valor 

      Descripción 

      Nombre de la propiedad

      ConsultaGenerica_Consulta_Input:idType

      ConsultaGenerica _Consulta_Input:Id_Number

      Campo multivalor, con un PickApplet de lista en el que se ingresan las propiedades.

      Valor de la propiedad

      PASAPORTE

      12345678

      Los valores se configuran en el PickApplet del campo anterior.

      Tabla 8. Argumentos de entrada.

      Luego hacer clic en el botón “Ejecutar” y esto generará un registro en el applet inferior, que en la columna Valor de la propiedad mostrará el mensaje devuelto por el servicio, en este caso el mensaje fue:

      <?xml version=”1.0″ encoding=”UTF-8″?>
      <?Siebel-Property-Set EscapeNames=”true”?>
      <PropertySet>

      <
      Registro Error_undSist=”Contacto no disponible Code_undError=”00006“>

      </
      Registro>
      </
      PropertySet>

      Para el caso del servicio externo que se estaba probando, el mensaje “Contacto no disponible” es una respuesta válida, por lo tanto el llamado al Servicio Web funcionó correctamente.

    2. Seguridad en WS

      Para usar la especificación de seguridad de Servicios Web en la aplicación Siebel, se deben especificar en el archivo eapps.cfg o en el eapps_sia.cfg, en la sección del subsistema de Seguridad de Servicios Web los siguientes parámetros con sus respectivos valores:

    • UseAnonPool = TRUE
    • Impersonate = TRUE

    Después de cualquier cambio en los archivos eapps.cfg o eapps_sia.cfg se deben reiniciar los servicios de Siebel y el servicio de World Wide Web.

    Hay dos maneras de autenticarse ante el servicio. La primera es poniendo las credenciales como texto plano en la dirección URL. Este es el caso que ya se trabajó en el primer ejemplo.

    La segunda es usando un token de seguridad dentro del mensaje SOAP, de manera que las credenciales no son visibles en el URL. Para implementar este segundo modelo hay que seguir estos pasos:

    En la sección de Administración – Servicios Web > Inbound/Outbound, en el applet central donde se definen los puertos de servicio, para los puertos de servicio con transporte HTTP en la dirección se debe poner de la siguiente manera:

    http://<nombreServidor>/eai_anon_<lang>/start.swe?SWEExtSource=SecureWebService&SWEExtCmd=Execute

    NOTA: En este caso en lugar de eai_<lang> se pone eai_anon_<lang>. También se suprime al final de la hilera la sección &UserName=SADMIN&Password=SADMIN.

    Además en el applet inferior se deben asignar los valores a la propiedades como se indica en la Tabla 9:

    Nombre

    Valor 

    Descripción 

    Tipo de autenticación

    Usuar./contraseña-Borrar texto

    Como ya no va por URL hay que poner que el método necesita autenticarse.

    Visualización del servicio de filtro de solicitud 

    MyBusinessService

    Se pone de nuevo el nombre del BS. Se reutilizó el mismo de la primera guía.

    Visualización del método de filtro de solicitud

    MyMethod

    Se especifica de nuevo el método del BS que requiere autenticación.

    Tabla 9. Propiedades para configuración de usuario y contraseña en la operación del servicio.

    Ilustración 9. Configuración de usuario y contraseña en la operación del servicio.

    Se debe hacer clic en el botón “Vacial caché” y después en el botón “Generar WSDL”.

    De nuevo enviamos la solicitud usando SoapSonar, pero al mensaje SOAP se le añade un encabezado y la sección del token que contiene el usuario y la contraseña. El mensaje debe quedar similar al siguiente:

    <?xml version=”1.0″ encoding=”utf-8″?>
    <
    soap:Envelope xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns:xsd=”http://www.w3.org/2001/XMLSchema&#8221; xmlns:tns=”http://siebel.com/asi/”&gt;
    <
    soap:Header>
        <wsse:Security xmlns:wsse=”http://schemas.xmlsoap.org/ws/2002/07/secext&#8221; soap:mustUnderstand=”0″>
            <wsse:UsernameToken>
                <wsse:Username>SADMIN</wsse:Username>
                <wsse:Password Type=”wsse:PasswordText”>SADMIN</wsse:Password>
            </wsse:UsernameToken>
        </wsse:Security>
    </
    soap:Header>
    <
    soap:Body>

    <tns:MyBusinessService_MyMethod_Input>

    <tns:msg>HELLO AND WELCOME</tns:msg>

    </tns:MyBusinessService_MyMethod_Input>

    </soap:Body>
    </
    soap:Envelope>

    El WS responde lo siguiente:

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <
    SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/&#8221; xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance&#8221; xmlns:xsd=”http://www.w3.org/2001/XMLSchema”&gt;

    <SOAP-ENV:Body>

    <ns:MyBusinessService_MyMethod_Output xmlns:ns=”http://siebel.com/asi/”&gt;

    <ns:msg>Message received: HELLO AND WELCOME</ns:msg>

    </ns:MyBusinessService_MyMethod_Output>

    </SOAP-ENV:Body>
    </
    SOAP-ENV:Envelope>

    En caso de enviar una solicitud sin la sección del token en el encabezado SOAP, el servidor responde algo similar a esto:

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <
    SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”&gt;

    <SOAP-ENV:Body>

    <SOAP-ENV:Fault>

    <faultcode>SOAP-ENV:Server</faultcode>

    <faultstring>Se requiere el token de nombre de usuario de encabezado de seguridad SOAP para la operación ‘MyMethod’.(SBL-EAI-05162)</faultstring>

    <detail>

    <siebelf:errorstack xmlns:siebelf=”http://www.siebel.com/ws/fault”&gt;

    <siebelf:error>

    <siebelf:errorsymbol>IDS_EAI_WS_NO_USERNAMETOKEN</siebelf:errorsymbol>

    <siebelf:errormsg>Se requiere el token de nombre de usuario de encabezado de seguridad SOAP para la operación ‘MyMethod’.(SBL-EAI-05162)</siebelf:errormsg>

    </siebelf:error>

    </siebelf:errorstack>

    </detail>

    </SOAP-ENV:Fault>

    </SOAP-ENV:Body>
    </
    SOAP-ENV:Envelope>

    Publicado en Siebel 7 | Etiquetado , , , , , , , | Deja un comentario