Funciones insertadas desde la biblioteca de generación de lenguajes
SE APLICA A: SDK v4
En el artículo siguiente se detalla cómo insertar funciones desde la biblioteca de generación de lenguajes (LG).
ActivityAttachment
Devuelve un valor activityAttachment
construido a partir de un objeto y un tipo.
ActivityAttachment(<collection-of-objects>)
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
<content> | Sí | object | Objeto que contiene la información de los datos adjuntos |
<type> | Sí | string | Una cadena que representa el tipo de datos adjuntos |
Valor devuelto | Tipo | Descripción |
---|---|---|
<activityAttachment> | object | Un valor activityAttachment formado a partir de las entradas |
Ejemplo:
en este ejemplo se convierte una colección de objetos en un valor activityAttachment
.
Supongamos que tiene la siguiente plantilla:
# externalHeroCardActivity(type, title, value)
[Activity
attachments = ${ActivityAttachment(json(fromFile('.\\herocard.json')), 'herocard')}
]
y el siguiente valor herocard.json
:
{
"title": "titleContent",
"text": "textContent",
"Buttons": [
{
"type": "imBack",
"Title": "titleContent",
"Value": "textContent",
"Text": "textContent"
}
],
"tap": {
"type": "${type}",
"title": "${title}",
"text": "${title}",
"value": "${value}"
}
}
Llamando a externalHeroCardActivity()
como función:
externalHeroCardActivity('signin', 'Signin Button', 'http://login.microsoft.com')
Devuelve un valor herocard
:
{
"lgType" = "attachment",
"contenttype" = "herocard",
"content" = {
"title": "titleContent",
"text": "textContent",
"Buttons": [
{
"type": "imBack",
"Title": "titleContent",
"Value": "textContent",
"Text": "textContent"
}
],
"tap": {
"type": "signin",
"title": "Signin Button",
"text": "Signin Button",
"value": "http://login.microsoft.com"
}
}
}
expandText
Evalúe el texto sin formato en un objeto y devuelva los datos de texto expandidos.
expandText(<object>)
Parámetro | Obligatorio | Type | Description |
---|---|---|---|
<objeto> | Sí | object | Objeto con texto que se va a expandir. |
Valor devuelto | Tipo | Description |
---|---|---|
<evaluated-result> | object | Datos de texto expandidos. |
Los
En este ejemplo se evalúa el texto sin formato en un objeto JSON y se devuelve el resultado de texto expandido.
Digamos que tiene el objeto siguiente:
{
"@answer": "hello ${user.name}",
"user": {
"name": "vivian"
}
}
La llamada expandText(@answer)
dará como resultado el objeto hello vivian.
template
Devuelve el resultado evaluado del ámbito y el nombre especificados de la plantilla.
template(<templateName>, '<param1>', '<param2>', ...)
Parámetro | Obligatorio | Type | Description |
---|---|---|---|
<templateName> | Sí | string | Una cadena que representa el nombre de la plantilla |
<param1>,<param2>, ... | Sí | Object | Parámetros que se pasan a la plantilla |
Valor devuelto | Tipo | Description |
---|---|---|
<evaluated-result> | object | Resultado evaluado de la plantilla como función |
Los
en este ejemplo se evalúa el resultado de llamar a la plantilla como función.
Supongamos que tiene la siguiente plantilla:
# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}
La llamada a template("welcome", "DL")
dará lugar a uno de los siguientes resultados:
- Hi DL
- Hello DL
- Hey DL
fromFile
Devuelve el resultado evaluado de la expresión en el archivo especificado.
fromFile(<filePath>)
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
<filePath> | Sí | string | la ruta de acceso absoluta o relativa de un archivo contiene expresiones |
Valor devuelto | Tipo | Descripción |
---|---|---|
<result> | string | Representación de cadena del resultado evaluado |
Los
En este ejemplo se evalúa el resultado del archivo especificado.
Supongamos que tiene un archivo llamado /home/user/test.txt
. En el archivo encontrará lo siguiente:
`you have ${add(1,2)} alarms`
fromFile('/home/user/test.txt')
La función fromFile()
evaluará la expresión y el resultado reemplazará la expresión original.
La llamada a fromFile('/home/user/test.txt')
da lugar a la cadena you have 3 alarms (tiene 3 alarmas).
isTemplate
Devuelve si se incluye un nombre de plantilla especificado en el evaluador.
isTemplate(<templateName>)
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
<templateName> | Sí | String | Un nombre de plantilla que se va a comprobar |
Valor devuelto | Tipo | Descripción |
---|---|---|
<result> | Booleano | Si se incluye el nombre de plantilla especificado en el evaluador |
Los
En este ejemplo se usa la función isTemplate()
para comprobar si un nombre de plantilla especificado está en el evaluador. Por ejemplo, a continuación se muestran tres plantillas:
# welcome
- hi
# show-alarms
- 7:am and 8:pm
# add-to-do
- you add a task at 7:pm
La llamada a isTemplate("welcome")
se evaluará como true
. La llamada a isTemplate("delete-to-do")
se evaluará como false
.