Progress - SUBIR ARCHIVO DE TEXTO APROGRESS

 
Vista:

SUBIR ARCHIVO DE TEXTO APROGRESS

Publicado por Jorge Hernandez (22 intervenciones) el 22/08/2011 23:37:38
Estimados, buenas tardes, tengo un query en progress que sube un archivo de texto con estas caracteristicas:

Cia|Fecper-com|Numero-com|Secuen-Comp|Cuenta|
1 |01/07/2011 |07201102 |1667 |533102|
1 |01/07/2011 |07201102 |1665 |533102|
1 |01/07/2011 |07201102 |1663 |533102|
1 |01/07/2011 |07201102 |1661 |533102|

Pero no quiero subir el encabezado:
Cia|Fecper-com|Numero-com|Secuen-Comp|Cuenta|

el query esta asi:

DEF VAR wkcia as int.
DEF VAR wkfecper-com as date.
DEF VAR wknumero-com as int.
DEF VAR wksecuen-com as int.
DEF VAR wkcuenta as char.

INPUT FROM VALUE(archivotexto).

Repeat:
IMPORT DELIMITER "|"
wkcia
wkfecper-com
wknumero-com
wksecuen-com
wkcuenta.

aqui lleno la tabla

wkCont = wkCont + 1.
STATUS DEFAULT "Subiendo Archivo... " + STRING(wkCont).

END.

end.

la tabla se llena sin problemas pero antes me aparece el error de progres que dice:

Caracter incorrecto en entrada numerica C.(76).

Me imagino que es porque toma lo del encabezado e intenta subirlo.

Como puedo hacer para que no tome el encabezado sino tome el archivo desde la segunda linea ?

Les agradezco la respuesta, muchas gracias.
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

SUBIR ARCHIVO DE TEXTO APROGRESS

Publicado por DparteD (129 intervenciones) el 24/08/2011 14:37:11
NO se si se te habra ocurriso hacer el create de la tabla
unicamente cuando wkCont sea mayot que 1.

IF wkCont > 1 THEN DO:
CREATE TABLA.
ASSIGN
................................
END.
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

SUBIR ARCHIVO DE TEXTO APROGRESS

Publicado por AlexWolf (3 intervenciones) el 25/08/2011 19:38:11
hola acontinuacion te propongo otra alternativa a tu programa donde no estas considerando en codigo duro las posiciones a no considerar si no de forma dinamica.

Espero te sea de ayuda saludos.

DEFINE TEMP-TABLE tt_temporal NO-UNDO
FIELD wkcia AS INTEGER
FIELD wkfecper-com AS DATE FORMAT "99/99/9999"
FIELD wknumero-com AS INTEGER FORMAT "99999999"
FIELD wksecuen-com AS INTEGER FORMAT "9999"
FIELD wkcuenta AS CHAR.

INPUT FROM c:\temp\prueba_subir.txt.
REPEAT:
CREATE tt_temporal.
IMPORT DELIMITER "|" tt_temporal NO-ERROR.
IF ERROR-STATUS:ERROR THEN do:
DELETE tt_temporal.
NEXT.
END.

END.
INPUT CLOSE.

FOR EACH tt_temporal
WHERE
NO-LOCK:
DISPLAY tt_temporal.
END.
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

SUBIR ARCHIVO DE TEXTO APROGRESS

Publicado por Jorge Hernandez (22 intervenciones) el 31/08/2011 00:21:03
Buenas tardes a todos, gracias por las respuestas, la solucion fue esta:

DO TRANSACTION:

INPUT FROM VALUE(procname).
REPEAT:
IMPORT DELIMITER "|"
wkcia
wkfecper-com
wknumero-com
wksecuen-com
wkcuenta
wkdescri-com
wkdebcre-com
wkmonto-com
wkmonext-com
wkdebe-com
wkhaber-com
wkrefere-com
wkfecha-com
wkauxiliar
wkcentro
wkubicacion
wkutilfon
wktext-com
wklogin-ctrl
wkdate-ctrl
wktipcom
wkcantid-com
wkmonfasb-com
wkagrega-mova
wkAdicional NO-ERROR.

IF wkcia <> "Cia" AND wknumero-com <> 0 THEN
DO:
Lleno la tabla

wkCont = wkCont + 1.
STATUS DEFAULT "Subiendo Archivo... " + STRING(wkCont).

END.



END.


IF wkCont > 0 THEN
DO:
MESSAGE "SE SUBIO EL ARCHIVO CORRECTAMENTE"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
APPLY "CLOSE" TO THIS-PROCEDURE.
RETURN NO-APPLY.
END.
END.

El campo de compañia declararlo como char, llenar solo cuando sea diferente del texto Cia y colocar NO-ERROR. despues del ultimo campo del import delimeter.

Muchas gracias a todos.
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