Acceder a propiedades de valores en expresiones

Dentro de las expresiones, ciertos tipos de datos tienen propiedades. Este artículo, escrito desde la perspectiva del desarrollador, describe cómo acceder a las propiedades de los valores en las expresiones. En Architect, el elemento de valor de datos de moneda contiene dos propiedades disponibles:

  • Monto: A decimal que refleja el monto de la moneda
  • Código: Una cadena que contiene el código ISO 4217 para la moneda.

Por ejemplo, una moneda con una Monto de 5.00 y código de "USD" es 5 dólares estadounidenses.

Ejemplo: Acceda a la cantidad establecida en moneda

Suponga que tiene una variable Flow.MyCurrency con un tipo de datos Moneda y desea obtener la cantidad establecida en la moneda. Architect admite tres formas sintácticas de acceder a la propiedad Amount. 

Método Descripción
Flow.MyCurrency.Amount Este método es válido para cualquier propiedad cuyo nombre comience con una letra y vaya seguido de una o más letras, dígitos o guiones bajos.
Flow.MyCurrency. "Cantidad"

Este método es válido para cualquier nombre de propiedad, incluidos los nombres de propiedad que contienen espacios o puntos. Es importante recordar que accede a la propiedad a través de una cadena literal y estándar escapar de las reglas solicitar el literal de cadena. Si un valor contiene un nombre de propiedad de AM \ PM, no es válido acceder a él con la sintaxis que se muestra en la Ejemplo de Flow.MyCurrency.AmountLearn

Válido

Utilice un literal de cadena de la siguiente manera:

Flow.MyCurrency. "AM \\ PM"

En este ejemplo, use la barra invertida como una secuencia de escape dentro del literal de cadena. 

Inválido

Con el método Flow.MyCurrency, solo se admite un literal de cadena. El siguiente ejemplo no es válido.

Flow.MyCurrency. "Am" + "ount" o Flow.MyCurrency. (Am "+" ount ")

Si el nombre de una propiedad contiene un carácter que debe escaparse, use comillas para acceder a él. En el siguiente ejemplo, queremos acceder al nombre de la propiedad "AM \ PM" en un tipo de datos. La cadena correcta es:

Flow.ExampleVar. "AM \ PM"

Para obtener más información sobre cómo escapar de los literales de cadena, consulte Usa cadenas literales en expresiones.

Flow.MyCurrency ["Cantidad"] Este método es el mismo que Flow.MyCurrency. Sin embargo, utilice un operador de corchetes, en lugar de un decimal, para acceder a la propiedad. Este método contiene un paréntesis de apertura y un paréntesis de cierre. Si bien se admite esta notación, no es la predeterminada que se muestra en la funcionalidad de escritura anticipada en los editores de expresiones. Además, el acceso a la propiedad dentro de los corchetes debe ser un literal de cadena con el escape apropiado.

Los ejemplos anteriores usan una variable para acceder a la propiedad de monto. Recuerde, esencialmente está trabajando con el valor de la moneda en la variable de la moneda y accediendo a una propiedad en esa variable. Por ejemplo, los siguientes también son ejemplos válidos porque MakeCurrency devuelve un valor de moneda y puede acceder a la cantidad desde la moneda devuelta:

  • MakeCurrency (10,00, "USD"). Importe
  • MakeCurrency (10,00, "USD"). "Importe"
  • MakeCurrency (10,00, "USD") ["Importe"]

NOT_SET en valores de datos

En expresiones, asegúrese de que su valor esté establecido. Si, por ejemplo, un valor de moneda es NOT_SET, no puede acceder a la propiedad Importe o Código. Este ejemplo es sintácticamente válido:

ToCurrency (NOT_SET) .Amount

Sin embargo, se produce un error en tiempo de ejecución porque no puede acceder a la propiedad Amount en una moneda NOT_SET. La mejor práctica recomienda que confirme que un valor de datos es NOT_SET antes de acceder a una propiedad en él.