GeneXus - Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

 
Vista:
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 02/10/2014 17:27:18
Saludos a la comunidad

Tengo un posible "cliente" que quiere ver Que "fluida" va una app con un montón de registros en una tabla..

Quiero hacer una tabla sencilla "Clientes" y introducir Automáticamente 500.000 registros.. del tipo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "

2 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "
 
3 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "

...
...
...

499.998 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "
 
 
499.999 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "


500,000 "John", "Smith", "13 ave", "Miami" FL "" jsmith@gmail.com "," 555-525-325 "," photo "

Actualmente estoy utilizando GeneXus Evo3 "Trila" por lo que tienes que ser en C#

¿Alguna ayuda, comentario?

Gracias de antemano

P.D
Espero que me haya explicado con claridad ;)
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 Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 02/10/2014 20:10:10
Hola Ivan.
Lo que podes hacer es crearte un procedimiento con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
For &i = 1 To 500000
    New
        Att_Id = &i
        Att_Nombre = "John"
        Att_Apellido = "Smith"
        Att_Direccion = "13 ave"
        Att_Localidad = "Miami FL"
        Att_Correo = "jsmith@gmail.com "
        Att_Telefono ="555-525-325"
        Att_Imagen = photo.jpg
    EndNew
EndFor

Obviamente tienes que cambiar el nombre de los atributos a los que correspondan en tu KB.
Lo ejecutas 1 vez y te carga la tabla clientes con 500.000 registros.


Cordial saludo
Maycoll Bennett
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
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 03/10/2014 01:01:38
Gracias por la respuesta

Pero no se mucho como realizar lo que me comenta..

He creado una nueva Transaction "Clientes"
con ClienteId, ClienteNombre, ClienteApellido, ClienteDireccion, ClienteLocalidad, ClienteCorreo, ClienteTelefono, ClienteImagen

En la pestaña de Variables he creado la variable "i"

He creado un nuevo procedure "AnadirClientes"
En "Source" puse lo que me comentó

1
2
3
4
For &i = 1 To 500000
....
...
EndFor

Ahora lo que no sé es como llamar a ese procedimiento para que se ejecute...

Supongo que tiene que ser Muuuy "sencillo" pero no sé como hacerlo...

Le agradecería cualquier orientación, ayuda o comentario.

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
Imágen de perfil de Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 03/10/2014 15:49:38
Ivan.
No hay problema, para eso está el foro.

Tu procedimiento entonces tiene que quedar así:

Pestaña SOURCE:
1
2
3
4
5
6
7
8
9
10
11
12
For &i = 1 To 500000
    New
        ClienteId = &i
        ClienteNombre = "John"
        ClienteApellido = "Smith"
        ClienteDireccion = "13 ave"
        ClienteLocalidad = "Miami FL"
        ClienteCorreo = "jsmith@gmail.com "
        ClienteTelefono = "555-525-325"
        ClienteImagen = LoadBitmap("C:\photo.jpg")          // <- Ejemplo de ubicación de una imagen, puede ser otra ubicación.
    EndNew
EndFor

Despues deberás crear otro objeto un Web Panel(para WEB) o Work Panel(para Win).
En ese objeto agregas un botón (por defecto te asigna el evento ENTER) y en la pestaña EVENTS pones el siguiente código

1
2
3
Event Enter
    NombreDelProcedure.Call()       // -- Cambiar "NombreDelProcedure" por el nombre de tu procedimiento
EndEvent


Espero te sirva.
Cordial saludo
Maycoll Bennett
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
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 03/10/2014 19:47:00
Gacias compañero por tu colaboración

He realizado los pasos que me comentas pero .... me sale este error

(Para la prueba he puesto que solo cree 100 (en lugar de los 500.000)

1
2
3
4
5
6
7
8
9
10
11
Server Error in '/Ideab63d3119500989174a93e9e52b2a5d' Application.
Arithmetic overflow error converting IDENTITY to data type smallint.
Arithmetic overflow occurred.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: System.Data.SqlClient.SqlException: Arithmetic overflow error converting IDENTITY to data type smallint.
Arithmetic overflow occurred.
 
Source Error:
 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


¿Alguna idea porqué me sale tooodo eso?? ¿será porque estoy con la versión "Trial" (O no tiene nada que ver)

Gracias una vez más

Saludos

Adjunto estructura por si hice algo mal...

ipASm6hEp
https://imageshack.com/i/ipASm6hEp
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 Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 03/10/2014 20:02:12
Iván.

Por casualidad el atributo ClienteId es autonumérico?
Si es autonumérico deberás borrar la siguiente línea de tu procedimiento.
1
ClienteId = &i

Saludos.-
Maycoll Bennett
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
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 03/10/2014 20:13:31
Si es autonumérico... ahora he sacado lo que me cometna y sale el mismo error...

Mando una img de como lo tenía montado.... Por si vé algún error, o algo que hice mal....

https://imageshack.com/i/ipASm6hEp

Gracias por su ayuda, su tiempo por milésima vez...
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
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 03/10/2014 20:18:59
O.k!!!!! ya estáaaa

He sacado el autonumber y todo lo demás lo deje como me dijo y ya me ha ingresado los 100 registros... con el Id correlativo

MUY BIEN!!!!!!

Muchas gracias... ahora le meteré los 500.000... a ver que tal funciona

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
sin imagen de perfil

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Iván (13 intervenciones) el 03/10/2014 21:09:50
Bueno ahora lo que me sucede es que me sale el siguiente error

Supongo que el servidor "no agunta" 500.000 registros de "golpe"...


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Server Error in '/Ideab63d3119500989174a93e9e52b2a5d' Application.
Request timed out.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: System.Web.HttpException: Request timed out.
 
Source Error:
 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
 
Stack Trace:
 
 
[HttpException (0x80004005): Request timed out.]
 
 
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18447


¿Hay alguna manera de poder crear 100.000 y después otros 100.000, pero siguiendo el orden anterior??

O sea que la segunda vez empieze del 100.001 hasta el 200.0001 y así hasta que llegue al 500.000

Gracias nuevamente!!
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 Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 03/10/2014 21:36:54
Ivan.

Podes cambiarle el valor de inicio a la variable &i y el valor de finalizado, y lo vas ejecutando, es medio engorroso porque para cada ejecución tenés que cambiar el código y volver a especificar y compilar.

Saludos.-
Maycoll Bennett
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 FERNANDO

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por FERNANDO (39 intervenciones) el 15/10/2014 04:26:51
Hola Maycoll.

Ojala me puedas ayudar en un problema que tengo y no se me ocurre como solucionarlo.

Estoy creando un pequeño sistema para controlar el inventario entre 2 bodegas en una pequeña empresa.

Para eso cree una transaccion llamada bodegas con el CodBodega, NomBodega.

Cuando ingreso un material en la transaccion "Ingreso de materiales" tengo la opcion de elegir la bodeda en la cual quiero almacenarlo.

Pero como puedo crear una transaccion para cambiar de bodega algun material en caso de que sea necesario (traslado de materiales).

Me puedes dar un ejemplo de como programar el traspaso de una bodega a otra.

Estoy trabajando con Genexus 9.0, .NET EN AMBIENTE WIN Y SQL SERVER 2008 COMO MOTOR DE BASE DE DATOS.

Desde ya muchas gracias.

Atte.
Fernando
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 Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 15/10/2014 13:26:57
Fernando.
Cómo estás?

Simplemente quieres cambiar ese material de bodega? Me parece que puedes acceder a la transacción "Ingreso de Materiales" en modo UPDATE y cambiarle el valor a ese campo para que indique que ahora pertenece a otra bodega.

Cuales son los parámetros de la transacción "Ingreso de Materiales"?

Saludos.-
Maycoll Bennett
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 FERNANDO

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por FERNANDO (39 intervenciones) el 15/10/2014 19:12:08
Hola Maycoll

Yo estoy muy bien gracias.

Con respecto a tu respuesta es muy valida pero necesito algo un poco mas especifico en caso de tener que:

Ya ingresado el material en su respectiva bodega mi duda mejor explicada seria en caso de que tenga que traspasar la mitad de los materiales ingresados. Ej. Tengo 100 barras de acero y quiero trasladar 50 barras solamente a la otra bodega dejando las 50 restantes en la bodega inicial.

Ojala me puedas ayudar. Estaré atento a tus respuestas.

Saludos.
Fernando.
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 Maycoll
Val: 101
Oro
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Maycoll (80 intervenciones) el 15/10/2014 20:56:50
Hola Fernando.

La solución que se me ocurre sería la siguiente.

En la Transacción de Ingreso de materiales, tener un atributo con el stock(capaz ya lo tienes) y quitar el atributo de CodBodega
Crear otra Transacción donde se relacionen, Bodega y Materiales (ambos como clave primaria) con un atributo propio de dicha transacción que sea cantidad.

1
2
3
4
TRN_NUEVA
* CodBodega
* CodMaterial (Clave primaria de Materiales)
Cantidad

Con esto creo que vas a poder tener un mismo material en diferentes bodegas e indicar la cantidad que hay en cada una de ellas.

Espero te haya sido de ayuda.

Cordial saludo.-
Maycoll Bennett
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 FERNANDO

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por FERNANDO (39 intervenciones) el 16/10/2014 00:35:47
Gracias Maycoll por tu respuesta.

Pero como tendria que dirigir el material a alguna bodega en el caso de quitar el CodBodega de la transaccion Ingreso de materiales. ¿Como le asigno una bodega a un material con esa nueva estructura que me planteas. No me queda muy claro.

Te adjunto un pantallazo de la interfaz de ingreso de materiales.

Saludos.

Fernando
Captura2
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
sin imagen de perfil
Val: 17
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Julio (305 intervenciones) el 16/10/2014 05:09:39
Tengo un sistema con algo bastante parecido, y lo que hice fue un control de Movimientos con una Trn en la que se indica bodega orígen y bodega destino, el resto se hace controlando que lo que se va a mover lo lea de la bodega orígen indicada previamente, de esta manera queda registrado el movimiento como constancia.
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 FERNANDO

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por FERNANDO (39 intervenciones) el 16/10/2014 23:40:38
Hola Julio.

Me podrias dar un ejemplo de codigo para poder controlar el movimiento de un material de una bodega a otra, Y se crea en una transaccion???

Saludos.
Fernando.
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
sin imagen de perfil
Val: 17
Ha mantenido su posición en GeneXus (en relación al último mes)
Gráfica de GeneXus

Alñadir a una tabla "Pruebas" registros FICTICIOS Automáticamente

Publicado por Julio (305 intervenciones) el 21/10/2014 02:08:34
Sobretodo pon mucha atención a la manera cómo están armados los subtipos de la Bodega orígen.

Pict02
Pict01
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