GeneXus - Duda en procedimiento comando NEW

   
Vista:
Imágen de perfil de David

Duda en procedimiento comando NEW

Publicado por David (18 intervenciones) el 12/08/2015 23:31:31
Buenas espero me sepan ayudar, en un procedimiento debo almacenar 2 registros similares solo cambian en pocos detalles.

Ejm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
new
    fecha = &fecha
    origen = 61
    productoid = &prodid
    codigotransaccion = 'I02'
    destino = 0
    cantidad = &saldo
    costounitario = &costo
    descripcion = 'Producto nuevo'
    usuario = &usuario
endnew
 
new
    fecha = &fecha
    origen = 61
    productoid = &prodid
    codigo = 'E07'
    destino = &destino
    cantidad = &saldo
    costounitario = &costo
    descripcion = 'Transferencia'
    usuario = &usuario
endnew

Donde al ingresar un producto nuevo se deben registrar en el el mismo archivo dos registros, es decir esto pasa solo cuando crean un nuevo producto:
1
2
3
4
Fecha	Origen	ProductoID	Codigo	Destino	Cantidad	CostoUnitario	Descripcion	Usuario
='editor_line'>
20150812	61	a45	I02	0	4	3,65	Producto nuevo	David
20150812	61	a45	E07	24	4	3,65	Transferencia	David

Sin embargo solo crea el primer registro. Es como si al segundo NEW estuviese comentado (//). Al variar las posiciones hace lo mismo solo toma en cuenta el primer NEW en leer

Nota la clave está formada por:

1
2
3
4
fecha
origen
productoid
codigo

Nota2. Uso Genexus 8 Generador RPG y AS400

Ayuda por favor gracias
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
Imágen de perfil de Fede

Duda en procedimiento comando NEW

Publicado por Fede (2 intervenciones) el 14/08/2015 22:07:46
Buenas , Proba hacerle un Commit entro los 2 New.

Saludos!
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
Imágen de perfil de David

Duda en procedimiento comando NEW

Publicado por David (18 intervenciones) el 14/08/2015 22:32:10
si lo intente pero no resultó.
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
Imágen de perfil de Jhony

Duda en procedimiento comando NEW

Publicado por Jhony (19 intervenciones) el 15/08/2015 22:52:56
Podrias mostrar los parámetros que recibe ese proc.?
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
Imágen de perfil de David

Duda en procedimiento comando NEW

Publicado por David (18 intervenciones) el 18/08/2015 18:18:11
La siguiente es la regla parm del procedimiento:

1
parm(&prodid, &saldo, &costounitario, &usuario);
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

Duda en procedimiento comando NEW

Publicado por Julio (301 intervenciones) el 16/08/2015 02:26:42
En el primer new tienes declarado el att codigotransaccion y en el segundo solo codigo! es solo un error de transcripción?
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
Imágen de perfil de David

Duda en procedimiento comando NEW

Publicado por David (18 intervenciones) el 18/08/2015 18:20:15
si, por obvias razones no puedo compartir el código tal cual está sin embargo es semejante al original.
Recién lo noté. Gracias.
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

Duda en procedimiento comando NEW

Publicado por Julio (301 intervenciones) el 19/08/2015 00:33:05
Que tal si pruebas a hacerle un call 2 veces, enviándole la primera vez un switch con valor 0 en la primera y 1 en la segunda; dependiendo del valor switch recibido en el procedure que tendrá un solo juego new-endnew, en variables asigna los valores necesarios que serán a su vez asignados a los att's según cada caso antes de hacer el new, y cuando retorne la llamada de la segunda vez haces un commit, por supuesto el procedure lo seteas en las propiedades Commit on exit = No
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

Duda en procedimiento comando NEW

Publicado por Guillermo (4 intervenciones) el 25/09/2015 18:39:24
En el segundo new agregale when duplicate y un mensaje. Como lo que contas es raro, yo probaría hacer eso ya que genexus no te avisa cuando no se puede hacer un new y el registro no se puede grabar por estar duplicado.

1
2
3
4
5
6
7
8
9
10
11
12
13
new
    fecha = &fecha
    origen = 61
    productoid = &prodid
    codigo = 'E07'
    destino = &destino
    cantidad = &saldo
    costounitario = &costo
    descripcion = 'Transferencia'
    usuario = &usuario
when duplicate
    msg('registro duplicado')
endnew
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
Imágen de perfil de David

Duda en procedimiento comando NEW

Publicado por David (18 intervenciones) el 25/09/2015 19:09:25
Si efectivamente ya lo arreglé... el problema estaba en la definición del primary key -.-!!!
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