Adefesios en RPG
APIS
Aplicaciones multi-idioma
Apuntadores
Archivos
as400
AS400 Para Principiantes
Base de Datos
Best practices
Better Performance
Botones en RPG
Calidad Profesional
CLP
Colas de Datos
Comandos PC
Cursos
DEBUG en RPG
Desarrollo de Software
Divertidos
EDI
EDI X12
Edward de Bono
el arte de la guerra
FAQS
Fechas en RPG
FRAUDE
FTP
Gerencia de Sistemas
Grupos de activacion
Herramientas Gerenciales
ILE
ilerpg
indicadores
Iseries
JSON
Lista de Códigos de Error
Master Mind
Mejorando el performance
Mejores Prácticas en RPG
micros
Migración
modulos
Monitoreo de Errores
Mouse
OCCUR
pantalla verde
Pantallas
Peores Practicas
Performance
podcast
pointers
Procesos
Programación CL
Ratón
rpg
RPG-FREE
RPGLE
Seguridad
Servidores
Sesion 1 fundamentos de internet
SEU
Sockets
SQL
SQLRPG
Subfiles
subprocedures
Sun Tzu
Tarjetas de Crédito
Tiempos de Respuesta
Tips en RPG
Transfer Control
Triggers
Utilidades
Ventanas moviles
Versiones
videos
Bienvenidos a Iseries Venezuela
Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.
The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.
The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.
Sunday, December 4, 2011
Instructivo para Acceder al Servidor en Alemania
Debido a los correos que he recibido de algunos de los lectores del blog, estoy publicando este e-book para facilitar el acceso del servidor en Alemania.
Los alemanes han puesto a disposición un servidor con distintas tarifas que van desde ningún pago (free/gratis) hasta el pago mas alto que incluye una serie de facilidades para corporaciones negocios o grupos de usuarios para trabajar con un iseries vía remota. Este servicio alemán contribuye grandemente al proceso de desarrollo de proyectos en esta plataforma, ya que mediante acceso vía internet., los desarrolladores podemos acceder a cualquier hora y en cualquier lugar con conexión a Internet.
Instructivo Acceso Servidor ISERIES en Alemania
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo.
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Wednesday, November 30, 2011
Cómo Nos Comunicamos Los Desarrolladores
Este
artículo no se trata de tips de programación, procesos o desarrollo de
proyectos. En esta oportunidad, hago un alto en la tradicional redacción de
artículos técnicos para hacer un llamado
de atención a la forma en que nos comunicamos cuando redactamos correos dentro
de la organización en la que estamos trabajando.
Es
alarmante la poca disposición que existe en general, en el mundo de los desarrolladores de cuidar la redacción de correos en forma adecuada. Todo lo que
escribimos es nuestra carta de presentación y deja un sello imborrable en
la mente de quienes nos leen. No es suficiente con ser un excelente técnico
cuando no nos damos a entender con claridad ante los otros entes de la
organización. Por esta “insignificante diferencia”, muchas veces ascienden a
alguien quizás menos preparado técnicamente que nosotros pero que sabe hacerse
entender y que, de esta manera, se convierte en un líder natural que contribuye
a agilizar la operativa organizacional.
Tips para redactar
correos:
1.-La Estructura.
Un correo debe tener un
saludo, un cuerpo y una despedida.
- Saludo: Buenas tardes, Estimados señores, etc.
- Cuerpo: Comienza redactando, en un máximo de dos líneas, el objetivo de tu
correo, es decir, para qué estas escribiendo ese correo.
- Despedida: Saludos Cordiales, En espera de su repuesta, Atentamente, etc.
2.-Corto y directo.
Utiliza la menor cantidad posible de palabras.
3.-No uses mayúsculas en
todas las letras. ESTO DA LA IMPRESIÓN DE ESTAR ENOJADO Y GRITANDO.
4.-Cuida la ortografía.
Da pena ver errores ortográficos en correos enviados por programadores. Existen
correctores automáticos y en caso de duda, consulta con otras personas antes de
enviar el correo.
5.-Ten presente quien
va a leer tu correo.
Si te diriges a un
gerente, recuerda que él (ella) no están al detalle de tus actividades.
Haz un breve recuento de lo que estas haciendo y puntualiza dentro de ese
contexto lo que quieres transmitir. Hay programadores que escriben como si los
demás estuviesen en su cabeza omitiendo detalles importantes de su tarea
diaria que harían mucho mas comprensible su mensaje al destinatario.
6.-Por favor no copies
y pegues códigos enteros de programas o lista de fuentes. Es preferible colgar
en tu correo, un adjunto en Word o en
Excel que tenga sus márgenes, títulos, y autoría. Hace algún tiempo un
programador que conozco, entró por el STRPDM seleccionó con el Mouse la lista
de fuentes en los que había trabajado y los pegó directamente en el
correo. El correo decía: Buenas tardes,
y seguidamente la lista pegada de todos los fuentes a continuación tal y como
la despliega el STRPDM. Luego no seguía ninguna explicación; sin despedida al
final y sin especificar para qué había enviado eso ni el contexto dentro del
cual estaba trabajando el programador. Más grave aún: el destinatario era un
Gerente.
7.-Usemos el sentido
común y dejemos la flojera.
Si nos detenemos unos
minutos a leer lo que vamos a enviar, nos damos tiempo a corregir y ajustar
cosas sencillas que saltan a la vista que están mal redactadas. NO es un favor
que le hacemos a otros: es nuestra imagen profesional la que estamos
vendiendo en cada correo.
8.-Evita hace Post
Data. Esto resta claridad al correo y dispersa la atención del motivo
principal de tu comunicación.
9.-Ponte a la orden al
terminar el correo.
Si no tienes una firma
automática con tu extensión telefónica, coloca al luego de tu despedida, la
manera mas expedita que tiene el destinatario para comunicarse contigo en caso
de que así lo requiera.
Ejemplo de correo:
Buenas
tardes Sr. Pérez.
En el adjunto, envío la lista de actividades realizadas en el periodo marzo-abril 2011. Estas
actividades corresponden al desarrollo del proyecto “Comunicación” en la Fase de Elaboración.
A la orden
para cualquier duda o sugerencia.
Saludos
Cordiales,
Ing. Pedro XXXXX
Extensión
telefónica. 9887.
__________________________________________________
-Te pones a la orden
-Te despides
-Colocas tu forma de contacto telefónico.
Es sencillo, ¿verdad?
Si te pareció interesante, reenvíalo a un amigo haciendo click en el
sobrecito que está al final del artículo.
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Sunday, November 27, 2011
Procesos Síncronos, Asíncronos y algo mas…
Un proceso no es síncrono
o asíncrono en si mismo sino en relación a otros procesos con los que se
relaciona. ¿Qué quiere decir esto?
Cuando hablamos de
procesos síncronos nos referimos a procesos que envían un mensaje a otro
proceso esperando una confirmación de recepción de mensaje.
Aquellos procesos que
envían un mensaje a otros y no esperan por mensaje de “acuse de recibo” son
procesos asíncronos.
Un ejemplo de procesos
asíncronos lo vemos todos los dias cuando entramos a la página Web de nuestro
banco y pedimos el saldo de la cuenta o realizamos alguna operación en línea.
Una vez que el banco nos envía la información que solicitamos, la pagina Web no
se queda esperando por una respuesta nuestra. Seria totalmente inoperante y
consumiría muchísimo tiempo del servidor del banco. Nosotros podemos en el
ínterin de realizar nuestra operación bancaria, atender una visita, levantarnos
a atender el teléfono, etc.
Es decir, ningún proceso del banco se queda
esperando un mensaje de confirmación de nuestra parte. Solo cuando hacemos
click sobre alguna operación específica de la pagina Web entonces el servidor
detecta nuestra solicitud, nos responde y luego el servidor se dispone a
atender la solicitud de otros usuarios.
En iseries y refiriéndonos
específicamente a los procesos que son ejecutados bajo el lenguaje rpgile, clp,
hay mecanismos de control de procesos que no están explícitamente relacionados
con la sincronicidad. En forma explicita
puede entrar en esta categoría de sincronismo, el uso SOCKETS para transmisión
de data entre el iseries y una Web o las
transmisiones especificas vía FTP, que por razones de seguridad, dan un timeout
(tiempo agotado de espera) cuando hay demora en la respuesta.
En
algunas instalaciones del Iseries existe el comando WAITJOB (no todas las
instalaciones tienen este comando en la librería TAATOOL que suministra IBM).
Algunos
analistas han confundido este comando con una sincronización entre procesos.
Este comando WAITJOB, permite a un CLP que se está ejecutando, esperar a que
otro finalice para continuar.
Por ejemplo si el programa CLP PGMA somete el
JOB llamado JOBW, luego de someter el JOBW el programador puede aplicar el
waitjob dentro del programa PGMA para forzarlo a esperar la culminación del job
sometido JOBW y luego el programa PGMA continuará con la siguiente instrucción
a ser ejecutada. Esto no es igual a la sincronización de procesos entre si. En
este ejemplo del WAITJOB, el sistema operativo le avisa a un proceso que el otro
proceso terminó, pero ninguno de los dos procesos espera por la respuesta de
uno o del otro.
Por cierto es importante
tener en las instalaciones el último
release de esta librería de utilidades TAATOOL actualizada puesto que hay
comandos sumamente útiles para los desarrolladores en Iseries y para el control
de la ejecución de procesos.
En este enlace http://taatool.com/ pueden
conseguir mayor información sobre este set de herramientas de productividad
para lo desarrolladores del Iseries:
Si te pareció interesante, reenvíalo a un amigo haciendo click en el
sobrecito que está al final del artículo.
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Saturday, November 5, 2011
Caja de Texto en SDA. ¿Que es eso?
Un truco muy útil para ahorrar tiempo de programación a la hora de manejar variables en pantalla de longitud muy extensa. En este enlace puedes ver el video asociado a esta publicación:
http://iseriesvenezuela.blogspot.com/p/cursos-y-tutoriales.html
El código fuente lo puedes descargar y ver del enlace que se te indica el e-book insertado a continuación:
Caja de Texto en RPGLE/Iseries
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo.
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Wednesday, October 12, 2011
Cómo Ejecutar Comandos PC desde un RPGLE
Cómo Ejecutar Comandos PC
desde un RPGLE
En este enlace puedes ver el video explicativo de cómo
ejecutar comandos PC desde un RPGLE.
Para que tengas una idea de los comandos PC que están a tu
alcance en RPG, puedes ver en este enlace la lista de comandos más comunes.
A continuación puedes ver el código fuente del RPGLE y al
final del documento encontrarás el enlace para descargarte el código.
Si te pareció interesante,
reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo.
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Autor: Ing. Liliana Suárez
Sunday, September 25, 2011
Utilidad para el Cálculo de Diferencia entre Horas
En esta oportunidad tienes acceso a una interesante utilidad para calcular la diferencia entre horas.
Para registrar procesos que no duren mas allá de 24 horas funciona perfectamente. No importa la fecha de inicio ni la fecha de finalización. Es suficiente enviar como parámetros de entrada las horas Inicial y Final para que funcione.
Cálculo de la diferencia entre horas en un período de 24 horas.
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Autor: Ing. Liliana Suárez
Tuesday, September 20, 2011
Algunos Consejos para Desarrollar Programas
2.-Si tienes alguna duda técnica, investígala antes de
comenzar a programar porque podría cambiar significativamente tu trabajo y quizás tendrías,
a la larga, que comenzar a hacer todo de
nuevo.
3.-Básate en programas Prototipo. Si no tienes programas
modelo, o la organización donde estás no te lo suministra, constrúyete uno y
llévatelo dondequiera que vayas.
4.-Divide la programación en un desarrollo de varias etapas,
muestra las pantallas o el modelo de salida en cada fase antes de continuar
para asegurarte de que ese resultado es el que esperan de ti. Al final la
certificación de tu trabajo se simplificará.
5.-Comparte tu proceso con los involucrados en el proyecto.
Aún cuando ellos no entiendan de lo que están hablando, (y muchas veces es así)
ellos certificarán tu trabajo.
6.-Prueba tu programación con otros que no conocen de lo que
se trata el proceso. Estos últimos son los mejores: Presionan teclas donde
antes no existían.
7.-Admite tu errores si fuese necesario. La gente respeta a
los honestos. Si esta vez te equivocaste, cuando estés en lo acertado, se detendrán
a escuchar tu opinión, porque saben que eres alguien que habla con honestidad.
8.-Pide ayuda a otros programadores si te sientes atascado. Eso
no te hace menos.
9.-Busca lo simple. A veces en un arranque de virtuosismo
técnico complicamos las cosas.
10.-Las cosas visualmente agradables son bien recibidas.
Cuida la estética, la ortografía y tu presentación personal. Es necesario saber
vender nuestro trabajo.
Si te pareció interesante,
reenvíalo a un amigo haciendo click en el sobrecito que está al final del
artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Autor: Ing. Liliana Suárez
Sunday, September 11, 2011
Migraciones y Base de Datos.
Tradicionalmente el programador
de RPG no trabaja con base de datos. Los archivos físicos son creados vía DDS y
luego se crean los lógicos que constituyen, en la mayoría de los casos, índices
de búsqueda y acceso pero no claves del archivo.
Cuando se va realizar migraciones
desde archivos en plataforma AS400/Iseries que no han pasado por el manejador de Base
de Datos DB2, podemos conseguir dificultades a la hora de migrar hacia plataformas
como Oracle, MySQL, y otras.
Para no quedar fuera de las bases
académicas y de la vanguardia tecnológica es importante que los programadores y
analistas en RPG, retomen los conceptos de normalización de base de datos y
desarrollen sistemas basados realmente en manejadores de base de datos relacionales que
permiten en forma automática proteger y controlar la integridad y consistencia de la data. Hacer el cambio
desde archivos DDS hacia tablas basadas en DB2 es de importancia fundamental.
Por ejemplo, un error común en el
cual se incurre frecuentemente es en el caso clásico de dos archivos como son el encabezado
y el detalle de facturas. Muchas veces se incurre en el error de “amarrar” el
encabezado con sus detalles a través de un número de factura y decir que esa es
la clave. Esa puede ser la clave para el encabezado pero no para los detalles
de la factura puesto que no es posible distinguir un detalle de factura de otro
detalle sólo con el Número de factura. Se requiere además un número consecutivo
de detalle o el código de artículo o cualquier otro campo que unívocamente
identifique un detalle de factura. Como la relación entre archivos no se maneja
como una base de datos, entonces el programador dentro del código de su programa,
lee todos los detalles, totaliza las cantidades o los ítems facturados y luego
graba el encabezado con esta información.
Sunday, August 21, 2011
Otra Nota sobre el Trigger.
Un trigger es un atributo de un archivo físico que permite al manejador de Base de datos del AS400 ejecutar un programa en el mismo instante que se haga algún cambio sobre ese archivo. El comando para agregar un trigger a un archivo físico es: ADDPFTRG.
Podemos especificar que queremos que se ejecute un programa X (elaborado por nosotros) antes o después de añadir, eliminar o modificar un registro en el archivo físico sobre el cual estamos ejecutando el trigger. Este programa es desarrollado por nosotros como programadores del sistema, los parámetros de entrada se cargan automáticamente con los valores que el sistema operativo le transfiere. Nosotros no debemos hacer nada más que declarar el nombre del programa en el comando ADDPFTRG. No es necesario especificar los parámetros en este comando. El Sistema operativo, asume que el programa tiene DOS parámetros de entrada.
Importante: El programa que especificamos al incluir un trigger sobre un archivo físico debe tener declarados internamente, dos parámetros de entrada. Estos parámetros son definidos en detalle dentro de una DS (en la hoja E) dentro del programa que nosotros hacemos.
En estos parámetros de nuestro programa, el sistema operativo carga entre otras cosas: nombre del archivo que se ha modificado, Librería, longitud del registro, numero de campos, etc. El sistema operativo entrega en estos parámetros la data residente en el registro antes y después de haber sido alterado. Luego dentro del programa nos corresponde a nosotros como programadores hacer lo que nos interese con la información sobre la data alterada en el archivo.
La duda sobre el uso del trigger reside principalmente en conocer cómo son los parámetros de entrada que debemos declarar en el programa.
En este enlace:
http://www.tylogix.com/Articles/TriggerTechniquesRevisited.htm
Explican detalladamente como declarar la estructura de datos que “desglosa” las posiciones de los parámetros de entrada que entrega el sistema operativo al programa que hemos elaborado. También se explica como recuperar la data del registro modificado antes y después del cambio realizado.
En este blog iseriesvenezuela, también se publicó un artículo anteriormente donde hace referencia a otro enlace que también da su versión de la definición de los parámetros de entrada que debe declararse en el programa.
Este es el enlace dentro de este mismo blog:
http://iseriesvenezuela.blogspot.com/2009/07/que-es-un-trigger.html
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Sunday, August 14, 2011
Monitoreo de errores en programas CLP
Usualmente el comando MONMSG es utilizado por la mayoría de los programadores para colocar códigos de error conocidos y predecibles. Por ejemplo, en un programa CLP al agregar una librería en la lista de librería y la librería puede que ya exista en la lista, entonces monitoreamos el error CPF2103, para que el programa no se detenga y continúe el proceso.
Es posible la existencia de procesos cuyos errores no son predecibles a simple vista por el programdor y que pueden detener el programa, quedando a expensas de la acción del operador en ese momento. Una vez producido el error y abortado el programa, es necesario revisar el log del job que arroja el sistema operativo para descubrir cual fue el error. El proceso de búsqueda de errores puede volverse engorroso y largo y en algunos casos cuando el log del sistema o los listados del job son eliminados de un día para otro (en forma manual o automática) se pierde el rastro del error.
La siguiente rutina permite capturar el Identificador de mensaje y su descripción, para aquellos mensajes que emite el sistema operativo en caso de errores inesperados para el programador. Se está provocando un error a manera de ejemplo con el comando RMVM (remover miembro de un archivo) en una librería y archivos ficticios.
El Id del error y su texto son capturados en variables del programa y pueden ser grabado posteriormente en un archivo físico de log de errores creado por el programador para su posterior revisión.
Monitoreo de Mensajes de error
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Monday, July 25, 2011
Cambiar el color de los botones de pantalla en RPG
(Haz Click en la imagen para agrandarla)
En la modernización de las pantallas en RPGLE, el uso de botones es una de las maneras de agilizar el acceso a la información. A veces es necesario cambiar el color de un botón de acceso para marcarlo como “Seleccionado”, emulando lo que se hace en las ventanas y pantallas de Windows.
Para el caso del RPGLE, no es posible cambiar el color del botón directamente sino que debe hacerse a través del cambio de color del texto del botón.
En la imagen pueden ver tres ejemplos de cambio de color. Cuando es un botón de selección múltiple se ve perfectamente. A continuación pueden descargarse el programa prototipo en código fuente. Cada programador puede hacer las adaptaciones necesarias según su conveniencia.
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Saturday, July 9, 2011
Dos utilidades Interesantes
En este artículo vamos a hacer referencia dos utilidades interesantes.
Primera Utilidad:
La utilidad QCLSCAN nos permite realizar la búsqueda de un patrón en un string de caracteres dentro de un programa CL. No es necesario invocar un programa RPG para determinar si una secuencia de caracteres está presente en una variable alfabética. Esta herramienta se halla en la librería QSYS y viene con el release V5RX del iseries.
Pueden descargar código en CL con un ejemplo de uso del QCLSCAN, con sus parámetros correspondientes.
La segunda utilidad se refiere a la validación de cualquier formato de fecha que este almacenado en una variable o campo de ocho posiciones numéricas. Esto es particularmente útil para ciertos archivos y bases de datos antiguos y no utilizan campos de tipo fecha (tipo ‘D’). Este programa consta de tres parámetros.
a.-) La fecha a ser validada
b.-) El formato de la fecha a ser validada
c.-) Indicador de Error en la validación
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Saturday, June 18, 2011
Carta Estructurada de un Proyecto (o Sistema)
La Carta Estructurada del Proyecto consiste en un diagrama jerárquico modular basado en una metodología de desarrollo de sistemas TOP-DOWN.
Top-Down, significa, partir de lo mas general hacia lo mas detallado. Es un proceso análogo al de armar un rompecabezas en el sentido de ver primero la imagen ver primero el concepto o la imagen general, y a partir de alli comenzar a detectar donde va cada pieza dentro de la imagen. La diferencia es el recorrido jerarquico y modular que se realiza en su elaboración.
Un Módulo es un subsistema que agrupa funcionalmente programas, objetos, herramientas y , bases de datos según su funcionalidad y objetivos vinculantes. Por ejemplo, el objetivo de un modulo de nomina es generar el pago a los empleados, el objetivo de un modulo de compras es proveer a a la empresa de material necesario para su funcionamiento y así sucesivamente.
En la imagen pueden ver un ejemplo sencillo de Carta Estructurada del Proyecto. Se refiere a la Carta Estructurada de un proyecto de Sistema de Control de Distribución para el manejo de Inventario. (Haz Click sobre la imagen para agrandarla)
La Carta estructurada del proyecto es denominada también “modelo del producto”. Es importante diseñar la carta estructurada del proyecto antes de comenzar el proceso de diseño de un sistema de software. El software que desarrollamos es un producto, al igual que cualquier otro producto comercializable que requiere un tiempo y proceso de elaboración.
Partiendo de un concepto general, se van desglosando los módulos y submódulos relacionados hasta llegar a un nivel donde es posible diferenciar las actividades de trabajo. La carta estructurada del proyecto permite distribuir las actividades entre los analistas, desarrolladores, jefes y gerentes involucrados en el desarrollo del proyecto. Esta carta estructurada precede a la elaboración de un Diagrama de Gantt.
La Carta estructurada hace posible que cada participante entienda su función dentro de un contexto integral. Además, es sencillo reconocer las interrelaciones de los módulos y preveer el desarrollo de interfases entre los mismos, cuando se tiene claro el contingente de módulos, submódulos y jerarquías. La definición de las bases de datos puede hacerse con mayor claridad cuando tenemos que decidir si la misma entidad es compartida por varios módulos y solo hay que variar los valores de sus claves de acceso o si se trata de entidades separadas según su funcionalidad y la clase de información que contienen.
Hay una herramienta CASE que se llama Visible Analyst que permite modelar análisis estructurado y orientado a objetos. Funciona bajo la plataforma Windows y es muy útil para apoyar la labor de los analistas de sistemas. Pueden descargarla por Internet.
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Friday, May 27, 2011
Actualizando las Pantallas Verdes: O cambiamos o nos cambian
A medida que van surgieron nuevas versiones (release) del As/400 para los que programamos en RPG y sus utilidades, hemos visto como ha ido evolucionando el despliegue de pantallas y sus facilidades de navegación a través de las distintas opciones. Aparecen los pulldown menús que permiten imitar el comportamiento de los menús en la barra superior de Windows. Aparecen los botones, el uso del Mouse, la barra de desplazamiento lateral a la derecha del subfile, posibilidad de acomodar las ventanas de consulta que tradicionalmente eran fijas y una cantidad de facilidades de color, graficación e interactividad con el usuario.
Los desarrolladores debemos adaptarnos al cambio, y dejar de lado en los nuevos desarrollos las tradicionales teclas FX (F3, F6, F5) para procesamiento de data e incorporarnos al uso de las nuevas funcionalidades del SDA en las nuevas aplicaciones.
Es importante no quedarse atrás, mas temprano que tarde llegan a nuestras manos aplicaciones desarrolladas por las nuevas generaciones y aplicaciones de tecnologías mas avanzadas que utilizan técnicas mas efectivas y ágiles de interactividad con el usuario.
Considero que estamos en un momento de transición muy importante en el cual “O cambiamos o nos cambian”.
Pueden ver ahora botones que sustituyen el F6, utilizado tradicionalmente para Agregar data, y el Enter o F5 utilizado para grabar información y el F3 utilizado tradicionalmente para salir del programa.
Como hecho curioso o simpático, recientemente me tocó trabajar con alguien que estaba comenzando a incursionar en el uso de botones en el AS/400. Este desarrollador coloco como texto del botón: F3=Salir en lugar de colocar directamente: SALIR. Los momentos de transición son así, temporalmente tendemos a unir los viejo con lo nuevo. Lo importante es estar dispuestos a cambiar y seguir hacia adelante.
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Sunday, May 15, 2011
Seguridad de Acceso al AS/400
Existen aplicaciones desarrolladas en el As/400 que crean su propio sistema de seguridad. Estas aplicaciones crean sus propias tablas de usuario, sus claves de acceso y, en base a su propia definición de usuario permiten o restringen el acceso a opciones de menú o incluso a opciones de actualización de data una vez ingresado el usuario dentro de la aplicación.
Si el usuario deja su pantalla abierta para tomarse un café retirándose de su puesto de trabajo, cualquier persona que haya tenido acceso a las tablas de la aplicación puede ingresar a la pantalla del usuario y alterar la información sin dejar rastro. Es decir, deja rastro en cuanto a que el usuario que dejó su pantalla abierta queda registrado en la base de datos de la aplicación pero en realidad se achaca a un usuario “inocente” la realización del cambio. Coloco “inocente” porque es responsabilidad del usuario bloquear el acceso a su equipo cada vez que abandona su puesto de trabajo.
El AS/400 tiene el siguiente comando CHKPWD. Este comando es muy valioso y puede sustituir la necesidad de desarrollar sistemas de seguridad en las aplicaciones. Cuando un usuario va a ingresar al sistema AS/400 lo hace con su usuario y clave asignados según el departamento de Seguridad de Datos de la empresa. Una vez dentro de una aplicación (Cuentas por cobrar, Facturación etc.). La aplicación puede solicitar a través de una pantalla que el usuario ingrese su clave de acceso al AS/400 para permitirle acceder o no a las opciones del menú de una aplicación.
Se declara el campo en pantalla tipo “password” y se monitorea el error que da el comando CHKPWD cuando la clave no es válida.
Por ejemplo:
CHKPWD PASSWORD(MAYDAY1)
Este comando verifica si la clave del usuario actual es MAYDAY1.
Se monitorean los siguientes errores:
CPF2362
Password not correct. (Clave incorrecta)
CPF2363
Only 1 attempt left to check password. (Queda solo un intento para verificar clave)
CPF2364
Maximum number of attempts to check password reached. (Se alcanzó el máximo numero de intentos permitidos)
El comando CHKPWD permite verificar si la clave cargada en la pantalla de la aplicación corresponde a la clave del usuario en AS/400. Si no es así el comando arroja un error y, monitoreando este error, la aplicación puede detectar que el usuario que intenta acceder a la aplicación no es el mismo que ingresó inicialmente al As/400 con la seguridad que provee el sistema operativo del equipo. Puede enviarse un mensaje de alerta al realizar varios intentos no validos. En ese momento, monitorear el mensaje CPF2364 y enviar un mensaje automatizado al personal de seguridad de la información puede facilitar que se capture en el sitio al intruso que trata de ingresar al sistema.
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Sunday, April 17, 2011
Optimizando el uso del espacio y el tiempo de Respuesta. Member Files.
Tanto quienes emplean DB2 para crear archivos como quienes se manejan a través de DDS, utilizan los valores por omisión para crear archivos físicos. En los valores por omisión el sistema operativo establece que el archivo va a tener un solo miembro.
Los archivos lógicos que son creados posteriormente, “apuntan” a ese miembro.
Un miembro es un espacio del archivo físico, al cual se le asigna un nombre para guardar información relacionada entre si. Por ejemplo, si deseo guardar la información contable del mes de ENERO, realizo un ADDPFM (añadir miembro) y lo llamo enero. Entonces el archivo físico tendrá un “sector lógico” asignado al mes de enero. Cuando ejecuto un programa que graba sobre ese archivo, dependiendo de la fecha de la data, puedo realizar un ovrdbf sobre el miembro ENERO y todos los write/update van a grabar en ese “sector” del archivo físico.
A medida que pasan los años, la data va creciendo y se va almacenando en el archivo, información de hace 3,5,8,10 y mas años.
Los procesos nocturnos generalmente requieren o lo registros del día o del mes. En casos excepcionales o en cierres anuales se necesita la información de todo un año.
Los procesos nocturnos se hacen cada vez mas lentos, y comandos como Reorganizar archivo RGZPFM, para reutilizar el espacio dejado por registros eliminados y CHGPF con reuse = *yes van perdiendo efecto. La reacción inmediata de los líderes de proyectos y analistas de desarrollo es impedir o limitar la creación de archivos lógicos. Se ejecutan entonces sentencias SQL y Queries, tratando de no incrementar los tiempos de respuesta. Mientras tanto los archivos siguen creciendo a medida que el tiempo pasa y eventualmente todas las curas provisionales que hemos colocado nos dejan igual que hace un año cuando se pudo “contener” el problema sin resolverlo en realidad.
En varias organizaciones donde los sistemas tienen varios años funcionando, se ha optado por trabajar con más de un miembro en un archivo. Cada miembro almacena data de un intervalo de años definido por la gerencia.
Este método de utilizar miembros agilizaría los procesos diarios que requieren un tiempo de respuesta rápido. En lugar de direccionar los lógicos a un miembro que contiene data de hace 15 años, se direcciona el lógico a un miembro que contiene data del año en curso. El tiempo de respuesta se acelera dramáticamente.
Puede ser que, en los procesos de apertura del nuevo año, se debe incorporar, para los archivos de data que están en esta modalidad, una evaluación automatizada que añada el miembro que sea necesario si se da el caso. Por supuesto, con un sistema parametrizado, no sería necesario recompilar todos los programas RPG, CLP e ILE RPG involucrados.
No habría que modificar programas de consulta, mantenimientos ni reportes en RPG habría que agregar mas bien rutinas modulares utilizables por cualquier programa que sean capaces de realizar el ovrdbr al miembro que se necesita según la información solicitada por el usuario. Con este sistema, se tiene en disco la data activa y puede cumplirse con normas gubernamentales rápidamente sin tener que bajar y subir backups.
Autor: Ing. Liliana Suárez.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Si te pareció interesante el artículo reenvíalo a un amigo, haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Thursday, March 31, 2011
Tuesday, March 8, 2011
Wednesday, March 2, 2011
Sunday, February 20, 2011
Subscribe to:
Posts (Atom)