Power Builder - AMIGOS AYUDA URGENTE POR FAVOR

 
Vista:
sin imagen de perfil

AMIGOS AYUDA URGENTE POR FAVOR

Publicado por EDGAR (87 intervenciones) el 23/11/2005 21:11:53
Amigos Urgente por favor: tengo un campo de una tabla (destino ) que no tiene ninguna relacion con algun campo de una tabla (origen) este campo es la clave primaria de esta tabla y al hacer la migracion me dio un error pues este campo no debe tener valores nulos
como me creo un secuencial que tome el ultimo valor que tiene la tabla y lo vaya sumando y asignando a dicho campo en esta funcion

//Declaracion de variables
string ls_error
long ll_aux, ll_fila,ll_secuencial
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)
li_indice = 0

//Secuencial
//Select MAX(apr_codapr)
//Into :ll_secuencial
//From PCIE_EIS_DES..apr_aprobacion

for ll_aux = 1 to lds_origen.RowCount()
// apr_codapr = ll_secuencial + ll_aux
li_indice ++
ll_fila= rdw_destino.InsertRow(0)
rdw_destino.SetItem(ll_fila,'fac_codfacapr',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.GetItemString(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,'facilidad_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:AMIGOS AYUDA URGENTE POR FAVOR

Publicado por karen (274 intervenciones) el 23/11/2005 21:25:10
me parece que lo que hiciste y comentaste esta bien
Secuencial
Select MAX(apr_codapr)
Into :ll_secuencial
From PCIE_EIS_DES;
y en tu loop

a ese secuencial le agregas tu variable de incremento

ll_secuencial + ll_aux
y a tu campo en el datastore le haces el set item
rdw_destino.SetItem(ll_fila,'campo',ll_secuencia)
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