Contextualização sobre do que se trata a área em que iremos dissertar tal integração.
Seu negócio, sua gestão, complexidade, o que está envolvido (em demais áreas), processos, etc. Tais explanações não precisam citar ferramentas (softwares) e sim as expectativas e resultados do uso de um sistema informatizado.
Interessante citar as tendências e necessidades de mercado, o quê, em geral, os software proporcionam (destinam/propósito), principais recursos, etc, e motivos que levaram a criar a integração (em outros termos, o porquê de integrar).
Descrição dos sistemas envolvidos no contexto de negócio (e que serão envolvidos na integração).
O que levou a criação da integração / o porquê da integração (Finalidade/Objetivo), de forma macro, o que será integrado do, por exemplo, Vertical com o ERP (BackOffice)
O objetivo é integrar o módulo de Gestão de Distribuição (SIGAOMS) com a funcionalidade Programação de Transportes do Cockpit Logístico da Neolog por intermédio de arquivos no formato XML utilizando os Web Services já existentes do Cockpit Logístico, sem transformação de mensagens e sem utilização de sistemas intermediários (TOTVS EAI, TOTVS ESB, etc.).
Explique o contexto de negócio ou do problema na qual esta integração estará inserida. Isto inclui o funcionamento da(s) ponta(s) envolvida(s).
Apresentar a integração como uma melhoria para o cenário ou como uma solução para o problema.
As entidades e os pontos de integração que farão parte do escopo dessa integração são:
Entidade | Pontos de Integração |
---|---|
Transportadora |
|
Fornecedor |
|
Pedidos de Venda |
|
Montagem de Carga |
|
Atenção: Não é escopo desse documento descrever a instalação do ERP Protheus e do Cockpit Logístico Neolog nem suas configurações.
É imprescindível a atualização do Protheus 11.8 por meio da execução do compatibilizador OMSP11R1.
Para que a integração possa funcionar corretamente, o ambiente deve conter o módulo SIGAOMS e o Cockpit Logístico devidamente configurados.
Parametrização SIGAOMS
Por meio do menu Atualizações > CockPit Logístico > Param Integração deve ser parametrizado o Protheus para correto funcionamento da integração conforme abaixo:
Onde:
Titulo | Descrição | Parâmetro | Valor para Integração |
---|---|---|---|
Integração Cockpit Logístico? | Identifica se o Modulo do TMS esta integrado aos outros módulos | MV_INTTMS | Sim / T |
Integração Suspensa? | Identifica se o Modulo do TMS não esta integrado temporariamente aos outros módulos | MV_INTTMS | Não / F |
Integrar Localidades do Exterior? | Informar se devem ser integradas para o Cockpit Logístico as localidades (filiais, clientes e solicitantes) com endereço fora do Brasil | MV_CPLEX | Sim / T |
Integrar Clientes On line? | Salvar os dados dos clientes criados no Protheus automaticamente no Cockpit Logístico | MV_CPLCLI | Sim / T |
Integrar Fornecedores On line? | Salvar os dados dos fornecedores criados no Protheus automaticamente no Cockpit Logístico(Localidades) | MV_CPLFOR | Sim / T |
Integrar Transportadora On line? | Salvar os dados das transportadoras criados no Protheus automaticamente no Cockpit Logístico | MV_CPLTRA | Sim / T |
Integrar Produtos On Line? | Salvar os dados dos produtos criados no Protheus automaticamente no Cockpit Logístico | MV_CPLPRO | Sim / T |
Integrar Tipos de Veículos On Line? | Salvar os dados dos tipos de veiculos criados no Protheus automaticamente no Cockpit Logístico | MV_CPLTPV | Sim / T |
Endereço WebService | Endereço do webservice do Cockpit Logístico | MV_CPLURL | Conforme cliente |
Regional | Regional enviada para o Cockpit Logístico | MV_CPLREG | Conforme cliente |
Embarcador | Embarcador enviado para o Cockpit Logístico | MV_CPLEMB | Conforme cliente |
Categoria de Produto? | MV_CPLCAT | Conforme cliente | |
Invólucro Padrão | Código do involucro dos itens | MV_CPLINV | Conforme cliente |
Origem dos Dados | Define o nome do ERP que da origem aos dados enviados ao Cockpit Logístico | MV_CPLIDS | Protheus |
E-mail do Administrador | E-mail do administrador para notificações de falha de conexão | MV_CPLMAL | Conforme cliente |
Modo Debug? | Salva as mensagens enviadas e recebidas na pasta do log. | MV_CPLDBG | Não / 2 |
Caminho da Pasta de Mensagens | Caminho do log de mensagens. Recomendado utilizar o caminho relativo a \system\ | MV_CPLLOG | \system\ |
Parametrização appServer.ini
Para que seja possível receber as viagens do Cockpit Logístico, é necessário configurar um WebService no appserver Protheus. É recomendado criar um webservice com as seguintes configurações(modificando o arquivo appserver.ini):
;Serviço webserver HTTP [HTTP] ENABLE=1 PATH=<Caminho_Cache_imagens>;C:\TOTVS 11\Prottheus\Protheus_data\web PORT=<porta>;8080 INSTANCES=<nInicio>,<nMaximo>;1,10 SESSIONTIMEOUT=60 INSTANCENAME=WS_HTTP ;URL de resposta [<ip ou nome>:<porta>/neolog] ENABLE=1 PATH=<Caminho_Cache_imagens>;C:\TOTVS 11\Prottheus\Protheus_data\web ENVIRONMENT=<ambiente> INSTANCENAME=WS_NEOLOG RESPONSEJOB=JOB_WS_NEOLOG DEFAULTPAGE=wsindex.apw ;JOB de resposta [JOB_WS_NEOLOG] TYPE=WEBEX ENVIRONMENT=<ambiente> INSTANCES=<nInicio>,<nMaximo>;1,10 INSTANCENAME=JOB_WS_NEOLOG ONSTART=TMSXStart ;ponto de inicio obrigatório ONCONNECT=TMSXConnect ;ponto de inicio obrigatório TMSPREPAREIN=<empresa>,<filial>;obrigatório |
Para testar o serviço, basta iniciar um navegador e digitar : http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW?WSDL
Um WSDL (Descrição do serviço em xml) deve exibir no navegador.
Para configurar o envio de viagens do cockpit ao webservice protheus, entre no Cockpit Logístico e vá em Adminsitração -> Integração. Clique na aba 'Fontes de Dados' e clique em 'Inserir'
Digite o código, Descrição e Código da base. Sugestão: PROTHEUS
No campo 'URL' da seção 'Cancelamento de viagem liberada', digite: http://<ip ou nome>:<porta>/neolog/CancelService.APW
No campo 'Tempo Máximo de Espera por Resposta' coloque o timeout do serviço. Recomendado 30000.
No campo 'URL' da seção 'Execução da viagem', digite: na.
No campo 'Tempo Máximo de Espera por Resposta' coloque o timeout do serviço. Recomendado 1000.
No campo 'URL' da seção 'Solicitação de Liberação de Viagem', digite: http://<ip ou nome>:<porta>/neolog/PublishReleasedTrip.APW
No campo 'Tempo Máximo de Espera por Resposta' coloque o timeout do serviço. Recomendado 30000.
No campo 'URL' da seção 'Solicitação de reprogramação de Viagem', digite: http://<ip ou nome>:<porta>/neolog/ReprogramService.APW
No campo 'Tempo Máximo de Espera por Resposta' coloque o timeout do serviço. Recomendado 30000.
Clique em Salvar.
Relacione quais são os pré-requisitos (técnicos ou de negócio) para a integração. Este tópico não deve incluir informações da implantação normal do módulo, mas apenas informações específicas da integração. É como se este tópico já partisse do princípio que o módulo que será integrado já está normalmente instalado.
Entre os tópicos deste tópico podemos citar:
Insira aqui as informações pertinentes a Datasul.
Insira aqui as informações pertinentes ao Logix.
Insira aqui as informações pertinentes ao Protheus.
Insira aqui as informações pertinentes ao RM.
Este tópico tem por objetivo orientar a instalação da integração, visando o seu funcionamento completo. Instalação de produtos ou ferramentas necessárias podem referenciar outros documentos existentes, desde que estejam disponíveis no repositório de documentação da TOTVS ou sejam enviados junto com o documento da integração em si. As informações mínimas necessárias para teste tópico são:
Observação: evite o uso de Prints de telas, facilitando, assim, o trabalho de tradução e versionamento deste documento.
Insira aqui as informações pertinentes a Datasul.
Insira aqui as informações pertinentes ao Logix.
Insira aqui as informações pertinentes ao Protheus.
Insira aqui as informações pertinentes ao RM.
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.
O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim as equipes de suporte dos produtos RM Conector e Backoffice Protheus estarão aptas a fazer a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.
Observação: Este modelo de suporte está sendo revisado pela TOTVS.
Apresente quais as transações/entidades que são trocadas e quem envia a informação para quem. Pode (e recomenda-se) ter um diagrama, uma tabela ou afins que apresente este fluxo.
Relacione quais são as mensagem únicas (TOTVSMessage) utilizadas e qual o seu relacionamento com as entidades já existentes do ERPs envolvidos.
Exemplos:
Método | ID | Descrição | Origem | Destino | XSD (versões podem variar) |
Cadastros | 01 | Transportadora | SIGAOMS | Cockpit Logístico | updateCarriers |
03 | Fornecedor | SIGAOMS | Cockpit Logístico | LocalityAcquisitionService | |
Processos | 15 | Enviar viagens | Cockpit Logístico | SIGAOMS | ReleaseTripPublishRequestService |
16 | Liberar Viagens | SIGAOMS | Cockpit Logístico | UnblockReleasedTripAcquisition | |
17 | Montagem de Carga | SIGAOMS | Cockpit Logístico | UnblockReleasedTripAcquisitionService | |
18 | Pedido de Vendas | SIGAOMS | Cockpit Logístico | OrderAcquisitionService |
Para cada fluxo de informação descreva, se necessário, alterações de comportamento que o respectivo produto irá sofrer. Por exemplo: quando o Logix recebe o PEDIDO de OUTRO ERP, este pedido não poderá ser alterado no Logix.
Liste quais as entidades integradas e como é o mapeamento entre as diferentes estruturas. Por exemplo: Classe no sistema A vira categoria no sistema B, o campo X é refletido no campo Y etc.
Liste quais transações/operações a integração fará com as entidades relacionadas. Exemplo: Insert de PEDIDO, Insert, update de ITEM, buscar saldo em estoque do ITEM no dia X ou buscar dados do FUNCIONÁRIO.
Descreva características gerais do fluxo de informações e que serão comuns para este tipo de entidade. Características particulares para cada entidade deverão ser citadas em tópicos específicos de cada entidade.
Sempre que existir (a sugestão é sempre criar) e for agregador ao documento acrescentar aqui os diagramas/imagens ou até mesmo colocar tais diagramas diretamente na especificação dos processos
Em seguida faça uma descrição para cada um dos fluxos para cada entidade
<Transação/Entidade>
Identificador da Mensagem: <mensagem>
Versão: <versão>
Módulo <marca 1>: <BackOffice – Gestão xxxxxxx>
Módulo <marca 2>: <SIGAXXX>
Tipo de Envio: <Assíncrona/Síncrona>
Mensagem Padrão | PROTHEUS | COCKPIT LOGÍSTICO | ||
Tabela | Campo | Tabela | Campo | |
Code | CTO990 | CTO_SIMB | GMOEDA | SIMBOLO * |
Description | CTO990 | CTO_DESC | GMOEDA | DESCRICAO |
Symbol | CTO990 | CTO_SIMB | GMOEDA | SIMBOLO |
Mensagem de integração dos registros do cadastro de "Fornecedor"
Campo Protheus | Tag XML | Campo Cockpit Logístico | Observações |
---|---|---|---|
MV_CPLREG | regionSourceId | Regional | |
"FOR-" + RTRIM(SA2->A2_COD) + "-" + RTRIM(SA2->A2_LOJA) | identifier | Código | Será adicionado a sigla "FOR" para composição do código para identificação que se trata de um fornecedor para uso como uma localide devido aos pedidos de beneficiamento do OMS. |
A2_NREDUZ | name | Nome | |
A2_NOME | description | Descrição | |
A2_END | addressStreet | Endereço | |
addressNumber | N° | Obtido por meio do campo A2_END | |
A2_COMPLEM | addressComplement | Complemento | |
A2_BAIRRO | addressDistrict | Bairro | |
A2_CEP | addressZipCode | CEP | |
A2_MUN | addressCity | Cidade | |
A2_EST | addressStateAcronym | UF | |
A2_PAIS / "BR" ou YA_SIGLA | addressCountryAcronym | País | Quando A2_PAIS em branco ou igual a 105 atribuido "BR" |
"2" | logisticRoleId | Tipo | 2=Destino (por orientação da Neolog para gerar menos combinações de rota) |
Mensagem de integração dos registros do cadastro de "Transportadora"
Campo Protheus | Tag XML | Campo Cockpit Logístico | Observações |
---|---|---|---|
MV_CPLREG | regionSourceId | Ident. Regional | |
A4_COD | identifier | ID da transportadora (Código) | |
A4_NREDUZ | name | Nome da Transportadora | |
A4_NOME | description | Descrição da Transportadora |
Mensagem de integração dos registros do cadastro de "Pedido de Venda"
Campo Protheus | Tag XML | Campo Cockpit Logístico | Observações |
---|---|---|---|
MV_CPLREG | regionSourceId | Regional | |
MV_CPLIDS | integrationDataSource | Integração | |
"1" | orderTypeSourceId | Tipo do Pedido | |
RTRIM(SC5->C5_FILIAL) + "-" + RTRIM(SC5->C5_NUM) | identifier | SC5->(RECNO()) | |
RTRIM(SC5->C5_FILIAL) + "-" + RTRIM(SC5->C5_NUM) | code | Código do Ped. Transp. | |
"0" | priority | Prioridade | |
Date() | erpCreationDt | Data Corrente | Data de criação do pedido |
Date() | pickupStart | Janela Embarque | |
Date() ou C5_FECENT | deliveryStart | Janela Entrega | Data corrente ou data informada no pedido de venda |
Date() ou C6_ENTREG ou C9_DATENT | deliveryEnd | Janela Entrega | |
C9_PEDIDO | orderId | ID do Pedido de Transporte | |
RTRIM(SC5->C5_FILIAL)+"-"+RTRIM(SC5->C5_NUM) + C9_ITEM | sourceId | ||
C9_PRODUTO | productId | Produto | |
C9_QTDLIB | quantity | Quantidade total de unid. | |
C9_PRCVEN | price | Valor Total de unid. De prod. | |
"FIL-" + RTRIM(SC5->C5_FILIAL) | originId | Origem Inicial | |
"CLI-" + RTRIM(SC5->C5_CLIENT) + "-" + RTRIM(SC5->C5_LOJAENT) | destinationId | ID da Localidade de destino do Pedido | |
C9_QTDLIB | quantityInShipmentUnits | ||
B5_ALTURLC | height | Quando houver relacionamento com o B1_PRODUTO, quando vazio será enviado por default o contéudo = 0.001 | |
B5_LARGLC | width | Quando vazio por default o contéudo enviado será = 0.001 | |
B5_COMPRLC | length | Quando vazio por default o contéudo enviado será = 0.001 | |
B1_PESO ou B1_PESBRU | weight | De acordo com a configuração do parâmetro MV_PESOCAR, verificar o conteúdo do parâmetro por meio da função OsPesoProd e enviar os dados. Quando vazio por default o contéudo enviado será = 0.001 | |
MV_CPLEMB | shipperId | ID do Embarcador | |
"1" | modal | ID do modal do pedido de transporte | Enviar valor fixo 1 - Rodoviário |
C5_TPFRETE | incoterm | Sendo o conteúdo C = 1 e F = 0 para o CPL, quando o campo for vazio iremos passar sempre 1. | |
MV_CPLINV | shipmentUnitWrapperCode | Invólucro de embarque |
Mensagem de integração das viagens geradas no CPL para posterior geração das Cargas no SIGAOMS, utilizando a operação publishReleasedTrip:
Campo Prothues | Tag XML | Campo Cockpit Logístico | Observações |
---|---|---|---|
DK0_IDCESTA | basketSourceId | ID Cesta | |
DK0_REGID | regionSourceId | Identificador Regional | |
DK0_VIAGID | identifier | ID da Viagem | |
DK0_TRANSP | carrierId | ID Transportadora da Viagem | |
DK0_TIPVEI | vehicleId | ID do Tipo de Veículo da Viagem | |
DK0_DESTIP | vehicleDescription | Descrição do tipo de veículo da viagem | |
DK0_PLACA | truckLicensePlate | Placa do caminhão da viagem | |
DK0_ESTPLA | truckStateLicensePlate | Estado da placa do caminhão da viagem | |
DK0_QTDEIX | truckAxlesQuantity | Número de eixos do caminhão |
Mensagem dos itens (Pedidos) do CPL - deliveryUnit
Campo Protheus | Tag XML | Campo Cockpit Logístico | Observações |
---|---|---|---|
DK1_UNIDID | identifier | ||
DK1_REGID | RegionalSourceId | Regional | |
DK1_VIAGID | Viagem | Viagem CPL | |
DK1_PEDROT | orderSourceId | Pedido CPL | |
DK1_PRODUTO | productSourceId | Produto | |
DK1_QTD | quantity | Quantidade | |
DK1_PRECO | price | Preço | |
DK1_DATENT | deliveryDate | Dt/Hr Entrg | |
DK1_ORIGEM | integrationSource | ID da origem de dados |
Notas:
Observações sobre comportamento desta mensagem ou dos processos envolvidos nela/para ela
A seguir descrever as variações, particularidades da mensagem e processos (integração) de acordo com cada marca
Limitações/Restrições
Descreva limitações e restrições para a integração que está sendo descrita.
Descreva características gerais do fluxo de informações e que serão comuns para este tipo de entidade. Características particulares para cada entidade deverão ser citadas em tópicos específicos de cada entidade.
Sempre que existir (a sugestão é sempre criar) e for agregador ao documento acrescentar aqui os diagramas/imagens ou até mesmo colocar tais diagramas diretamente na especificação dos processos
Em seguida faça uma descrição para cada um dos fluxos para cada entidade
Clientes
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: LocalityAcquisitionService
Versão: 1.000
Ao cadastrar um cliente no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities, esses dados por sua vez serão salvos como localidade, e poderão ser visualizados no CPL em: CADASTRO -> Localidades
Filiais
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: LocalityAcquisitionService
Versão: 1.000
Ao cadastrar uma filial no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities, esses dados por sua vez serão salvos como localidade, e poderão ser visualizados no CPL em: CADASTRO -> Localidades
Fornecedores
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: LocalityAcquisitionService
Versão: 1.000
Ao cadastrar um Fornecedor no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities, esses dados por sua vez serão salvos como localidade, e poderão ser visualizados no CPL em: CADASTRO -> Localidades
Transportadores
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: CarrierAcquisitionService
Versão: 1.000
Ao cadastrar um Transportador no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método CarrierAcquisitionService, esses dados por sua vez serão salvos como Transportadoras e poderão ser visualizados no CPL em: CADASTRO -> Transportadoras
Produtos
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: ProductAcquisitionService
Versão: 1.000
Ao cadastrar um Produto no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método ProductAcquisitionService, esses dados por sua vez serão salvos como Produtos Simples e poderão ser visualizados no CPL em: CADASTRO -> Produtos Simples
Tipos de veículo
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: VehicleAcquisitionService
Versão: 1.000
Ao cadastrar um Tipo de veículo no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método VehicleAcquisitionService, esses dados por sua vez serão salvos como Produtos Simples e poderão ser visualizados no CPL em: CADASTRO -> Produtos Simples
Descrição de todo o comportamento e funcionamento do processo. Breve contexto, origem, regras, integração (geração da mensagem, envio, recebimento no destino), o quê supostamente irá ocorrer no destino, retorno, impacto, consequências, o que foi afetado, como conferir, validar, etc o retorno.
Acrescentar um diagrama do processo.
A seguir descrever as variações, particularidades da mensagem e processos (desta integração) de acordo com cada marca
Notas:
Observações sobre comportamento desta mensagem ou dos processos envolvidos nela/para ela
Limitações/Restrições
Descreva limitações e restrições para a integração que está sendo descrita.
Cadastros
01
Transportadora
SIGAOMS
Cockpit Logístico
updateCarriers
02
Pedido de Vendas
SIGAOMS
Cockpit Logístico
OrderAcquisitionService
03FornecedorSIGAOMSCockpit LogísticoLocalityAcquisitionService04Montagem de CargaSIGAOMSCockpit LogísticoUnblockReleasedTripAcquisitionServiceProcessos
15
Enviar viagens
Cockpit Logístico
SIGAOMS
ReleaseTripPublishRequestService
16
Liberar Viagens
SIGAOMS
Cockpit Logístico
UnblockReleasedTripAcquisition
Descreva limitações e restrições para cada fluxo descrito no tópico anterior. Exemplo:
ERP1 somente enviará o ITEM se este estiver em uma das famílias cadastradas no parâmetro FAMILIA_INTEGRACAO.
Se o tipo de valorização do estoque for FIFO.
O pedido recebido no ERP1 vindo do ERP2 estará bloqueado para alteração.
Descreva os passos que viabilizem a integração.
Exemplo:
Os passos para viabilizar a integração são:
Descreva situações problemáticas comuns que podem ocorrer durante o funcionamento da integração e como solucioná-los. Neste ponto também é importante dar instruções de como reconhecer e investigar problemas que podem vir a ocorrer durante a integração. Se houver, apresente tabelas de códigos e descrições de erros que a integração poderá apresentar.
Este tópico possivelmente será alimentado com as experiências durante o desenvolvimento da integração e poderá ser realimentado durante o uso da integração no cliente.
Exemplo 1:
Tratamento de erros de integração (Produto A)
Erro | Mensagem | Solução |
Código do erro | Mensagem exibida | Ação a ser tomada para resolução do erro. |
Tratamento de erros de integração (Produto B)
Erro | Mensagem | Solução |
Código do erro | Mensagem exibida | Ação a ser tomada para resolução do erro. |
Exemplo 2:
Quando uma mensagem é enviada do Logix para o Protheus, podem ocorrer situações em que o WebService não estará totalmente funcional. Nestes casos uma mensagem de erro genérica irá aparecer na tela:
Exemplo:
Erro ao enviar a mensagem de Cidade via Integração
Se o arquivo de log for analisado, poderemos ver a falha na comunicação com o sistema destino:
-------------------------------------------------------------------------------
WSCERR044 / Não foi possível POST : URL http://172.16.31.57:8011/ws/FWWSEAI.apw
ADVPL WSDL Client 1.080707 / tst on 20120315 08:49:51
-------------------------------------------------------------------------------
Para resolver este problema, verifique as configurações do sistema de destino, analisando o funcionamento do servidor utilizado para esta comunicação e a habilitação do endereço do WebService.
Crie um check-list de verificação de alguns pontos importantes para o funcionamento e atendimento da integração.
Instalação/Configuração
Relacione itens de verificação para garantir que a integração está corretamente instalada e configurada. Isto não pode ser uma cópia do procedimento de instalação/configuração, mas verificações pontuais que podem remeter aos itens da instalação.
Checklist de Verificações:
Relacione itens de verificações para que o atendente possa: