Power Builder - URGENTISIMO AYUDA

 
Vista:
sin imagen de perfil

URGENTISIMO AYUDA

Publicado por Edgar (87 intervenciones) el 23/11/2005 18:06:13
Amigos necesito su ayuda URGENTISIMO veran:
Tengo una funcion que migra de una tabla de una base a otra tabla de otra base
el el click al momento de hacer la migracion llega a la funcion llega a un laso y de ahi se salta al final por favor ayudenme les envio el click del boton de comando y la funcion
u_mig_m_migracion uo_migrar

string ls_migra_aprobaciones, ls_migra_efecto

ls_migra_aprobaciones = dw_fechas.GetitemString(1,'aprobaciones')
ls_migra_efecto = dw_fechas.GetitemString(1,'efecto')

uo_migrar = create u_mig_m_migracion
//Coneccion a la Base Anterior
connect using sqlca_warehouse;
If sqlca_warehouse.sqlcode < 0 then
Messagebox ('Error',sqlca_warehouse.SqlErrText)
rollback;
return
end if

if ls_migra_aprobaciones = 'S' then
//Asigna dinamicamente un datawindow
dw_mandat.Dataobject='d_mig_m_migracion_aprobaciones_nueva'

messagebox("fecha_inicial",string(dw_fechas.GetitemDateTime(1,'fecha_inicio')))
messagebox("fecha_final",String(dw_fechas.GetitemDateTime(1,'fecha_fin')))


uo_migrar.uf_mig_migracion_aprobaciones(dw_mandat,dw_fechas.GetitemDateTime(1,'fecha_inicio'),dw_fechas.GetitemDateTime(1,'fecha_fin'))
else
if ls_migra_efecto = 'S' then
// Asigna dinamicamente al datawindow destino
dw_mandat.Dataobject= 'd_mig_m_migracion_efe_efecto_nueva'

//Llamada a la funcion que migra La base Efectos
uo_migrar.uf_mig_migracion_efecto(dw_mandat,dw_fechas.GetitemDatetime(1,'fecha_inicio'),dw_fechas.GetitemDatetime(1,'fecha_fin'))

disconnect using sqlca_warehouse;

end if

end if

FUNCION MIGRAR

//Declaracion de variables
string ls_error
long ll_aux, ll_fila
integer li_indice
//Creacion de un Datastore
datastore lds_origen

ls_error = ""

lds_origen = create datastore
lds_origen.dataobject='d_mig_l_migracion_aprobaciones_anterior'
rdw_destino.dataobject='d_mig_m_migracion_aprobaciones_nueva'

lds_origen.SetTransObject (sqlca_warehouse)
rdw_destino.SetTransObject (sqlca)

lds_origen.Retrieve(adt_fecha_inicial,adt_fecha_final)
messagebox(" numero de registros recuperados",string(lds_origen.RowCount()))

li_indice = 0

for ll_aux = 1 to lds_origen.RowCount()
li_indice ++
ll_fila= rdw_destino.InsertRow(0)
rdw_destino.SetItem(ll_fila,'fac_cod_facapr',lds_origen.GetItemString(ll_aux,'apr_toperacion'))
rdw_destino.SetItem(ll_fila,'apr_numcreapr',lds_origen.GetItemString(ll_aux,'credito_apr'))
rdw_destino.SetItem(ll_fila,'apr_numtraapr',lds_origen.GetItemNumber(ll_aux,'apr_tramite'))
rdw_destino.SetItem(ll_fila,'apr_numopeapr',lds_origen.GetItemNumber(ll_aux,'apr_operacion'))
rdw_destino.SetItem(ll_fila,'fac_codfacant',lds_origen.GetItemString(ll_aux,'mecanismo_modalidad_apr'))
rdw_destino.SetItem(ll_fila,'apr_numcreant',lds_origen.GetItemString(ll_aux,'modalidad_apr'))
rdw_destino.SetItem(ll_fila,'apr_numtraant',lds_origen.GetItemNumber(ll_aux,'tipomodalidad_apr'))
rdw_destino.SetItem(ll_fila,'cii_codcii',lds_origen.GetItemString(ll_aux,'ciiu_apr'))
rdw_destino.SetItem(ll_fila,'apr_fecapr',lds_origen.GetItemDateTime(ll_aux,'fechaprob_apr'))
rdw_destino.SetItem(ll_fila,'mod_codmod',lds_origen.GetItemString(ll_aux,'mecanismo_apr'))
// rdw_destino.SetItem(ll_fila,'mon_codmon',String(lds_origen.GetItemNumber(ll_aux,'moneda_apr')))
rdw_destino.SetItem(ll_fila,'mon_codmon',uf_mig_auxiliar_moneda(String(lds_origen.GetItemNumber(ll_aux,'moneda_apr'))))
// rdw_destino.SetItem(ll_fila,'ofi_codofipro',String(lds_origen.GetItemNumber(ll_aux,'agencia_apr')))
// rdw_destino.SetItem(ll_fila,'ofi_codofitra',String(lds_origen.GetItemNumber(ll_aux,'apr_oficina')))
rdw_destino.SetItem(ll_fila,'ofi_codofipro',uf_mig_auxiliar_oficina(String(lds_origen.GetItemNumber(ll_aux,'agencia_apr')),String(lds_origen.GetItemNumber(ll_aux,'apr_oficina'))))
rdw_destino.SetItem(ll_fila,'ofi_codofitra',uf_mig_auxiliar_oficina(String(lds_origen.GetItemNumber(ll_aux,'agencia_apr')),String(lds_origen.GetitemNumber(ll_aux,'apr_oficina'))))
rdw_destino.SetItem(ll_fila,'prd_codprd',lds_origen.GetItemString(ll_aux,'producto_apr'))
// rdw_destino.SetItem(ll_fila,'sjc_codigoifi',lds_origen.GetItemNumber(ll_aux,'ifi_apr'))
rdw_destino.SetItem(ll_fila,'sjc_codigoifi',uf_mig_auxiliar_cliente(lds_origen.GetItemNumber(ll_aux,'empresa_apr')))
rdw_destino.SetItem(ll_fila,'sjc_codigobf',uf_mig_auxiliar_cliente(lds_origen.GetItemNumber(ll_aux,'empresa_apr')))
// rdw_destino.SetItem(ll_fila,'sjc_codigobf',lds_origen.GetItemNumber(ll_aux,'empresa_apr'))
rdw_destino.SetItem(ll_fila,'pro_codpro',String(lds_origen.GetItemNumber(ll_aux,'codgeo')))
rdw_destino.SetItem(ll_fila,'apr_secuen',lds_origen.GetItemNumber(ll_aux,'apr_secuencial'))
rdw_destino.SetItem(ll_fila,'apr_numacu',String(lds_origen.GetItemNumber(ll_aux,'acuerdo_apr')))
rdw_destino.SetItem(ll_fila,'apr_monto',lds_origen.GetItemNumber(ll_aux,'monto_apr'))
rdw_destino.SetItem(ll_fila,'apr_montodol',lds_origen.GetItemNumber(ll_aux,'montodolarizado_apr'))
rdw_destino.SetItem(ll_fila,'apr_montosuc',lds_origen.GetItemNumber(ll_aux,'montosucretizado_apr'))
rdw_destino.SetItem(ll_fila,'apr_plazo',lds_origen.GetItemNumber(ll_aux,'plazo_apr'))
rdw_destino.SetItem(ll_fila,'apr_tascre',lds_origen.GetItemNumber(ll_aux,'tasacredito_apr'))
rdw_destino.SetItem(ll_fila,'apr_tasdes',lds_origen.GetItemNumber(ll_aux,'tasadescuento_apr'))
rdw_destino.SetItem(ll_fila,'apr_tascresuc',lds_origen.GetItemNumber(ll_aux,'tasacredito_sucres_apr'))
rdw_destino.SetItem(ll_fila,'apr_tasdessuc',lds_origen.GetItemNUmber(ll_aux,'tasades_sucres_apr'))
rdw_destino.SetItem(ll_fila,'apr_cotiza',lds_origen.GetItemNumber(ll_aux,'cotizacion_apr'))
rdw_destino.SetItem(ll_fila,'apr_export',lds_origen.GetItemNumber(ll_aux,'exportar_apr'))
rdw_destino.SetItem(ll_fila,'apr_jerarq',lds_origen.GetItemString(ll_aux,'jerarquia_apr'))
rdw_destino.SetItem(ll_fila,'apr_identi',lds_origen.GetItemString(ll_aux,'identidad_apr'))
rdw_destino.SetItem(ll_fila,'apr_reprog',lds_origen.GetItemString(ll_aux,'reprogramacion'))
rdw_destino.SetItem(ll_fila,'apr_numcresuc',lds_origen.GetItemString(ll_aux,'credito_anterior_apr'))
rdw_destino.SetItem(ll_fila,'apr_codfacsisant',lds_origen.GetItemString(ll_aux,'mecanismo_respaldo_apr'))
rdw_destino.SetItem(ll_fila,'apr_codmodsisant',lds_origen.GetItemString(ll_aux,'respaldo_modalidad'))
rdw_destino.SetItem(ll_fila,'apr_numcresisant',lds_origen.GetItemString(ll_aux,'eis_credito_apr'))
rdw_destino.SetItem(ll_fila,'apr_codbfsisant',lds_origen.GetItemString(ll_aux,'eis_empresa_apr'))
rdw_destino.SetItem(ll_fila,'apr_codofimecsisant',lds_origen.GetItemString(ll_aux,'eis_agemec_apr'))
rdw_destino.SetItem(ll_fila,'apr_numcremig',lds_origen.GetItemString(ll_aux,'apr_migrada'))

// Asignacion de Valores en campos que no tienen relacion la base Anterior con la nueva
rdw_destino.SetItem(ll_fila,'fuc_codfucing','nd')
rdw_destino.SetItem(ll_fila,'fuc_codfucapr','nd')
rdw_destino.SetItem(ll_fila,'fui_codfui','04')
rdw_destino.SetItem(ll_fila,'emp_codemp',gs_codemp)
rdw_destino.Setitem(ll_fila,'codusu',gs_codusu)
rdw_destino.Setitem(ll_fila,'fecult',String(today(), "dd/mm/yyyy hh:mm"))
rdw_destino.Setitem(ll_fila,'estado','VIG')
rdw_destino.Setitem(ll_fila,'status','I')


//Validaciones en diferentes campos
if lds_origen.GetItemString (ll_aux,'factibilidad_apr') = 'F' then
rdw_destino.SetItem(ll_aux,'apr_facmod','F')
else
rdw_destino.SetItem(ll_aux,'apr_facmod','M')
end if
if isNull (lds_origen.GetItemString(ll_aux,'producto_apr')) then
rdw_destino.SetItem(ll_aux,'prd_codprd','O')
end if
if isNull (lds_origen.GetItemString(ll_aux,'ciiu_apr')) then
rdw_destino.SetItem(ll_aux,'cii_codcii','OOOOO')
end if
if lds_origen.GetItemString(ll_aux,'reprogramacion') = 'R' then
rdw_destino.SetItem(ll_aux,'apr_reprog', 'R')
else
if lds_origen.GetItemString(ll_aux,'reprogramacion') <> 'R' then
rdw_destino.SetItem(ll_aux,'apr_reprog', 'N')
end if
end if
// Actualizacion por cada 100 Registros
If li_indice = 100 Then
if rdw_destino.Update(True,False) < 0 Then
Return ls_error
Rollback using sqlca;
else
if ls_error = '' then
Return ls_error
end if
commit using sqlca;
end if
li_indice =0
end if
next
If rdw_destino.Update (True,False) < 0 Then
Return ls_error
Rollback using sqlca;
else
if ls_error = '' then
Return ls_error
end if
commit using sqlca;
End if
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:URGENTISIMO AYUDA

Publicado por Asgard (1957 intervenciones) el 23/11/2005 22:40:23
Mejor utiliza las pipelines, crea las conexiona a ambas bases de datos y listo.
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