Ejecutar Pasos según Fecha OPC

Todo lo referido a Control-M, OPC, etc
duke05

Ejecutar Pasos según Fecha OPC

Mensajepor duke05 » 21 Ene 2011, 07:53

Buenos días

Necesito realizar un proceso y me gustaría hacerlo todo desde Jcl.

Quiero ejecutar un paso u otro de un JCL según la fecha de la OPC que recoja.

Recojo el día de la OPC en una variable
//*%OPC SETVAR TFECH=(OYM-1MO),PHASE=SETUP

y luego tengo que ejecutar un paso u otro del jcl según ese día. Si es del < 10 realizo un proceso si es > 10 realizo otro.

He probado varias cosas pero ninguna ha llegado al objetivo.

He intentado con condicionales en el jcl pero tenía problemas tanto al recoger la variable &TFECH como al llamar al paso que se tenía que ejecutar.

Algo así;

// SET VAR=1
//*------------------------------------------
// IF ( ***** = 10) THEN
//*SIES EXEC PROC=SORT001
// ELSE
//*NOES EXEC PROC=SORT002
// ENDIF



También he intentado realizaro con EXUTU's pero no he llegado a conseguirlo..


¿Se os ocurre alguna manera?

Muchas gracias!

Alejandro D. Cassinelli
Usuario avanzado
Usuario avanzado
Mensajes: 46
Registrado: 07 May 2007, 22:50
País: Argentina
Ciudad: Capital Federal
Ocupación: Implementador
Ubicación: Argentina - Capital Federal

Re: Ejecutar Pasos según Fecha OPC

Mensajepor Alejandro D. Cassinelli » 22 Ene 2011, 23:22

Hola.

El asunto es así:

Si lo único que te interesa es el día (DD) y la fecha es la de planificación de la aplicación en el Current plan tenés que escribir esto en tu JCL:

//*%OPC SETFORM OCDATE=(DD)

Estoy usando la variable OCDATE que contiene el día pero sin formato, el formato se lo estoy dando con el SETFORM del que solo estoy extrayendo el día (DD). Otro ejemplo de SETFORM seria:

//*%OPC SETFORM OCDATE=(CCYY-MM-DD) --> CC por centuria, YY año, MM mes, DD dia.

El IF para el primer ejemplo sería:

Código: Seleccionar todo

//        IF &OCDATE LT 10 THEN
//SIES    EXEC PROC=SORT001
//        ELSE
//NOES    EXEC PROC=SORT002
//        ENDIF



Lo de PHASE=SETUP no se lo que es por eso no lo codifiqué en el ejemplo.

Espero que sea de utilidad.
Alejandro Darío Cassinelli

duke05

Re: Ejecutar Pasos según Fecha OPC

Mensajepor duke05 » 24 Ene 2011, 09:53

Gracias, pero sigo con el mismo problema

A no se que lo haga mal. estoy viendo que no puedo leer la variable que contiene el día.


Me devuelve esto: 13 IEFC016I ERROR IN IF STATEMENT

y es cuando pongo esa variable.


Os pongo como lo tengo puesto el jcl;

//*%OPC SETFORM OCDATE=(DD)


// IF &OCDATE=10 THEN
//SIES EXEC PROC=SORT001
// ELSE
//NOES EXEC PROC=SORT002
// ENDIF


A no se haga algo ma, no parece que sea la manera correcta de leer esa variable.


Gracias.

Alejandro D. Cassinelli
Usuario avanzado
Usuario avanzado
Mensajes: 46
Registrado: 07 May 2007, 22:50
País: Argentina
Ciudad: Capital Federal
Ocupación: Implementador
Ubicación: Argentina - Capital Federal

Re: Ejecutar Pasos según Fecha OPC

Mensajepor Alejandro D. Cassinelli » 24 Ene 2011, 20:09

Te quería comentar algo, como mínimo antes del primer IF en un JCL debe haber un paso, si No necesitas ejecutar ningún paso antes, podés poner esto:

//PARAELIF EXEC PGM=IEFBR14

Es lo menos que se puede poner en un paso y cumplís con las reglas del JCL.

Otra cosa que veo es que no dejás espacio entre la variable OCDATE, el signo igual y el 10, tal vez eso afecte, lo que si poné como mínimo un paso antes del IF y probá.

Otra forma es preguntar por el día (&ODD) de este modo:

//PARAELIF EXEC PGM=IEFBR14
//*
// IF &ODD EQ 10 THEN
//*


Saludos.
Alejandro Darío Cassinelli


Volver a “Schedulers”