Skip to content

Desenvolvimento rotinas de uma empresa especializada em eventos esportivos. Foram consumidas 2 APIs, aberta 1 API para outros sistemas, criadas tabelas, páginas, com validação de campos e interação com o usuário. A aplicação foi escrita em inglês e possui tradução para o português do Brasil.

Notifications You must be signed in to change notification settings

jonasaacampos/SportExperience

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alt text

Sport Experience

Desenvolvimento de algumas rotinas de uma empresa especializada em eventos esportivos. Foram consumidas 2 APIs, aberta 1 API para outros sistemas, criadas tabelas, páginas, com validação de campos e interação com o usuário. A aplicação foi escrita em inglês e possui tradução para o portiguês do Brasil.

BC_logo

LinkedIn Badge


Índice

Demo

Influencers API

Alt text

Marketing Campaigns

Alt text

Reginal Runs (API Expose)

Alt text

Slides utilizados para a apresentação do TCC

Iniciar Projeto

  • Abra a paleta de comandos (ctrl + shift + p)
  • Digite AL:Go!
  • Insira o caminho do diretório (e crie um diretório vazio para o projeto)
  • Escolha a opção do servidor. No meu caso escolhi Your own server
  • Na opção de login, ignore esta etapa, apertando esc
  • Abra o arquivo .vscode > launch.json e edite os parâmetros:
    • server alterar para http://NOME_OU_IP_SEU_SERVIDOR
    • serverInstance insira o nome da sua máquina virtual no lugar do padão BC130
    • name o nome do seu servidor. Pode ser qualquer coisa
    • "startupObjectId" insira o objeto que iniciará por padrão após a compilação.
  • Após publicar o projeto pela primeira vez, insira o parâmetro "schemaUpdateMode": "Recreate",
  • Apague o arquivo HelloWord.al e inicie o desenvolvimento
  • Abra a paleta de comandos (ctrl + shift + p)
  • Digite AL: Download Symbols
  • Aparecerão os módulos baixados do diretório .alpackages na seção explorer do projeto
  • Compile o projeto, F5 para depuração ou ctrl + F5 para publicação direta

Retorno das APIs

Sport Influencers (exemplo de retorno da requisição)
[
  {
    "id": 1,
    "name": "Cristiano Ronaldo",
    "username": "CR7",
    "email": "cristiano@ronaldo.com",
    "address": {
      "street": "Avenida dos Campeões",
      "suite": "Apt. 7",
      "city": "Madri",
      "zipcode": "28001",
      "geo": {
        "lat": "40.4167",
        "lng": "-3.7033"
      }
    },
    "phone": "+34 123456789",
    "website": "cristianoronaldo.com",
    "company": {
      "name": "CR7 Empreendimentos Esportivos",
      "catchPhrase": "Transformando sonhos em realidade",
      "bs": "Gerenciamento de carreiras esportivas"
    }
  },
  {
    "id": 2,
    "name": "Neymar Jr.",
    "username": "Neymar",
    "email": "neymar@jr.com",
    "address": {
      "street": "Rua dos Craques",
      "suite": "Apt. 10",
      "city": "São Paulo",
      "zipcode": "04578-910",
      "geo": {
        "lat": "-23.5644",
        "lng": "-46.6517"
      }
    },
    "phone": "+55 11 987654321",
    "website": "neymarjr.com",
    "company": {
      "name": "NJ Sports",
      "catchPhrase": "Paixão e dedicação pelo futebol",
      "bs": "Marketing esportivo"
    }
  },
Go Weather (exemplo de retorno da requisição)
{
  "temperature": "16 °C",
  "wind": "28 km/h",
  "description": "Rain, mist",
  "forecast": [
    {
      "day": "1",
      "temperature": "20 °C",
      "wind": "13 km/h"
    },
    {
      "day": "2",
      "temperature": "+14 °C",
      "wind": "12 km/h"
    },
    {
      "day": "3",
      "temperature": "18 °C",
      "wind": "9 km/h"
    }
  ]
}

Documentação (descritivo) do projeto

Aqui vou descrever a finalidade de adicionar cada componente, bem como o papel de cada um dentro do projeto.

👓 1 - Tabelas e Páginas

Ao criar uma tabela, definimos quais dados desejamos capturar na aplicação. As propriedades de cada campo são definidos na tabela.

Para que sejam exibido os dados, precisamos de criar páginas. Estas permitem que o usuário interaja com nosso aplicativo. Uma página de lista é a primeira página que o usuário acessará. A partir desta lista, é possível inserir, alterar e excluir dados. Quando informações mais detalhadas são necessárias, o usuário pode acessar a página de cartão.

⛔ 2 - Validação de campos e tratamento de erros

Gatilhos (triggers) são funções que acontessem como resultado de uma ação. Estes podem ser ignorados a depender da regra de negócios. No nosso caso, o gatilho sempre será disparado para validar o campo data da última exibição.

Cada objeto AL possui um conjunto de gatilhos própiros.

Foi adicionado um tratamento de erro para que exiba uma mensagem para o usuário, utilizando rótulos (Label Data).

👮🏾‍♀️ 3 - Classificação dos dados

Com a constante coleta e manipulação de dados em massa, é preciso se atentar para as legislações de proteção à dados pessoais. No Business Central, os dados podem ser classificados de maneira simples, adicionando o parâmetro DataClassification com o seu devido valor.

Para ver a documentação com os valores possível, acesse DataClassification Property.

📋 4 - Permissões de acesso

Nada é pior do que testar, validar e entregar o aplicativo que o cliente não consegue acessar.

Para gerar automaticamente o arquivo de permissões, abra a paleta de comandos (ctrl + shift + p) e digite AL: Generate permission set containing current extension objects. Será criado um arquivo de permissões. Após publicar o projeto, o administrador pode acessar a política abra a página de política de permissões (Tell me > permissions sets).

  • Atenção: A criação da política de permissões sempre subescreverá o arquivo existente. Par amanter ambos, renomeie o arquivo extensionsPermissionSet.xml.
  • É possível criar mais de uma política de permissões, por exemplo, uma rotina administrativa, uma de leitura e escrita, e outra de somente leitura.
🧾 5 - Relatórios

Usando o snippet report foi criada a estutura básica do relatório. Como layout padrão, foi inserido o padrão RDLC.

  • após a criação, o projeto foi compilado com ctrl + shift + b. Feito isso, o arquivo de layout foi criado automaticamente.
  • o arquivo .rdl foi aberto e editado no Microsoft Report Buider
    • No painel do Report Builder, selecionar: DataSet_Result > Insert > Table > Table Wizard > Chose an existing dataset > Next > Movido o campo code para o row group > movidos demais campos para a seção valores > Desmarcar todos as caixas > Next > Finish > SAVE.

Um relatório é composto por duas partes:

  1. Conjunto de dados (Dataset): é um arquivo .al que define as tabelas, campos, filtrose lógica do relatório
  2. Layout: Arquivo RDLC, Word ou Excel que mostrará o relatório quando for gerado no BC.

Depois de instalado no BC, o cliente pode alterar ou criar novos layouts com o recurso Custom Report Layouts.

🧾 6 - Link de Ajuda

Inserido link (fictítio) para que no canto superior direito da página de lista, seja possível abrir documentação externa. O parâmetro de link de ajuda é inserido na Page List.


Utilidades e Referências

Cont(r)ate-me

Author: Jonas Araujo de Avila Campos

Alt text

Agradecimentos

  • Julio Chaves, por preparar e conduzir o treinamento
  • Colegas que seguiram até o final
  • Equipe de infra e RH da Alfa People

About

Desenvolvimento rotinas de uma empresa especializada em eventos esportivos. Foram consumidas 2 APIs, aberta 1 API para outros sistemas, criadas tabelas, páginas, com validação de campos e interação com o usuário. A aplicação foi escrita em inglês e possui tradução para o português do Brasil.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages