- Introdução
 - Antes de começar
 - Como fazer
- Acessar o URL de produção de um aplicativo
 - Crie um aplicativo compatível com dispositivos móveis
 - Depurar aplicativos
 - Incorporar mapas
 - Definir contexto externo
 - Use matrizes para preencher os controles Lista suspensa, Lista suspensa multiseleção e Botão de rádio
 - Use contagem com valores de conjunto de escolhas
 - Usar TabelaDeDados com controles de Tabela e de Editar Grade
 - Usar máscara de entrada
 
 - Notificações
 - Uso de expressões VB
 - Desenvolvimento de aplicativos
 - Eventos e Regras
- Regra: If-Then-Else
 - Regra: abrir uma página
 - Regra: Abrir o URL
 - Regra: fechar planilha pop-over/inferior
 - Regra: mostrar mensagem
 - Regra: exibir/ocultar o controle giratório
 - Regra: definir valor
 - Regra: iniciar o processo
 - Regra: redefinir valores
 - Regra: upload de arquivo no compartimento de armazenamento
 - Regra: baixar arquivo do bucket de armazenamento
 - Regra: criar registro de entidade
 - Regra: atualizar registro de entidade
 - Regra: excluir registro da entidade
 - Regra: adicionar à fila
 - Regra: fluxo de trabalho de gatilho
 
 - Aproveitamento do RPA no aplicativo
 - Aproveitamento de entidades no aplicativo
 - Aproveitando filas em seu aplicativo
 - Gerenciamento do ciclo de vida do aplicativo (ALM)
 - Guia básico de solução de problemas
 

Guia do usuário do Apps
- 
                     Função:
String Serialize(Object value) - 
                     
Descrição: retorna uma representação de string do objeto especificado.
 - 
                     
Exemplo:
Serialize(Queues.testQueue.arg1)Serialize(Queues.testQueue.arg1) 
- 
                     Função:
T Deserialize<T>(string obj) - 
                     
Descrição: retorna um objeto do tipo T. Aceita como entrada uma representação de string JSON válida de um objeto.
 - 
                     
Exemplo:
OndeDeserialize(Of AppsFile)(textV)Deserialize(Of AppsFile)(textV)textVé uma variável do tipo Text, que contém a string serializada do objeto. 
Para objetos
- 
                           
Função:
T? App.QueryParam<T>((string param, T? defaultValue = default(T)) - 
                           
Descrição:
- 
                                 
Se o parâmetro de consulta for passado no URL, a função retornará esse valor desserializado com base no tipo genérico T.
 - 
                                 
Se a desserialização falhar ou se o parâmetro de consulta não for passado no URL, a função retornará o valor padrão.
 
 - 
                                 
 - 
                           
Exemplo:
App.QueryParam(Of AppsFile)("file", new AppsFile("https://i0.wp.com/ imagelinkmri.com/wp-content/uploads/2021/08/imagelink-04.png"))App.QueryParam(Of AppsFile)("file", new AppsFile("https://i0.wp.com/ imagelinkmri.com/wp-content/uploads/2021/08/imagelink-04.png")) 
Para strings
- 
                           
Função:
string App.QueryParam(string param, string? defaultValue = "") - 
                           
Descrição:
- 
                                 
Se o parâmetro de consulta for passado no URL, a função retornará esse valor como string.
 - 
                                 
Se o parâmetro de consulta não for passado no URL, a função retornará o valor padrão.
 
 - 
                                 
 - 
                           
Exemplo:
App.QueryParam("stringVariable", "defaultText")App.QueryParam("stringVariable", "defaultText") 
- 
                        Função:
List<T> AddItemToList<T>(List<T> list, T value) - 
                        
Descrição: dada uma lista do tipo T, anexa um item à lista e retorna a lista atualizada.
 - 
                        
Exemplo:
AddItemToList(Of String)(stringList, "AddMe")AddItemToList(Of String)(stringList, "AddMe") 
- 
                     
Função:
List<T> UpdateListItemAtIndex<T>(List<T> list, int index, T value) - 
                     
Descrição: dada uma lista do tipo T, atualiza o item no índice especificado e retorna a lista atualizada.
 - 
                     
Exemplo:
UpdateListItemAtIndex(Of String)(stringList, MainPage.EditGrid.RowIndex,"UpdateValue")UpdateListItemAtIndex(Of String)(stringList, MainPage.EditGrid.RowIndex,"UpdateValue") 
- 
                        
Função:
List<T> DeleteItemFromList<T>(List<T> list, int index) - 
                        
Descrição: dada uma lista do tipo T, exclui o item no índice especificado e retorna a lista atualizada.
 - 
                        
Exemplo:
DeleteItemFromList(Of String)(stringList, MainPage.EditGrid.RowIndex)DeleteItemFromList(Of String)(stringList, MainPage.EditGrid.RowIndex) 
Essa função é usada pelo construtor de Consultas. Consulte A função Buscar para obter mais detalhes sobre essa função e como usá-la na prática.
Fetch() é assíncrona e não é compatível com encadeamento.
                  Para exibir um registro de entidade em um controle, associe a origem de dados do controle à entidade usando o construtor de Consultas. Consulte Como usar as funções Fetch para ver um exemplo prático.
- 
                        
Função:
ListSource<T> Fetch<T>(FilterGroup group = null, PaginationProps paginationProps = null, SortOption[] sortOptions = null, string[] selectedFields = null, ExpansionFieldOption[] expansionFieldOptions = null ) - 
                        
Descrição: retorna todos os registros de um objeto entidade, de acordo com os parâmetros mencionados.
 - 
                        
Exemplo:
Fetch(of AlexEntity)(createFilterGroup(Nothing, New FilterGroup(){createFilterGroup(New QueryFilter(){addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm)}, Nothing, 0)}, 0), New PaginationProps(MainPage.EditGrid.PageStart, MainPage.EditGrid.PageLimit), New SortOption(){addSortOption(MainPage.EditGrid.SortColumn, Not(Not(MainPage.EditGrid.isDescending)))}, Nothing, New ExpansionFieldOption(){addExpansionFieldOption("CreatedBy", New String(){"Id","Name"}), addExpansionFieldOption("UpdatedBy", New String(){"Id","Name"})})Fetch(of AlexEntity)(createFilterGroup(Nothing, New FilterGroup(){createFilterGroup(New QueryFilter(){addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm)}, Nothing, 0)}, 0), New PaginationProps(MainPage.EditGrid.PageStart, MainPage.EditGrid.PageLimit), New SortOption(){addSortOption(MainPage.EditGrid.SortColumn, Not(Not(MainPage.EditGrid.isDescending)))}, Nothing, New ExpansionFieldOption(){addExpansionFieldOption("CreatedBy", New String(){"Id","Name"}), addExpansionFieldOption("UpdatedBy", New String(){"Id","Name"})}) 
Essa função é usada pelo construtor de consultas e não deve ser confundida com a função Buscar. Consulte A função Buscar para obter detalhes sobre as diferenças entre essas duas funções e como usá-las na prática.
FetchOne() é assíncrona e não é compatível com encadeamento.
                  Para exibir registros de entidade em um controle, use uma variável do aplicativo e a regra Definir valor .
Consulte Como usar as funções Fetch para ver um exemplo prático.
- 
                        
Função:
T FetchOne<T>(FilterGroup group = null, PaginationProps paginationProps = null, SortOption[] sortOptions = null, string[] selectedFields = null, ExpansionFieldOption[] expansionFieldOptions = null) - 
                        
Descrição: retorna um único registro de um objeto entidade, conforme os parâmetros mencionados.
 - 
                        
Exemplo:
FetchOne(of Employee)( createFilterGroup(new QueryFilter(){addFilter( MainPage.EditGrid.SearchColumn,"contains",MainPage.EditGrid.SearchTerm)}), new PaginationProps(MainPage.EditGrid.PageStart, MainPage.EditGrid.PageLimit), new SortOption(){ addSortOption( MainPage.EditGrid.SortColumn,MainPage.EditGrid.isDescending) } )FetchOne(of Employee)( createFilterGroup(new QueryFilter(){addFilter( MainPage.EditGrid.SearchColumn,"contains",MainPage.EditGrid.SearchTerm)}), new PaginationProps(MainPage.EditGrid.PageStart, MainPage.EditGrid.PageLimit), new SortOption(){ addSortOption( MainPage.EditGrid.SortColumn,MainPage.EditGrid.isDescending) } ) 
Essa função é usada pelo construtor de Consultas.
- 
                        
Função:
FilterGroup createFilterGroup(QueryFilter[] queryFilters, FilterGroup[] groups = null, int isAnd = 0) - 
                        
Descrição: dada uma matriz de filtros de consulta e grupos de filtros, gera um grupo de filtros.
 - 
                        
Exemplo:
createFilterGroup(Nothing, New FilterGroup(){createFilterGroup(New QueryFilter(){addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm)}, Nothing, 0)}, 0)createFilterGroup(Nothing, New FilterGroup(){createFilterGroup(New QueryFilter(){addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm)}, Nothing, 0)}, 0) 
Essa função é usada pelo construtor de Consultas.
- 
                        
Função:
QueryFilter addFilter(string columnName, string colOperator, string value) - 
                        
Descrição: dado um nome da coluna, operador e valor, gera um filtro de consulta.
 - 
                        
Exemplo:
addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm)addFilter(MainPage.EditGrid.SearchColumn, "contains", MainPage.EditGrid.SearchTerm) 
Essa função é usada pelo construtor de Consultas.
- 
                        
Função:
SortOption addSortOption(string columnName, bool isDescending = false) - 
                        
Descrição: dado um nome da coluna e um valor de classificação, gera e classifica um filtro de consulta.
 - 
                        
Exemplo:
addSortOption(MainPage.EditGrid.SortColumn, Not(Not(MainPage.EditGrid.isDescending)))}addSortOption(MainPage.EditGrid.SortColumn, Not(Not(MainPage.EditGrid.isDescending)))} 
- 
                        A
GetChoiceSet()função é assíncrona e não é compatível com encadeamento. - 
                        
A entidade que hospeda o conjunto de escolhas deve ser adicionada ao seu aplicativo.
 
- 
                        
Função:
ListSource<ChoiceSet> GetChoiceSet(string choiceSetName) - 
                        
Descrição: dado o nome de um conjunto de escolhas Data Service, retorna todos os valores do conjunto de escolhas.
 - 
                        
Exemplo:
GetChoiceSet("Gender")GetChoiceSet("Gender") 
- 
                        A função
GetChoiceSet()é assíncrona e não suporta encadeamento. - 
                        
A entidade que hospeda o conjunto de escolhas deve ser adicionada ao seu aplicativo.
 
- 
                        
Função:
string GetChoiceSetValue(string choiceSetName, int numberId) - 
                        
Descrição: dado o nome de um conjunto de escolhas Data Service e o índice de uma opção de conjunto de escolhas, retorna a opção especificada.
 - 
                        
Exemplo:
GetChoiceSetValue("Gender", 0)GetChoiceSetValue("Gender", 0) 
- 
                        
Função:
DataTable BuildDataTable(DataTable dt, DataColumn[] columns, List<Object> rowData, bool clear=false) - 
                        
Descrição: carrega uma tabela de dados com colunas e linhas na regra Definir valor e retorna a tabela de dados atualizada.
Se o parâmetroclearfor verdadeiro, ele limpa o conteúdo das colunas e as linhas da tabela de dados. - 
                        
Exemplo:
BuildDataTable( New DataTable("TestDT"), New DataColumn(){ New DataColumn("Name"), New DataColumn("Age")}, New List(Of Object) From { AddDataRow(New Object(){"Baishali", "30"}), AddDataRow(New Object(){"Viswa", "33"}) }, True )BuildDataTable( New DataTable("TestDT"), New DataColumn(){ New DataColumn("Name"), New DataColumn("Age")}, New List(Of Object) From { AddDataRow(New Object(){"Baishali", "30"}), AddDataRow(New Object(){"Viswa", "33"}) }, True ) 
- 
                        Função:
AddRow(DataRow row) - 
                        
Descrição: método de extensão de TabelaDeDados que adiciona a linha especificada a uma tabela de dados e retorna a instância atualizada.
 - 
                        
Exemplo:
dt.AddRow(row)dt.AddRow(row) 
- 
                     Função:
DeleteRowAt(int index) - 
                     
Descrição: método de extensão de TabelaDeDados que exclui a linha no índice especificado em uma tabela de dados e retorna a instância atualizada.
 - 
                     
Exemplo:
dt.DeleteRowAt(2)dt.DeleteRowAt(2) 
- Função: serializar
 - Função: desserializar
 - Função: App.QueryParam
 - Para objetos
 - Para strings
 - Função: adicionar item à lista
 - Função: atualizar item da lista no índice
 - Função: excluir item da lista
 - Função: buscar
 - Função: buscar um
 - Função: criar grupo de filtros
 - Função: adicionar filtro
 - Função: adicionar opção de classificação
 - Função: obter conjunto de escolhas
 - Função: obter valor do conjunto de escolhas
 - Função: criar tabela de dados
 - Função: adicionar linha
 - Função: excluir linha
 - Função: atualizar linha em