Propiedad ValuesAllowed
Bienvenidos bibliotecarios a una nueva entrada😁.
En esta ocasión vamos a ver para que sirve la propiedad de ValuesAllowed y en que casos sería conveniente usarla.
¿Para que sirve esta propiedad?
Con esta propiedad podemos controlar los valores que el usuario puede introducir en un campo. Esta propiedad podemos usarla tanto en tables como en pages. Si la establecemos en una table esta restricción se aplicará en todos los usos de ese campo, mientras que si la declaramos en la page solo se aplicará la restricción en esa misma page.
Esta propiedad puede ser usada en campos de tipo: Boolean, Enum, Option, Integer, BigInteger, Decimal, Code y Text.
En mi opinión esta propiedad es bastante interesante a la hora de usarla con campos de tipo Enum, ya que si queremos usar un Enum pero solo mostrar algunas de sus opciones, con esta propiedad las opciones no permitidas no serán mostradas al usuario. De esta manera no tendremos que hacer una comprobación al validar el campo o por el contrario replicar el Enum, pero únicamente con las opciones permitidas.
Os dejo por aquí la documentación oficial de MIcrosoft: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/properties/devenv-valuesallowed-property
Y dicho esto veamos un par de ejemplos😎:
Crearemos una page donde tendremos dos variables, una de tipo Integer y otra de tipo Enum «Purchase Document Type».
page 50000 "BBC Values Allowed"
{
PageType = Card;
ApplicationArea = All;
UsageCategory = Tasks;
Caption = 'Values Allowed', Comment = 'ESP="Valores permitidos"';
layout
{
area(Content)
{
group(General)
{
field(Amount; Amount)
{
ApplicationArea = All;
Caption = 'Amount', Comment = 'ESP="Importe"';
}
field(Documents; Documents)
{
ApplicationArea = All;
Caption = 'Purchasee Documents', Comment = 'ESP="Documentos de compra"';
}
}
}
}
var
Amount: Text;
Documents: Enum "Purchase Document Type";
}
Ahora como podreemos observar somos libres de introducir cualquier valor en cualquiera de los dos campos.
Sin embargo ahora añadamos la propiedad de ValuesAllowed a nuestros campos. En el campo Importe solo permitiremos el valor 300 y en el campo de Documentos de compra solo permitiremos las opciones pedido, factura o abono.
page 50000 "BBC Values Allowed"
{
PageType = Card;
ApplicationArea = All;
UsageCategory = Tasks;
Caption = 'Values Allowed', Comment = 'ESP="Valores permitidos"';
layout
{
area(Content)
{
group(General)
{
field(Amount; Amount)
{
ApplicationArea = All;
Caption = 'Amount', Comment = 'ESP="Importe"';
ValuesAllowed = '300';
}
field(Documents; Documents)
{
ApplicationArea = All;
Caption = 'Purchasee Documents', Comment = 'ESP="Documentos de compra"';
ValuesAllowed = Order, Invoice, "Credit Memo";
}
}
}
}
var
Amount: Text;
Documents: Enum "Purchase Document Type";
}
Ahora si introducimos un valor que no sea 300 nos dará el siguiente error:
Sin embargo si introducimos el valor 300, no nos dará ningún problema
En cuanto al campo de Documentos de compra, y para mí lo más interesante de esta propiedad, es que únicamente nos muestra los valores permitidos. Los valores excluidos quedan ocultos al usuario.
Espero que os sirva de ayuda el entender el uso de esta propiedad😁. Si tenéis alguna pregunta no dudes en dejarla en comentarios😜
Ahora te toca a ti😎.
¡Un saludo!
LA BIBLIOTECA DE BC