Día 2: Create an Application: First Steps, ¿Que te llevas de la actividad?
Discussion posts and replies are publicly visible
Create an Application
Las aplicaciones se crean en the Appian Designer.
The Appian Designer se utiliza para crear y administrar aplicaciones y objetos.
Podemos usar Build view Para crear y configurar objetos de diseño en una aplicación
Tenemos diferentes tipos de iconos para presentar objetos, entre ellos estan los grupos, record types, process models, expression rules, sites e interfaces
Dentro del knowledge center folder debemos guardar : images, documents o cualquier tipo de archivo cargado
Manage U&G
User Types
Basic Users - no tienen acceso a nada de la aplicación hasta que les proveamos acceso al añadirlos a un grupo
System Administrator - tienen acceso por default a toda la aplicación, pueden diseñar o administrar objetos y acceder a la consola de administracion.
Options for adding users
Usualmente añadimos usuarios manualmente cuando estamos trabajando en un ambiente de desarrollo o de prueba debido a que solo necesitamos un numero limitado de usuarios para probar la aplicacion. Sin embargo, al trabajar en un ambiente de production podemos automatizar este proceso utilizando LDAP Y SAML desde la Admin console, LDAP Tools application o Group Management Application.
Why Groups
Debido a que cada grupo tiene distintos niveles de acceso, solo se proporcionan los accesos requeridos para cada grupo, por default solo los administradores tienen acceso a los objetos.
Los grupos ayudan a:
Security (seguridad) - solo se debe tener acceso a lo que corresponda el rol del grupo
Access to App features - acceso a las características de la app dependiendo del grupo al que pertenezcan así como a las vistas a las que deban tener visibilidad
Assignment of task and messaging - dependiendo del grupo se tiene acceso a distintas tareas y mensajes
Best practice - La seguridad siempre debe ser establecida a grupos y no a usuarios especificos
Application Groups
Best practice - todas las aplicaciones deben de contener los siguientes grupos
All users - Es el grupo padre de todos los demas grupos, contiene todos los usuarios y grupos, los usuarios son añadidos a este grupo automaticamente, por lo cual no necesitas añadirlos.
Administratos - Incluye a los usuarios que pueden administrar la aplicación y que tiene la capacidad de crear, modificar, borrar y proveer seguridad los objetos de la aplicacion
Role-based groups - Estos grupos son creados para los usuarios de la aplicación y depende en el contexto de la aplicación (business users)
Functional Groups - Estos grupos están basados en la actividad que realiza el usuario
Best Practice
Create Groups - Pasos para crear grupos en orden siguiendo best practices
Una vez que cree los grupos ¿que sigue?
Add users to your groups - añade usuarios a tus grupos
Secure your application - Permision levels
Transform your data
Rule folder security
Expression rules heredan la seguridad de los folders, por lo cual establecer
La seguridad apropiada en el folder correspondiente ayuda a administrar mas facilmente
Security for rules es unicamente aplicable para developers
Data Types
Primite system data types (basic data types)
Text, numbers, boolean, dates
Complex data types (basic data types) : non-modifiable structure of pre-defined fields
Datasubset : tipo de dato representa los datos retornados por una query/peticion
Custom Data Types : Objeto que contiene los campos definidos por el usuario , emparejados con el tipo de dato
Al testear una "expression" podemos checar que tipo de dato es retornado por la misma mediante el output
Appian Functions
La documentación es mostrada en el editor
Tenemos funciones como if(condicion, si es verdadera, si es falsa)
Tenemos funciones de tiempo date, now
Tenemos la funciona de calendario, cal
Tenemos la funcion loggedinuser, la cual retorna el usuario actual
Funciones de currency o moneda retornar valores de texto
El prefijo a! identifica las funciones de tipo SAIL
Variables
Rule input son definidas con ri!, funcionan para pasar informacion en ejecucion
Para manejar algun valor nulo podemos ocupar la funcion "isnull"
Las variables son usadas cuando el tipo de dato es variable
Pueden ser definidas como tipos de datos primitivos, o como objetos. Se recomienda declarar el nombre de la variable en minuscula
Podemos ocupar una "constant" si el valor no va a cambiar y es utilizado en múltiples lugares
Podemos ocupar local variables cuando solo son usadas unicamente dentro de una funcion o son usadas de manera temporal, podemos ocupar la syntax
!localVariables(
Local!a:valor)
Arrays
Colección de datos pueden contener distintos tipos de datos
Como de texto, numericos, etc.
El index en Arrays comienza en 1
Para definir un array ocupamos la siguientes syntax:
{"azul","verde"}
{1,2}
Podemos utilizar dictionaries para utilizar key:values y posteriormente una conversion o casting
Otra opcion es ocupar la funciona a!map(definir key y values) debido a que evitamos conversion o casting
Conversions
Todate(para convertir un string en un date)
Podemos ocupar touniformstring() para convertir una lista de variantes en texto manteniendo la estructura de la lista, por otro lado si utilizamos tostring convertira la lista en un solo objeto de texto
Calling Objects
Nunca usar una interfaz utilizada por otra aplicación, lo correcto es copiarla y utilizarla.
Testing and troubleshooting expressions
Si hay un error en la expresion un triangulo rojo será mostrado
Cada expresión correctamente configurada producirá un output
Testear la expresion al ir construyéndolas nos será de utilidad y lo hará mas sencillo
Podemos crear escenarios y guardarlos como test cases