Vous êtes sur la page 1sur 48

POR400

AS/400PORTAL
Guía Rápida de
Programación de Servicios
en el AS400
Versión 1

Guía Rápida de Programación de Servicios 1


ASSIST - Guia Rapida de Programacion de Servicios.doc

— Política de Confidencialidad y Responsabilidad de Custodia—

Este documento es de propiedad de Assist Consultores y sin su aprobación se prohíbe reproducir, duplicar, copiar,
ceder, asignar o cualquier acción no autorizada que sobre su contenido o parte del mismo sea llevada acabo sin la
expresa permisión del personal autorizado de Assist Consultores. Cualquier irregularidad expresa será responsabilidad
del ente, persona natural o jurídica.

Todos los derechos reservados. La información contenida dentro de este documento es para uso interno y puede ser
solamente usada para propósitos de negocio autorizados por Assist Consultores.

Assist Consuiltores se reserva el derecho de cambiar este documento acorde a requerimientos posteriores y para ello
se llevara un control de versiones.

Para cualquier información adicional comunicarse a:

ASSIST Consultores
Calle 95 Número 11-51 Oficina 403
Bogotá - COLOMBIA
Tel : (57 1) 616 07 68
Fax: (57 1) 616 07 80
www.assist.com.co
e-mail : info@assist.com.co

Primera Versión
Guía Rápida de Programación de Servicios
Enero, 2007.
Preparado por Germán Darío Clavijo Landinez

Guía Rápida de Programación de Servicios 2


Contenido
Acerca de este Manual .................................................................................................4
A Quien va Dirigido? .....................................................................................................4
Como esta Organizado este Manual ............................................................................4

Capitulo 1. Introducción a POR400 ...........................................................................5


Introducción...................................................................................................................5
¿Qué es POR400? .......................................................................................................5
Presentación del Esquema ...........................................................................................6
Panel de lista.................................................................................................................6
Panel Prompt ................................................................................................................8
Panel de Solicitud .........................................................................................................9
Resumen de Opciones y Funciones ...........................................................................10
Capitulo 2. Pasos para la Generación de un Servicio...........................................11
Introducción.................................................................................................................11
Pasos a Seguir............................................................................................................11
Capitulo 3. Conceptualización de Mensajería........................................................12
Introducción.................................................................................................................12
Descripción .................................................................................................................12
Caso de ejemplo .........................................................................................................13
Capitulo 4. Definición de Elementos (tags)............................................................19
Introducción.................................................................................................................19
Descripción .................................................................................................................19
Elementos Predefinidos ..............................................................................................22
Capitulo 5. Definición de Mensajes.........................................................................23
Introducción.................................................................................................................23
Descripción .................................................................................................................23
Capitulo 6. Inscripción en Catalogo de Servicios .................................................27
Introducción.................................................................................................................27
Descripción .................................................................................................................27
Capitulo 7. Asignación Lista de Librerías ..............................................................30
Introducción.................................................................................................................30
Descripción .................................................................................................................30
Capitulo 8. Creación de ColasMQ ...........................................................................33
Introducción.................................................................................................................33
Descripción .................................................................................................................33
Capitulo 9. Construcción Programa de Servicio ...................................................34
Introducción.................................................................................................................34
Descripción .................................................................................................................34
Rutina de Lectura - SRRTVMLI ..................................................................................35
Rutina de Salida - SRSNDMLI....................................................................................36
Rutina de Proceso - SRPROCESA.............................................................................37
Variables de Control ...................................................................................................38
Inclusión de Libros (/COPY) .......................................................................................39
Tópicos estándar de Desarrollo ..................................................................................41
Modelo de Programa de Servicio................................................................................42
Capitulo 10. Definición Mensajes de Error.............................................................47
Introducción.................................................................................................................47
Descripción .................................................................................................................47

Guía Rápida de Programación de Servicios 3


Acerca de este Manual
Este manual es una guía de referencia para lograr implementar nuevos
programas de servicio en el sistema de Administración del Portal en el
AS400, el cual ofrece a los clientes del Negocio interactuar con los
servicios a través de Internet.

A Quien va Dirigido?
El documento esta orientado a personal técnico del AS400 que
desarrolla o mantiene el software del CORE, como analistas,
programadores, Lideres de Proyecto, Gerentes de Arquitectura y todas
aquellas personas que tienen que ver directa o indirectamente con el
sistema del PORTAL, con el fin de obtener el conocimiento de cómo
desarrollar nuevas funcionalidades o inclusive de efectuar
mantenimientos al código del software. Esta implementación abarca solo
el ambiente AS400. Para información adicional sobre el sistema WEB en
el Portal remítase a la documentación respectiva.

Como esta Organizado este Manual


Este manual esta dividido en secciones o pasos que lo llevaran a
desarrollar e implementar un programa de servicio en el Portal desde el
CORE. En cada sección se describe detalladamente los pasos que se
deben llevar a cabo para la implementación.

El documento no intenta profundizar en el manejo de las opciones de


cada programa de gestión o de configuración, por el contrario el alcance
principal es una guía de implementación de un servicio. En el documento
Manual de Usuario se hace referencia a cada opción y al manejo de
cada funcionalidad.

Guía Rápida de Programación de Servicios 4


Capitulo 1. Introducción a POR400

Introducción
Este capítulo muestra algunos conceptos básicos para el entendimiento
del sistema POR400 (Portal de Servicios desde el AS400) en el aspecto
de interfaz. Se describe en detalle los paneles o pantallas del sistema
POR400.

¿Qué es POR400?
El sistema POR400 es un Sistema de Administración que permite
controlar y configurar los Programas de Servicio que se encargan de
retornar la información con la lógica de Negocio requerida y utilizando
para ello integración con MQSeries.

Cada Programa de Servicio esta encargado exclusivamente de efectuar


una funcionalidad y es así como existe un catalogo de servicio donde se
define cada uno.

El sistema de administración le permite al Negocio tener un nivel alto en


escalabilidad por la robustez de la arquitectura como esta desarrollado.
Para ello, cuenta con un modulo de configuración y bitácoras de consulta
técnica y de usuario que permiten que la implementación de nuevos
servicios sea fácil. Al igual, el esquema de desarrollo de un programa de
servicio que contiene rutinas genéricas ayudan a que se efectúe con
lineamientos, organización y estándares de desarrollo que facilitan su
lectura y mantenimiento.

Guía Rápida de Programación de Servicios 5


Presentación del Esquema
A continuación se describen los tipos de panel que se pueden desplegar
en el sistema POR400. Existen tres tipos de panel:
• Panel de lista,
• Panel tipo prompt,
• Panel de solicitud.

Panel de lista
La información se despliega inicialmente en una lista de registros (panel
de lista) ordenados de acuerdo a la información presentada. El campo o
los campos (campos llave) que indican el orden de la información se
encuentran con atributo de pantalla de alta intensidad (color blanco) y
aparecerán de izquierda a derecha dentro de las columnas de la
información.

Sección
superior

Sección de
información,
lista y
opciones

Sección
inferior,
funciones

Explicación de Panel
Cada pantalla de lista tiene tres secciones de información: en la parte
superior esta la indicación de la información desplegada; en la parte
central se encuentra la lista de la información y las opciones disponibles
para cada registro de la lista, y en la sección superior se encuentran las
funciones disponibles para el panel.

Guía Rápida de Programación de Servicios 6


En la parte inferior derecha se encuentra la palabra final o más... que
significa si existen o no, mas registros; mas... informa que hay mas
registros para ver, y final significa que ha llegado al ultimo registro de la
lista.

O, Opc
Es la columna donde se selecciona la opción disponible. Usted deberá
situarse en el registro deseado y teclear la opción.

Otras columnas
De acuerdo a la información consultada aparecerán diferentes columnas.

E, Est
Esta columna indica el estado del registro, siendo blanco-activo y un
asterisco (*) que significa que el registro esta inactivo.

En la parte inferior se presentan las funciones disponibles del panel y en


la parte central (lista) se encuentran las opciones; estas opciones están
disponibles para ser seleccionadas y situadas en la columna de opción.

Tanto las funciones como opciones aparecen en color azul. Con la


opción de Situar usted puede localizarse en determinado valor de la lista
presentada. Esta opción esta situada normalmente en la parte superior
derecha de cada panel.

Las opciones y funciones disponibles siguen el estándar de funcionalidad


que tiene el AS400 y dependiendo de la información de cada panel
aparecerán otras. Las siguientes opciones y funciones son las estándar:

Opciones: Funciones:
1-Selección F3-Salir
2-Cambiar F4-Solicitud
4-Eliminar F5-Refrescar
5-Visualizar F6-Crear
F10-Procesar
F12-Cancelar

Guía Rápida de Programación de Servicios 7


Panel Prompt
Cuando se selecciona un registro para cambiar la información o para
visualizar, o se presiona la función F6=Crear aparece una ventana
desplegando el detalle de cada campo (panel prompt).

Explicación de Panel
Cada pantalla tipo prompt despliega la información en detalle del registro
seleccionado en la lista. Si seleccionó el registro con la opción 5-
visualizar, las funciones que aparecen son de solo consulta. Si
seleccionó la opción 2-cambiar el campo principal o llave no se podrá
cambiar. Si el campo principal es susceptible de cambiar el sistema
verifica si es posible el cambio verificando que no exista un registro de
transacción en un archivo.

Las funciones disponibles aparecen en la parte inferior de la ventana y


en color azul. En algunos casos aparecerá la función F4-Solicitud con el
objetivo de desplegar los valores disponibles de un determinado campo.

El aviso Reg.Activo o Reg.Inactivo informa el estado del registro


desplegado, en una acción de creación siempre aparecerá activo.

Guía Rápida de Programación de Servicios 8


Panel de Solicitud
Cuando usted presiona F4-Solicitud desde un panel prompt se
despliega la información disponible para selección de un valor
determinado (panel solicitud). En este tipo de panel es posible visualizar
y crear registros sin necesidad de invocar la opción desde la lista
determinada.

Explicación de Panel
Este panel despliega una lista parecida a un panel de lista con el objetivo
principal de seleccionar un registro o un valor de un campo determinado.
Desde esta lista se da la opción de visualizar en detalle la información
del registro deseado inclusive se puede crear un registro sin necesidad
de invocar la función de gestión. Para la lista también se da la opción de
situarse en un registro determinado.

Las opciones y funciones disponibles suelen ser 1-selección, 5-visualizar


y F6-Crear. En la parte inferior derecha aparece la palabra mas... o final,
significando si existen mas registros o si llegó al final del archivo. La
información que se despliega aparece ordenada de acuerdo a la solicitud
y aparece con atributo de pantalla de alta intensidad (color blanco)

Guía Rápida de Programación de Servicios 9


Resumen de Opciones y Funciones
Para facilidad de uso, donde algunas funciones y opciones son comunes
y aparecen en varios paneles, las mismas teclas de función son usadas
como standard a lo largo de los paneles. A continuación se presenta una
lista resumen con la descripción de cada una de ellas:
F3=Salir
Presione F3 para salir del programa.
F4=Solicitud
Presione F4 para desplegar una lista disponible de registros con el
objetivo de seleccionar uno específicamente.
F5=Refrescar
Presione F5 para refrescar cualquier cambio en la información de un
panel, como actualizar la fecha o usted puede necesitar refrescar la lista
de registros presentados en la pantalla.
F6=Crear
Presione F6 para la creación de un registro determinado. Si el archivo
esta vació la opción de F6 se ejecuta automáticamente.
F10=Procesar / Actualizar
Presione F10 para la actualizar o enviar a proceso de grabación la
información de la pantalla desplegada.
F12=Cancelar
Presione F12 cuando requiera cancelar la gestión que este efectuando
en una ventana o panel prompt.
Situar en . . .
En la parte superior derecha se encuentra un campo llamado situar en ..,
que sirve para localizar rápidamente un registro en la pantalla. Esta
opción da la alternativa de situarse en un determinado registro de la lista
presentada. Siempre los campos llave estarán presentes en esta opción
de situar.
1-Selección
Use esta opción para seleccionar una opción de un menú o para
seleccionar un registro. Esta selección debe ser digitada debajo de la
columna O u Opc y al frente del registro deseado. En algunos casos la
descripción de la opción cambia de acuerdo a la información desplegada.
2-Cambiar
Use esta opción para cambiar información
4-Eliminar
Cuando requiera eliminar un registro especifico use la opción 4-Eliminar
5-Visualizar
Use esta opción para visualizar en detalle la información de un registro.

Guía Rápida de Programación de Servicios 10


Capitulo 2. Pasos para la Generación de un Servicio

Introducción
En este capítulo se describe que pasos son necesarios para la
implementación de un servicio en el Portal a partir del CORE.

Pasos a Seguir
La siguiente lista define los pasos que se deben seguir para la
generación de un programa de servicio y deben ser por lo general
llevados a cabo para el éxito de la implementación. Recuerde que este
documento es una guía que lo lleva hasta implementar un servicio pero
la lógica que se incluya dentro de las rutinas necesarias depende como
sean desarrolladas y la guía sugiere que se lleven ciertos aspectos para
lograr ese objetivo.

Los pasos a seguir se describen a continuación y en los capítulos


siguientes serán detallados:

• Conceptualización de Mensajería a utilizar.


• Definición de Elementos. (tags)
• Definición de Mensajes tipo Request y Response.
• Inscripción en Catálogo de Servicios.
• Asignación Lista de Librerías.
• Creación de ColasMQ.
• Construcción del Programa de Servicio.
• Definición Mensajes de Error.

Guía Rápida de Programación de Servicios 11


Capitulo 3. Conceptualización de Mensajería

Introducción
En este capítulo se describe el inicio al proceso de implementación de un
servicio. Para ello se debe conceptualizar o definir los mensajes tanto de
entrada (request), como de salida (response). Esta definición consiste en
describir que elementos son los esperados por los programas de servicio
y de la misma manera, lo que espera la WEB.

Descripción
A partir de un requerimiento funcional por parte del Negocio se debe
definir la mensajería que será utilizada como requerimiento al CORE y
como el CORE retornará la información, la cual será desplegada en la
WEB. Para ello, una vez analizado el requerimiento o funcionalidad por
parte del Negocio se deberá describir cada campo en un formato similar
al siguiente:

Estructura mensaje Request


Elemento Descripción Long

Estructura mensaje Response


Elemento Descripción Long Archivo Campo

Cuadro - Matriz de mensajería -

Dentro de la estructura de mensaje Request se deben definir los


elementos que serán enviados al CORE. En la columna Elemento se
debe incluir el nombre de los campos o elementos. En la columna
Descripción incluya una breve descripción del campo. En la columna
Long se describe la longitud del campo. En Archivo se define el archivo
donde se extrae la información del campo o elemento y en la columna
Campo se describe el campo del archivo donde se debe extraer la
información.

Guía Rápida de Programación de Servicios 12


Si es necesario, incluya otras columnas que para usted sean inevitables
como comentarios u observaciones con el objetivo de mantener mayor
documentación.

Los pasos para el diligenciamiento de la matriz son los siguientes:

1) Funcionalidad a Conceptualizar
2) Definición de Elementos
3) Descripción de Ubicación de Elementos
4) Agrupación de Información
5) Inclusión Elementos de Control
6) Asignación de Nombres Tag

A continuación se describe cada paso necesario para el diligenciamiento


de la matriz acompañado de un caso de ejemplo.

Caso de ejemplo
Para un mejor entendimiento del paso se analizara el siguiente caso
donde se explica como diligenciar la matriz:

1) Funcionalidad a Conceptualizar: Solicitud Información Empleador.

Estructura mensaje Request


Elemento Descripción Long

Estructura mensaje Response


Elemento Descripción Long Archivo Campo

Cuadro - Matriz de mensajería -

Guía Rápida de Programación de Servicios 13


2) Definición de elementos:
Describa los elementos de la estructura del mensaje de entrada (request)
que son necesarios para solicitar al CORE la información:

Estructura mensaje Request


Elemento Descripción Long
Num. Identificación o NIT
Estructura mensaje Response
Elemento Descripción Long Archivo Campo
Dsc.Razon Social Empleador
Dsc.Direccion
Cod.Ciudad
Dsc.Ciudad
Cod.Depto
Dsc.Depto
Tip.Empresa
Cod.actividad economica
Dsc.Mail
Paso - Descripción de Elementos

Guía Rápida de Programación de Servicios 14


3) Descripción de ubicación de elementos:
Luego de describir cada elemento tanto de entrada como de salida, se
debe describir el archivo y campo del CORE donde se extraerá la
información. Registre completamente esta información en la estructura
del mensaje Response.

En la estructura del mensaje Request la información del archivo y campo


no es necesaria pues son campos de entrada enviados desde WEB,
pero la longitud si es necesaria incluirla. De la misma manera, se debe
asignar la longitud del campo. Esta información es necesaria para un
paso posterior que requerirá almacenarse en el sistema configurando así
el mensaje o trama.

A continuación se describe la información:

Estructura mensaje Request


Elemento Descripción Long
Num. Identificación o NIT 11
Estructura mensaje Response
Elemento Descripción Long Archivo Campo
Dsc.Razon Social Empleador 50 Hemuni hemraz
Dsc.Direccion 50 Hemuni hemdir
Cod.Ciudad 5 Ciuarc04 ciucod
Dsc.Ciudad 30 Arreglo ARRCIU
Cod.Depto 5 Ciuarc04 Ciuco2
Dsc.Depto 30 Arreglo ARRDE
Tip.Empresa 1 Hemuni. Hemtem
Cod.actividad economica 6 Hemuni Hemact
Dsc.Mail 40 Hemuni Hemmai
Paso - Descripción de Ubicación

Guía Rápida de Programación de Servicios 15


4) Agrupación de información:
El siguiente paso es agrupar la información por categoría de datos. Para
ello, agrupe la información generando un tag. Recuerde que la definición
de mensajería técnicamente son XML y sirven como documento base
para el desarrollo WEB.

Estructura mensaje Request


Elemento Descripción Long
Num. Identificación o NIT 11
Estructura mensaje Response
Elemento Descripción Long Archivo Campo
<empleador>
Dsc.Razon Social Empleador 50 Hemuni hemraz
Dsc.Direccion 50 Hemuni hemdir
Cod.Ciudad 5 Ciuarc04 ciucod
Dsc.Ciudad 30 Arreglo ARRCIU
Cod.Depto 5 Ciuarc04 Ciuco2
Dsc.Depto 30 Arreglo ARRDE
Tip.Empresa 1 Hemuni. Hemtem
Cod.actividad economica 6 Hemuni Hemact
Dsc.Mail 40 Hemuni Hemmai
</empleador>
Paso – Agrupación de Información

Guía Rápida de Programación de Servicios 16


5) Inclusión Elementos de Control:
Ahora se deben incluir algunos elementos que son de control necesarios
para la arquitectura del sistema. Los elementos del mensaje de entrada
siempre serán parte de la respuesta y serán incluidos dentro de otro
grupo de datos que son los tag de <control>. De la misma manera todo
el mensaje se enmascara en un gran tag que se llama <servicio>. En
resumen, se incluye:
• Tag general <servicio>
• Tag de Control <control>
• Elementos de Control con nombre de tag (<codSer>, <idMen>,
<codErr>1
• Inclusión de elementos del request en el mensaje response,
incluidos dentro del tag de control.

De esa manera, los mensajes quedaran así:


Estructura mensaje Request
Elemento Descripción Long
<servicio>
<control>
<codSer> Cod.Servicio 5
<idMen> Num.Mensaje identificador 17
Num. Identificación o NIT 11
</control>
</servicio>
Estructura mensaje Response
Elemento Descripción Long Archivo Campo
<servicio>
<control>
<codSer> Cod.Servicio 5
<idMen> Num.Mensaje identificador 17
<codErr> Cod.Error 3
Num. Identificación o NIT 11
</control>
<empleador>
Dsc.Razon Social Empleador 50 Hemuni hemraz
Dsc.Direccion 50 Hemuni hemdir
Cod.Ciudad 5 Ciuarc04 ciucod
Dsc.Ciudad 30 Arreglo ARRCIU
Cod.Depto 5 Ciuarc04 Ciuco2
Dsc.Depto 30 Arreglo ARRDE
Tip.Empresa 1 Hemuni. Hemtem
Cod.actividad economica 6 Hemuni Hemact
Dsc.Mail 40 Hemuni Hemmai
</empleador>
Paso – Inclusión Elementos de Control

1 <codSer>, maneja el código de mensaje que se bautiza para el servicio. <idMen>, es el numero de identificación del mensaje en WEB. <CodErr>, numero
de tres dígitos que contiene el Action Code o código de error luego de procesarse el servicio. Este campo es alfanumérico

Guía Rápida de Programación de Servicios 17


6) Asignación de nombres tag:
El ultimo paso es asignar los nombres de los elementos llevando como
norma los siguientes aspectos:
• Solo se manejan hasta dos niveles de agrupamiento de tag. El
general y un agrupamiento adicional como es el ejemplo de
<control> o <empleador>.
• La longitud máxima para el nombre no debe ser mayor a 10.
• Deben empezar por minúscula y deben manejarse en general tres
caracteres por palabra (descripción del elemento). Al definir los
siguientes tres caracteres la primera letra debe iniciar en mayúscula.
Por ejemplo:
Tipo de documento: <tipDoc>
Código Actividad Económica: <codActEco>
• Para la definición del nombre de un elemento verifique que no se
haya definido ya en otro mensaje. Si fuera así utilice ese mismo
nombre. Esta plantilla o matriz debe ser incluida dentro de la
documentación en donde se define la mensajería que ya posee el
sistema de PORTAL, de esa manera se mantiene un único
repositorio de definición de mensajería.

Estructura mensaje Request


Elemento Descripción Long
<servicio>
<control>
<codSer> Cod.Servicio 5
<idMen> Num.Mensaje identificador 17
<numId> Num. Identificación o NIT 11
</control>
</servicio>
Estructura mensaje Response
Elemento Descripción Long Archivo Campo
<servicio>
<control>
<codSer> Cod.Servicio 5
<idMen> Num.Mensaje identificador 17
<codErr> Cod.Error 3
<numId> Num. Identificación o NIT 11
</control>
<empleador>
<razSocEmp> Dsc.Razon Social Empleador 50 Hemuni hemraz
<dir> Dsc.Direccion 50 Hemuni hemdir
<codCiu> Cod.Ciudad 5 Ciuarc04 ciucod
<desCiu> Dsc.Ciudad 30 Arreglo ARRCIU
<codDep> Cod.Depto 5 Ciuarc04 Ciuco2
<desDep> Dsc.Depto 30 Arreglo ARRDE
<tipEmp> Tip.Empresa 1 Hemuni. Hemtem
<codActEco> Cod.actividad economica 6 Hemuni Hemact
<mail> Dsc.Mail 40 Hemuni Hemmai
</empleador>
</servicio>

Guía Rápida de Programación de Servicios 18


Capitulo 4. Definición de Elementos (tags)

Introducción
En este capítulo se describe como se configuran los elementos en el
Sistema de Administración de Servicios POR400.

Descripción
Invoque el menú principal del Sistema de Administración utilizando el
perfil de Usuario. Para ello, desde la línea de comando del AS400
invoque el programa POICFUN con parámetro ‘USU’:

Call POICFUN parm(‘USU’)

También puede invocarse el menú de Administración con el comando


POR. El parámetro por defecto que se asume es USU. Esta opción
podrá ser ejecutada si el usuario tiene línea de comandos; en caso
contrario deberá invocarse el programa POICFUN con el parámetro
USU, o incluir el comando completo en alguna herramienta de control de
funciones de usuario.

Al invocarse el comando aparecerá el siguiente panel el cual despliega el


menú de usuario:

Guía Rápida de Programación de Servicios 19


Seleccione la opción 04-Definición de Elementos, colocando la opción
1-Selección al frente del registro, luego pulse Intro. Aparecerá la
siguiente pantalla donde se definen los elementos o tag de mensajería:

Antes de empezar a crear los elementos nuevos, verifique que no


existan. Si ese fuera el caso, utilice el mismo registro encontrado. Si los
atributos son diferentes a los que usted necesita, entonces cree otro tag.
Incluya aquellos elementos nuevos calificándolos con el nombre de una
variable que será utilizada por los programas de servicio.

Para crear un elemento nuevo seleccione F6-Crear, de esa manera


aparecerá la siguiente pantalla solicitando la información necesaria para
el elemento. Incluya cada elemento configurándolo acorde a lo requerido
y al final seleccione F10-Grabar. Cuando almacene un elemento con
F10-Grabar, el sistema seguirá solicitando un registro para crear.
Cuando usted no requiera mas creación entonces de F3-Salir.

El nombre asignado en el campo Cod.Elemento, debe ser asignado con


el estándar visto en el capitulo 3-Conceptualización de Mensajería:

• La longitud máxima para el nombre no debe ser mayor a 10


caracteres.
• Deben empezar por minúscula y deben manejarse en general tres
caracteres por palabra (descripción del elemento). Al definir los
siguientes tres caracteres la primera letra debe iniciar en mayúscula.
Por ejemplo:
Tipo de documento: <tipDoc>
Código Actividad Económica: <codActEco>

Guía Rápida de Programación de Servicios 20


Cod.Elemento
Digite el nombre del tag o elemento.
Dsc
Incluya una descripción del elemento.
Nombre de Variable
Asigne el nombre de una variable que será utilizada dentro del programa
de servicio con el fin de hacer una referencia al elemento.
Tipo de Elemento
Este campo controla si el elemento es un tag general o un elemento
simple.
Tipo de Campo
Asigne el tipo de campo que contendrá el elemento.
Longitud del Elemento
Asigne la longitud máxima que manejara el elemento. Si el valor que
llegue dentro de este elemento es menor al asignado entonces se
retornara un error 8xx informando que la longitud mayor a la asignada.
Los errores 8xx son Action Code que los programas de servicio
Conectores asignan cuando detectan una anomalía en la sintaxis de los
mensajes
Cantidad de Decimales
Asigne el numero de decimales que contendrá el elemento si es un
campo numérico.

Guía Rápida de Programación de Servicios 21


Elementos Predefinidos
Existen algunos elementos que están definidos y cumplen un objetivo
especifico; Por ejemplo, usted debería usar ciertos elementos cuando el
requerimiento sea construir ocurrencias o tablas. Los siguientes
elementos cumplen un fin especifico:

codErr - Código de Error (3alfa)


Es utilizado para retornar el código de error presentado durante la lógica
de negocio. Siendo ‘000’ un valor exitoso. Es conocido también como
Action Code.

control – Tag Control


Es un tag de nivel que agrupa los elementos de control del mensaje. Se
debe definir tanto en el mensaje Request como Response.

fecSig – Next Index fecha siguiente (8alfa)


Es utilizado en ocurrencias y sirve para retornar el control del siguiente
registro a sincronizar, cuando se trata de fechas.

idMen – Identificador del mensaje (17alfa)


elemento de control que informa el identificador del mensaje en Web y
esta conformado por un numero de 17 digitos con la siguiente estructura:
AAAAMMDDHHmmSSNNN, en donde:

• AAAA, Año
• MM, Mes
• DD, Dia
• HH, Hora
• mm, Minutos
• SS, Segundos
• NNN, Milisegundos

numId – Numero de Identificación (11:0)


Utilizado para almacenar el numero de identificación de 11 posiciones
numericas.

numReg – Numero de Registros (2:0)


Numero de registros recibidos. Este elemento es utilizado para obtener el
numero de registros que son enviados en ocurrencias dentro del
mensaje de Request.

regRet – Numero de Registros Retornados (2:0)


Numero de registros retornados. Este elemento es utilizado para enviar
el numero de registros que tiene la ocurrencia dentro del mensaje
Response.

FINAL – Elemento Final


Elemento utilizado para finalizar una ocurrencia.

Guía Rápida de Programación de Servicios 22


Capitulo 5. Definición de Mensajes

Introducción
En este capítulo se describe como se configuran los mensajes MLI tipo
Request y Response. Una vez creado cada elemento el siguiente paso
es crear el mensaje asignando cada elemento. La base de la creación de
cada elemento y mensaje es el archivo diligenciado en el Capitulo 3-
Conceptualización de Mensajería.

Descripción
Una vez se han definido los elementos nuevos en el repositorio o
diccionario el siguiente paso es definir los mensajes tanto de entrada
como de salida. Para ello, seleccione la opción 05.Definición de
Mensajería MLI desde el Menú de Administración, utilizando el mismo
procedimiento llevado a cabo en el capitulo anterior, colocando la opción
1-Selección al frente del registro, luego pulse Intro. Aparecerá la
siguiente pantalla donde se definen los mensajes tanto Request como
Response:

Antes de crear un mensaje usted deberá asignar un numero de mensaje


que este de acuerdo a la siguiente categorización:

Guía Rápida de Programación de Servicios 23


Numero Subgrupo Descripción Grupo
0 – 19 Mensajería Información General
20-999 Mensajería Modulo de Afiliados
20 – 29 Grupo Valor Unidad
30 – 39 Grupo Consulta Movimientos
30 – 49 Grupo Consulta Certificados
40 – 59 Grupo Saldos
60 – 69 Extractos
70 – 79 Simuladores
80 – 89 Rentabilidad
90 – 99 Recomposición Portafolio PV
100 – 109 Retiros
110 – 999 Sin definir - Disponible
1000-1999 Mensajería Modulo de Afiliados
1000 – 1029 Sin definir - Disponible
1030 – 1039 Consulta Movimientos
1040 – 1999 Sin definir - Disponible
2000-9999 Sin definir - Disponible
Asignado el numero de acuerdo a la tabla anterior, pulse F6-Crear para
adicionar el mensaje. Escriba la descripción del mensaje y pulse F10-
Grabar. Si desea seguir incluyendo mas mensajes siga el mismo
procedimiento, de lo contrario pulse F3-Salir. Ahora que ha creado el
código de mensaje el siguiente paso es crear los mensajes tipo Request
y Response. Para ello sitúese en el mensaje deseado y seleccione el
registro con la opción 8-MLI Request para incluir los elementos; luego
efectúe el mismo procedimiento para incluir el mensaje tipo Response
pero ahora seleccionando la opción 9-MLI Response.
Cuando seleccione las funciones de tipo de MLI aparecerá la siguiente
pantalla cuando tenga creado elementos; si no tiene elementos, se
desplegara un mensaje informando que no hay elementos o registros
creados. En este punto pulse F6-Crear:

Guía Rápida de Programación de Servicios 24


Una vez pulse F6-Crear aparecerá un panel prompt solicitando el
elemento tabla o header, el nombre del elemento y un nombre de
variable. Si no recuerda el nombre del elemento pulse F4-Seleccionar.
Aparecerá un panel tipo solicitud similar al siguiente:

Ubique el elemento deseado seleccionando el registro con la opción 1.


El sistema desplegara el elemento seleccionado en el campo que usted
pulso F4-Seleccionar. Utilice la opción situar para localizar el elemento
si usted no recuerda su asignación.

El nombre de variable es una referencia que se incluirá desde cada


programa de servicio para extraer el valor que llego, o para enviar el
valor que se quiere retornar a la Web. El nombre de variable se incluye
automáticamente si esta en blanco. Este valor podrá ser cambiado si lo
requiere.

Agrupamiento de elementos
Un agrupamiento de elementos es un conjunto de elementos que al
unirlos informan algo. Tomemos como ejemplo el siguiente caso:

Estructura mensaje Request


Elemento Descripción Long
<control>
<codSer> Cod.Servicio 5
<idMen> Num.Mensaje identificador 17
<numId> Num. Identificación o NIT 11
</control>

Guía Rápida de Programación de Servicios 25


En el caso anterior, el elemento table es <control>, y los demás
elementos se agrupan. Para ello, se deberá incluir tanto en el elemento
Table como en el elemento el valor control. Pulse F10-Grabar. Luego,
se incluye cada elemento agrupado asignando en el elemento table el
valor control y en el elemento normal el valor codSer (según el
ejemplo). Después, en elemento table el valor control y en el elemento
el valor idMen. Luego, control con numId. Como ya no existen mas
elementos entonces se cierra el grupo incluyendo un ultimo elemento
llamado FINAL, asignando en el elemento table el valor control y en el
otro el valor FINAL.
Al terminar de incluir los elementos, el mensaje quedara similar a la
siguiente pantalla:

Ocurrencias o tablas
Cuando desee enviar o recibir registros similares a un archivo cree el
grupo de elementos requerido y luego sitúese en algún elemento dentro
del grupo y seleccione la opción 9-Ocurrencias. El sistema le solicitara
el numero de ocurrencias que desee, máximo 99. Recuerde de efectuar
un análisis de la longitud del mensaje al finalizar su creación.
El mensaje no debe ser muy grande pues estaría impactando los
tiempos de respuesta. Analice cual es la mejor opción. Se sugiere
asignar hasta 30 ocurrencias. Recuerde que entre mas grande la
definición del mensaje mas grande será el recurso requerido para el
envío. Cuando se establecen definiciones de ocurrencias se habla de
sincronización de mensajes con la Web, quien solicita un siguiente
grupo de mensajes o paquete de información, basado en el envío del
elemento siguiente (por ejemplo: fecsig: fecha siguiente). Si el elemento
no se retorna se le esta informando a la Web que ya no hay mas
registros en la lista.

Guía Rápida de Programación de Servicios 26


Capitulo 6. Inscripción en Catalogo de Servicios

Introducción
Una vez se configura el mensaje, el siguiente paso es incluir el servicio
dentro del catalogo de servicios. Con esta configuración se permite
establecer la actividad del servicio una vez se arranque el subsistema
PORSBS. En este capítulo se describe como se configura el programa
de servicio dentro del catalogo de servicios.

Descripción
Para la inclusión del programa de servicio dentro del catalogo, asigne un
nombre al programa utilizando el siguiente estándar:
El nombre del programa debe iniciar por POIRSxxxxx, en donde,
POI, es el nombre del aplicativo PORTAL,
R, es el tipo de objeto RPGLE,
S, significa que el programa es un programa de servicio
xxxxx, nemotécnico del nombre de programa

Para ello, seleccione la opción 02.Definición Catalogo de Servicios y


ColasMQ desde el Menú de Administración, utilizando el mismo
procedimiento llevado a cabo en el capitulo anterior, colocando la opción
1-Selección al frente del registro, luego pulse Intro. Aparecerá la
siguiente pantalla donde se definen los servicios:

Guía Rápida de Programación de Servicios 27


Para crear un nuevo servicio pulse F6-Crear, aparecerá la siguiente
pantalla que solicita la información necesaria para configurar un servicio:

Diligencie la pantalla de acuerdo a los siguientes aspectos; los campos


no mencionados no se diligencian y el sistema asumirá valores por
defecto en algunos campos:

• El campo secuencia es asignado automáticamente.

• Incluya en el campo Dsc la descripción del servicio.

• En el campo Llave Acceso incluya el código de mensaje asignado en


la configuración de mensajes utilizando para ello cinco (5) dígitos.
Incluya los ceros a la izquierda hasta completar los cinco dígitos.

• En el campo OnLine? Incluya una letra S que significa que el servicio


será sometido a ejecución dentro del subsistema.

• En el campo Pgma_Servicio incluya el nombre de programa RPGLE


asignado al servicio.

• En el campo Nombre_Job asigne el nombre de job que desea


aparezca en el subsistema una vez arranque. A este nombre se le
asigna n, siendo n el numero de trabajo automático que se somete
de acuerdo al numero de trabajos configurados en el campo
No.Trabajos. Por ejemplo, si el Nombre_Job es SVLISBAN y se
configuraron dos (2) trabajos a ejecución el nombre de los jobs
cuando se observe el subsistema PORSBS quedaran: SVLISBAN_1
y SVLISBAN_2.

Guía Rápida de Programación de Servicios 28


• En el campo No.Trabajos asigne el numero de servicios que desee
enviar a ejecución para dar mayor servicio cuando este va a ser un
servicio con frecuencia de actividad, es decir, con múltiples
solicitudes o peticiones.

• Luego aparecen dos secciones en donde se configuran las ColasMQ


que atenderán el servicio. En la sección Configuración Entrada de
Mensaje se describe la información de entrada al programa de
servicio, es decir, la colaMQ que leerá el servicio y en la sección
Configuración Salida de Mensaje se configura la ruta de salida que
efectuara el mensaje. Estos datos deben ser asignados por la
persona responsable o Arquitecto del Sistema con el fin de tener
controlado la creación de ColasMQ. El nombre de las ColasMQ es
un nemotécnico del servicio, separados por puntos y deben empezar
por la constante COL Que significa COLFONDOS. Por ejemplo,
COL.DESCRIPCION.PLANES, esta cola atenderá las solicitudes
desde Web sobre las descripciones de Planes existentes en CORE.

• En tipo asigne el valor M

• En nombre se asigna el valor de la ColaMQ de entrada y de salida.


Normalmente en la colaMQ de salida se asigna la ColaMQ
COL.SENDER.

• En Ubicación asigne el valor COLCODEV (ambiente MQ de


desarrollo)

Para almacenar el registro pulse F10-Grabar. El sistema seguirá


solicitando mas servicios a grabar, pulse F3-Salir si no desea grabar
mas.

Hasta este punto se ha configurado el servicio dentro del catalogo y se


le ha asignado el código de mensaje. De esta manera esta configurado
el servicio. El siguiente paso es asignarle el ambiente de lista de librerías
en donde el programa de servicio se ejecutara. Esta lista de librerías
contiene las librerías necesarias para encontrar los archivos y
programas que están incluidos dentro de la lógica de negocio del
programa de servicio. En el siguiente capitulo se describe como se
configura o asigna una lista de librerías al programa de servicio.

Guía Rápida de Programación de Servicios 29


Capitulo 7. Asignación Lista de Librerías

Introducción
Una vez se configura el programa de servicio dentro del catalogo de
servicios el siguiente paso es asignar la lista de librerías necesarias para
la ejecución del programa de servicio. En este capítulo se describe como
se asigna la lista de librerías al programa de servicio.

Descripción
Una vez se crea el programa de servicio dentro del catalogo de servicios
el siguiente paso es asignarle la lista de librerías. Si ninguna lista de
librerías creadas no se acoge a la requerida entonces cree un nuevo
grupo o lista de librería y dentro del grupo asigne las librerías necesarias.

Para ello, seleccione la opción 02.Definición Catalogo de Servicios y


ColasMQ desde el Menú de Administración, utilizando el mismo
procedimiento llevado a cabo en el capitulo anterior, colocando la opción
1-Selección al frente del registro, luego pulse Intro. Aparecerá la
siguiente pantalla donde se definen los servicios. Ahora pulse F7-
ListaLib:

Luego de pulsar F7-ListaLib aparecerá la siguiente pantalla donde se


despliegan los programas de servicio y la lista de librerías asociadas:

Guía Rápida de Programación de Servicios 30


Localice el programa de servicio deseado y asigne la lista de librerías
con opción 2-Editar. Para ello, utilice la función de situar para ubicar
rápidamente el servicio. Escriba parte del nombre de servicio (por
ejemplo, POIRSLB) y el sistema se ubicara en el registro deseado a
partir de lo que usted digito.
Con opción 8=Detalle-Librerias, usted podrá verificar cuales son las
librerías asignadas como parte de la *LIBL que se configurara
automáticamente una vez este en ejecución el programa de servicio.

Guía Rápida de Programación de Servicios 31


En este punto usted podrá incluir nuevas librerías con F6-Crear o
cambiar el orden de la librería dentro de la lista. También podrá eliminar
una librería con 4-Eliminar. Tenga en cuenta que si usted modifica o
cambia una lista de librerías esta se cambiara para todos los programa
de servicio que la estén invocando y en un nuevo arranque del
subsistema se refrescara la información.

Si las configuraciones definidas no se acogen a las necesidades del


nuevo programa de servicio entonces cree una nueva lista. Para ello,
pulse F8-Listas y el sistema desplegara las listas disponibles o creadas:

Para crear una nueva lista pulse F6-Crear. Asigne una descripción y
grabe el registro con F10-Grabar. Luego, sitúese en la lista de librería
creada y seleccione el registro con opción 1-Librerías. En esta sección
se desplegara un mensaje o aviso informando que no hay registros a
desplegar, pulse F6-Crear. Diligencie los campos que se solicitan como
nombre de librería y orden. Si no recuerda el nombre de la librería
entonces pulse F4-Solicitud y se desplegara una lista de las librerías
existentes en el AS400. Seleccione un registro con la opción 1-
Seleccionar. Cree las librerías necesarias grabando cada registro
pulsando F10-Grabar.

Guía Rápida de Programación de Servicios 32


Capitulo 8. Creación de ColasMQ

Introducción
Una vez se configura el servicio dentro del catalogo de servicios y se ha
asignado el ambiente de ejecución (lista de librerías), el siguiente paso
es crear las ColasMQ dentro del Qmanager respectivo. De esta manera
se configura el Qmanager con los nuevos servicios solicitados.

Descripción
Para ello, seleccione la opción 03.Creación ColasMQ en QManager.
desde el Menú de Administración, utilizando el mismo procedimiento
llevado a cabo en el capitulo anterior, colocando la opción 1-Selección al
frente del registro, luego pulse Intro. Aparecerá un mensaje o aviso
informando que se crearan ColasMQ y CanalesMQ. Pulse F10-Procesa
para someter el proceso de creación.

Este proceso requiere tener las autorizaciones respectivas sobre el


MQSeries. Si usted no tiene los privilegios para ejecutarlo entonces
deberá enviar un email al área de Production Support para que creen las
ColasMQ invocando el programa POICCRTMQ que se encuentra en la
librería COLFO03.

Guía Rápida de Programación de Servicios 33


Capitulo 9. Construcción Programa de Servicio

Introducción
En este capítulo se describe como se debe construir el programa de
servicio basado en una arquitectura de integración con uso de MQSeries.

Descripción
El programa de Servicio desarrollado en RPGLE deberá tener tres (3)
rutinas básicas requeridas que se encargan de manera lógica de
procesar un requerimiento funcional:

• Rutina de lectura - SRRTVMLI


• Rutina de Proceso - SRPROCESA
• Rutina de Salida - SRSNDMLI

Recomendación
Usted podrá incluir mas rutinas propias de la lógica de negocio a
implementar que serán invocadas desde la rutina SRPROCESA.
Recuerde que estos programas de servicio deben ser desarrollados lo
mas estructurado posible y deben utilizar lógica que siempre tenga en
cuenta que son programas Online cuyo objetivo primordial es el tiempo
de respuesta, por lo que evite acceder a archivos que no sea necesario
estar leyendo continuamente cada vez que llegue un requerimiento,
como son los archivos tipo tabla, es decir, aquellos archivos que tienen
definiciones que no suelen cambiar continuamente y que no son
transaccionales ni voluminosos. Por ejemplo, una tabla donde están
definidos los códigos de banco con sus descripciones, o las ciudades y
departamentos.

Para ello, se debe cargar la información detallada en un programa que


se conoce como PUG (programas de Uso General) y que son invocados
desde la *INZSR de cada programa de servicio. La información de estos
programas es retornada en arreglos que son utilizados por el programa
de servicio evitando así efectuar accesos a disco. Tenga en cuenta que
si una tabla es actualizada se deberá bajar y subir el servicio
nuevamente para que tome el cambio respectivo, por lo que son
cargados al inicio de cada programa. 2

2
En un reléase posterior se implementara una funcionalidad que evite tener que bajar y subir el
servicio cuando estas tablas se actualicen.

Guía Rápida de Programación de Servicios 34


Rutina de Lectura - SRRTVMLI
Dentro de esta rutina se extraen o solicitan los valores de cada elemento
de entrada y que son necesarios para la lógica de negocio. Existen
varios elementos dentro del mensaje Request que son de control y que
no son necesarios solicitar pues no son requeridos para aplicar la lógica
de negocio. Solo solicite el valor de aquellos elementos necesarios.

Para ello, existe una función de usuario que permite solicitar el valor de
un elemento que se llama RTVVALVAR. Esta función requiere de tres
(3) parámetros:

• Dsmqimsg: Código de mensaje


• Wxtip: Tipo de mensaje
• Wxvar: Nombre de variable a solicitar

Los nombres de cada parámetro no deben ser cambiados, solamente


deberá asignar el nombre de variable configurado dentro del Mensaje
MLI a la variable WXVAR, y en WXTIP se deberá asignar el valor “I”. La
variable DSMQIMSG no se asigna valor pues el sistema de arquitectura
ya lo ha hecho.

La siguiente pantalla es un ejemplo del llamado a la función dentro de la


rutina SRRTVMLI:

En el ejemplo anterior, se solicita el valor del elemento numero de


identificación en donde al configurar el mensaje se le asigno el nombre
de variable NIDE.

Guía Rápida de Programación de Servicios 35


Rutina de Salida - SRSNDMLI
Dentro de esta rutina se cargan o envían los valores de cada elemento
de salida y que fueron hallados dentro de la lógica de negocio. Existen
varios elementos dentro del mensaje Response que son de control y que
no son necesarios solicitar pues no son requeridos para aplicar la lógica
de negocio por lo cual se asignan desde el mensaje Request. Mas
adelante se detalla como cargar los valores a cada elemento.

Para cargar los valores existe una función de usuario que permite enviar
el valor a cada elemento, que se llama SNDVALVAR. Esta función
requiere de cuatro (4) parámetros:

• Wxtip: Tipo de cargue.


• Dsmqimsg: Código de mensaje
• Wxvar: Nombre de variable a cargar
• Wxvariable: Valor del elemento

Los nombres de cada parámetro no deben ser cambiados, solamente


deberá asignar el nombre de variable configurado dentro del Mensaje
MLI a la variable WXVAR. En el parámetro WXTIP asigne un “1” el cual
informara al sistema que el valor será cargado a partir del mensaje de
entrada. Para los valores de elementos que son calculados dentro de la
lógica de negocio asigne el valor “2”. Y en WXVARIABLE asigne el valor
que desee cargar. Si el valor asignado al parámetro WXTIP fue “1” el
valor del parámetro WXVARIABLE debe ser *blanks.

La siguiente pantalla es un ejemplo del llamado a la función que se


invoca dentro de la rutina SRSNDMLI:

Guía Rápida de Programación de Servicios 36


Rutina de Proceso - SRPROCESA
Dentro de esta rutina se incluye la lógica de negocio; de esta manera
pueden incluirse las rutinas necesarias teniendo en cuenta que sea un
programa estructurado; es decir, que se manejen rutinas que tengan
lógica especifica. Por ejemplo, la rutina principal (SRPROCESA), efectúe
la lectura de un archivo efectuando los filtros de lectura e invoque a una
rutina que realmente carga los registros moviéndolos a estructuras,
ocurrencias o arreglos, o inclusive que valide cierta información.
La siguiente pantalla despliega un ejemplo de la rutinas que se podrían
manejar dentro de una lógica de negocio generando rutinas que hacen
que el programa sea estructurado:

Guía Rápida de Programación de Servicios 37


Variables de Control
Existen algunas variables de control que son de manejo de la
arquitectura POR400 y que deben ser asignadas con un valor
determinado:
DSMQIRES
Variable utilizada para controlar el Action Code o error enj el
procesamiento de la petición. Debe mover un código de 3 dígitos
alfanumérico. Este valor debe ser incluido dentro del sistema donde se
relaciona cuales son los códigos de error posibles que podría en un
determinado momento retornar el programa de servicio a la Web y se
incluye con la descripción y en el mensaje respectivo. Esta configuración
se describe en el capitulo siguiente 10. Definición Mensajes de Error.
La siguiente pantalla despliega un ejemplo del manejo en el código de
error:

En el ejemplo anterior el 053 significa que no hay registros a retornar


siendo el objetivo del programa retornar una lista de registros de un
archivo de acuerdo a un Nit.
El manejo de asignar un Action Code acorde a una validación interna es
controlar los códigos de error, pero debe controlar que no siga validando
pues se presento ya un error. Las siguientes validaciones deben
controlar que el DSMQIRES este en “000” para continuar. Esto permite
no seguir ejecutando mas lógica de negocio innecesaria por presentarse
un error.

Guía Rápida de Programación de Servicios 38


DSMQIIDE
Variable que almacena la identificación de un afiliado o empleador
necesaria para la consulta de usuario sobre las transacciones que están
realizando los clientes desde Web. De esa manera el usuario puede
ordenar la información de las transacciones por identificación. Esta
asignación debe realizarse en la rutina SRRTVMLI luego de solicitar el
valor. Si no se asigna, el usuario no podrá buscar por identificación
dentro del programa de consulta al log de transacciones, aunque por
fecha y hora podrá efectuarlo.

Inclusión de Libros (/COPY)


La lógica de llamado a sentencias MQSeries y de lectura/envio/log y
control automático sobre los mensajes y peticiones desde Web están
incluidas dentro de algunos /COPY que deben ser mantenidos dentro de
cada programa de servicio:

/COPY POIRCOPY:
Contiene el control sobre estructuras de archivos y variables comunes.
Debe ser incluido inmediatamente después de la sección de archivos y
antes de la definición de variables (Hoja D):

Guía Rápida de Programación de Servicios 39


/COPY POIRCESQ:
Contiene el control sobre la lógica de lectura/envio/log de cada mensaje
y debe ser incluida dentro del programa de servicio al inicio de la Hoja C.

/COPY POIRCPRO:
Contiene la definición de Prototipos y rutinas genéricas de lógica
MQSeries y debe ser incluida al final del programa de servicio:

Guía Rápida de Programación de Servicios 40


Tópicos estándar de Desarrollo
Para que los programas lleven un estándar de desarrollo se sugiere
siempre implementar los programas de servicio con los siguientes
aspectos que sirven de patrón para los programa:

• En la *INZSR defina los KLIST del programa.


• La definición de variables y constantes debe efectuarse en la Hoja D.
• El llamado a programas PUG debe efectuarse en la *INZSR; si el
programa es necesario volverlo a invocar de acuerdo a una lógica de
negocio definida deberá incluirse dentro de una rutina única de
llamados.
• Para el manejo de archivos debe manejarse apertura controlada por
programa; es decir, deben tener USROPN y manejarse con
OPEN/CLOSE dentro de la lógica y cuando realmente se necesita
abrir.
• Evite efectuar accesos o lecturas a archivos recurrentemente.
Aproveche una lectura para efectuar múltiple lógica de negocio.
• El manejo de ocurrencias y arreglos hace que el programa sea mas
optimo en tiempos de respuesta.
• Evite hacer múltiples llamados a programas que sean innecesarios.
(p.ej. que hagan calculo de fechas, extracción de fechas). Recuerde
que en el RPGLE o RPGIV este tipo de funcionalidades forman parte
de instrucciones o sentencias propias del lenguaje.
• No utilice la sentencia GOTO.
• Evite el uso indiscriminado de indicadores.
• Para el manejo de sentencias de lectura de archivos (CHAIN, READ,
READEQ, SETLL, SETGT,...) utilice para control de éxito en lectura
la sentencia %ERROR, %FOUND, %EOF... Evite el manejo de
indicadores.
• Por ser programa tipo NEP (Never End Program), es decir, que
siempre están en ejecución sometidos en un subsistema sin
consumir porcentaje de CPU cuando están a la espera de una
petición, deberá controlar la inicialización de variables que han sido
cargadas durante la lógica de negocio y que son necesarios
inicializarlos para un nuevo procesamiento. De esa manera se evita
que queden cargados valores que afecten un nuevo procesamiento.
• Para el manejo de control de acciones repetitivas hasta un ene de
ciclos, utilice la sentencia FOR y no DOW.
• El cargue de elementos response que no son del Tag control debe
estar condicionada por DSMQIRES=”000”; es decir, solo se cargan
los valores, si y solo si, el procesamiento es exitoso.
• Utilice nombres de variable de programa nemotécnicas y que inicien;
por ejemplo WXcodfon o WYcodpla. Esto facilita la búsqueda y
entendimiento de un programa. Si utiliza DataStructures (DS)
nómbrelas iniciando por DSxxxxx.

Guía Rápida de Programación de Servicios 41


• En el inicio del programa se describen los comentarios acerca del
objetivo del programa. En un aparte enuncie y describa los códigos
de error manejados por el programa. En el programa modelo que se
entrega se encuentran los comentarios requeridos buscando una
uniformidad en todos los programas. Dentro del aparte de
Descripción Ampliada deberán incluirse las librerías que son
necesarios para la compilación, así como los OVRDBF necesarios si
los hay.
• En la Hoja H, deberán incluirse las siguientes palabras claves:
DATFMT(*/USA) TIMFMT(*HMS:) DEBUG(*yes)
DFTACTGRP(*no) ACTGRP(*new) COPYRIGHT(‘Copyright 20xx
by xxxxxx. All rights reserved’)
• Evite incluir arreglos en tiempo de compilación. Para ello, cree un
archivo con los valores que se necesitan. De esa manera, si es
necesario un cambio en esa tabla no se deberá compilar el programa
sino ajustar por un programa de gestión el registro deseado.

Modelo de Programa de Servicio


En las siguientes pantallas se despliega un modelo de programa de
servicio en donde se puede observar tanto los tópicos sugeridos como
las secciones estructuradas para que sirvan de referencia cuando se
vaya a implementar un servicio:

Guía Rápida de Programación de Servicios 42


Guía Rápida de Programación de Servicios 43
Guía Rápida de Programación de Servicios 44
Guía Rápida de Programación de Servicios 45
Guía Rápida de Programación de Servicios 46
Capitulo 10. Definición Mensajes de Error

Introducción
Una vez se ha implementado el programa de servicio se deben incluir los
códigos y descripciones de los códigos de error que se manejaron dentro
del servicio. En este capítulo se describe como se configuran los codigos
de error del servicio (mensaje).

Descripción
Para la inclusión de los mensajes de error (Action Code) de un programa
de servicio el cual resuelve un mensaje funcional seleccione la opción
05.Definición de Mensajería MLI desde el Menú de Administración,
utilizando el mismo procedimiento llevado a cabo en el capitulo anterior,
colocando la opción 1-Selección al frente del registro, luego pulse Intro.
Aparecerá la siguiente pantalla donde se definen los mensajes tanto
Request como Response dando la opción 7-Errores:

Seleccione la opción 7-Errores en el código de mensaje deseado y pulse


Intro.

Guía Rápida de Programación de Servicios 47


Aparecerá la siguiente pantalla cuando tiene códigos asignados. Si no
tiene registros se desplegara un mensaje o aviso informativo de la
inexistencia de registros. Si este el caso, pulse F6-Crear. El sistema le
solicitara la creación de los registros deseados.

Al dar F6-Crear aparecerá la siguiente pantalla en donde se debe incluir


la información de los mensajes de error. Esta información será
desplegada en el programa de consulta de los mensajes que llegan al
AS400 desde la Web.

Guía Rápida de Programación de Servicios 48

Vous aimerez peut-être aussi