[genexusextensions] Crear Item de SDT basado en el mismo SDT

Hola a todos,


Estoy intentando crear un SDT que tenga un item de tipo colección que sea de tipo el mismo SDT que se está creando.

Tengo el siguiente código:

sdt = new SDT(model);
sdt.Name = "SDT1";
sdt.Parent = Folder.GetRoot(model);
SDTLevel nivelSup = sdt.SDTStructure.Root;
nivelSup.AddItem("Name", eDBType.VARCHAR, 40);
nivelSup.IsCollection = false;

SDTLevel nivel21 = nivelSup.AddLevel("SDT2Collection", "SDT2");
SDTItem item = nivel21.AddItem("SDT2", eDBType.GX_SDT);
DataType.ParseInto(model, "SDT2", item);
nivel21.IsCollection = true;

//sdt.Save();

SDTLevel nivel22 = nivelSup.AddLevel("SDT1Collection", "SDT1");
SDTItem item2 = nivel22.AddItem("SDT1", eDBType.GX_SDT);
DataType.ParseInto(model, "SDT1", item2);
nivel22.IsCollection = true;

sdt.Save();

SDT2 asumo que ya existe y SDT1 es el que estoy intentando crear.
Al ejecutar este código me crea la estructura que quiero correctamente, asigna al item SDT2 el tipo SDT2, pero deja vacío el tipo del item SDT1.

Supuse que es porque como no he guardado aún SDT1, éste no existe y no puede ser asignado como un tipo.

Probé entonces descomentar el primer sdt.Save(); luego de agregar el item SDT2 para guardar el sdt y que luego cuando lo asigne ya exista pero el resultado fue peor aún. Ni siquiera agregó el segundo item.
Lo que está pasando es que luego de hacer save, ya no puedo modificar nada del SDT.

Probé también abrirlo en otro evento luego de que ya esté creado y agregarle items pero lo ignora, no agrega ningún item, no hace nada. El código de esto sería:

SDT sdt = SDT.Get(model, "SDT1");
SDTLevel nivelSup = sdt.SDTStructure.Root;
nivelSup.AddItem("char5", eDBType.CHARACTER, 5);
            
SDTLevel nivel21 = nivelSup.AddLevel("SDT1Collection", "SDT1");
SDTItem item = nivel21.AddItem("SDT1", eDBType.GX_SDT);
DataType.ParseInto(model, "SDT1", item);
nivel21.IsCollection = true;
sdt.Save();

Se agradece cualquier idea de que me puede estar faltando.

Saludos, Nicolás

--
Has recibido este mensaje porque estás suscrito al grupo "GeneXus" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a genexus@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a genexus+unsubscribe@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/genexus?hl=es.

0 Response to "[genexusextensions] Crear Item de SDT basado en el mismo SDT"

Publicar un comentario