Saltearse al contenido

Estructuras de contenedores de AnnA

Los contenedores AnnA se clasifican en los siguientes tipos:

  • Mensaje
  • Hora
  • Multimedia
  • ExecFunction (Función de ejecución)
  • Pregunta
  • Alternativa

Los contenedores siempre contendrán un ‘PropName’ que representa el nombre de la opción/propiedad, y un ‘PropValue’ que será el valor de la opción/propiedad.

El primer nivel de la estructura siempre será ‘Contenedor + secuencia’, con el valor siendo la configuración del tipo de contenedor:

[
{
"PropName": "Container001",
"PropValue": "..."
},
{
"PropName": "Container002",
"PropValue": "..."
}
]

Message container

Envía un mensaje al usuario.

PropNamePropValueDescripciónEstándarObligatorio
TypeMESSAGETipo de contenedorSi
AliasMessage123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Message123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
PhraseHello AnnA!Texto que será enviado al usuario.Si

Time container

Espera un tiempo antes de continuar con la ejecución de los contenedores.

PropNamePropValueDescripciónEstándarObligatorio
TypeTIMETipo de contenedorSi
AliasTime123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Time123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
ShowMessageDefine si el mensaje debe ser mostrado.SNo
MessageTexto que será enviado al usuario, por ejemplo, Hello World!Wait @@TimeToWait@@sNo
TimeToWait5Define el tiempo de pausa de la ejecución en segundos.0S

Multimedia container

Envía archivos multimedia al usuario, por ejemplo, imágenes, videos, audios y documentos.

PropNamePropValueDescripciónEstándarObligatorio
TypeMULTIMEDIATipo de contenedorSi
AliasMedia123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Media123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
PhraseTexto que será enviado al usuario, por ejemplo, Hello World!No
MediaURLURL de descarga del archivo, por ejemplo, https://seu.dominio/rota/para/arquivo.extensãoSi

ExecFunction container

Realiza una o varias funciones de AnnA.

PropNamePropValueDescripciónEstándarObligatorio
TypeEXECFUNCTIONTipo de contenedorSi
AliasExecFunc123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, ExecFunc123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
ExpressionAddParm(Teste1,123) AddParm(Teste,456)Define expresiones con funciones de AnnA, por ejemplo, AddParm(Test1,123) AddParm(Test,456)Si

Question container

Envía una pregunta al usuario.

PropNamePropValueDescripciónEstándarObligatorio
TypeQUESTIONTipo de contenedor
AliasQuestion123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Question123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
PhraseTexto de la pregunta que será enviada al usuario
CompetenceCompetencia de este contenedor. Puede ser una competencia registrada por la empresa o una nueva competencia que se creará durante el procesamiento.No
SubjectAsunto de este contenedor. Puede ser un asunto registrado por la empresa o un nuevo asunto que se creará durante el procesamientoNo
TopicTema dentro de un Asunto. Puede ser un Tema registrado en un Asunto de esta empresa o un nuevo tema que se creará durante el procesamiento dentro del Asunto en el campo anterior.No
IgnoreExecFluxoEs posible configurar un contenedor para suspender el permiso de un usuario para llamar a otro servicio mientras se responde la pregunta No.NNo
SensitiveDataActivar este recurso hace que cualquier respuesta del usuario almacenada en nuestra base de datos se encripte utilizando la clave de encriptación de la empresa.NNo
RightAnswerActivar este recurso obliga a que, para continuar, la respuesta del usuario coincida con una de las respuestas permitidas en PropValue del PropName PossibleAnswersNNo
RightAnswerValueUn Valor para la Pregunta, que se puede utilizar en estadísticasNo
AnswerTypeDefine si se debe enviar algún feedback al usuario después de responder la pregunta. Valores permitidos: N, Q. N = No enviar nada, Q = Enviar el contenido de CorrectAnswerComment e IncorrectAnswerCommentNNo
CorrectAnswerCommentDefine qué mensaje se mostrará cuando el usuario responda correctamente según la PropValue de PropName PossibleAnswersNo
IncorrectAnswerCommentDefine qué mensaje se mostrará cuando el usuario no acierte ninguna respuesta entre las respuestas definidas en PropValue del PropName PossibleAnswersNo
DynamicValidationsPuedes usar funciones Anna para leer la respuesta del usuario y construir una expresión que devuelva TRUE o FALSE para que el flujo solo continúe cuando la expresión sea verdadera.No
ValidationErrorDefine un mensaje que se mostrará después de que el usuario responda la pregunta y el resultado de la Validación Dinámica sea FALSENo
ValidationMaskUtiliza las funciones Anna de Máscara para enmascarar la respuesta del usuario. Las respuestas enmascaradas se pueden recuperar mediante Funciones AnnANo
ExternalDataEs posible almacenar en este campo cualquier información que desee recuperar a través de las funciones ‘LastAnswerJSON()’ y ‘AnswersJSON()‘No
PossibleAnswersJson de las posibles respuestas del usuario a la pregunta cuando RightAnswer=SNo

Possible Answers

Esta estructura debería ser simplemente una colección de objetos con PropName y PropValue:

Por ejemplo, si la pregunta es ‘1 + 1 = ?‘. Las posibles respuestas serían:

[
{
"PropName": "Answer 1",
"PropValue": "Dois"
},
{
"PropName": "Answer 2",
"PropValue": "2"
}
]

Alternative container

Envía una pregunta de opción múltiple al usuario.

PropNamePropValueDescripciónEstándarObligatorio
TypeALTERNATIVETipo de contenedor
AliasAlternative123Utilice para identificar el contenedor después de que el nodo de WebService se ejecute, por ejemplo, Alternative123.No
RestrictToGroupRestringe la ejecución del contenedor por grupo de usuario.No
BeforeExecutionRuleDebe ser una expresión. Puedes utilizar funciones de AnnA que devuelvan ‘true’ o ‘false’ para decidir si el contenedor debe ser ejecutado.No
PhraseTexto de la pregunta que será enviada al usuario
CompetenceCompetencia de este contenedor. Puede ser una competencia registrada por la empresa o una nueva competencia que se creará durante el procesamiento.No
SubjectAsunto de este contenedor. Puede ser un asunto registrado por la empresa o un nuevo asunto que se creará durante el procesamientoNo
TopicTema dentro de un Asunto. Puede ser un Tema registrado en un Asunto de esta empresa o un nuevo tema que se creará durante el procesamiento dentro del Asunto en el campo anterior.No
EnumerationEsta opción permite definir cómo se deben enumerar las alternativas del contenedor.
N = Números, L = Letras, R = Romanos, I = Lista (WhatsApp Popup), B = Botones (WhatsApp Buttons)
NNo
RandomizeMezcla las alternativas antes de mostrarlas al usuario. Por Estándar tiene el valor ‘N’NNo
RightAnswerActivar este recurso obliga a que, para continuar, la respuesta del usuario coincida con una de las respuestas permitidas en PropValue del PropName PossibleAnswersNNo
AnswerTypeDefine si se debe enviar algún feedback al usuario después de responder la pregunta. Valores permitidos: N, Q. N = No enviar nada, Q = Enviar el contenido de CorrectAnswerComment e IncorrectAnswerComment Padrón a ‘N’NNo
AnswerTypeCommentDefine qué mensaje se mostrará cuando el usuario responda a la preguntaNo
ExternalDataEs posible almacenar en este campo cualquier información que desee recuperar a través de las funciones ‘LastAnswerJSON()’ y ‘AnswersJSON()‘No
AlternativesColección/vector de alternativas

Alternatives

Esta estructura es similar al primer nivel de contenedor, aquí tenemos una colección de PropName y PropValue donde PropName será “Alternative+Secuencia” y PropValue será un PropJSON.

Primero, la estructura de una alternativa:

PropNamePropValueDescripciónEstándarObligatorio
AliasUn alias es un apodo que se puede utilizar para identificar la alternativa en caso de que necesite hacer referencia en alguna función.No
RestrictToGroupIndique el alias de un grupo de usuarios registrado en la empresa para restringir este contenedor a ese grupo.No
ExhibitionRuleDefina aquí una expresión utilizando funciones de Anna para que, si es verdadera, se procese el contenedor.No
PhraseTexto de la alternativa
IsCorrectAnswerDetermina si es una alternativa correcta, solo una alternativa correcta por pregunta. Atención: “S” solo se permitirá si la pregunta es del tipo “AnswerType=S”No
AlternativeValueUn valor para la alternativa, que se puede utilizar en estadísticasNo
OrderOrden de la alternativaNo
CommentDefine qué mensaje se mostrará cuando el usuario responda a la preguntaNo

Exemplo:

[
{
"PropName": "Alternative1",
"PropValue": [
{
"PropName": "Alias",
"PropValue": "Alternative001"
},
{
"PropName": "Phrase",
"PropValue": "2 dois"
},
{
"PropName": "Order",
"PropValue": "1"
},
{
"PropName": "IsCorrectAnswer",
"PropValue": "S"
}
]
},
{
"PropName": "Alternative2",
"PropValue": [
{
"PropName": "Alias",
"PropValue": "Alternative002"
},
{
"PropName": "Phrase",
"PropValue": "5 cinco"
},
{
"PropName": "Order",
"PropValue": "2"
}
]
}
]