on 11-25-2010 9:31 PM
Estimados
Tengo el siguiente caso: he creado una tabla de usuario y me sirven los dos campos originales con los que se crea, Code y Name, sin embargo, al ingresarle información me da el siguiente error
Conversion Failed when converting the nvarchar value '-3 @tabla_de_usuario' to data type int (CINF)
De acuerdo a información que visto por el foro dedusco que se debe a que se está duplicando un valor, que es primario, que se contiene en alguna otra tabla (esto comprendo pero no lo aseguro)
Ahora bien si alguno de ustedes sabe como proceder para que no me pase esto se los agradezco, en las notas de SAP aun sigo sin encontrar nada aunque es bastante extensa la busqueda en ellas.
agradezco el apoyo
Saludos Cordiales
Marco Ramírez
Para solucionar este inconveniente:
Cada vez que uses la variable @object_type del Transaction Notification comparala con valores tipo cadena no numericos.
en tu caso @object_type= '2' no solamente el numero.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Tienes sólo los campos estandar en la tabla o le pusiste campos de usuario?
El registro estas llenandolo via SAP?
Por lo que dice el error, no es una duplicidad de un campo llave, pues te este te daria un error como "infraccion a la llave primaria en la tabla xxxxx"
slds.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gracias Rulius
Te amplío: la tabla de usuario cuenta con los campos estándard con los que se crea la tabla (Code y Name)
esta tabla la tengo puesta en un campo de usuario en el que me sirve como una lista de valores que se deben ir llenando.
A partir de lo anterior ingreso los datos y me genera el error
y si lo estoy llenando los registros vía SAP
Hola te comento que los datos que debe llevar el campo code y name no pueden ser duplicados, siempre debe ser un consecutivo, el error que te esta dando es de tipo de datos, verifica el dato que estas mandando a la tabla con respecto al tipo de dato que almacena dicho campo de usuario
correte un sp_help @tutabla para ver el tipo de datos que debes mandar
He hecho las pruebas indicadas, dejando la tabla de usuario con los dos campos originales con que se crea y el error continua.
Como te decía en el mensaje anterior, hice pruebas de ingreso de datos en otras dos tablas de usuario que antes se habían creado y me da el mismo error, ahora bien, las tablas que te menciono ya tienen otros datos ingresados que en su momento no hubo complicaciones para ingresar.
En cuanto al código en el TN como determinar si uno de ellos afecta estas tablas?
gracias
Mauricio
Tengo una luz al final del tunel!
Por erro había comentariado el código completo de otra base de datos de pruebas.
Comentarie el código en TN de la BD correcta y el error desarparecio y los datos han sido gragados sin problema alguno
ahora bien, como determinar que parte del código en TN es el que me provoca el error?
Saludos
Marco Ramírez
Me he ido revisando código a código y el culpable de todo es este que te adjunto
If @object_type = 2 -- Maestro de socios de negocios
Begin
declare @cont int
declare @nit varchar(15)
declare @tipo char(1)
Select @nit = U_NIT,
@tipo = CardType
from OCRD
WHERE CARDCODE = @list_of_cols_val_tab_del
select @cont = count(1)
from OCRD
where U_NIT = @nit
and CardType = @tipo
-- VALIDACION CAMPO OBLIGATORIO NIT
Declare @Nit2 as nvarchar(20)
, @CardType as nchar(1)
, @CountryDefault as nchar(3)
, @Country as nchar(3)
Select @CountryDefault = 'GT'
Select @Nit2 = T0.U_Nit
, @Country = Country
From OCRD T0
Where CardCode = @list_of_cols_val_tab_del
If (@Nit2 Is Null or Len(Rtrim(@Nit2))=0) And @Country = @CountryDefault
Begin
set @error = 1
set @error_message = 'Falta NIT de Socio de Negocio.'
end
else
Begin
if @cont > 1 -- and @nit <> 'CF' BEGIN
Begin
set @error = 1
set @error_message = 'Ese NIT ya existe....'
End
End
end
Cuál es tu apreciación del código?
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.