bilmaa
22nd January 2009, 12:53
function Leer.Fichero.XML()
{
long xml.id, ret.val
string error_string(120)
long tran.id ,lin.id
string data(900)
lineas=0
fich = seq.open(fichero_ftp,"r") ||Abrimos y leemos el fichero
if fich>0 then
xml.id=xmlread(fich,error_string)
seq.close(fich)
tran.id = xmlFindFirst("TRANS",xml.id)
while tran.id<>0
lin.id = xmlFindFirst("LIN",tran.id)
tipo_ant=""
while lin.id<>0
tipo_ant=tipo_dato
ret.val=xmlGetDataElement(lin.id,"TIPODATO",data)
tipo_dato=data
if tipo_dato="PEC" then
ret.val=xmlGetDataElement(lin.id,"CLIENTE",data)
cliente=data
ret.val=xmlGetDataElement(lin.id,"PLAZA_ALMACEN",data)
plaza_alma=data
ret.val=xmlGetDataElement(lin.id,"ANIO_T",data)
anio_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_T",data)
mes_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_T",data)
dia_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"NUMOPL",data)
num_opl=data
ret.val=xmlGetDataElement(lin.id,"PROVEEDOR",data)
provee=data
ret.val=xmlGetDataElement(lin.id,"ANIO",data)
anio=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES",data)
mes=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA",data)
dia=lval(data)
ret.val=xmlGetDataElement(lin.id,"ORDEN",data)
orno.cr=data
ret.val=xmlGetDataElement(lin.id,"ALBARAN",data)
alba=data
Grabar.PEC()
num.reg.ant=tdnis208.indc
lineas=lineas+1
display("lineas")
endif
if tipo_dato="PED" then
if tipo_ant="PEC" or tipo_ant="PED" then
ret.val=xmlGetDataElement(lin.id,"ANIO_T",data)
anio_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_T",data)
mes_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_T",data)
dia_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"PLAZA_ALMACEN",data)
plaza_alma=data
ret.val=xmlGetDataElement(lin.id,"NUMOPL",data)
num_opl=data
ret.val=xmlGetDataElement(lin.id,"ORDEN",data)
orno.cr=data
ret.val=xmlGetDataElement(lin.id,"POSICION",data)
posicion=lval(data)
ret.val=xmlGetDataElement(lin.id,"SECUENCIA",data)
secu=lval(data)
ret.val=xmlGetDataElement(lin.id,"CLIENTE",data)
cliente=data
ret.val=xmlGetDataElement(lin.id,"ARTICULO",data)
articulo=data
ret.val=xmlGetDataElement(lin.id,"CANTIDAD_ALBARAN",data)
cant_alba=val(data)
ret.val=xmlGetDataElement(lin.id,"CANTIDAD_RECIBIDA",data)
cant_reci=val(data)
ret.val=xmlGetDataElement(lin.id,"OBSERVACIONES",data)
obsr=data
Grabar.PED()
lineas=lineas+1
display("lineas")
else
message("Error, lineas PED sin cabecera PEC")
endif
endif
if tipo_dato="SAC" then
ret.val=xmlGetDataElement(lin.id,"ANIO_T",data)
anio_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_T",data)
mes_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_T",data)
dia_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"ALBARAN",data)
alba=data
ret.val=xmlGetDataElement(lin.id,"PLAZA_ALMACEN",data)
plaza_alma=data
ret.val=xmlGetDataElement(lin.id,"CLIENTE",data)
cliente=data
ret.val=xmlGetDataElement(lin.id,"CODIGO_DESTINATARIO",data)
destinatario=data
ret.val=xmlGetDataElement(lin.id,"ORDEN_SERVICIO",data)
ornos=lval(data)
ret.val=xmlGetDataElement(lin.id,"ORDEN",data)
orno.cr=data
ret.val=xmlGetDataElement(lin.id,"NOMBRE_COMERCIAL",data)
nombre_dest=data
ret.val=xmlGetDataElement(lin.id,"RAZON_SOCIAL",data)
razon_dest=data
ret.val=xmlGetDataElement(lin.id,"PERSONALIZACION",data)
perso_dest=data
ret.val=xmlGetDataElement(lin.id,"DIRECCION",data)
dir_dest=data
ret.val=xmlGetDataElement(lin.id,"AMPLIACION_DIRECCION",data)
ampli_dest=data
ret.val=xmlGetDataElement(lin.id,"POBLACION",data)
pobla_dest=data
ret.val=xmlGetDataElement(lin.id,"PROVINCIA",data)
provincia=data
ret.val=xmlGetDataElement(lin.id,"CODIGO_POSTAL",data)
postal_dest=data
ret.val=xmlGetDataElement(lin.id,"PAIS",data)
pais=data
ret.val=xmlGetDataElement(lin.id,"NIF",data)
nif=data
ret.val=xmlGetDataElement(lin.id,"ANIO_SALIDA",data)
anio=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_SALIDA",data)
mes=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_SALIDA",data)
dia=lval(data)
ret.val=xmlGetDataElement(lin.id,"HORA_SALIDA",data)
hora=lval(data)
ret.val=xmlGetDataElement(lin.id,"MINUTO_SALIDA",data)
minutos=lval(data)
ret.val=xmlGetDataElement(lin.id,"PRECINTO",data)
precinto=data
ret.val=xmlGetDataElement(lin.id,"BULTOS_ALBARAN",data)
bultos_al=lval(data)
ret.val=xmlGetDataElement(lin.id,"KILOS_ALBARAN",data)
kilos_al=lval(data)
ret.val=xmlGetDataElement(lin.id,"METROS3_ALBARAN",data)
metros3_al=lval(data)
ret.val=xmlGetDataElement(lin.id,"PALETS",data)
palets=lval(data)
ret.val=xmlGetDataElement(lin.id,"EXPEDICION",data)
expe=data
ret.val=xmlGetDataElement(lin.id,"BULTOS_EXPEDICION",data)
bultos_ex=lval(data)
ret.val=xmlGetDataElement(lin.id,"KILOS_EXPEDICION",data)
kilos_ex=lval(data)
ret.val=xmlGetDataElement(lin.id,"METROS3_EXPEDICION",data)
metros3_ex=lval(data)
orden_re=lval(orno.cr(1;9))
Grabar.SAC()
num.reg.ant=tdnis205.indc
lineas=lineas+1
display("lineas")
endif
if tipo_dato="SAD" then
if tipo_ant="SAC" or tipo_ant="SAD"then
ret.val=xmlGetDataElement(lin.id,"ANIO_T",data)
anio_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_T",data)
mes_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_T",data)
dia_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"PLAZA_ALMACEN",data)
plaza_alma=data
ret.val=xmlGetDataElement(lin.id,"ALBARAN",data)
alba=data
ret.val=xmlGetDataElement(lin.id,"EXPEDICION",data)
expe=data
ret.val=xmlGetDataElement(lin.id,"ORDEN",data)
orno.cr=data
ret.val=xmlGetDataElement(lin.id,"POSICION",data)
posicion=lval(data)
ret.val=xmlGetDataElement(lin.id,"SECUENCIA",data)
secu=lval(data)
ret.val=xmlGetDataElement(lin.id,"ARTICULO",data)
articulo=data
ret.val=xmlGetDataElement(lin.id,"CANTIDAD_ALBARAN",data)
cant_alba=val(data)
ret.val=xmlGetDataElement(lin.id,"BULTOS",data)
bultos=lval(data)
orden_re=lval(orno.cr(1;9))
Grabar.SAD()
lineas=lineas+1
display("lineas")
else
message("Error, lineas SAD sin cabecera SAC")
endif
endif
if tipo_dato="SER" then
ret.val=xmlGetDataElement(lin.id,"ANIO_T",data)
anio_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_T",data)
mes_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_T",data)
dia_t=lval(data)
ret.val=xmlGetDataElement(lin.id,"PLAZA_ALMACEN",data)
plaza_alma=data
ret.val=xmlGetDataElement(lin.id,"ORDEN",data)
orno.cr=data
ret.val=xmlGetDataElement(lin.id,"POSICION",data)
posicion=lval(data)
ret.val=xmlGetDataElement(lin.id,"SECUENCIA",data)
secu=lval(data)
ret.val=xmlGetDataElement(lin.id,"ALBARAN",data)
alba=data
ret.val=xmlGetDataElement(lin.id,"EXPEDICION",data)
expe=data
ret.val=xmlGetDataElement(lin.id,"IMPORTE",data)
importe=val(data)
ret.val=xmlGetDataElement(lin.id,"ANIO_ENTREGA_REAL",data)
anio=lval(data)
ret.val=xmlGetDataElement(lin.id,"MES_ENTREGA_REAL",data)
mes=lval(data)
ret.val=xmlGetDataElement(lin.id,"DIA_ENTREGA_REAL",data)
dia=lval(data)
orden_re=lval(orno.cr(1;9))
Grabar.SER()
lineas=lineas+1
display("lineas")
endif
lin.id = xmlGetRightSibling(lin.id)
endwhile
tran.id = xmlGetRightSibling(tran.id)
endwhile
ret.val=xmlDelete(xml.id,0)
else
message("Error al leer el fichero IN")
endif
}