AS/400 - Ayuda en Programaciòn CLP

 
Vista:

Ayuda en Programaciòn CLP

Publicado por Francisco Delgado (45 intervenciones) el 07/04/2010 19:08:10
Hola buenas tardes, disculpen la molestia pero necesito ayuda de un experto y encontre esta pagina.
Bueno ,, lo que necesito y claro si me pueden ayudar por favor con lo siguiente:

Tengo un programa que realiza el reseteo de usuarios en AS400, pero este CL lo ejecuta un help de la empresa donde trabajo, pero me solicitaròn
si lo puedo hacer mediante un menu para que ellos ya no ejecuten este CL de forma manual.

El favor que te solicito es el sig. como puedo hacer para que este programa sea parte de una opcion de menu y que cuando digiten la opcion pregunte
que usuario sera al que se le realice el reset ??

Programa que ejecuta el reset.

/* PROCESO ESPECIAL CAMBIO REALIZADO POR EDUARDO MALDONADO */
PGM PARM(&SOLIC)
DCL VAR(&SOLIC) TYPE(*CHAR) LEN(10)
DCL VAR(&PREF) TYPE(*CHAR) LEN(5)
CHGVAR VAR(&PREF) VALUE(%SST(&SOLIC 1 5))
/* SOLICITUD DE JUNA MANUEL 17 JUL 00 */
IF COND(&SOLIC = QSECOFR) THEN(GOTO CMDLBL(NOAUT))
IF COND(&SOLIC = ADMONSEC) THEN(GOTO +
CMDLBL(NOAUT))
IF COND(&SOLIC = SOPORTEEM) THEN(GOTO +
CMDLBL(NOAUT))
IF COND(&PREF = SOPOR) THEN(GOTO CMDLBL(NOAUT))
IF COND(&PREF = OPERA) THEN(GOTO CMDLBL(NOAUT))
NORMAL: CHGUSRPRF USRPRF(&SOLIC) PASSWORD(&SOLIC) PWDEXP(*YES +
STATUS(*ENABLED)
MONMSG MSGID(CPF2204) EXEC(GOTO CMDLBL(NOESTA))
GOTO CMDLBL(CAMBIO)
IGUAL: CHGUSRPRF USRPRF(&SOLIC) PASSWORD(&SOLIC) PWDEXP(
STATUS(*ENABLED)
MONMSG MSGID(CPF2204) EXEC(GOTO CMDLBL(NOESTA))
GOTO CMDLBL(CAMBIO)
NUNCA: CHGUSRPRF USRPRF(&SOLIC) PASSWORD(&SOLIC) PWDEXP(*NO) +
STATUS(*ENABLED) PWDEXPITV(*NOMAX
MONMSG MSGID(CPF2204) EXEC(GOTO CMDLBL(NOESTA))
GOTO CMDLBL(CAMBIO)
/* NOESTA: SNDMSG MSG('* * * ATENCION * * * EL USUARIO ' *CAT +
&SOLIC *CAT ' NO EXISTE |||') TOUSR(QSYSOPR/ */
NOESTA: SNDPGMMSG MSG('* * * ATENCION * * * EL USUARIO ' *CAT +
&SOLIC *CAT ' NO EXISTE |||')
GOTO CMDLBL(FIN)
NOAUT: SNDPGMMSG MSG('*** NO TIENE AUTORIDAD PARA CAMBIAR AL +
USUARIO ' *CAT &SOLIC *CAT ' ***')
GOTO CMDLBL(FIN)
CAMBIO: SNDPGMMSG MSG('*** CAMBIO EFECTUADO PARA: ' *CAT +
&SOLIC *CAT ' ***')
FIN: ENDPGM


Programa al que se le necesita adicionar la opcion, puede ser en la opcion 2.
Pero que tengo que hacer ??? para que la opcion2 pueda preguntar que usuario y asi poderlo resetear ??

PGM
DCLF FILE(SOPORTE/DSPUSER)
DCL VAR(&USRPRF) TYPE(*CHAR) LEN(8)
ADDLIBLE LIB(SOPORTE)
MONMSG MSGID(CPF2103)
CICLO: +
SNDRCVF
IF COND(&OPCMENU = 1) THEN(DO)
? DSPUSRPRF TYPE(*BASIC) OUTPUT(*) OUTMBR(*FIRST *REPLACE)
MONMSG MSGID(CPF6801)
ENDDO
IF COND(&OPCMENU = 2) THEN(DO)
GO MAIN
ENDDO
IF COND(&OPCMENU = 3) THEN(DO)
? WRKUSRJOB
MONMSG MSGID(CPA0701)
MONMSG MSGID(CPF6801)
ENDDO
IF COND(&OPCMENU = 5) THEN(DO)
SIGNOFF
ENDDO
GOTO CMDLBL(CICLO)
FIN: +
ENDPGM

Por tu ayuda muchas gracias.

Saludos

Francisco Delgado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda en Programaciòn CLP

Publicado por juan carlos (2 intervenciones) el 09/04/2010 12:24:14
Hola Francisco.
Podrias hacer un programa, no se si manejas RPG, COBOL..., donde puedes preguntar el usuario y luego haces un CALL a las CL's.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en Programaciòn CLP

Publicado por Francisco Delgado (45 intervenciones) el 09/04/2010 16:38:42
Gracias por tu respuesta Juan Carlos, sinceramente no programo en RPG ni en COBOL, estos programas fueron realizados por otras personas y lo unico que quiero hacer es que mediante la opcion 2 del segundo programa me pueda hacer el llamado del usuario y ejecutarlo con el programa 1.

De cualquier manera muchas gracias

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en Programaciòn CLP

Publicado por Jesús Acuña (10 intervenciones) el 13/05/2010 22:05:12
Estimado Francisco una forma practica (y rápida) sería incorporar las siguientes instrucciones en tu programa:

DCL &USER *CHAR 10
SNDUSRMSG MSG('Por favor ingrese el usuario del que +
desea resetear el perfil?') MSGRPY(&USER)
Call PROG1 PARM(&user)

donde PROG1 es el programa de reseteo, de la siguiente manera:

PGM
DCLF FILE(SOPORTE/DSPUSER)
DCL VAR(&USRPRF) TYPE(*CHAR) LEN(8)
DCL &USER *CHAR 10
ADDLIBLE LIB(SOPORTE)
MONMSG MSGID(CPF2103)
CICLO: +
SNDRCVF
IF COND(&OPCMENU = 1) THEN(DO)
? DSPUSRPRF TYPE(*BASIC) OUTPUT(*) OUTMBR(*FIRST *REPLACE)
MONMSG MSGID(CPF6801)
ENDDO
IF COND(&OPCMENU = 2) THEN(DO)
SNDUSRMSG MSG('Por favor ingrese el usuario del que +
desea resetear el perfil?') MSGRPY(&USER)
Call PROG1 PARM(&user)
GO MAIN
ENDDO
IF COND(&OPCMENU = 3) THEN(DO)
? WRKUSRJOB
MONMSG MSGID(CPA0701)
MONMSG MSGID(CPF6801)
ENDDO
IF COND(&OPCMENU = 5) THEN(DO)
SIGNOFF
ENDDO
GOTO CMDLBL(CICLO)
FIN: +
ENDPGM

Sin embargo mucho más serio y profesional sería diseñar un pequeña pantalla de ingreso de datos que lo podría manejar el programa de reset, pero para ello necesitarías conocimientos del utilitario del SDA y un mejormanejo de CL.

Espero haberte ayudado algo.

Jesús Acuña
www.cursos-as400.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en Programaciòn CLP

Publicado por Francisco (45 intervenciones) el 14/05/2010 16:50:45
Muchas Gracias Jesùs eres muy amable, voy a tratar de ponerlo en practica para ver si me funciona.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en Programaciòn CLP

Publicado por Patricia Espinoza (5 intervenciones) el 28/05/2010 02:40:35
Hola Francisco, avisame si aún tienes el problema?.. Porque lo que tendrias que hacer es lo siguiente:

1.- Crear una Pantalla para que pida usuario.
2.- Modificar tu CLP y llamamos la pantalla
3.- Crear un Menu o adicionar la opcion a un menu ya existente donde llamas a tu CLP.

Es todo es facil y sencillo.

Escribeme si aun estas interesado.

Patricia E.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda en Programaciòn CLP

Publicado por Francisco Delgado (45 intervenciones) el 01/09/2010 17:25:17
Hola Paty buenos dias,,, sigo aun sin poder terminar el programa,, y si quisiera contar con tu ayuda,,, en cuanto te sea posible me puedes regalar un correo a [email protected]
Gracias y Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar