#483 closed defect (fixed)
Al crear una variable con el mismo nombre que la que hay en dependences (por error), se cae tol.
Reported by: | mlocubiche | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Release 0.6 |
Component: | Variables | Keywords: | |
Cc: |
Description
Buenas, ayer por error (copy-paste), defini una
variable con el mismo nombre de la que tiene en
dependences. Al intentar obtener los datos se cae
tol y no deja rastro. Creo que seria bueno trazar
este tipo de errores para que se sepa que nos
hemos equivocado. Gracias, pongo aqui un ejemplo
sencillo que reproduciria el error;
// Una vez generado un modelo MMS::@DataSet localDs = model::GetDataSet(0); MMS::@Variable varEjemplo = localDs::ReplaceVariable( [[ Text _.type = "Serie"; Text _.name = "Ejemplo"; Text _.expression = "Serie CalInd((WD(6)+WD(7)), Diario)" ]] ); MMS::@Variable varEjemplo2 = localDs::ReplaceVariable( [[ Text _.type = "Serie"; Text _.name = "Ejemplo"; Text _.expression = "Serie CalInd(%1+WD(5), Diario)"; Set _.dependences = SetOfText( "Ejemplo" ) ]] );
En el ejemplo anterior al graficar la varEjemplo2 se caería tol
Un saludo,
Manuel Locubiche Malaxechevarria
Change History (4)
comment:1 Changed 14 years ago by
Component: | General → Variables |
---|---|
Milestone: | GUI 0.6 → Release 0.6 |
Status: | new → accepted |
comment:2 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:3 Changed 14 years ago by
En el ejemplo que se indica se obtendrían los siguientes mensajes:
ERROR: [1] [@Variable::_.CheckDependencesCycle] La variable 'Ejemplo' depende de sí misma a través de: 'Ejemplo'. ... Warning: [1] [@Variable::_.AvoidDependencesCycle] Se deshacen las dependencias de 'Ejemplo': Set _.dependences = [[ [[ "Ejemplo", ""]]]]
comment:4 Changed 14 years ago by
Note: See
TracTickets for help on using
tickets.
(In [2203]) Se crea un método _.CheckDependencesCycle que permite comprobar si en las dependencias de una variables hay una vinculación con un determinado identificador.
También se añade un método _.AvoidDependencesCycle que impide la formación de ciclos. Este método se llama automáticamente cuando una variable se crea o cambia.
La única manera de evitar el ciclo es romper las ligaduras establecidas mediante las dependencias, de modo que éstas se eliminarán y se comunicará el cambio mediante un mensaje de advertencia.
Se itera la versión de MMS.
Closes #483