Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.

 

 

Informações Gerais

 

Especificação

Produto

Datasul

Módulo

UTB - Tabelas Universais

Segmento Executor

Manufatura

Projeto

MANFIN01

EPIC

MANFIN01-891

Story

MANFIN01-2019

Subtarefa

MANFIN01-2032

País

(  ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

 

 

 

Objetivo

Permitir que os Cadastros de Cliente e Fornecedor sejam replicados para um Produto externo, utilizando o Conceito de Mensagem Única através do EAI2.

 

Definição da Regra de Negócio


Mensagem

Ao Incluir, Alterar ou Excluir um Cliente/Fornecedor, será enviada uma Mensagem XML a partir do Datasul, pertencente a Transação “CustomerVendor” versão 1.000.

O Datasul irá realizar o o envio através do Adapter criado para o módulo UTB - Tabelas Universais, baseado no XSD: “CustomerVendor_1_000.xsd”, que está disponível no TFS, no caminho abaixo:

http://tfs2015.totvs.com.br:8080/tfs/TOTVSMSGXML/STABLE/_versionControl?path=%24%2FSTABLE%2Fxmlschema%2Fgeneral%2Fevents%2FCustomerVendor_1_000.xsd

Observações:

  • O Envio a partir do Datasul estará disponível independente do projeto do Operador Logístico.
  • Para que o envio aconteça, basta que a transação "CustomerVendor" esteja habilitada para envio no EAI2. Desta forma, esta mensagem poderá ser utilizada por qualquer projeto futuro.
  • Para garantir que não haja impacto nas releases anteriores, o envio somente será realizador se o Pré-Processador "BF_FIN_CLIEN_FORNEC_EAI2" estiver disponível. Este pré-processador será liberado a partir da 12.1.17 do Datasul.

 

Ajuste nos Adapters

O Adapter para transação "CustomerVendor" já existe e está disponível no caminho "com\totvs\datasul\universal\utb\CustomerVendorAdapter.cls", mas atualmente ele somente trata o Recebimento da mensagem. Portanto, ele será alterado para tratar também o Envio da mensagem.

Atualmente já existe um Adapter de Envio, disponível no caminho "com\totvs\datasul\universal\CustomerVendorAdapter.cls", mas ele pertencente ao projeto de Integração com o PIMS que foi suspenso. Desta forma, este Adapter será eliminado, e quando o projeto for retornado, ele deverá utilizar o Adapter mencionado acima.

As mesmas regras descritas acima, valem para o arquivo de Factory da mensagem "CustomerVendorFactory.cls".


Montagem do XML

Segue abaixo a Listas das TAG do XML da mensagem, e a indicação de como elas serão atualizadas:


Informações Principais

TAGInformação
CompanyIdEmpresa (cliente.cod_empresa ou fornecedor.cod_empresa)
CodeCódigo (cliente.cdn_cliente ou fornecedor.cdn_fornecedor)
ShortNameNome Abreviado (cliente.nom_abrev ou fornecedor.nom_abrev)
NameNome (cliente.nom_pessoa ou fornecedor.nom_pessoa)
Type

Valor Fixo conforme abaixo:

  • "Customer" - Quando for Cliente
  • "Vendor" - Quando for Fornecedor
  • "Both" - Quando for Ambos
EntityType

Valor Fixo conforme abaixo:

  • "Person" - Quando for Pessoa Física
  • "Company" - Quando for Pessoa Jurídica
MarketSegment/CodeRamo de Negócio - Código (pessoa_jurid_ramo_negoc.cod_ramo_negoc)
MarketSegment/DescriptionRamo de Negócio - Descrição (ramo_negoc.des_ramo_negoc)
RegisterDateData de Implantação (cliente.dat_impl_clien ou fornecedor.dat_impl_fornec)
RegisterSituationNão será atualizado, informação não existe no Datasul
CommentsNão será atualizado, informação não existe no Datasul
GovernmentalInformation/IdInscrição Federal - CPF ou CNPJ (cliente.cod_id_feder ou fornecedor.cod_id_feder)
GovernmentalInformation/IdInscrição Estadual (pessoa_fisic.cod_id_estad_fisic ou pessoa_jurid.cod_id_estad_jurid)

 

Endereço

Informações abaixo da TAG "Address":

TAGInformação
AddressEndereço (pessoa_fisic.nom_endereco ou pessoa_jurid.nom_endereco)
NumberNão será atualizado, informação não existe no Datasul
ComplementComplemento (pessoa_fisic.nom_ender_compl ou pessoa_jurid.nom_ender_compl)
City/CodeCidade (pessoa_fisic.nom_cidade ou pessoa_jurid.nom_cidade)
City/DescriptionCidade (pessoa_fisic.nom_cidade ou pessoa_jurid.nom_cidade)
DistrictBairro (pessoa_fisic.nom_bairro ou pessoa_jurid.nom_bairro)
State/CodeEstado (pessoa_fisic.cod_unid_federac ou pessoa_jurid.cod_unid_federac)
State/DescriptionEstado (pessoa_fisic.cod_unid_federac ou pessoa_jurid.cod_unid_federac)
Contry/CodeCódigo Internacional do Pais (pais.num_pais_dirf)
Contry/DescriptionPais (pessoa_fisic.cod_pais ou pessoa_jurid.cod_pais)
ZIPCodeCEP (pessoa_fisic.cod_cep ou pessoa_jurid.cod_cep)
RegionCondado (pessoa_fisic.nom_condado ou pessoa_jurid.nom_condado)
POBoxCaixa Postal (pessoa_fisic.cod_cx_post ou pessoa_jurid.cod_cx_post)


Endereço de Entrega

Informações abaixo da TAG "ShippingAddress":

TAGInformação
AddressEndereço (ender_entreg.nom_ender_entreg)
NumberNão será atualizado, informação não existe no Datasul
ComplementNão será atualizado, informação não existe no Datasul
City/CodeCidade (ender_entreg.nom_cidad_entreg)
City/DescriptionCidade (ender_entreg.nom_cidad_entreg)
DistrictBairro (ender_entreg.nom_bairro_entreg)
State/CodeEstado (ender_entreg.cod_unid_federac_entreg)
State/DescriptionEstado (ender_entreg.cod_unid_federac_entreg)
Contry/CodeCódigo Internacional do Pais (pais.num_pais_dirf)
Contry/DescriptionPais (ender_entreg.cod_pais_entreg)
ZIPCodeCEP (ender_entreg.cod_cep_entreg)
RegionCondado (ender_entreg.nom_condad_entreg)
POBoxCaixa Posta (ender_entreg.cod_cx_post_entreg)

 

Lista das Informações de Comunicação

Informações abaixo da TAG "ListOfCommunicationInformation/CommunicationInformation":

TAGInformação
PhoneDDDNão será atualizado, informação não existe no Datasul
PhoneNumberTelefone (pessoa_fisic.cod_telefone ou pessoa_jurid.cod_telefone)
PhoneExtensionRamal (pessoa_fisic.cod_ramal / para pessoa Jurídica não há)
FaxDDDNão será atualizado, informação não existe no Datasul
FaxNumberFax (pessoa_fisic.cod_fax ou pessoa_jurid.cod_fax)
FaxNumberExtensionRamal Fax (pessoa_fisic.cod_ramal_fax ou pessoa_jurid.cod_ramal_fax)
HomePageHomePage (pessoa_fisic.nom_home_page ou pessoa_jurid.nom_home_page)
Emaile-mail (pessoa_fisic.cod_e_mail ou pessoa_jurid.cod_e_mail)

 

Lista de Contatos

Informações abaixo da TAG "ListOfContacts/Contact":

TAGInformação
CodeCódigo (contato.nom_abrev_contat)
TitleNão será atualizado, informação não existe no Datasul
NameNome (contato.nom_pessoa)
DepartmentNão será atualizado, informação não existe no Datasul
CommunicationInformation/PhoneDDDNão será atualizado, informação não existe no Datasul
CommunicationInformation/PhoneNumberTelefone (contato.cod_telef_contat)
CommunicationInformation/PhoneExtensionRamal (contato.cod_ramal_contat)
CommunicationInformation/FaxDDDNão será atualizado, informação não existe no Datasul
CommunicationInformation/FaxNumberFax (contato.cod_fax_contat)
CommunicationInformation/FaxNumberExtensionRamal Fax (contato.cod_ramal_fax_contat)
CommunicationInformation/HomePageNão será atualizado, informação não existe no Datasul
CommunicationInformation/Emaile-mail (contato.cod_e_mail_contat)
Address/AddressEndereço (contato.nom_endereco)
Address/NumberNão será atualizado, informação não existe no Datasul
Address/ComplementComplemento (contato.nom_ender_compl)
Address/City/CodeCidade (contato.nom_cidade)
Address/City/DescriptionCidade (contato.nom_cidade)
Address/DistrictBairro (contato.nom_bairro)
Address/State/CodeEstado (contato.cod_unid_federac)
Address/State/DescriptionEstado (contato.cod_unid_federac)
Address/Contry/CodeCódigo Internacional do Pais (pais.num_pais_dirf)
Address/Contry/DescriptionPais (contato.cod_pais)
Address/ZIPCodeCEP (contato.cod_cep_cobr)
Address/RegionNão será atualizado, informação não existe no Datasul
Address/POBoxCaixa Postal (contato.cod_cx_post)

 

Lista de Informações Bancárias

Informações abaixo da TAG "ListOfBankingInformation/BankingInformation":

Observação:

  • Para Cliente, serão consideras as informações Bancárias do Cliente Financeiro;
  • Para Fornecedor, será considera da Lista de Contas Correntes do Fornecedor Financeiro.
TAGInformação
BankCodeCódigo do Banco (clien_financ.cod_banco ou cta_corren_fornec.cod_banco)
BankNameDescrição do Banco (banco.nom_banco)
BranchCodeAgência (clien_financ.cod_agenc_bcia ou cta_corren_fornec.cod_agenc_bcia)
BranchKeyDígito da Agência (clien_financ.cod_digito_agenc_bcia ou cta_corren_fornec.cod_digito_agenc_bcia)
CheckingAccountNumberConta Corrente (clien_financ.cod_cta_corren_bco ou cta_corren_fornec.cod_cta_corren_bco)
CheckingAccountNumberKeyDígito da Conta Corrente (clien_financ.cod_digito_cta_corren ou cta_corren_fornec.cod_digito_cta_corren)

 

Endereço de Cobrança

Informações abaixo da TAG "BillingInformation":

TAGInformação
BillingCustomerCodeNão será atualizado, informação não existe no Datasul
Address/AddressEndereço (pessoa_fisic.nom_ender_cobr ou pessoa_jurid.nom_ender_cobr)
Address/NumberNão será atualizado, informação não existe no Datasul
Address/ComplementComplemento (pessoa_fisic.nom_ender_compl_cobr ou pessoa_jurid.nom_ender_compl_cobr)
Address/City/CodeCidade (pessoa_fisic.nom_cidad_cobr ou pessoa_jurid.nom_cidad_cobr)
Address/City/DescriptionCidade (pessoa_fisic.nom_cidad_cobr ou pessoa_jurid.nom_cidad_cobr)
Address/DistrictBairro (pessoa_fisic.nom_bairro_cobr ou pessoa_jurid.nom_bairro_cobr)
Address/State/CodeEstado (pessoa_fisic.cod_unid_federac_cobr ou pessoa_jurid.cod_unid_federac_cobr)
Address/State/DescriptionEstado (pessoa_fisic.cod_unid_federac_cobr ou pessoa_jurid.cod_unid_federac_cobr)
Address/Contry/CodeCódigo Internacional do Pais (pais.num_pais_dirf)
Address/Contry/DescriptionPais (pessoa_fisic.cod_pais ou pessoa_jurid.cod_pais)
Address/ZIPCodeCEP (pessoa_fisic.cod_cep_cobr ou pessoa_jurid.cod_cep_cobr)
Address/RegionCondado (pessoa_fisic.nom_condad_cobr ou pessoa_jurid.nom_condad_cobr)
Address/POBoxCaixa Postal (pessoa_fisic.cod_cx_post_cobr ou pessoa_jurid.cod_cx_post_cobr)

 

Informações de Fornecedor

Informações abaixo da TAG "VendorInformation":

TAGInformação
VendorClassification

Valor Fixo conforme abaixo (fornecedor.cdn_classif_fornec):

  • "Raw Material" - Para Matéria Prima
  • "Service" - Para Serviços
  • "Both" - Para Ambos
  • "Generic" - Para Genérico
VendorType/CodeTipo do Fornecedor (fornecedor.cod_tip_fornec)
VendorType/DescriptionDescrição do Tipo (tip_fornec.des_tip_fornec)


Informações Fiscais

Informações abaixo da TAG "FiscalInformation":

TAGInformação
CategoryNão será atualizado, informação não existe no Datasul
IsRetentionAgentAgente de Retenção (clien_financ.log_retenc_impto ou fornec_financ.log_retenc_impto)

 

Lista de Impostos Vinculados

Informações abaixo da TAG "FiscalInformation/TaxPayer":

TAGInformação
TaxNameDescrição do Imposto (imposto.des_imposto)
isPayerNão será atualizado, informação não existe no Datasul
modeNão será atualizado, informação não existe no Datasul

 

Informações de Análise de Crédito

Informações abaixo da TAG "CreditInformation":

Observações:

  • Informações disponíveis apenas no módulo de Avaliação de Crédito, portanto as informações serão buscadas de lá no momento da geração do XML;
  • Estas informações estão disponíveis no programa: CM0102 - Informações de Crédito do Cliente.
TAGInformação
CreditIndicatorIndicador de Crédito (emitente.ind-cre-cli)
CreditEvaluationIndicador de Avaliação (emitente.ind-aval)
ShipmentCreditEvaluationIndicador de Avaliação de Crédito Embarque (emitente.ind-aval-embarque)
CreditLimitLimite de Crédito (emitente.lim-credito)
CreditLimitCurrencyMoeda do Limte de Crédito (emitente.moeda-libcre)
CreditLimitDateData do Limite de Crédito (emitente.dt-lim-cred)
AdditionalCreditLimitLimite de Crédito Adicional (emitente.lim-adicional)
AdditionalCreditLimitCurrencyMoeda do Limite de Crédito Adicional (emitente.moeda-libcre)
AdditionalCreditLimitDateData Fim do Limite de Crédito Adicional (emitente.dt-fim-cred)
LatePeriodsNúmero de Períodos de Atraso (emitente.nr-peratr)

 

Chamada do Apdater nos Programas de Cadastro


Programa Fachada

Não deve ser feita referência as variáveis do Adpater (CustomerVendor), diretamente dentro dos programas já existem, pois teremos problemas em liberações especiais em releases anteriores. Portanto, será construído um programa novo (fachada), que será intermediário para chamada do Adapter;

Os programas de Inclusão, Alteração e Exclusão de Cliente/Fornecedor serão alterados para chamar este novo programa;

Este novo programa irá verificar se a Transação "CustomerVendor" está habilitada para envio no EAI2 (transactionstatus.i), caso não esteja, o programa não irá chamar o Adapter.


Programas Chamadores

De forma geral, os programas alterados para chamada do programa fachada, serão os mesmos que hoje já fazem a chamada do Adapter do EAI1, mas alguns deles não serão alterados, pois a Mensagem Única utilizada no EAI2, não possui todas as informação que são tratadas pelo EAI1.

Abaixo segue a lista dos programas que devem e os que não devem ser alterados.


Programas que devem ser alterados

Programa BaseProgramas a serem alterados
Cadastro de Pessoa Física (utb030aa)prgint/utb/utb030eb.p (mod_pessoa_fisic_base)
Cadastro de Pessoa Jurídica (utb006aa)

prgint/utb/utb006eb.p (mod_pessoa_jurid_base)
prgint/utb/utb006mb.p (frm_pessoa_jurid_ramo_negoc)

Cadastro de Fornecedor (utb031aa)prgint/utb/utb031ab.py (rpt_fornecedor_copia)
prgint/utb/utb031ea.p (mod_fornecedor)
prgint/utb/utb031ga.p (era_fornecedor)
Cadastros de Fornecedor Financeiro (ufn003aa)prgint/ufn/ufn003ab.py (rpt_fornec_financ_copia)
prgint/ufn/ufn003ea.p (mod_fornec_financ)
prgint/ufn/ufn003ga.p (era_fornec_financ)
prgint/ufn/ufn003za.p (fnc_fornec_financ)
Cadastro de Cliente (utb107aa)prgint/utb/utb107ab.py (rpt_cliente_copia)
prgint/utb/utb107ea.p (mod_cliente)
prgint/utb/utb107ga.p (era_cliente)
Cadastro de Cliente Financeiro (ufn011aa)prgint/ufn/ufn011ab.py (rpt_clien_financ_copia)
prgint/ufn/ufn011ea.p (mod_clien_financ)
prgint/ufn/ufn011ga.p (era_clien_financ)
prgint/ufn/ufn011za.p (fnc_clien_financ)
Cadastro de Contato (utb068aa)prgint/utb/utb068ca.p (add_contato)
prgint/utb/utb068ea.p (mod_contato)
prgint/utb/utb068ga.p (era_contato)
Atualização Batch Cliente/Fornecedor (ufn705aa)prgint/utb/utb704zd.py (fnc_gera_tt_clien_fornec_integr_4)
API de Cliente/Fornecedor (utb765zl)prgint/utb/utb765zl.py (api_atualizar_cliente_fornecedor_l)

 

Programas que NÃO devem ser alterados

Os programas listados abaixo fazem a execução do Adapter do EAI1, mas NÃO devem ser alterados para executar o Adapter do EAI2, pois as informações alteradas, não existem na nova mensagem do EAI2.

Programa BaseSub-Programa
Cadastro de Pessoa Física x Idioma (utb030aa)

prgint/utb/utb030da.p (add_idiom_pessoa_fisic)
prgint/utb/utb030fa.p (mod_idiom_pessoa_fisic)
prgint/utb/utb030ha.p (era_idiom_pessoa_fisic)
prgint/utb/utb946wj.py (dbo_idiom_pessoa_fisic)

Cadastro de Pessoa Jurídica x Atividade (utb006)prgint/utb/utb006ma.p (frm_pessoa_jurid_ativid)
Cadastro de Porte Pessoa Jurídica (utb022aa)prgint/utb/utb022ca.p (add_porte_pessoa_jurid)
prgint/utb/utb022ea.p (mod_porte_pessoa_jurid)
prgint/utb/utb022ga.p (era_porte_pessoa_jurid)
Importação de Histórico de Fornecedor (dcf718aa)prgint/dcf/dcf718zb.p (fnc_histor_fornec_importar_ems)
Cadastro Clientes Análise de Crédito (utb026aa)

prgint/utb/utb026ca.p (add_clien_analis_cr)
prgint/utb/utb026ea.p (mod_clien_analis_cr)
prgint/utb/utb026ga.p (era_clien_analis_cr)

Cadastro de Contato x Idioma (utb068aa)prgint/utb/utb068da.p (add_idiom_contat)
prgint/utb/utb068fa.p (mod_idiom_contat)
prgint/utb/utb068ha.p (era_idiom_contat)
Cadastro de Contato x Classe (utb068aa)prgint/utb/utb068db.p (add_contat_clas)
prgint/utb/utb068hb.p (era_contat_clas)

 

Tratamento Específico para o Operador Logístico

De forma geral, se a transação "CustomerVendor" estiver configurado no EAI2, o mensagem será envida, mas teremos um tratamento específico quando o produto estiver parametrizado para o Operador Logístico, onde será realizado um filtro daqueles cadastros que devem ou não serem replicados.

Este filtro será feito com base nos Grupos de Cliente ou Fornecedor, onde o usuário irá indicar quais devem ser considerados para envio.

Esta parametrização será feita nos Parâmetros do Operador Logístico, conforme descrito abaixo.

 

Alteração no Parâmetros do Operador Logístico (CD00596)

Será alterado o Parâmetros do Operador Logístico, conforme protótipo de tela (Parâmetros do Operador Logístico), para permitir ao usuário parametrizar a lista de Grupos de Cliente e Fornecedor que serão utilizados para replicação do cadastro;

Estas listas serão salvas em dois novos campos, conforme descrito em Dicionário de Dados.

Será feito um tratamento para salvar as informações em campos livres para as releases anteriores, portanto será criado um programa de acerto para estes campos novos;

Para seleção dos Grupos, será construída uma nova tela, conforme protótipo de tela (Seleção de Grupo de Cliente/Fornecedor).

Existira um tratamento para que o usuário possa escolher a opção "*", que irá valer para todos os Grupos, desta forma, não haverá filtro, os cadastros serão sempre enviados.

 

Controle do Envio

O novo programa criado (Programa Fachada) será alterar para somente fazer a chamada do Adapter se o Grupo de Cliente/Fornecedor estiver parametrizado para Envio no Parâmetros do Operador Logístico;

Para seleção do Parâmetro, será utilizado o Estabelecimento Corrente do Usuário, caso ele não tenha sido informado (em Troca do Estabelecimento do Usuário Financeiro), será considerado o Estabelecimento Principal da Empresa Corrente;

Mesmo que o Cadastro seja Ambos (exista com Cliente e com Fornecedor), será verificado o Grupo referente ao Cadastro que está sendo Incluir/Alterado/Excluído naquele momento, isto é, se estiver alterando o Fornecedor, irá olhar o Grupo de Fornecedor, e se estiver alterando o Cliente, será verificado o Grupo de Cliente;

Este tratamento somente será feito se, pelo menos, uma das Funções do Operador Logístico ("TMS Transportador" ou "WMS Operador Logistico") estiver ligada no HUB. Se as duas estiverem desligadas, não será verificado os Grupos e sempre irá chamar o Adapter;

Caso a Lista parametrizada estiver em Branco, ou conter o valor "*", sempre ir chamar o Adapter, independente do Grupo do Cliente/Fornecedor.

 

Protótipo de Tela


Parâmetros do Operador Logístico



Seleção de Grupo de Cliente/Fornecedor

 

Fluxo do Processo

Não se Aplica.

 

Dicionário de Dados


Tabela 

Tabela

Descrição

Banco

Módulo

param-integr-pol

Parâmetros do Operador Logístico

mguni

MCD

Atributos

Campo

Tipo

Tamanho

Inicial

Mandatório

Título

Abrev

Picture

Help de Campo

des-list-grp-clien

CHAR

150

*

Não

Lista Grupo Cliente

List Grp Clien

X(30)

Lista de Grupo de Clientes

des-list-grp-fornec

CHAR

150

*

Não

Lista Grupo Fornecedor

List Grp Fornec

x(5)

Lista de Grupo de Fornecedores

Atributos Livres Utilizados

Campo

Atributo Livre

Entrada

Separador

des-list-grp-clien

cod-livre-2

1

chr(10)

des-list-grp-fornec

cod-livre-2

2

chr(10)

 

 

Grupo de Perguntas

Não se Aplica.

 

Consulta Padrão

Não se Aplica.

 

Estrutura de Menu

Não se Aplica.


Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.

 

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))