CONTEÚDO
- Visão Geral
 - Exemplo de utilização
- Layout Genérico Web
 - Get API
 - Post API
 - Put API
 - Delete API
 
 - Tela API PLAltBenModel
- Outras Ações / Ações relacionadas
 
 - Outras Ações / Ações relacionadas
 - Tela API PLAltBenModel
- Principais Campos e Parâmetros
 
 - Principais Campos e Parâmetros
 - Tabelas utilizadas
 
01. VISÃO GERAL
Este documento tem como objetivo demonstrar a utilização da API PLAltBenModel, onde será realizada a solicitação de um novo protocolo de alteração de beneficiários.
Os protocolos serão gerados na rotina de Analise de Beneficiários (PLSA977AB) para que a Operadora analise as solicitações.
A API utilizará o padrão REST.
02. EXEMPLO DE UTILIZAÇÃO
Foi desenvolvido o modelo de dados (ModelDef) para alterar os dados do beneficiário, e através da classe FWRestModel foi feita a publicação do modelo para que seja consumido via API padrão REST.
Para retornar a lista de registros referente ao modelo de dados deve-se efetuar um GET sem informar a <PK>. Os registros listados terão filtrados pelas filiais que o usuário tem acesso (isso se o campo filial existir.)
Para inserir um registro deve-se efetuar um POST sem informar a <PK> e enviar no body o conteúdo a ser inserido.
Ao informar o parâmetro <PK> será acessado um registro em específico e assim podendo ser utilizado os métodos GET, PUT, DELETE.
Além disso, a API poderá receber alguns filtros (QueryStrings) no headers da requisição, como:
Key  | Descrição  | 
|---|---|
| STARTINDEX | Indica a partir que qual index deverá ser retornado (padrão: 1) | 
| INTERNALID | Indica se deve retornar o ID(Recno) como informação complementar das linhas do GRID (padrão: false) | 
| FIRSTLEVEL | Habilita o retorno dos sub modelos (padrão: true) | 
| FILTER | Filtro que será aplicado no método SetFilter() | 
| FIELDVIRTUAL | Habilita o retorno de campos virtuais (padrão: false) | 
| FIELDS | Indica os campos a serem filtrados no retorno do modelo, incluindo os sub modelos, caso não informado todos os campos serão retornados | 
| FIELDEMPTY | Habilita o retorno de campos sem valores (padrão: false) | 
| FIELDDETAIL | Habilita mostrar mais informações nos campos do modelo (padrão: 10) | 
| DEBUG | Valor booleano para habilitar o modo debug (padrão: false) | 
| COUNT | Quantidade de registro que devem ser retornados (padrão: 10) | 
| CACHE | Indica se sera feito cache do total de registros por alias, refere-se ao valor do total no retorno (padrão: true) | 
Exemplo de utilização: Key igual FILTER e value igual BBA_CODSEQ=000770, será retornado somente o protocolo com o código sequencial com o numero 000770.
FWRestModel
Para mais informações de como utilizar esse modelo de API, acessem a documentação da classe FWRestModel.
A autenticação da API é realizada pelo headers Authorization, Type Basic Auth, Usuário e Senha do Protheus.
LAYOUT GENÉRICO WEB
Algumas regras na API poderão ser adicionadas pelo Layout genérico Web, o mesmo deverá ser adicionada no MV_PLLAYAL.
Por exemplo: MV_PLLAYAL = PPLALTBEN, a api irá utilizar as configurações contidas nessa layout genérico.
Pelo Layout o sistema irá utilizar as seguintes regras no modelo de dados para validar a alteração de beneficiários:
- Campos que não permite alterar: B91_EDITAR igual a .F.
 - Campos que necessitam de aprovação da Operadora, B2C_VAR igual a VALIDA.
 
Esse configuração de VALIDA é realizada na Configuração Complementar (B2C) do Layout Genérico, informando a variável VALIDA e o valor .T., ou seja, o campo irá passar por analise, caso não seja informado, será feita a atualização automática dos dados no cadastro do beneficiário (BA1). Para mais informações sobre o cadastro do Layout Genérico Web, acessem esse link: Layout Genérico Web - PLSCADLAY
Se todos os campos forem atualizados automaticamente, o protocolo ficará com o status igual a Aprovado Automaticamente (BBA_STATUS igual a 7), se pelo menos algum campo precisar de analise, o status será Em Analise (BBA_STATUS igual a 2).
Importante
Abaixo será apresentado um exemplo de cada método da API PLAltBenModel.
GET API
Endpoint
Url  | Método  | Header Content-Type  | Descrição  | 
|---|---|---|---|
https://<url>:<porta>/rest/fwmodel/PLAltBenModel/[pk]  | GET | application/json | Retorna os protocolo da analise de beneficiários, para retornar somente um protocolo deverá ser informado a pk do mesmo. | 
Parâmetro <PK> é opcional, sendo usado pra retornar os detalhes de um protocolo.
Parâmetros de Entrada do Método
Parâmetro  | Obrigatório  | Tipo  | Descrição  | 
|---|---|---|---|
| pk | Não | Caracter | Valor da chave primaria do alias do modelo em encodado em base64, esse valor será obtido ao consultar todos os protocolos. | 
Exemplo
POST API
Endpoint
Url  | Método  | Header Content-Type  | Descrição  | 
|---|---|---|---|
https://<url>:<porta>/rest/fwmodel/PLAltBenModel/  | POST | application/json | Realiza a inclusão de um novo protocolo de alteração na analise de beneficiários | 
Parâmetros de Entrada do Método
Parâmetro (fields)  | Obrigatório  | Tipo  | Descrição  | 
|---|---|---|---|
| BBA_MATRIC | Sim | Caracter | Matricula do Beneficiário que será feita a atualização dos dados. | 
| B7L_CAMPO | Sim | Caracter | Campo do sistema para realizar a alteração (Tabela BA1). | 
| B7L_VLPOS | Sim | Caracter | Novo Conteúdo do campo. | 
| B7L_USR | Sim | Caracter | Usuário que solicitou a alteração. | 
| DIRECTORY | Não | Caracter | Diretório http do arquivo para anexar ao protocolo de alteração. | 
| FILENAME | Não | Caracter | Nome para ao arquivo. | 
Os demais parâmetros do json, segue o mesmo padrão para toda requisição de POST.
Exemplo
Ao solicitar um POST com sucesso, o mesmo irá retornar o protocolo como se tivesse realizado um GET com a pk correspondente ao protocolo.
PUT API
Endpoint
Url  | Método  | Header Content-Type  | Descrição  | 
|---|---|---|---|
https://<url>:<porta>/rest/fwmodel/PLAltBenModel/[pk]  | PUT | application/json | Realiza a alteração de um protocolo já existente na analise de beneficiários. (Somente os protocolos que não foram analisados ou finalizados poderão ser alterados). | 
Parâmetro <PK> obtido através dos métodos POST ou GET.
Parâmetros de Entrada do Método
Parâmetro  | Obrigatório  | Tipo  | Descrição  | 
|---|---|---|---|
| pk | Sim | Caracter | Valor da chave primaria do alias do modelo em encodado em base64. | 
Exemplo
O JSON de envio do PUT é o mesmo realizado no POST, o que irá mudar é o atributo operation com o valor 4 e o valor dos campos que irão ser alterados.
O retorno da API será o mesmo do POST, caso realizado a alteração com sucesso, será retornado o protocolo como se tivesse realizado um GET com a pk correspondente ao protocolo. Caso ocorra alguma validação será apresentada a critica.
DELETE API
Endpoint
Url  | Método  | Header Content-Type  | Descrição  | 
|---|---|---|---|
https://<url>:<porta>/rest/fwmodel/PLAltBenModel/[pk]  | DELETE | application/json | Realiza a exclusão de um protocolo já existente na analise de beneficiários. (Somente os protocolos que não foram analisados ou finalizados poderão ser excluídos). | 
Parâmetro <PK> obtido através dos métodos POST ou GET.
Parâmetros de Entrada do Método
Parâmetro  | Obrigatório  | Tipo  | Descrição  | 
|---|---|---|---|
| pk | Sim | Caracter | Valor da chave primaria do alias do modelo em encodado em base64. | 
Exemplo
O JSON de envio do DELETE é o mesmo realizado no POST ou no PUT, o que irá mudar é o atributo operation com o valor 5.
03. TELA API PLALTBENMODEL
Outras Ações / Ações relacionadas
| Ação | Descrição | 
|---|---|
| Não se aplica | Não se aplica | 
04. TELA API PLALTBENMODEL
Principais Campos e Parâmetros
| Campo | Descrição | 
|---|---|
| MV_PLLAYAL | Define Layout Genérico Web que estará vinculado a API de alteração de Beneficiário para Analise. | 
| BBA_MATRIC | Matricula do Beneficiário que irá atualizar os dados | 
| B7L_CAMPO | Campo da tabela BA1 correspondente a alteração | 
| B7L_VLPOS | Novo valor do campo da tabela BA1 informado no B7L_CAMPO. | 
| MV_PLURDOW | Diretório web para salvar os arquivos recebidos via API do produto TOTVS Saúde Planos. | 
05. TABELAS UTILIZADAS
- BBA - Cabeçalho Solic. Beneficiarios
 - B2N - Inclusão de Beneficiários
 - BA1 - Cadastro de Beneficiários
 - BA3 - Família
 - B90 - Layout Pag. Web
 - B91 - Campos Layout
 - ACB - Bancos de Conhecimentos
 - AC9 - Relação de Objetos x Entidades