Cobol - Como optimizar el desarrollo?

 
Vista:

Como optimizar el desarrollo?

Publicado por Nico (5 intervenciones) el 11/03/2010 23:31:11
Hola les escribo para saber cual seria la mejor manera de programar el siguiente ejercicio de la manera mas optima y visible para que pueda entenderlo mejor!!

muchas gracias!!!

PROGRAMA: FSCAEJE0

APORTES: E1DQAPO0

 CODIGO DE CLIENTE (8)
 FECHA DE APORTE (8) AAAAMMDD
 IMPORTE (8)V(2)

MOVIMIENTOS: E2DQMOV0

 CODIGO DE CLIENTE (8)
 FECHA DE MOVIMIENTO (8)
 COMISION (8)V(2)

Se pide realizar un apareo de N a N, verificando que cada cliente(APORTES) encuentre su fecha de aporte en el archivo de movimientos. En el caso de que se cumpla la igualdad, restar la comision al importe y grabar en archivo de salida (S1DQSAL0). En el caso de que para el mismo cliente no exista una fecha de aporte igual a la de movimiento generar archivo de errores (S2DQERR0).
Por archivo de entrada E1DQAPO0 vacio, cancelar informando el error.
Realizar JCL con SORT para ordenar los dos archivos por codigo de cliente.

SALIDA 1: S1DQSAL0

 CODIGO DE CLIENTE (8)
 FECHA DE MOVMIENTO (8)
 IMPORTE TOTAL (10)V(2)

SALIDA 2: S2DQERR0

 CODIGO DE CLIENTE (8)
 FECHA DE APORTE (8)
 IMPORTE (8)V(2)
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:Como optimizar el desarrollo?

Publicado por OSCAR (37 intervenciones) el 13/03/2010 17:01:19
¿No crees que primero deberías desarrollarlo tu y luego exponerlo a la comunidad para que analice tu trabajo y te aconseje sobre lo que puedes hacer mejor?
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:Como optimizar el desarrollo?

Publicado por OSCAR (37 intervenciones) el 13/03/2010 17:01:36
¿No crees que primero deberías desarrollarlo tu y luego exponerlo a la comunidad para que analice tu trabajo y te aconseje sobre lo que puedes hacer mejor?
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:Como optimizar el desarrollo?

Publicado por Nico (5 intervenciones) el 14/03/2010 16:16:45
Te cuento lo que hice fue hacer un perform hasta EOF de los dos archivos adentro de este perform hice un evaluate comparando cuando son iguales los codigos de cliente y los movimientos resto el importe y grabo en el archivo de salida para cuando eran iguales hice un vector (con el que le habia cargado todos los movimientos del archivo movimientos).

despues en los otros evaluate cuando es menor el codigo cliente al de movimiento grababa los errores en el archivo de salida 2 y leia el archivo 1 y cuando era mayor el codigo de cliente al de movimiento leia el archivo 2

Queria saber como hacer el mismo ejercicio pero todo manejando archivos! podras ayudarme oscar? no tengo mucha idea de como hacerlo con archivos y queria saber como podia resolverlo todo con archivos ya que me parece que es mejor... espero que puedas ayudarme!

Gracias!
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:Como optimizar el desarrollo?

Publicado por SuperIndio (138 intervenciones) el 15/03/2010 16:02:53
PROCEDURE DIVISION.
MAIN.
______PERFORM 100-INICIO.
______PERFORM 200-PROCESO.
______PERFORM 300-FINAL.

100-INICIO.
______PERFORM 110-OPEN-APORTES.
______PERFORM 120-OPEN-MOVIMTS.
______PERFORM 130-OPEN-SALIDA.
______PERFORM 140-OPEN-ERRORES.
______MOVE ZEROS TO WA-CONTADOR.
______MOVE ZEROS TO WM-CONTADOR.

200-PROCESO.

______PERFORM 210-READ-APORTES.
______PERFORM 220-READ-MOVIMTS.
______IF EOF-MOVIM THEN
__________DISPLAY "ERROR... ARCHIVO DE MIVIMIENTOS VACIO...."
__________PERFORM 990-CANCELAR
______END-IF.
______PERFORM UNTIL EOF-APORTE OR EOF-MOVIM
__________IF CLI-CODIGO = MOV-CODIGO THEN
______________PERFORM 230-RESTA-COMISION
______________PERFORM 235-WRITE-SALIDA
______________PERFORM 210-READ-APORTES
______________PERFORM 220-READ-MOVIMTS
__________ELSE
______________IF CLI-CODIGO > MOV-CODIGO THEN
__________________MOVE CLI-CODIGO TO ERR-CODIGO
__________________MOVE "SIN MOVIM" TO ERR-DESCRI
__________________PERFORM 240-INFORMA-ERROR
__________________PERFORM 210-READ-APORTES
______________ELSE
__________________PERFORM 235-WRITE-SALIDA
______________END-IF
__________END-IF
______
______END-PERFORM.
______IF NOT EOF-MOVIM THEN
_________PERFORM UNTIL EOF-MOVIM
_____________PERFORM 233-MOVE-MOVIM-TO-SALIDA
_____________PERFORM 235-WRITE-SALIDA
_________END-PERFORM
______ELSE
_________PERFORM UNTIL EOF-APORTE
_____________PERFORM 233-MOVE-MOVIM-TO-SALIDA
_____________PERFORM 235-WRITE-SALIDA
_________END-PERFORM
______END-IF.

300-FINAL.
______PERFORM 310-CLOSE-APORTES
______PERFORM 310-CLOSE-MOVIMTS
______PERFORM 330-OPEN-SALIDA.
______PERFORM 340-OPEN-ERRORES.
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:Como optimizar el desarrollo? (Coregido)

Publicado por SuperIndio (138 intervenciones) el 15/03/2010 16:05:49
PROCEDURE DIVISION.
MAIN.
______PERFORM 100-INICIO.
______PERFORM 200-PROCESO.
______PERFORM 300-FINAL.

100-INICIO.
______PERFORM 110-OPEN-APORTES.
______PERFORM 120-OPEN-MOVIMTS.
______PERFORM 130-OPEN-SALIDA.
______PERFORM 140-OPEN-ERRORES.
______MOVE ZEROS TO WA-CONTADOR.
______MOVE ZEROS TO WM-CONTADOR.

200-PROCESO.

______PERFORM 210-READ-APORTES.
______PERFORM 220-READ-MOVIMTS.
______IF EOF-MOVIM THEN
__________DISPLAY "ERROR... ARCHIVO DE MIVIMIENTOS VACIO...."
__________PERFORM 990-CANCELAR
______END-IF.
______PERFORM UNTIL EOF-APORTE OR EOF-MOVIM
__________IF CLI-CODIGO = MOV-CODIGO THEN
______________PERFORM 230-RESTA-COMISION
______________PERFORM 235-WRITE-SALIDA
______________PERFORM 210-READ-APORTES
______________PERFORM 220-READ-MOVIMTS
__________ELSE
______________IF CLI-CODIGO > MOV-CODIGO THEN
__________________MOVE CLI-CODIGO TO ERR-CODIGO
__________________MOVE "SIN MOVIM" TO ERR-DESCRI
__________________PERFORM 240-INFORMA-ERROR
__________________PERFORM 210-READ-APORTES
______________ELSE
__________________PERFORM 235-WRITE-SALIDA
______________END-IF
__________END-IF
______
______END-PERFORM.
______IF NOT EOF-MOVIM THEN
_________PERFORM UNTIL EOF-MOVIM
_____________PERFORM 233-MOVE-MOVIM-TO-SALIDA
_____________PERFORM 235-WRITE-SALIDA
_________END-PERFORM
______ELSE
_________PERFORM UNTIL EOF-APORTE
_____________PERFORM 233-MOVE-APORTE-TO-SALIDA
_____________PERFORM 235-WRITE-SALIDA
_________END-PERFORM
______END-IF.

300-FINAL.
______PERFORM 310-CLOSE-APORTES
______PERFORM 310-CLOSE-MOVIMTS
______PERFORM 330-OPEN-SALIDA.
______PERFORM 340-OPEN-ERRORES.
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:Como optimizar el desarrollo? (Coregido)

Publicado por Nico (5 intervenciones) el 16/03/2010 00:00:00
sos un groso superindio ! por casualidad podrias agregarme al msn : [email protected] para hacerte un par de preguntas on-line ??
me estoy iniciando en cobol y me seria de mucha ayuda hacerte algunas preguntas sobre el programa que me acabas de escribir con el manejo de archivos! espero que puedas agregarme y ayudarme!!

muchisimas gracias ! =)
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