Scripts

1. Criação de Variáveis:

Na plataforma Madrix, os usuários podem criar variáveis para armazenar dados temporários. Por exemplo, int idade = 30; cria uma variável de tipo inteiro chamada "idade" e atribui a ela o valor 30.

Script Texto:


int idade = 30;

Script Bloco:

2. Estruturas Condicionais:

Os scripts C# permitem a execução condicional de blocos de código usando estruturas if-else. Por exemplo:

Script Texto:


if (idade >= 18) {    
   // Código maiores de 18 anos     
}   
else {               
   // Código menores de 18 anos     
} 

Script Bloco:

3. Laços de Repetição:

Os usuários podem criar laços para executar tarefas repetitivas usando for, while ou foreach. Por exemplo, um laço for para imprimir números de 1 a 10 seria:

Script Texto:


for (int i = 1; i <= 10; i++) {       
    // Imprime o valor de i 
}

Script Bloco:

4. Tratamento de Erros:

Os scripts podem incluir tratamento de erros usando blocos try-catch. Isso permite que a aplicação lide com falhas de maneira elegante. Por exemplo:

Script Texto:


try {  
    // Código que pode gerar um erro 
} catch (Exception ex) {  
    // Código para tratar o erro 
}

Script Bloco:

5. Envio de E-mail:

5.1 Função SendMail

Descrição: A função SendMail é utilizada para enviar uma mensagem de e-mail para um ou mais destinatários.

Parâmetros:

  • body (string): Corpo da mensagem de e-mail.

  • subject (string): Assunto da mensagem de e-mail.

  • recipients (string): Lista de endereços de e-mail dos destinatários.

  • attachments (array de objetos): Lista de arquivos que serão anexados ao e-mail.

  • isBodyHtml (Boolean): Indica se o corpo da mensagem é em formato HTML (true) ou texto simples (false).

  • asynchronous (Boolean): Indica se o envio do e-mail deve ser realizado de forma assíncrona (true) ou síncrona (false).

Retorno: A função retorna uma mensagem em caso de falha da operação de envio do e-mail.

Exemplo de Uso:

Script Texto:


string corpoEmail = "<p>Olá,</p><p>Segue em anexo os relatórios solicitados.</p>";
string assunto = "Relatórios Solicitados";
string destinatarios = "joao.silva@empresa.com;maria.souza@empresa.com";
string anexos = new List<dynamic> {"/caminho/para/relatorio1.pdf","/caminho/para/relatorio2.pdf"};
Boolean corpoHtml = true;
Boolean envioAssincrono = true;

SendMail(corpoEmail, assunto, destinatarios, anexos, corpoHtml, envioAssincrono);

Script Bloco:

Script Texto:


string assunto = "Olá! Esta é uma mensagem de teste.";
string mensagem = "Teste de envio de e-mail";
string destinatarios = "alexsandro.farias@madrix.dev;carlos.lima@madrix.dev";
string urlPDF = ExportApplicationReportToPdfFile("Pacientes por Sexo", currentItem);
List<dynamic> anexos = new List<dynamic> {urlPDF, null, null};
Boolean corpoHTML = false;
Boolean envioAssincrono = true;

SendMail(mensagem, assunto, destinatarios, anexos, corpoHTML, envioAssincrono);

Script Bloco:

5.2 Função SendMailByTemplate

Descrição: A função SendMailByTemplate é utilizada para enviar uma mensagem de e-mail para um ou mais destinatários, utilizando um template predefinido para o corpo da mensagem.

Parâmetros:

  • templateName (string): Nome do template que será utilizado para compor o corpo da mensagem.

  • componentName (string): Nome do componente responsável pelo envio do e-mail.

  • recipients (string): Lista de endereços de e-mail dos destinatários.

  • dict (objeto): Dicionário contendo as chaves e valores que serão substituídos no template para personalizar a mensagem.

  • extraAttachments (array de objetos): Lista adicional de arquivos que serão anexados ao e-mail.

  • isBodyHtml (Boolean): Indica se o corpo da mensagem é em formato HTML (true) ou texto simples (false).

  • asynchronous (Boolean): Indica se o envio do e-mail deve ser realizado de forma assíncrona (true) ou síncrona (false).

Retorno: A função retorna uma mensagem em caso de falha da operação de envio do e-mail.

Exemplo de Uso:

Script Texto:


string nomeTemplate = "Nova Ocorrência";
string nomeComponente = "Ocorrências";
string destinatarios = "joao.silva@empresa.com; "maria.souza@empresa.com";
List<dynamic> anexosExtras  = new List<dynamic> {null, null, null};
Boolean corpoHtml = true;
Boolean envioAssincrono = true;

SendMailByTemplate(nomeTemplate, nomeComponente, destinatarios, currentItem, anexosExtras, corpoHtml, envioAssincrono);

Script Bloco:

6. Envio de Mensagem:

6.1 Função SendPushMessageToUser

Descrição: A função SendPushMessageToUser é utilizada para enviar uma notificação push para um usuário específico.

Parâmetros:

  • title (string): Título da notificação push.

  • summary (string): Resumo ou subtítulo da notificação.

  • message (string): Mensagem completa a ser enviada na notificação push.

  • user (Int64): ID do usuário para o qual a notificação será enviada.

Retorno: A função retorna uma mensagem em caso de falha da operação de envio da notificação push.

Exemplo de Uso:

Script Texto:


string titulo = "Atualização de Status";
string resumo = "Seu pedido foi atualizado";
string mensagem = "Olá, seu pedido #1234 foi atualizado para o status 'Enviado'. Obrigado por comprar conosco!";
Int64 usuario = 1;

SendPushMessageToUser(titulo, resumo, mensagem, usuario);

Script Bloco:

6.2 Função ShowExceptionMessage

Descrição: A função ShowExceptionMessage é utilizada para exibir uma mensagem de erro ou exceção de forma padronizada e amigável ao usuário.

Parâmetros:

  • message (string): Mensagem de erro ou exceção a ser exibida.

Retorno: A função não retorna um valor específico, mas garante que a mensagem fornecida é exibida adequadamente ao usuário.

Exemplo de Uso:

Script Texto:


ShowExceptionMessage("Ocorreu um erro ao carregar os dados. Por favor, tente novamente mais tarde.");

Script Bloco:

6.3 Função Alert

Descrição: A função Alert é utilizada para exibir uma mensagem de alerta ao usuário e permitir que uma ação seja executada quando o alerta for fechado.

Parâmetros:

  • message (string): Mensagem de alerta a ser exibida ao usuário.

  • CloseFunction (script): Função callback que será executada quando o usuário fechar a mensagem de alerta. Este parâmetro é opcional.

Retorno: A função não retorna um valor específico, mas garante que a mensagem de alerta é exibida adequadamente ao usuário e que a função CloseFunction, se fornecida, é executada ao fechar o alerta.

Exemplo de Uso:

Script Texto:


Alert("Os dados foram salvos com sucesso!");

Script Bloco:

6.4 Função AlertYesNo

Descrição: A função AlertYesNo é utilizada para exibir uma caixa de diálogo com as opções "Sim" e "Não" ao usuário, permitindo que diferentes ações sejam executadas com base na escolha do usuário.

Parâmetros:

  • message (string): Mensagem de alerta a ser exibida na caixa de diálogo.

  • YesFunction (script): Função callback que será executada quando o usuário clicar em "Sim".

  • NoFunction (script): Função callback que será executada quando o usuário clicar em "Não". Este parâmetro é opcional.

Retorno: A função não retorna um valor específico, mas garante que a caixa de diálogo é exibida corretamente e que as funções YesFunction e NoFunction, se fornecidas, são executadas de acordo com a escolha do usuário.

Exemplo de Uso:

Script Texto:


AlertYesNo("Deseja salvar as alterações?", funcaoSim, funcaoNao);

Script Bloco:

6.5 Função AlertOkCancel

Descrição: A função AlertOkCancel é utilizada para exibir uma caixa de diálogo com as opções "OK" e "Cancelar" ao usuário, permitindo que diferentes ações sejam executadas com base na escolha do usuário.

Parâmetros:

  • message (string): Mensagem de alerta a ser exibida na caixa de diálogo.

  • OkFunction (script): Função callback que será executada quando o usuário clicar em "OK".

  • CancelFunction (script): Função callback que será executada quando o usuário clicar em "Cancelar". Este parâmetro é opcional.

Retorno:

A função não retorna um valor específico, mas garante que a caixa de diálogo é exibida corretamente e que as funções OkFunction e CancelFunction, se fornecidas, são executadas de acordo com a escolha do usuário.

Exemplo de Uso:

Script Texto:


AlertOkCancel("Deseja confirmar a operação?", funcaoOk, funcaoCancelar);

Script Bloco:

6.6 Função AlertCustomButton

Descrição: A função AlertCustomButton é utilizada para exibir uma caixa de diálogo ao usuário contendo uma mensagem de alerta e dois botões customizáveis. Diferentes ações podem ser executadas com base no botão clicado pelo usuário.

Parâmetros:

  • message (string): Mensagem de alerta a ser exibida na caixa de diálogo.

  • button1 (string): Texto a ser exibido no primeiro botão.

  • button2 (string): Texto a ser exibido no segundo botão.

  • button1Function (script): Função callback que será executada quando o usuário clicar no primeiro botão (button1).

  • button2Function (script): Função callback que será executada quando o usuário clicar no segundo botão (button2). Este parâmetro é opcional.

Retorno: A função não retorna um valor específico, mas garante que a caixa de diálogo é exibida corretamente e que as funções button1Function e button2Function, se fornecidas, são executadas de acordo com o botão clicado pelo usuário.

Exemplo de Uso:

Script Texto:


AlertCustomButton("Deseja prosseguir com a operação?","Prosseguir","Cancelar","funcaoButton1","funcaoButton2");

Script Bloco:

6.7 Função Log

Descrição: A função Log é utilizada para registrar mensagens no console do browser, como informações de depuração ou logs de eventos.

Parâmetros:

  • text (string): A mensagem de texto que será registrada.

Retorno: A função não retorna um valor específico, mas garante que a mensagem fornecida será registrada no no console do browser.

Exemplo de Uso:

Script Texto:


Log("A operação foi realizada com sucesso.");

Script Bloco:

7. Relatórios:

7.1 Função PrintComponentReport

Descrição: A função PrintComponentReport é utilizada para imprimir um relatório específico relacionado a um componente, enviando-o diretamente para a impressora escolhida.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser impresso.

  • printerName (string): Nome da impressora de rede, instalada no servidor da aplicação, para a qual o relatório será enviado para impressão.

  • currentItem (Object): Objeto representando o item ou componente atual que está sendo processado e para o qual o relatório se refere.

Retorno: A função não retorna um valor específico, mas garante que o relatório é enviado para a impressora correta e impresso com os dados do currentItem.

Exemplo de Uso:

Script Texto:


PrintComponentReport("pedido_comida", "impressora_cozinha", currentItem);

Script Bloco:

7.2 Função PrintApplicationReport

Descrição: A função PrintApplicationReport é utilizada para imprimir um relatório de um aplicativo, enviando-o diretamente para a impressora designada.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser impresso.

  • printerName (string): Nome da impressora de rede, instalada no servidor da aplicação, para a qual o relatório será enviado para impressão.

  • currentItem (objeto): Objeto representando o item atual que está sendo processado para o qual o relatório se refere.

Retorno: A função não retorna um valor específico, mas garante que o relatório é enviado para a impressora correta.

Exemplo de Uso:

Script Texto:


PrintApplicationReport("Order", "impressora_vendas", currentItem);

Script Bloco:

7.3 Função ExportComponentReportToFile

Descrição: A função ExportComponentReportToFile é utilizada para exportar um relatório específico relacionado a um componente para um arquivo, permitindo que o usuário escolha o formato desejado para a exportação.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser exportado.

  • currentItem (Object): Objeto representando o item atual que está sendo processado e para o qual o relatório se refere.

  • format (string): Formato desejado para a exportação do relatório: "PDF", "CSV", "XLSX" ou "DOCX".

Retorno: A função retorna um caminho (string) para o arquivo exportado.

Exemplo de Uso:

Script Texto:


ExportComponentReportToFile("pedido", currentItem, "pdf");

Script Bloco:

7.4 Função ExportApplicationReportToFile

Descrição: A função ExportApplicationReportToFile é utilizada para exportar um relatório do aplicativo para um arquivo, permitindo que o usuário escolha o formato desejado para a exportação.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser exportado.

  • currentItem (objeto): Objeto representando o item atual que está sendo processado.

  • format (string): Formato desejado para a exportação do relatório: "PDF", "CSV", "XLSX" ou "DOCX".

Retorno: A função retorna um caminho (string) para o arquivo exportado.

Exemplo de Uso:

Script Texto:


ExportApplicationReportToFile("pedido", currentItem, "pdf");

Script Bloco:

7.5 Função ExportApplicationReportToPdfFile

Descrição: A função ExportApplicationReportToPdfFile é utilizada para exportar um relatório de um aplicativo para um arquivo no formato PDF.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser exportado.

  • currentItem (objeto): Objeto representando o item atual que está sendo processado.

Retorno: A função retorna um caminho (string) para o arquivo PDF exportado.

Exemplo de Uso:

Script Texto:

 
 ExportApplicationReportToPdfFile("Order", currentItem);
 

Script Bloco:

7.6 Função ExportComponentReportToPdfStream

Descrição: A função ExportComponentReportToPdfStream é utilizada para exportar um relatório específico relacionado a um componente diretamente para um fluxo de dados (stream) no formato PDF.

Parâmetros:

  • reportName (string): Nome do relatório que deve ser exportado.

  • currentItem (objeto): Objeto representando o item ou componente atual que está sendo processado e para o qual o relatório se refere.

Retorno: A função retorna um fluxo de dados (stream) contendo o relatório exportado em formato PDF, que pode ser utilizado para enviar o relatório por uma rede, salvar em um arquivo, ou outras operações que envolvem fluxos de dados.

Exemplo de Uso:

ExportApplicationReportToPdfStream("Pacientes por Sexo", currentItem);

ExportComponentReportToStream(reportName,currentItem,format):

7.7 Função ExportApplicationReportToStream

(reportName,currentItem,format):

7.8 Função TryPrintComponentReport

(reportName,printerName,currentItem):

7.9 Função TryPrintApplicationReport

(reportName,printerName,currentItem):

7.10 Função OpenReport

(reportName,parameters):

8. Componentes:

8.1 Função GetAttributeValue

(name,itemID,componentName):

Setar o valor de um campo do registro atual - currentItem["Nome do Campo"] = valor:

Pegar o valor de um campo do registro atual - variável = currentItem["Nome do Campo"]:

InsertItem

(item,componenteName):

UpdateItem

(id,item,componenteName):

RemoveItem

(itemID,componenteName):

AttributeHasChange

(currentItem, attributeName):

GetPicklistItemValue

(listName,itemName):

GetStatusValue

(componente,workflow,statusName):

GetActionValue

(componente,workflow,actionName):

RepplyAttachments

(sourceItemId,sourceComponent,sourceFolder,destinyItemId,destinyComponent,destinyFolder):

9. Formulários:

OpenComponentInsert

(component,formName,parameters,CloseFunction):

OpenComponentUpdate

(component,ID,formName,parameters,CloseFunction):

CloseWindow

():

OpenForm

(formName,parameters,OnCloseFunction):

OpenDocumentView

(projectId,folderFormName,fileFormName):

SetFocus

(control):

OpenURL

(url,target):

OpenImageGallery

(itemID,folder):

GetAttachmentLink

(itemID,name,componentName,folder):

GetDownloadAttachmentsLink

(itemID,componentName):

SetControlProperty

(propertyName,controlID,value):

GetControlProperty

(propertyName,controlID):

Save

(closeFormAfterSave,showMessage):

RefreshItemForm

():

FinishWizard

():

OpenComponentBulkInsert

(message,items,component,cancelable,CloseFunction):

OpenComponentBulkUpdate

(message,items,component,cancelable,CloseFunction):

OpenComponentBulkDelete

(message,items,component,cancelable,CloseFunction):

OpenBulk

(message,items,cancelable,CloseFunction):

10. Usuários:

10.1 Função GetLoggedUser

Descrição: A função GetLoggedUser é utilizada para obter ID do usuário que está atualmente autenticado e logado no sistema.

Parâmetros:

  • A função GetLoggedUser não recebe parâmetros.

Retorno: A função retornar o ID (Int64) do usuário logado.

Exemplo de Uso:

Script Texto:


Int64 usuario_id = Convert.ToInt64(GetLoggedUser());

Script Bloco:

10.2 Função GetFieldFromUser

Descrição: A função GetFieldFromUser é utilizada para obter o valor de um atributo específico de um usuário fornecido.

Parâmetros:

  • attributeName (string): Nome do atributo cujo valor se deseja obter (por exemplo, "Nome", "Login", "Email", etc.).

  • user (Int64): ID do usuário do qual se deseja obter a informação.

Retorno: A função retorna o valor (string) do atributo especificado para o usuário fornecido. Se o atributo ou o usuário não existirem, a função retorna um valor nulo.

Exemplo de Uso:

Script Texto:


string login = GetFieldFromUser("Login",1);

Script Bloco:

10.3 Função InsertUser

Descrição: A função InsertUser é utilizada para inserir um novo usuário na plataforma.

Parâmetros:

  • name (string): Nome completo do usuário.

  • email (string): Endereço de e-mail do usuário.

  • registration (string): Número de matrícula ou identificação do usuário.

  • companyName (string): Nome da empresa à qual o usuário pertence.

  • area (string): Área ou departamento na empresa onde o usuário trabalha.

  • license (int): Tipo de licença atribuída ao usuário (por exemplo, 2 para "administrador", 1 para "usuário comum").

  • login (string): Nome de usuário para autenticação no sistema.

  • password (string): Senha para autenticação no sistema.

  • passwordLastModify (DateTime): Data da última modificação da senha do usuário.

  • activeDirectory (Boolean): Indica se o usuário deve ser autenticado usando o Active Directory (true) ou não (false).

  • groups (array de Int64): Lista de grupos aos quais o usuário pertence (por exemplo, [1, 2]).

  • aditionalFields (Object): Campos adicionais específicos para o usuário, representados como pares chave-valor (por exemplo, { "campoAdicional1": "valor1", "campoAdicional2": "valor2" }).

Retorno: A função retorna o ID (Int64) do usuário inserido e em caso de falha retorna uma mensagem de exceção.

Exemplo de uso:

Script Texto:


string nome = "João Silva";
string email = "joao.silva@empresa.com";
string registration = "";
string empresa = "Empresa XYZ";
string area = "";
string license = 2;
string login = "joaosilva";
string senha = "senha123";
DateTime passwordLastModify = DateTime.Now;
Boolean activeDirectory = false;

Int64[] User_Group = new Int64[2];
User_Group[0] = Convert.ToInt64(1);
User_Group[1] = Convert.ToInt64(2);

Object aditionalFields = null;

Int64 user_id = InsertUser(nome,email,registration,empresa,area,2,login,senha,passwordLastModify,activeDirectory,User_Group,aditionalFields);

Script Bloco:

10.4 Função UpdateUser

Descrição: A função UpdateUser é utilizada para atualizar as informações de um usuário existente na plataforma.

Parâmetros:

  • ID (Int64): Identificador único do usuário que será atualizado.

  • name (string): Nome completo do usuário.

  • email (string): Endereço de e-mail do usuário.

  • registration (string): Número de matrícula ou identificação do usuário.

  • companyName (string): Nome da empresa à qual o usuário pertence.

  • area (string): Área ou departamento na empresa onde o usuário trabalha.

  • license (int): Tipo de licença atribuída ao usuário (por exemplo, 2 para "administrador", ' para "usuário comum").

  • login (string): Nome de usuário para autenticação no sistema.

  • password (string): Senha para autenticação no sistema.

  • active (Boolean): Indica se a conta do usuário está ativa (true) ou inativa (false).

  • activeDirectory (Boolean): Indica se o usuário deve ser autenticado usando o Active Directory (true) ou não (false).

  • groups (array de Int64): Lista de grupos aos quais o usuário pertence (por exemplo, [1, 2]).

  • aditionalFields (Object): Campos adicionais específicos para o usuário, representados como pares chave-valor (por exemplo, { "campoAdicional1": "valor1", "campoAdicional2": "valor2" }).

Retorno: A função retorna o ID (Int64) do usuário atualizado e em caso de falha retorna uma mensagem de exceção.

Exemplo de Uso:

Script Texto:


Int64 retorno = UpdateUser(1, "Administrador", "", "", "", "", 2, "admin", "123", true, false, null, null);

Script Bloco:

10.5 Função RemoveUser

Descrição: A função RemoveUser é utilizada para remover um usuário existente da plataforma.

Parâmetros:

  • UserID (Int64): Identificador único do usuário que será removido.

Retorno: A função retorna o ID (Int64) do usuário atualizado e em caso de falha retorna uma mensagem de exceção.

Exemplo de Uso:

Script Texto:


RemoveUser(Convert.ToInt64(2));

Script Bloco:

11. Adaptadores:

11.1 Função RunWebServices

(serviceAddress,methodName,args):

11.2 Função RunDbCommandNonQuery

(dbAdapter,SqlCommand,parameters):

11.3 Função RunDbCommandEscalar

(dbAdapter,SqlCommand,parameters):

11.4 Função RunDbCommandDataSet

(dbAdapter,SqlCommand,parameters):

11.5 Função RunDbCommandDataTable

(dbAdapter,SqlCommand,parameters):

11.6 Função RunDbCommandToDataProvider

(dbAdapter,SqlCommand,parameters):

11.7 Função CreateConnection

(dbAdapter):

11.8 Função RunFile

(fileAdapter,fileParameters):

12. Classes:

Executar um método de uma classe - Nome_da_Classe.Método(parâmetros):

Script Texto:


MadrixAI.Perguntar("Qual a capital do Brasil?");

Script Bloco:

Classe para Integrações: Rest API, DBs..

13. Scripts:

Executar um script a partir de outro script - Nome_do_Script(currentItem):

Script Texto:


Form0_button0_click(currentItem);

Script Bloco:

14. Funções C# mais utilizadas:

- Convert

- DateFormat

Last updated