lunes, 31 de octubre de 2011

Cumplimos 1 año

Esta semana, en el Consultorio Cobol estamos de cumpleaños.
Concretamente el día 2 de Noviembre hace un año que creamos el blog, con los artículos de los programas de cruce. ¡Quién nos iba a decir que aguantaríamos tanto!

Aun recuerdo la cara que pusieron algunos cuando les enseñamos el blog, algo así como "qué gente más rara mejor me vuelvo a mi sitio a trabajar..." jajaja.

Un blog de COBOL y demás mundo mainframe no es que vaya a ser muy popular, pues se trata de un tema muy concreto que afecta sólo a los profesionales del sector. Ni siquiera se estudia en la universidad.
Pero ver las estadísticas del blog, siempre nos ha dado ánimos para seguir, pues hemos ido creciendo cada vez más a lo largo de este año. Ver en el analytics que la gente busca en google "outrec consultorio cobol" en vez de solamente "outrec", nos hace pensar que empiezan a buscarnos a nosotros : )

A todos vosotros, gracias, porque realmente hay mucho trabajo detrás de cada artículo, y no hay mejor recompensa que ver que has ayudado a alguien.

Queremos aprovechar nuestro cumple para compartir con vosotros "el Consultorio Cobol en números", para hacer recuento de lo que ha sido este primer año (pues queremos que haya más!).


Las cifras del año

36.035   Visitas
20.828   Visitantes exclusivos
89.827   Páginas vistas
2,49     Páginas/visita
00:03:10 Promedio de tiempo en el sitio
65,85%   Porcentaje de rebote
57,68%   Porcentaje de visitas nuevas



El Mapa del año


Y este es el Top 10 de países, de un total de 76:
  1. España         19.507
  2. México          3.879
  3. Estados Unidos  2.418
  4. Argentina       2.176
  5. Perú            1.746
  6. Chile           1.625
  7. Colombia        1.099
  8. India             572
  9. Venezuela         417
  10. Brasil            268


Lo más buscado del año

Aquí va el Top 10 de un total de 14316 búsquedas distintas.
  1. consultorio cobol    1.968
  2. consultoriocobol       286
  3. icetool                160
  4. outrec                 124
  5. outfil fnames           92
  6. icetool splice          86
  7. sort outrec             80
  8. consultoriocobol.com    72
  9. sort sum                72
  10. errores db2             70


Las referencias del año

Estas son las 10 páginas de enlace al Consultorio Cobol que más visitas nos han dado, de un total de 183 enlaces.
  1. es.wikipedia.org  1.017
  2. draft.blogger.com   885
  3. google.es           755
  4. facebook.com        598
  5. blogger.com         499
  6. dinoland.com.ar     318
  7. google.com          174
  8. google.com.ar       166
  9. google.cl           138
  10. google.com.pe       101


Lo más leído del año

Este es el Top 10 de las páginas más visitadas del Consultorio.
  1. www.consultoriocobol.com               14.896
  2. JCL                                     4.970
  3. Sort vol.2: OUTREC.                     2.968
  4. COBOL                                   2.896
  5. Errores de JCL                          2.826
  6. Principiantes COBOL                     2.414
  7. Errores DB2                             2.319
  8. WORKING-STORAGE: definiendo variables.  1.629
  9. DB2                                     1.610
  10. ICETOOL(I): SPLICE; Cruce de ficheros.  1.546

A título personal, yo (Tallian), como la pesada que siempre suelta estos rollos en el blog, quiero dar las gracias a mis compañeros y amigos, Pepe, Loboc, Trafuga y Alvarito. Pues este blog es la suma del trabajo de todos, cada uno en lo suyo, y sin ellos no habría sido posible. Gracias monos : )

Sólo queda decir:

miércoles, 26 de octubre de 2011

¿Buscas trabajo? Solución, java y cobol

Con una tasa de paro del 20% y un desánimo generalizado en lo referente a cuestiones laborales, buscar trabajo puede ser una tarea más desesperante que buscar agua en el desierto. Sin embargo, según el artículo de Finanzas, los más insistentes y avezados siempre pueden encontrar un oasis y el del desierto laboral actual parece estar en el sector de las tecnologías de la información.

En sector se pueden encontrar tanto pequeñas empresas que intentan hacerse un hueco en el espectro “on-line”, como grandes compañías con ambiciosos planes de crecimiento, sedientas de contratar nuevos empleados. La cartera de Marcel Rafart Vicent, general partner del fondo de capital riesgo Nauta Capital, define muy bien la tendencia de este sector: “Participamos en 20 compañías, que habrán creado más de 3.000 puestos de trabajo en los últimos años. Por ejemplo, cuando entramos en Privalia (el portal de ventas de ropa), facturaba unos cuatro millones de euros con 40 empleados. Ahora factura 300 millones con unos 900 empleados”, explica.

Según la experiencia de Luis Krug, un emprendedor “on-line” que ha pasado por varios proyectos como BuyVIP y otros, es muy descriptiva: “Nos cuesta trabajo encontrar empleados de cierto nivel en España. Falta cualificación en este país para el desarrollo de ciertos negocios”. Actualmente, Krug es consejero delegado de Oooferton.com, un portal de compras por Internet. El crecimiento del sector en nuestro país es innegable, pero a los i-empresarios les cuesta encontrar en España el perfil de empleado que buscan.

Los expertos de Adecco también han detectado este obstáculo. “Este año hemos notado más movimiento en el sector y aunque tenemos un buen número de personas que encajan en el perfil que se busca, muchos de ellos ya están trabajando y son reacios a moverse, salvo que haya una buena oferta económica”, asegura Arancha González, directora de Adecco IT en Madrid.

Y es que existe una fuerte demanda de trabajadores que no se está viendo satisfecha. Por tanto, las empresas son capaces de pagar una prima para contratar a las personas con los perfiles más demandados. Es posible que no tanto como en la época dorada que precedió a la burbuja tecnológica, ya que las inversiones ahora son más prudentes. Sin embargo, se premia con buenos sueldos a los perfiles más demandados. Según datos de Randstad Professionals ITC, las remuneraciones pueden oscilar entre los 40.000 y los 70.000 euros brutos anuales. Aquí añadimos, desde nuestra experiencia en el sector, que las remuneraciones pueden oscilar desde los 15.000 euros (marcados como mínimo en convenio y aplicado por muchas empresas) hasta el infinito y mas allá (ganado por una minoría del sector).

¿Quién puede acceder a este sector? Desde Randstad mencionan ingenieros de telecomunicaciones, programadores, informáticos, etc… Fundamentalmente, perfiles técnicos. González, de Adecco asegura que “lo que más se está demandando son programadores de java". Por tanto, los ingenieros informáticos y expertos en sistemas y redes están de enhorabuena. Si además cuentan con formación y experiencia específica en lenguaje Java o Cobol, mucho mejor.

Adecco ya advirtió a principios de año que este tipo de perfiles estarían entre los más buscados de 2011. Y así está siendo. Los requisitos de formación que se piden son estudios medios de Formación Profesional o carrera universitaria de informática técnica o superior y se valora mucho el dominio del inglés. Con respecto a años de experiencia, el informe de la consultora aseguraba que “su fuerte demanda hace que con sólo un año de experiencia, un programador JAVA pueda incorporarse fácilmente al mercado laboral”.

El mercado está en movimiento. Basta hablar con cualquier informático para comprobar que su realidad laboral es muy diferente de la del resto de sectores. Y parece que esta buena racha se va a mantener en este sector. Desde Randstad, consideran que la demanda de este tipo de profesionales se van a demandar en mayor proporción durante los próximos años. Puede que todavía no sea tarde para empezar a formarse.

Si decidís formaros en este sector, os recomendamos que echéis una ojeada al estudio de mercado en el sector que hicimos en Consultorio Cobol, ya que ciertas tecnologías son demandas en todo el territorio nacional mientras que otras practicamente están concentradas en unas pocas ciudades.

Artículo Finanzas

CONSULTIRAS 26: "Espera, larga espera..."

Seguramente, a muchos de los que estáis viendo esto ahora mismo, os ha pasado algo parecido...


(Pinchad en la imagen para verla más grande)

jueves, 20 de octubre de 2011

Singapur y Clerity Solutions

Clerity Solutions, el proveedor de servicios completos de migración, modernización y soluciones de optimización para sistemas centrales, anunció que la Bolsa de Singapur (Singapore Exchange, SGX) ha elegido el software UniKix para realojamiento de sistemas centrales de Clerity incluyendo servicios de migración del sistema central para un proyecto de modernización de 3 millones de dólares estadounidenses.

Con una capitalización de mercado de más de 5 mil millones de dólares estadounidenses, la SGX está entre las bolsas más grandes del mundo y la segunda mayor que cotiza en Asia. Conocida como la "Puerta asiática", la SGX es el mercado elegido por los inversionistas que desean participar en las economías asiáticas de rápido crecimiento y por los emisores asiáticos que buscan capital internacional.

Además del software UniKix de realojamiento de sistemas centrales, la SGX utiliza el software vCOBOL Enterprise de Veryant en el proyecto para migrar las aplicaciones CICS de IBM, el código de lotes JCL, los programas COBOL y los datos VSAM intactos de la SGX, al utilizar un enfoque de realojamiento del sistema central que permitirá evitar los costosos cambios de código y permitirá que los clientes de la SGX sigan teniendo acceso al sistema sin necesidad de una reconfiguración.

Los expertos de migración de Clerity completaron recientemente un proceso de evaluación de migración y modernización (Migration and Modernization Assessment Process, MMAP), que brindó a la SGX una comprensión clara de los requisitos técnicos y el impacto comercial completo de la migración desde un sistema central de IBM hacia los sistemas abiertos. El proyecto está ingresando ahora en una fase de implementación y se espera que concluya en el 2012.

Estaremos pendientes desde el Consultorio a los resultados!

Noticia businesswire

miércoles, 19 de octubre de 2011

CONSULTIRAS 25: "Entrevista de trabajo"

Una de las cosas más importantes de una entrevista de trabajo, es el sueldo, y es que mucha gente, por las ofertas tan bajas que le hacen, no se mueven ni del sofá...



(Pinchad en la imagen para hacerla más grande)

lunes, 17 de octubre de 2011

Comandos TSO vol.3: línea de comandos.

En esta tercera parte de comandos TSO, explicaremos los comandos que se usan desde la linea de comandos:

BOOKMARKS en el editor de TSO.
Antes de empezar a comentar estos comandos, haremos una explicación sobre los bookmarks en un editor de texto.
Para poder crear un bookmark en una determinada linea de texto, sobre la columna que indica el numero de linea escribimos . seguido de un literal.
000010 Texto A
.A0011 Texto B
000012 Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
000010 Texto A
.A     Texto B
000012 Texto C
000013 Texto D


Con esto hemos creado un marcador en nuestro texto.
A continuación vamos a ver la utilidad de estos marcadores.


Comandos básicos.

LINE. Comando linea
El comando LINE o de una forma abreviada L, es el primer comando de esta nueva entrega.
Se usa a través de la línea de comando, y su objetivo es ir a una linea concreta de nuestro texto.
Command ===> L 11              
000010 Texto A
000011 Texto B
000012 Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
Command ===>                   
000011 Texto B
000012 Texto C
000013 Texto D


Si tuvieramos un marcador por ejemplo en la línea 12, podriamos usar el comando LINE con el marcador
Command ===> L .A              
000010 Texto A
000011 Texto B
.A     Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
Command ===>                   
.A     Texto C
000013 Texto D



FIND. Busca un texto.
El comando FIND o de una forma abreviada F tiene como objetivo buscar una cadena de texto.
Command ===> F 'Te'              
000010 Texto A
000011 Texto B
000012 Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
Command ===>                   
000010 Texto A
000011 Texto B
000012 Texto C
000013 Texto D


Vamos a combinar el comando FIND con los marcadores anteriormente comentados
Supongamos dos marcadores por ejemplo en las líneas 10 y 12, podemos el comando FIND para buscar texto entre un rango de líneas
Command ===> F 'Te' .A .B        
.A     Texto A
000011 Texto B
.B     Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
Command ===>                   
.A     Texto A
000011 Texto B
.B     Texto C
000013 Texto D


Vamos un poco más allá. Vamos a combinar este comando con el comando BNDS mencionado en el articulo anterior.
Supongamos que queremos buscar una cadena de texto en una porción de texto usaremos el comando FIND con los marcadores y BNDS.
Queremos buscar la t entre las columnas 3 y 6 y entre las líneas 10 y 12.
1.-Tecleamos el comando COLS, para saber las posición de las columnas
2.-Tecleamos el comando BNDS, para establecer el intervalo (de columnas) en el que buscar
3.-Establecemos dos marcadores. Uno en la línea 10 y otro en la línea 12.
4.-Tecleamos el comando F t .A .B
Veamoslo en nuestro editor:
Command ===> F 't'  .A .B        
=COLS> ----+----1---
=BNDS>   <  >                
.A     Texto A
000011 Texto B
.B     Texto C
000013 Texto D


Nos mostraría la siguiente ventana.
Command ===>                   
=COLS> ----+----1---
=BNDS>   <  >                
.A     Texto A
000011 Texto B
.B     Texto C
000013 Texto D





















miércoles, 12 de octubre de 2011

CONSULTIRAS 24: "El precio del trabajo..."

Dinero, la razón por la que se mueve el mundo. Sin esos papeles arrugados o esos metales pesados que llevamos en los bolsillos no podriamos vivir.
Cada uno lo gana como puede, pidiendo, robando, o solucionando problemas y dudas a los demás...


(Pinchad en la imagen para verla más grande)

lunes, 10 de octubre de 2011

Ejemplo 6: programa que llama a otro programa

En este ejemplo vamos a ver un programa que llama a otro programa, denominado rutina, para recuperar información.
Se trata de un programa sin DB2 que recibirá un número de DNI por SYSIN y llamará a una rutina para calcular la letra de dicho NIF. La información recuperada la mostrará por SYSOUT.

JCL:

//PROG6 EXEC PGM=PRUEBA6
//SYSOUT DD SYSOUT=*
//SYSIN DD *
32684930
/*


donde EXEC PGM= indica el programa SIN DB2 que vamos a ejecutar
SYSOUT DD SYSOUT=* indica que la información "displayada" se quedará en la cola del SYSOUT (no lo vamos a guardar en un fichero)
en SYSIN DD * metemos la información que va a recibir el programa


PROGRAMA:

 IDENTIFICATION DIVISION.
 PROGRAM-ID. PRUEBA6.
*==========================================================*
*     PROGRAMA QUE LLAMA A OTRO PROGRAMA (RUTINA)
*==========================================================*
*
 ENVIRONMENT DIVISION.
*
 CONFIGURATION SECTION.
*
 SPECIAL-NAMES.
     DECIMAL-POINT IS COMMA.
*
 DATA DIVISION.
*
 WORKING-STORAGE SECTION.
*

 01 WX-SYSIN.
    05 WX-NUMERO-NIF     PIC X(8).
    05 FILLER            PIC X(72).

 01 WX-RUTINA.
    05 WX-NIF-COMPLETO.
       10 WX-NUMERO-NIF  PIC 9(8).
       10 WX-LETRA-NIF   PIC X.
    05 WX-RETORNO        PIC X(2).
 01 RUTINA1              PIC X(7) VALUE 'RUTINA1'.

*
************************************************************
 PROCEDURE DIVISION.
************************************************************
*  |     00000 - PRINCIPAL
*--|------------------+----------><----------+-------------*
* 1| EJECUTA EL INICIO DEL PROGRAMA
* 2| EJECUTA EL PROCESO DEL PROGRAMA
* 3| EJECUTA EL FINAL DEL PROGRAMA
************************************************************
 00000-PRINCIPAL.
*
     PERFORM 10000-INICIO
*
     PERFORM 20000-PROCESO
*
     PERFORM 30000-FINAL
     .

*
************************************************************
*  |     10000 - INICIO
*--|------------+----------><----------+-------------------*
*  | SE REALIZA EL TRATAMIENTO DE INICIO:
* 1| Inicialización de Áreas de Trabajo
* 2| Lectura de SYSIN
************************************************************
 10000-INICIO.
*
     INITIALIZE WX-SYSIN

                WX-RUTINA

     ACCEPT WX-SYSIN FROM SYSIN

     .
************************************************************
*  |     20000 - PROCESO
*--|------------------+----------><------------------------*
*  | SE REALIZA EL TRATAMIENTO DE LOS DATOS:
* 1| Realiza el acceso a base de datos
************************************************************
 20000-PROCESO.
*

     MOVE WX-NUMERO-NIF OF WX-SYSIN 
       TO WX-NUMERO-NIF OF WX-RUTINA

     CALL RUTINA1 USING WX-RUTINA  

     IF WX-RETORNO EQUAL 'OK'

        DISPLAY 'LA LLAMADA HA IDO BIEN'
        PERFORM 21000-GRABAR-SALIDA
     ELSE
        DISPLAY 'LA LLAMADA HA IDO MAL'
        PERFORM 30000-FINAL
     END-IF
     .

*************************************************************
*  |     21000 - GRABAR - SALIDA
*--|------------------+----------><----------+--------------*
*  | ESCRIBE EN SYSOUT LA INFORMACIÓN RECUPERADA DE LA TABLA
*************************************************************
  21000-GRABAR-SALIDA.
*

     DISPLAY 'NIF COMPLETO:'WX-NIF-COMPLETO

     .

*
************************************************************
*  |     30000 - FINAL
*--|------------------+----------><----------+-------------*
*  | FINALIZA LA EJECUCION DEL PROGRAMA
************************************************************
 30000-FINAL.
*
     STOP RUN
     .


En el programa podemos ver las siguientes divisiones/secciones:
IDENTIFICATION DIVISION: existirá siempre.
ENVIRONMENT DIVISION: existirá siempre.
  CONFIGURATION SECTION: existirá siempre.
  En este caso no existirá la INPUT-OUTPUT SECTION, pues nuestro programa no utiliza ficheros.
DATA DIVISION: existirá siempre.
  En este caso no existirá la FILE SECTION, pues nuestro programa no utiliza ficheros.
  WORKING-STORAGE SECTION: exisitirá siempre.
  En este caso no exisistirá la LINKAGE SECTION pues el programa no es llamado desde otros programas.
PROCEDURE DIVISION: exisitirá siempre.


En el programa podemos ver las siguientes sentencias:
PERFORM: llamada a párrafo
INITIALIZE: para inicializar variable
ACCEPT: esta sentencia recoge la información del campo indicado en el "FROM". En este caso recoge la información almacenada en "SYSIN"; la que nosotros hemos introducido en el JCL.
MOVE/TO: movemos la información de un campo a otro
CALL/USING:es la sentencia que usamos para llamar a una rutina. Después del CALL indicamos el nombre de la rutina que vamos a invocar, y después del USING indicamos las variables de comunicación entre ambos programas.
DISPLAY: escribe el contenido del campo indicado en la SYSOUT del JCL.
IF/ELSE: comprueba si se cumple una condición.
STOP RUN: sentencia de finalización de ejecución.


Descripción del programa:
En el párrafo de inicio, inicializamos las variables que vamos a utilizar a lo largo del programa. Luego mediante un ACCEPT recogemos la información que hemos escrito en la SYSIN de nuestro JOB.

En el párrafo de proceso, informamos el campo WX-NUMERO-NIF del área WX-RUTINA con la información recogida de SYSIN.
Como veis existen dos variables con el mismo nombre. Esto no dará problemas al compilar, mientras las variables pertenezcan a niveles superiores diferentes.
En nuestro caso tenemos un WX-NUMERO-NIF que pertenece a WX-SYSIN, y otro que pertenece a WX-RUTINA. Para utilizar estas variables a lo largo del programa tendremos que indicar a cual de ellas nos referimos, por eso les hemos añadido el "OF WX-XXXXX".

Una vez informada el área de comunicación entre dos programas, procedemos a hacer la llamada en sí con la sentencia CALL/USING.
Se trata de una llamada dinámica, pues el nombre de la rutina está contenido dentro de una variable, así que después de la llamada la rutina será descargada de la memoria.
En las llamadas estáticas el nombre de la rutina se indica entre comillas simpes 'RUTINA1'. En este caso, después de la llamada el módulo queda residente en memoria, porque se integra en el programa objeto.

Para que no haya errores comprobamos que la llamada ha ido bien validando el retorno (informado dentro de la rutina).
Si todo ha ido bien grabamos la información recuperada (NIF con letra) en la SYSOUT mediante un DISPLAY.


RUTINA

 IDENTIFICATION DIVISION.
 PROGRAM-ID. RUTINA1.
*==========================================================*
*     RUTINA QUE CALCULA LA LETRA DE UN NIF
*==========================================================*
*
 ENVIRONMENT DIVISION.
*
 CONFIGURATION SECTION.
*
 SPECIAL-NAMES.
     DECIMAL-POINT IS COMMA.
*
 DATA DIVISION.
*
 WORKING-STORAGE SECTION.
*

 01 WI-INDICES.
    05  WI-IND                            PIC 9(2).
*
 01 WX-VARIABLES.
    05  WX-NIF-DIVID                      PIC 9(8).
    05  WX-NIF-MULTI                      PIC 9(8).
*

 01 WT-TABLAS.
    05 WT-NIF-TABLA                        PIC X(24) 
                              VALUE "TRWAGMYFPDXBNJZSQVHLCKET".
    05 WT-NIF-TABLA-R         REDEFINES    WT-NIF-TABLA.
       10 WT-LETRA-TABLA      OCCURS 24    PIC X.   

*
 LINKAGE SECTION.
*
 01 WX-RUTINA.
    05 WX-NIF-COMPLETO.
       10 WX-NUMERO-NIF  PIC 9(8).
       10 WX-LETRA-NIF   PIC X.
    05 WX-RETORNO        PIC X(2).
*
************************************************************
 PROCEDURE DIVISION USING WX-RUTINA.
************************************************************
*  |     00000 - PRINCIPAL
*--|------------------+----------><----------+-------------*
* 1| EJECUTA EL INICIO DEL PROGRAMA
* 2| EJECUTA EL PROCESO DEL PROGRAMA
* 3| EJECUTA EL FINAL DEL PROGRAMA
************************************************************
 00000-PRINCIPAL.
*
     PERFORM 10000-INICIO
*
     PERFORM 20000-PROCESO
*
     PERFORM 30000-FINAL
     .
************************************************************
*  |     10000 - INICIO
*--|------------+----------><----------+-------------------*
*  | SE REALIZA EL TRATAMIENTO DE INICIO:
* 1| Inicialización de Áreas de Trabajo
************************************************************
 10000-INICIO.
*

     INITIALIZE WX-VARIABLES 
                WI-INDICES
 
     .

*
************************************************************
*  |     20000 - PROCESO
*--|------------------+----------><------------------------*
*  | SE REALIZA EL TRATAMIENTO DE LOS DATOS:
* 1| Realiza el cálculo de la letra del NIF
************************************************************
 20000-PROCESO.
*
     COMPUTE WX-NIF-DIVID = WX-NUMERO-NIF  /  23
     COMPUTE WX-NIF-MULTI = WX-NIF-DIVID  *  23
     COMPUTE WI-IND       = WX-NUMERO-NIF - WX-NIF-MULTI


     ADD 1                       TO WI-IND


     MOVE WT-LETRA-TABLA(WI-IND) TO WX-LETRA-NIF


     MOVE 'OK'                   TO WX-RETORNO
     .

*
************************************************************
*  |     30000 - FINAL
*--|------------------+----------><----------+-------------*
*  | FINALIZA LA EJECUCION DEL PROGRAMA
************************************************************
 30000-FINAL.
*
     GOBACK
     .



En el programa podemos ver las siguientes divisiones/secciones:
IDENTIFICATION DIVISION: existirá siempre.
ENVIRONMENT DIVISION: existirá siempre.
CONFIGURATION SECTION: existirá siempre.
En este caso no existirá la INPUT-OUTPUT SECTION, pues nuestro programa no utiliza ficheros.
DATA DIVISION: existirá siempre.
En este caso no existirá la FILE SECTION, pues nuestro programa no utiliza ficheros.
WORKING-STORAGE SECTION: exisitirá siempre.
LINKAGE SECTION: en este caso sí existirá puesto que se trata de una rutina que es llamada por un programa principal.
PROCEDURE DIVISION: exisitirá siempre.


En el programa podemos ver las siguientes sentencias:
PERFORM: llamada a párrafo
INITIALIZE: para inicializar variable
COMPUTE: realiza cálculos numéricos
ADD: operador de adición (suma)
MOVE/TO: movemos la información de un campo a otro
GOBACK: sentencia de finalización de ejecución para rutinas. Devuelve el control al programa llamante.


Descripción del programa:
En la LINKAGE SECTION definimos el área de comunicación con el programa llamante (PRUEBA6), en este caso WX-RUTINA.
En el párrafo de inicio inicializamos las variables que vamos a utilizar a lo largo del programa.

En el párrafo de proceso hacemos los cálculos necesarios para saber qué letra se corresponde al número de NIF que hemos introducido e informamos con un 'OK' el código de retorno.
En caso de que se produzca un error antes de terminar el proceso, el código de retorno irá vacío, y podremos controlar esta diferencia en el programa llamante.

Una vez calculada la letra del NIF devolvemos el control al programa PRUEBA6 haciendo GOBACK.

RESULTADO:

NIF-COMPLETO: 32684930K




Diferencias entre ambos programas:
LINKAGE SECTION: sólo la rutina (programa que es llamado por otro) tiene variables definidas en esta sección.
PROCEDURE DIVISION: sólo la rutina lleva asociada el área de comunicación entre programas en la procedure, añadiéndole la sentencia USING.
30000-FINAL: el programa principal lleva un STOP RUN de finalización de ejecución, mientras que la rutina lleva un GOBACK para devolver el control al programa llamante (programa que ha hecho el CALL).

Si tenéis cualquier duda sobre el uso de rutinas, ya sabéis, preguntad lo que queráis!

viernes, 7 de octubre de 2011

Futuro del mainframe

Un estudio de BMC Software muestra que el mainframe sigue en plenitud de forma, aunque los usuarios están cada vez más preocupados por su integración en entornos híbridos de proceso.

Los participantes en la Sexta Encuesta Anual para usuarios de Mainframe de todo el mundo realizada por BMC Software han puesto de relieve la importancia del mainframe para operar sus aplicaciones de negocio y servicios y que siguen considerándolo como una plataforma crítica para los centros de datos híbridos en continua evolución.

Algunos de los resultados han sido los siguientes:
El 93% espera que la capacidad crezca o permanezca estable.

El 47% asegura que las nuevas cargas de trabajo y las nuevas aplicaciones de negocio contribuyen al crecimiento de su capacidad.

Un 60% afirma que la principal prioridad continúa centrada en la reducción de costes.

El continuo crecimiento del mainframe demuestra que la plataforma sigue siendo la primera y mejor elección para una informática de alto volumen, segura y fiable. Sin embargo, será la capacidad de integrarlo en un centro de datos híbrido lo que lo convertirán en un elemento diferencial clave para las organizaciones de TI en el futuro. En concreto, el estudio refleja una preocupación creciente por la integración del entorno mainframe con la informática móvil y la nube.

Artículo techweek

miércoles, 5 de octubre de 2011

CONSULTIRAS 23: "Probando la APP del Consultorio"

Aprovechamos que el Consultorio Cobol ha sacado su APP para Android para probarla a fondo...




(Pinchad en la imagen para verla más grande)

lunes, 3 de octubre de 2011

App Consultorio Cobol para Android

En el Consultorio Cobol estamos muy locos y hemos creado una aplicación para facilitar la búsqueda de errores del host. Se encuentra disponible para su descarga en el Android Market:

Link a APP Consultorio

El objetivo de la aplicación es la de consultar los códigos de error producidos en entornos de mainframe. Permite recuperar la descripción de cada código de error totalmente en castellano.

Los errores que se pueden consultar son los referentes a:

-Errores DB2 o SQLCODES
-Errores de JCL
-Errores de sistema
-Errores de fichero o FileStatus
-Errores CICS
-Errores IMS
-Oncodes PL/I

Tiene tres métodos de búsqueda:


- Búsqueda por código de error: Indicando el código, la aplicación te devuelve su descripción. Si el código indicado no lo encuentra, te ofrece una lista de posibles candidatos.

- Búsqueda por voz: Similar a la anterior pero evita teclear.

- Búsqueda por tipo de error: Recupera toda la lista de códigos de error que pertenezcan a un tipo. Por ejemplo, si eliges "Errores DB2", la aplicación te recupera toda la lista de errores DB2.

- Favoritos: - Guarda tus errores habituales en forma de favoritos.

La aplicación es completa, totalmente gratuita y en castellano. No requiere tener conexión a internet.

Os dejo unas capturas de la App:




Que lo disfruten!