Integração via Web Service de Clientes - Logix

Linha de Produto:

Logix.

Segmento:

Manufatura.

Módulo:

Vendas e Distribuição.

Função:

VDPR0007 - VDP90430 - VDP90076.

Situação/Requisito:

Permitir que seja realizado no Logix o cadastro de clientes via rotinas externas.

Solução/Implementação:

Desenvolvido rotinas Web Service (API REST) para que seja possível realizar a inclusão de um cliente por rotinas externas ao Logix de acordo com regras e padrões Totvs.

Detalhamento:
Contexto de negócio

Com o desenvolvimento de Web Service para cadastro de Clientes do Logix, é possível a utilização dessas funcionalidades/serviços em uma variada gama de aplicações, como por exemplo páginas WEB, aplicativos mobile, Fluig e outros sistemas que suportam requisições HTTP com protocolo REST.

Sistemas Envolvidos

ERP Logix - Cadastro de clientes.

Escopo

Desenvolvido Web Services (WS) no sistema REST para a funcionalidade de inclusão de clientes.

Para mais informações sobre o sistema REST na TOTVS, consulte o link: *REST ADVPL.*

Pré-requisitos instalação/implantação/utilização

Logix versão 12 com pacote mínimo 12.1.21.
Server TOTVS TEC configurado com serviço REST. Para mais informações verifique: *01. Configuração.*
Liberar no Firewall a porta configurada no server TOTVS TEC para o serviço REST.

Web Services

1 - Inclusão de Cliente

Objetivo: Incluir cadastro de um cliente.

Operação: POST

Exemplo da URL: http://SERVER:PORT/logixrest/vdpr0007/incluiCliente

Parâmetros de entrada (Tipo: PayLoad):
Dados mestre


ChaveParâmetroDefiniçãoObservação
lr_principal empresa empresa.cod_empresaObrigatório
lr_principal usuariousuarios.cod_usuarioObrigatório
lr_mestrecodigo                    clientes.cod_cliente                Se não for informado, será o CNPJ/CPF sem formatação
lr_mestrenome                      vdp_cli_fornec_cpl.razao_social     Obrigatório
lr_mestrenome_reduzido             vdp_cli_fornec_cpl.razao_social_reduzAceita branco
lr_mestrenome_contato              clientes.nom_contato                Aceita branco
lr_mestresituacao                  clientes.ies_situacao               Obrigatório
lr_mestretipo_cliente              clientes.cod_tip_cli                Obrigatório
lr_mestrefrete_posto               clientes.den_frete_posto            Aceita branco
lr_mestreclasse                    clientes.cod_class                  Aceita branco
lr_mestrecliente_matriz            clientes.cod_cliente_matriz         Aceita branco
lr_mestredata_fundacao             clientes.dat_fundacao               Aceita branco, formato 'YYYY-MM-DD' - Y = ano, M=mês e D = Dia
lr_mestredescricao_marca           clientes.den_marca                  Aceita branco
lr_mestreportador                  clientes.cod_portador               Aceita branco
lr_mestretipo_portador             clientes.ies_tip_portador           Aceita branco
lr_mestrecliente_terceiro          CHAR(01)                          Aceita branco
lr_mestreidentificador_estrangeiro vdp_cli_fornec_cpl.iden_estrangeiro Aceita branco
lr_mestreconsignatario             clientes.cod_consig                  Aceita branco
lr_info_fiscalcnpj_cpf          clientes.num_cgc_cpfObrigatório
lr_info_fiscalinscricao_estadualclientes.ins_estadualAceita branco
lr_info_fiscalins_municipal     CHAR(20)Aceita branco
lr_info_fiscalmicro_empresa     CHAR(01)Aceita branco
lr_info_fiscaldata_micro_empresaDATEAceita branco
lr_info_fiscalzona_franca       clientes.ies_zona_francaObrigatório, 'S' para sim e 'N' para não
lr_info_fiscalnumero_suframa    clientes.num_suframaAceita branco, obrigatório se zona_franca = 'S'.
lr_info_fiscalvalidade_suframa  DATEAceita branco, obrigatório se zona_franca = 'S'.
lr_info_fiscalcprb              vdp_cli_fornec_cpl.ind_cprbAceita branco, 'S' para sim e 'N' para não
lr_info_fiscaltipo_servico      vdp_cli_fornec_cpl.tipo_servicoAceita branco
lr_info_fiscalinovar_auto       CHAR(01) Aceita branco, 'S' para sim e 'N' para não
lr_contatocaixa_postalclientes.num_caixa_postalAceita branco
lr_contatotelex       clientes.num_telexAceita branco
lr_contatoddi         CHAR(03)Aceita branco
lr_contatoddd         CHAR(03)Aceita branco
lr_contatotelefone    clientes.num_telefoneAceita branco
lr_contatofax         clientes.num_faxAceita branco
lr_enderecotipo_logradouro     vdp_cli_fornec_cpl.tip_logradouro Aceita branco
lr_enderecologradouro          vdp_cli_fornec_cpl.logradouro     Obrigatório
lr_endereconumero_identificacaovdp_cli_fornec_cpl.num_iden_logradObrigatório
lr_enderecocomplemento         vdp_cli_fornec_cpl.compl_endereco Aceita branco
lr_enderecocep                 clientes.cod_cep                  Obrigatório
lr_enderecobairro              clientes.den_bairro               Aceita branco
lr_enderecocidade_ibge         obf_cidade_ibge.cidade_ibge        Obrigatório
lr_localidaderota      clientes.cod_rota           Aceita branco
lr_localidadepraca     clientes.cod_praca          Aceita branco
lr_localidadelocal     clientes.cod_local          Obrigatório
lr_localidademercado   cli_dist_geog.cod_mercado   Aceita branco
lr_localidadecontinentecli_dist_geog.cod_continenteAceita branco
lr_localidaderegiao    cli_dist_geog.cod_regiao     Aceita branco
lr_canal_vendanivel_1 cli_canal_venda.cod_nivel_1           Aceita branco
lr_canal_vendanivel_2 cli_canal_venda.cod_nivel_2           Aceita branco
lr_canal_vendanivel_3 cli_canal_venda.cod_nivel_3           Aceita branco
lr_canal_vendanivel_4 cli_canal_venda.cod_nivel_4           Aceita branco
lr_canal_vendanivel_5 cli_canal_venda.cod_nivel_5           Aceita branco
lr_canal_vendanivel_6 cli_canal_venda.cod_nivel_6           Aceita branco
lr_canal_vendanivel_7 cli_canal_venda.cod_nivel_7           Aceita branco
lr_canal_vendacarteiracli_canal_venda.cod_tip_carteira       Obrigatório


Exemplo de JSON enviado como parâmetro de entrada:

{

   "lr_principal": {

            "empresa": "50",

            "usuario": "admlog"

            },

   "lr_mestre": {

            "codigo": "",

            "nome": " TESTE NOVO CLIENTE V2 CATINI",

            "nome_reduzido": " TESTE NOVO CLIENTE V2 CATINI",

            "nome_contato": "",

            "situacao": "A",

            "tipo_cliente": "01",

            "frete_posto": "",

            "classe": "1",

            "cliente_matriz": "CATINI",

            "data_fundacao": "2018-01-01",

            "descricao_marca": "CATINI'S CORP",

            "portador": "1",

            "tipo_portador": "B",

            "cliente_terceiro": "N",

            "identificador_estrangeiro": "",

            "consignatario": ""

            },

   "lr_info_fiscal": {

            "cnpj_cpf": "021.033.831/0001-30",

            "inscricao_estadual": "ISENTO",

            "ins_municipal": "",

            "micro_empresa": "S",

            "data_micro_empresa": "2018-01-01",

            "zona_franca": "N",

            "numero_suframa": "",

            "validade_suframa": "",

            "cprb": "N",

            "tipo_servico": "",

            "inovar_auto": "N"

            },

   "lr_contato": {

            "caixa_postal": "",

            "telex": "",

            "ddi": "",

            "ddd": "",

            "telefone": "(47)9.9730-7274",

            "fax": ""

            },

   "lr_endereco": {

            "tipo_logradouro": "RUA",

            "logradouro": "São Paulo",

            "numero_identificacao": "3712",

            "complemento": "",

            "cep": "89247-000",

            "bairro": "Petrópolis",

            "cidade_ibge": "4209102"

            },

   "lr_localidade": {

            "rota": "288",

            "praca": "288",

            "local": "288",

            "mercado": "01",

            "continente": "1",

            "regiao": "1"

            },

   "lr_canal_venda": {

            "nivel_1": "",

            "nivel_2": "",

            "nivel_3": "",

            "nivel_4": "",

            "nivel_5": "",

            "nivel_6": "",

            "nivel_7": "",

            "carteira": "10"

            }

}

Parâmetros de saída:
Chave  Parâmetro        Parâmetro  Definição             Observação
status                              SMALLINT              TRUE (processou) / FALSE (não processou)
msg                                 CHAR(200)             Retorna msg fixa caso ocorra algum erro.
data                                RECORD               
        cliente                     clientes.cod_cliente  Retorna o código do cliente incluso ou branco/nulo quando ocorreu erro.
        count_mensagens             SMALLINT              Quantidade de mensagens de retorno
        mensagens                   RECORD ARRAY          N/C
                         texto      CHAR(2000)            Retorna a mensagem de erro, quando ocorre.