Opened 14 years ago
Last modified 14 years ago
#823 new enhancement
Acceso a un DataSet del repositorio a partir de un atributo
| Reported by: | imendez | Owned by: | Pedro Gea |
|---|---|---|---|
| Priority: | major | Milestone: | Next |
| Component: | Persistence | Keywords: | |
| Cc: |
Description
Hola, tengo una duda:
La manera que yo conozco de cargar un DataSet de un repositorio es por su nombre y versión:
NameBlock ds = MMS::Container::GetObject_Load(
"DataSet",
[[
Text DataSetName = "XXX",
Text DataSetVersion = 1.0
]],
Repositorio);
¿Se puede hacer lo mismo pero con cualquier otro atributo? Algo tipo:
NameBlock ds2 = MMS::Container::GetObject_Load(
"DataSet",
[[
Text _.por = "CrCa",
Text _.vir = "N"
]],
Repositorio);
Tengo un DataSet que tiene esos atributos, pero obtengo un error:
Warning: [26] [@MainContainer$GetObject_Load] No se ha encontrado el objeto '[[ "CrCa", "N"]]' (DataSet).
ERROR: [65] Fallo en la función "GetObject_Load"
[Call stack]
[1] NameBlock MMS::Container::Container::GetObject_Load (Text subclass, Anything info, Anything where)
Warning: [27] La función :: ha fallado en :
MMS::Container::GetObject_Load("DataSet", SetOfAnything(Text _.por="CrCa", Text _.vir="N"), OptCob.Repo)
ERROR: [66] ds2 no se pudo crear.
Si no se puede hacer, creo que sería una buena mejora.
Gracias, un saludo.
Change History (2)
comment:1 Changed 14 years ago by
| Milestone: | → Release 0.6 |
|---|---|
| Type: | doubt → enhancement |
| version: | → 0.6 |
comment:2 Changed 14 years ago by
Para intentar reproducir el mecanismo de carga solicitado puede hacerse algo como:
Text objectType = ...; // Ej. "DataSet"
MMS::@Repository repository = ...; // Ej. MMS::Network::GetRepository(1)
Text attributeName = ...; // Ej. "_.por"
Text attributeValue = ...; // Ej. "CrCa"
Set selection = Select(repository::GetObjectsCatalog(objectType), Real (NameBlock ne) {
Text title = getOptArg(ne::attributes, attributeName , "");
title == attributeValue
});
Anything If(Card(selection), {
NameBlock ne = selection[1];
repository::LoadObject(objectType, [[ne::name, ne::version]])
});
Note: See
TracTickets for help on using
tickets.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
Los mecanismos de carga necesitan recibir el nombre o el identificador del objeto, o en su defecto un conjunto (
Set) con el par nombre-versión (en ese orden), de modo que no se pueden usar los atributos para ello.