Ejecutando un lookup en una DTS

magodie
22 de Octubre del 2004
Hola. Tengo el siguiente problema ejecuto un lookups en mi DTS que importa datos de un archivo exel a una tabla de mi bases de datos y la dts la realizo con activeX script (visual script), el caso es que al llamar el lookups que contiene una consulta funciona bien pero despues de 40 filas subidas del exel la dts se bloquea es decir que para subir todos los registro me toca decirle a la dts que suba primero las primeras 40 filas, luego ejecuto la dts otra ves y le digo que suba hasta la fila 40 lo que, luego la vuelvo a ejecutar pero le digo que suba hasta la 120 y asi sucesivamente, yo creo que debe ser problema de boffer o algo asi porque aguanta mas de 40 llamados al lookups. el codigo es el siguiente hay indico donde esta el llamado al lookups no es nada del otro mundo, podria ser problema de configuracin de la dts alguien me podria dar una idea de que es el problema gracias.

DIM FechaF,FechaV
DIM Temp1,Temp2
DIM Cartera
DIM PlazoPago
DIM FormatoF
DIM Total,TotalC,Actualizar, Descripcion, J
Actualizar=0
Rem formatenado fechas

FechaF=lTRIM(TRIM( MID(DTSSource("FECHA-FACT"),1,4)))
Temp1=LTRIM(TRIM( MID(DTSSource("FECHA-FACT"),5,2)))
Temp2=LTRIM(TRIM(MID(DTSSource("FECHA-FACT"),7,2)))
FechaF=FechaF&"-"&Temp1&"-"&Temp2&" "&"00"&":"&"00"&":"&"00:000"

DTSDestination("FechaFactura") = FechaF

FechaV=lTRIM(TRIM( MID(DTSSource("FECHA-VENC"),1,4)))
Temp1=LTRIM(TRIM( MID(DTSSource("FECHA-VENC"),5,2)))
Temp2=LTRIM(TRIM(MID(DTSSource("FECHA-VENC"),7,2)))
FechaV=FechaV&"-"&Temp1&"-"&Temp2&" "&"00"&":"&"00"&":"&"00:000"

DTSDestination("FechaVencimiento") = FechaV

Rem asigna valores tales como bienen del excel

DTSDestination("CodCliente") = DTSSource("CODIGO")
DTSDestination("CodFactura") = DTSSource("FACTURA")
DTSDestination("Saldo") = DTSSource("TOTAL")
DTSDestination("Valor") =DTSSource("TOTAL")
DTSDestination("ValorIVA")= DTSSource("IVA")

Rem genera autonumerico codcartera

IF ( DTSGlobalVariables("CodCartera").Value =0 ) THEN

IF ( ISNULL (DTSLookups("CodigoC" ).execute()) ) THEN

DTSGlobalVariables("CodCartera").Value =1

ELSE
DTSGlobalVariables("CodCartera").Value =DTSLookups("CodigoC" ).execute()
DTSGlobalVariables("CodCartera").Value=DTSGlobalVariables("CodCartera").Value+1
END IF

ELSE
DTSGlobalVariables("CodCartera").Value=DTSGlobalVariables("CodCartera").Value+1

END IF

' MSGBOX(DTSGlobalVariables("CodCartera").Value)
DTSDestination("CodCartera") =DTSGlobalVariables("CodCartera").Value

'DTSLookups("Prueba").Execute(DTSGlobalVariables("CodCartera").Value)

Rem Asigna plazo pago obtenido de tabla cliente

PlazoPago=DTSLookups("LookUp1" ).execute( DTSSource("CODIGO"))
DTSDestination("PlazoPago") = PlazoPago

Rem DTSLookups("LookUp1" ).execute( DTSSource("CODIGO"))


Rem IF (ISNULL(DTSLookups("ExisteCartera").execute(DTSGlobalVariables("CodCartera").Value) THEN

'' QUI ESTA EL PROBLEMA AL LLAMAR ESTA 'DTSLookups

Cartera = DTSLookups("ExisteCartera").Execute

''''''''''''''''''


(DTSSource("FACTURA"))
IF (ISEMPTY(Cartera)) THEN

Descripcion=DTSLookups("Categoria").Execute(DTSSource("MARCA"))
J=DTSLookups("Insertarmarca").Execute(DTSGlobalVariables("CodCartera").Value,Descripcion)

Main = DTSTransformStat_OK

ELSE
REM Valida si hay campos a actualizar

DTSGlobalVariables("CodCartera").Value=DTSGlobalVariables("CodCartera").Value-1

IF (Cartera(0) <> DTSSource("CODIGO")) THEN
Actualizar=1
END IF

'MSGBOX(Cartera(1))
'MSGBOX(DTSSource("FACTURA"))

Total=DTSSource("FACTURA")
TotalC= Cartera(1)

IF (CSTR (TotalC) <>CSTR(Total)) THEN
Actualizar=1
END IF


FormatoF= Formato(Cartera(2))
IF (FormatoF<>MID(FechaF,1,10)) THEN
Actualizar=1
END IF

FormatoF= Formato(Cartera(3))
IF (FormatoF<>MID(FechaV,1,10)) THEN
Actualizar=1
END IF

IF (Cartera(4) <>PlazoPago) THEN
Actualizar=1
END IF


Total=DTSSource("TOTAL")
TotalC= Cartera(5)

IF CSTR (TotalC) <>CSTR(Total) THEN
Actualizar=1
END IF

Total=DTSSource("TOTAL")
TotalC= Cartera(6)

IF(CSTR (TotalC) <>CSTR(Total)) THEN
Actualizar=1
END IF

Total=DTSSource("IVA")
TotalC= Cartera(8)

IF(CSTR (TotalC) <> CSTR(Total) ) THEN
Actualizar=1
END IF



IF (Actualizar=1) THEN
REM ACTUALIZA DATOS

' MSGBOX("ACTUALIZAR")

J=DTSLookups("Actualizar").Execute(DTSSource("CODIGO") ,DTSSource("FACTURA"),FechaF,FechaV,PlazoPago ,DTSSource("TOTAL"),DTSSource("TOTAL"),DTSSource("IVA"))
END IF



Main = DTSTransformStat_SkipRow
END IF


''' EL LOOKUP TIENE ESTA CONSULTA

SELECT Cartera.*
FROM Cartera
WHERE (CodFactura = ?)