Regresar un paso atrás Sisinf 7.2
Actualización 7201

Ver notas adicionales, ejemplos y documentación de la versión 7.1
Notas Adicionales 7.0
Ver notas de la versión 5.1


CAS

  1. Instrucción CAS
  2. Requisitos mínimos
  3. Errores de CAS
  4. Opción de CAS de DBD
    1. Variables llave definidas en el menú
    2. Lectura secuencial
    3. Ligas entre archivos
    4. Uso de OPCION DISCO
    5. Metodología a seguir
    6. Opciones avanzadas

1) Instrucción CAS:
En el nuevo CAS la ejecución se pide mediante una instrucción de SISINF, misma que se puede poner en el menú de la aplicación o en cualquier otro programa. El formato general para hacerlo es:

CAS Var-pro/lit Var-let/lit (Var-id/num (Num-ep))

Los siguientes comentarios son aplicables:

Los siguientes comentarios son relativos a la seguridad de la información con el CAS:

Los siguientes comentarios son aplicables a Var-id/num y también al archivo PSxxxx.CAS donde se guardan las consultas del usuario para su posterior ejecución:

Como un ejemplo en el programa PSSIME.SIS se puede poner:

 

CAS 'SIME' 'Consulta sistema...'

En este caso se regresará al mismo programa.



2) Requisitos mínimos:
El nuevo CAS tiene los siguientes requisitos mínimos para poder ser usado:



3) Errores de CAS:
Como cualquier programa de SISINF los programas generados por CAS pueden dar errores de ejecución.

Las causas pueden ser:

Error Causa Solución

Archivos dañados

 

Reconstruir

CAS termina con ERROR EN ARCHIVOS

Problemas con LIGAS entre archivos al haber inconsistencias de información

Revisar la información

Errores de programación. (Ejemplo NO SE HA HECHO BUSCAR)

 

Reportar a personal de KRATOS



Errores durante la consulta:

Error Descripción Solución
196

NO HAY ARCHIVOS PARA DESPLEGAR EN CAS

Revisar clave, grupos y seguridad

197

ERROR INTERNO EN PROCESO DE CAS

Reportar a personal de KRATOS

199

NO SE PUSO EN DBD LOS INCLUIR DE CAS

S1: Poner el incluir de ISCASD.SIS en la DBD y compilar

S2: Revisar los incluir por opciones de CAS, para ello poner el último parámetro de instrucción CAS en 2 y revisar el PCASxx.SIS

S3: Reportar a personal de KRATOS

Cuando se necesite reportar un problema a personal de KRATOS se deberán enviar por E-mail lo siguiente:



4) Opción de CAS de DBD:
En esta sección se explica como hace el CAS lo siguiente:

Además se explica como agregar ciertas opciones para mejorar dichas ligas, así como para tener mas control sobre que pueden ver los usuarios.

Se asume ya se ha ejecutado el CAS para una mejor compresión de algunos de los conceptos descritos.

4.1) Variables llave definidas en el menú:

En algunos sistemas se tienen variables llave que se definen en el menú y que se pasan por temporales o áreas comunes entre los programas que forman dicho sistema.

Un caso práctico de esta situación son sistemas hechos para trabajar en varias empresas en que al inicio de la aplicación se define la empresa es la que se trabajará, que es también la que puede ver el usuario. En la DBD la variable del número de la empresa es llave al accesar los archivos.

Dado que el CAS ahora se ejecuta desde un programa que puede ser el menú y que se van a consultar los archivos de sistema, es deseable que el usuario solo pueda ver cierta información, es decir que tenga la misma funcionalidad para este caso, que los demás programas del sistema.

Para lograr lo anterior el CAS permite pasar valores por AREA-COMUN al programa que se generará para hacer la consulta del usuario y para ello en la DBD, en la definición de CAMPO o IGUAL de las variables llave que se desean que tomen este valor se deberá poner lo siguiente:

 

CAS AREA-COMUN nombre-del-área

Con lo anterior cuando el CAS use un grupo de llaves que tenga un campo con esta definición asumirá que el valor se definió en otro programa antes de llamar al CAS y su valor se pasa por el área común.

Las áreas comunes que use CAS son de solo lectura, es decir NO se modifican por la información que se consulte.

Como recomendación, estas variables NO deberán tener la definición de GRUPO y por lo tanto NO serán vistas por el usuario.

4.2) Lectura secuencial:

Cuando se consulta un archivo por el CAS se tiene que recorrer todo el archivo por algún grupo de llaves del R0, el CAS asigna el primer grupo de llaves del R0 que sea visible. Si no hay ninguno, escoje el del menor número de llave. El recorrido se hace mediante un BUSCAR DISCO con SEC-Gx y es independiente que sean visibles para el usuario del CAS las variables del grupo de llaves.

Cuando se desea que el recorrido se haga por otro grupo de llaves del R0 se deberá poner en algún CAMPO o IGUAL de dicho grupo de llaves lo siguiente:

 

CAS SEC.

La razón de pedir otro grupo de llaves para hacer los recorridos puede ser por el ORDEN que da el grupo o también para restringir lo que se desplegará al combinar esta opción con la de AREA-COMUN con el resultado de que el CAS recorra el archivo usando un BUSCAR DISCO con NO-PRIN-Gx y las variables definidas en el área común. Note que el grupo de llaves puede NO ser visible y de todas formas se usa el indicado.

4.3) Ligas entre archivos:

La información de los diferentes archivos en una DBD está ligada entre si o tiene algún tipo de conección. Cuando un usuario realiza consultas de su información es probable que se necesite de estas ligas.

Así por ejemplo en un sistema de clientes se tendrá el archivo CLTS con la información de los clientes y un archivo AGTS con la información de los agentes que atienden a los clientes.

El archivo AGTS se accesará por la variable llave NUM-AGTE (Definida como CAMPO) y en el archivo de CLTS se tendrá la misma variable (Definida con IGUAL) para indicar su agente. Existe una LIGA entre ambos archivos.

El CAS resuelve este tipo de ligas de forma automática, así el usuario puede seleccionar primero datos del archivo CLTS y luego datos del archivo AGTS.

Las condiciones para que se pueda hacer esta liga automática son:

  • Que el archivo BASE de la consulta tenga un campo definido con IGUAL al archivo que se liga. (En CAS aparece "liga archivo")

  • Que en el archivo que se liga se tenga la variable igualada definida como CAMPO y perteneciendo a un grupo de llaves.

  • Ambos campos se puedan ver por el usuario de CAS.

  • Si el grupo de llaves del archivo ligado tiene mas campos, estos deben tener las definición de CAS AREA-COMUN. O dicho de otra forma NO se aceptan llaves con varios campos, a menos que se conozca su valor.

Estas condiciones se cumplen en la mayoría de los casos.

Como continuación del ejemplo se tendría:

 

ARCHIVO CLTS ...

 

IGUAL AGTS NUM-AGTE ...

 

ARCHIVO AGTS ...

 

IGUAL CIA NUM-CIA R0 LL1 CAS AREA-COMUN ...

 

NUM-AGTE * * R0 LL1 ...

En la ventana de ejecución del CAS aparece el campo NUM-AGTE en el archivo de clientes con la indicación que se puede hacer la liga (Liga AGTS) Note que aunque la LL1 tiene dos campos, al primero se le conoce su valor por el área común.

El proceso de hacer la liga consiste, al estar ejecutando el CAS en seleccionar primero campos del archivo BASE y luego de tratar de seleccionar campos de otros archivos si así se requiere. Si no da error es que la LIGA se pudo efectuar, si da error es que no se puede efectuar. Lo anterior se puede deber a que NO se cumplen las condiciones o bien dicha liga NO existe.

Para solucionar el problema de las ligas se deberá revisar si el usuario puede ver ambos campos. Si no puede, la causa puede ser debido a las opciones de seguridad o que no se tenga la opción de GRUPO.

También para resolver las LIGAS, se tienen otras opciones en DBD, una de ellas consiste en hacer el IGUAL pero como una opción de CAS al definir el campo quedando:

 

CAS IGUAL archivo campo

Las razones para usarla son:

  • NO se usó la definición de IGUAL y en los dos archivos el nombre del campo es diferente.

  • El grupo de llaves tiene otros campos para efectos de búsquedas NO-PRINCIPALES.

Para el ejemplo anterior suponiendo las dos razones antes citadas (aunque se podría tener solo una de las dos) quedaría:

 

ARCHIVO CLTS ...

 

NUM-AGTE-C * * ... CAS LIGA AGTS NUM-AGTE

 

ARCHIVO AGTS ...

 

IGUAL CIA NUM-CIA R0 LL1 CAS AREA-COMUN ...

 

NUM-AGTE * * R0 LL1 ...

 

ZONA-AGTE * * R0 LL1 ...



Internamente el CAS para hacer la liga generará las siguientes instrucciones:

 

LEER DISCO CLTS NUM-AGTE-C

 

NUM-AGTE = NUM-AGTE-C

 

BUSCAR DISCO AGTS ... PRIN-G1 NUM-CIA NUM-AGTE



Otro caso para usar esta opción es que se usa la misma variable varias veces en el mismo archivo pero con otro nombre, tal seria el caso de llevar historia de los agentes que han atendido a un cliente dentro de un recurrente en el archivo CLTS.

Un caso especial que puede resultar del uso de esta opción es cuando un archivo BASE tiene varias ligas a otro archivo, en este caso solo se puede seleccionar una de ellas. La política que tiene el CAS para hacer las ligas es primero buscar en los recurrentes o grupos del archivo BASE que están expandidos. Con esto se forza a cual de las ligas usar.

Note que con el uso de esta opción, en el BUSCAR DISCO solo se va a incluir el campo de IGUAL y los de áreas comunes.

Para el caso de llaves formadas por varios campos y que el archivo BASE tiene las variables para hacer la liga al otro archivo vea Opciones Avanzadas.

4.4) Uso de OPCION DISCO:

En algunos sistemas en el programa de menú se fija el directorio donde se encuentran los archivos permanentes y en los programas se ejecuta la instrucción para lograrlo:

 

OPCION DISCO ... DISCO ...

Para que en estos sistemas el CAS tenga la misma funcionalidad, es decir tome los archivos permanentes de un directorio fijado en el menú, se agregó la opción CAS a la definición de ARCHIVO quedando como:

 

CAS área-común (nombre-de-campo)

Los siguientes comentarios son aplicables:

  • Las opciones de la definición de ARCHIVO van después del número de grupos para CAS

  • Se asume que en el campo nombre-de-campo se mueve el directorio.

  • El área-común tiene entre sus campos a nombre-de-campo.

  • Si se omite el nombre del campo solo se incluye el área-común.

Así, para el ejemplo de incisos anteriores se tendría:

 

ARCHIVO CLTS ... CAS AMENU NOM-DIR

 

....

 

AREA AMENU

 

NOM-DIR * * R0 S X 40



El CAS generará las siguientes instrucciones en los programa de consulta:

 

PROGRAMA .... /AREAS-COMUNES AMENU

 

....

 

SI NOM-DIR <> ' ' OPCION DISCO CLTS DISCO NOM-DIR



Note que si NOM-DIR no se define o es blancos, no se ejecuta la instrucción de OPCION DISCO.

4.5) Metodología a seguir:

Un resumen de qué cambios se sugiere hacer en la DBD para el uso del nuevo CAS son:

  • Poner el incluir de ISCASD.SIS en la DBD para definir los campos que usan los programas generados por el CAS.

  • Revisar que el archivo ISCASP.SIS esté en el mismo directorio de la DBD.

  • Si se tienen variables llave definidas en el menú, del tipo número de compañía, buscarlas en todos los archivos de la DBD y poner en estos campos cuando se usen en grupos de llaves la opción de CAS AREA-COMUN. De preferencia no tengan la opción de GRUPO para que no sean visibles.

  • Si algunos archivos tienen en el R0 varios grupos de llaves, seleccionar por cual de ellos se quiere el recorrido y en este poner en alguno de los campos la opción CAS SEC.

  • Ejecutar el CAS y revisar en cada archivo si se hiceron las ligas a otros archivos al aparecer (LIGA:...) Si NO hay liga revisar por que no se cumplen las condiciones indicadas en el inciso 3 y tratar de poner la opción de CAS IGUAL.

  • Si en sus programas usa OPCION DISCO ... DISCO y en el menú define el valor del directorio en un campo, seguir lo indicado en el inciso 4 para obtener la misma funcionalidad.

4.6) Opciones avanzadas:

Se describen en este inciso otras opciones de DBD para el CAS que sirven para casos especiales que NO pudieron ser resueltos con las opciones descritas anteriormente.

Cuando por razones de seguridad se desea que cada usuario solo vea su información, se tiene otra opción para los recorridos secuenciales de los descritos en el inciso 2. Esta es:

 

CAS SEG. nnnn


Esta opción se debe poner en cualquier campo del grupo de llaves y se debe combinar con la opción SEC. en el R0. La explicación es la siguiente.

El CAS en el programa que genera para hacer la consulta que pidió el usuario, va a incluir el archivo ISnnnn.SIS el cual debe estar en el mismo directorio de la DBD. Dicho archivo debe tener:

 

RUTINA SEGURIDAD-nnnn

 

CAS-SEGURIDAD-nnnn = 0 :NO puede ver la info;

 

...

 

logica para revisar si puede ver la información

 

...

 

CAS-SEGURIDAD-nnnn = 1 :Si Puede ver la info;

 

RETORNO


Las instrucciones que CAS generará para recorrer el archivo son:

100

BUSCAR DISCO .... SEC-Gx

 

EJECUTA RUTINA SEGURIDAD-nnnn

 

SI CAS-SEGURIDAD-nnnn = 0 EJECUTA 100


En toda esta explicación 'nnnn' deben ser 4 letras en mayúsculas. En una DBD no puede haber duplicados ya que dará error al crear el archivo.

Esta opción permite al diseñador del sistema poner cualquier lógica que desee para decidir si el usuario puede ver o no la información. Los siguientes comentarios son aplicables:

  • Es probable que ya se tengan hechos algunos INCLUIR para que en todos los programas de la aplicación se revise que puede ver el usuario de la aplicación.

  • Recuerde que también se pueden hacer recorridos secuenciales en recurrentes diferente al R0, siempre y cuando el usuario pida se ORDENE por un grupo de llaves de ese recurrente al ser este visible.

  • Las instrucciones que puede poner en el INCLUIR son cualquiera, como BUSCAR RECURRENTE en un Rx del archivo.

  • También puede poner OPCION TERMINAL AREA para que por una sola vez, controlado mediante indicadores, se lea información de la terminal.

  • Se debe primero hacer y probar el incluir, recuerde que la instrucción de CAS puesta en el programa de SISINF permite sacar un listado con nombre PCASxx.SIS del programa que se generó. Lo anterior sirve para revisar errores.

Otro caso que también se resuelve con un INCLUIR es el caso de LIGAS entre archivos que NO se pueden hacer con lo descrito anteriormente. La opción es:

 

CAS LIGA nnnn archivo LLx


Esta instrucción se pone en un campo del archivo BASE pidiendo poner el incluir con nombre ISnnnn.SIS para hacer la liga a archivo en el grupo de llaves LLx. Si archivo tiene grupos para CAS, alguno de los campos de LLx debe tener definido un grupo, es decir sea visible al usuario de CAS.

El incluir tiene la siguiente estructura:

 

RUTINA CAS-LIGA-nnnn

 

...

 

(Instrucciones de LEER DISCO en archivo BASE para

 

leer campos y moverlos a las variables llaves)

 

BUSCAR DISCO archivo EJECUTA 999 PRIN-Gx (llaves)

 

RETORNO

999

ERROR 'Error en archivos'

 

FIN


El incluir debe hacer el BUSCAR DISCO al archivo que se liga y antes LEER las variables llave necesarias.