Integrador: mudanças entre as edições

De CIGAM WIKI
Sem resumo de edição
Sem resumo de edição
 
(100 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
== Acessos ==
:Para que seja possível fazer uso da integração CIGAM é necessário ter acesso ao módulo Integrador e estar com os web services no IIS, podendo ser requisitado através de uma URL por terceiros com uma chave de acesso (PIN) a ser fornecida pela TI ou responsável pela instalação.<br>


[[Integrador]] > [[IN_Integrador Padrão|Integrador Padrão]]
=== [[IN_CIGAM Integrador|Integração Padrão]] ===
=== [[IN_Integrador CIGAM Fullsoft|CIGAM X WMS (Fullsoft)]] ===


<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;"><font face="Calibri, serif">
== Introdução ==
:O Integrador é a maneira oficial para que o CIGAM possa integrar-se com aplicativos de terceiros de maneira automática.
:O Integrador contempla aqueles casos em que o processo de integração seja normal, ou seja, sem a necessidade de intervenções por customizações.
:O Integrador disponibiliza os dados gerados no CIGAM para que aplicativos de terceiros possam ter acesso e usar essas informações conforme sua necessidade. Também é fornecida uma camada para que esses aplicativos de terceiros possam enviar dados para o processamento pelo CIGAM.
:Quando o CIGAM receber dados, estes deverão estar íntegros a nível de tipagem para que sejam aceitos. A importação valida a regra de negócio e recusa os registros com problemas.
:O CIGAM fornece os seus dados para outros aplicativos para que possam utilizá-los como desejarem. Em nenhum momento o CIGAM controla o status de integração com outros aplicativos.
:A integração com a folha de pagamento é uma das possibilidades de integração através de objetos de banco, necessitando seguir nas atualizações os passos indicados em [[IN_Integra_Colaboradores|Integra Colaboradores]].


                O Integrador &eacute; a maneira oficial para que o CIGAM possa integrar-se com aplicativos de terceiros de maneira autom&aacute;tica.</br>
== Pré-requisitos de Instalação (software e hardware necessários) ==
O Integrador contempla aqueles casos em que o processo de integra&ccedil;&atilde;o seja normal, ou seja, sem a necessidade de interven&ccedil;&otilde;es por customiza&ccedil;&otilde;es.</br>
:Uma estrutura muito simples é suficiente para disponibilizar a camada de serviços para integrações. Poderá ser utilizado o Windows Server 2003 ou superior com IIS 6 ou superior. Contudo, a homologação do ambiente foi feita no Windows Server 2008 R2 com IIS 7 e portando esse é o ambiente indicado.
  A ideia principal &eacute; disponibilizar um pacote (Kit) com a sua respectiva documenta&ccedil;&atilde;o de modo que n&atilde;o sejam necess&aacute;rios conhecimentos avan&ccedil;ados ou t&eacute;cnicos para a implanta&ccedil;&atilde;o, treinamento e suporte.</p>
:Em alguns casos, dependendo principalmente da versão do Windows Server utilizado, a configuração do IIS 6 acabou tornando-se mais trabalhosa devido a incompatibilidade dos demais serviços utilizados no mesmo servidor. Essa situação é contornada automaticamente com o uso do IIS 7, fazendo que não seja indicado o uso de vers&otilde;es do Windows Server que não suportam o IIS 7.
:Para execução dos serviços será necessário também o Microsoft .Net Framework na versão 3.5 e o Asp.Net do servidor deverá suportar o modo compatibilidade 32 bits. O Provider (driver de acesso ao banco de dados) nativo do banco de dados também precisa estar instalado no servidor.
:Ambientes com servidores Linux com Mono também torna-se uma possibilidade alternativa. Considerando as inúmeras distribuições do sistema operacional bem como as vers&otilde;es dos pacotes e incompatibilidades entre eles, nenhum desses ambientes foi homologado.
:A nível de hardware a necessidade também é relativamente simples, considerando que a camada de serviços não irá manter sessão entre servidor e cliente, ou seja, a conexão é iniciada na requisição e encerrada após a resposta. Dessa forma, as configurações de hardware para o servidor precisarão ser avaliadas em função do número de requisições, número de rotinas utilizadas na integração e performance na execução da importação.


== Estrutura de funcionamento ==
:A camada de Web Services trabalha em conjunto com componentes do ERP CIGAM que possibilitam sistemas de terceiros realizarem consultas de modo síncrono e movimentações e cadastros de modo assíncrono, uma vez que as requisições precisam passar por regras de negócio antes de serem inseridas no sistema.
:Funciona de forma passiva, os serviços entregam informações sempre que solicitado. Nos serviços de cadastros e movimentos registra o resultado da operação em uma tabela de log que pode ser consultada através de um programa no ERP e também através de serviços disponíveis na própria camada.
:O Integrador contempla os casos em que o processo de integração seja normal, ou seja, sem a necessidade de intervenções por customizações. Para estes casos, a necessidade de novos serviços deve ser avaliada.
:Para isso funcione é necessário se ter um ambiente onde se tenha o CIGAM rodando, para a utilização do programa  [[GE_Integrador|Integrador]].


===[[IN_Características Gerais|Características Gerais]]===
:<ul style="list-style-type:circle">
==== Abrang&ecirc;ncia ====
<li>A estrutura prop&otilde;e as seguintes características:</li>
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
                O Integrador disponibiliza os dados gerados no CIGAM para que aplicativos de terceiros possam ter acesso e usar essas informa&ccedil;&otilde;es conforme sua necessidade. Tamb&eacute;m é fornecida uma camada para que esses aplicativos de terceiros possam enviar dados para o processamento pelo CIGAM.</br>
Quando o CIGAM receber dados, estes dever&atilde;o estar &iacute;ntegros a n&iacute;vel de tipagem para que sejam aceitos. A importa&ccedil;&atilde;o valida a regra de neg&oacute;cio e recusa os registros com problemas.</br>
  O CIGAM fornece os seus dados para outros aplicativos para que possam utiliz&aacute;-los como desejarem. Em nenhum momento o CIGAM controla o status de integra&ccedil;&atilde;o com outros aplicativos.</p>
 
==== Software e hardware necess&aacute;rio ====
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;"><font face="Calibri, serif">
Uma estrutura muito simples &eacute; suficiente para disponibilizar a camada de servi&ccedil;os para integra&ccedil;&otilde;es. Poder&aacute; ser utilizado o Windows Server 2003 ou superior com IIS 6 ou superior. Contudo, a homologa&ccedil;&atilde;o do ambiente foi feita no Windows Server 2008 R2 com IIS 7 e portando esse &eacute; o ambiente indicado.</br>
 
Em alguns casos, dependendo principalmente da vers&atilde;o do Windows Server utilizado, a configura&ccedil;&atilde;o do IIS 6 acabou tornando-se mais trabalhosa devido a incompatibilidade dos demais servi&ccedil;os utilizados no mesmo servidor. Essa situa&ccedil;&atilde;o &eacute; contornada automaticamente com o uso do IIS 7, fazendo que n&atilde;o seja indicado o uso de vers&otilde;es do Windows Server que n&atilde;o suportam o IIS 7.</br>
Para execução dos servi&ccedil;os ser&aacute; necess&aacute;rio tamb&eacute;m o Microsoft .Net Framework na vers&atilde;o 3.5 e o Asp.Net do servidor dever&aacute; suportar o modo compatibilidade 32 bits. O Provider (driver de acesso ao banco de dados) nativo do banco de dados tamb&eacute;m precisa estar instalado no servidor.</br>
Ambientes com servidores Linux com Mono tamb&eacute;m torna-se uma possibilidade alternativa. Considerando as in&uacute;meras distribui&ccedil;&otilde;es do sistema operacional bem como as vers&otilde;es dos pacotes e incompatibilidades entre eles, nenhum desses ambientes foi homologado.</br>
                A n&iacute;vel de hardware a necessidade tamb&eacute;m &eacute; relativamente simples, considerando que a camada de servi&ccedil;os n&atilde;o ir&aacute; manter sess&atilde;o entre servidor e cliente, ou seja, a conex&atilde;o &eacute; iniciada na requisi&ccedil;&atilde;o e encerrada ap&oacute;s a resposta. Dessa forma, as configura&ccedil;&otilde;es de hardware para o servidor precisar&atilde;o ser avaliadas em fun&ccedil;&atilde;o do n&uacute;mero de requisi&ccedil;&otilde;es, n&uacute;mero de rotinas utilizadas na integra&ccedil;&atilde;o e performance na execu&ccedil;&atilde;o da importa&ccedil;&atilde;o.</p>
 
==== Estrutura de funcionamento ====
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;"><font face="Calibri, serif">
A camada de Web Services trabalha em conjunto com componentes do ERP CIGAM que possibilitam sistemas de terceiros realizarem consultas de modo s&iacute;ncrono e movimenta&ccedil;&otilde;es e cadastros de modo ass&iacute;ncrono, uma vez que as requisi&ccedil;&otilde;es precisam passar por regras de neg&oacute;cio antes de serem inseridas no sistema.</br>
Funciona de forma passiva, os servi&ccedil;os entregam informa&ccedil;&otilde;es sempre que solicitado. Nos servi&ccedil;os de cadastros e movimentos registra o resultado da opera&ccedil;&atilde;o em uma tabela de log que pode ser consultada atrav&eacute;s de um programa no ERP e tamb&eacute;m atrav&eacute;s de servi&ccedil;os dispon&iacute;veis na pr&oacute;pria camada.</br>
O Integrador deve contemplar os casos em que o processo de integra&ccedil;&atilde;o seja normal, ou seja, sem a necessidade de interven&ccedil;&otilde;es por customiza&ccedil;&otilde;es. Para estes casos, a necessidade de novos servi&ccedil;os deve ser avaliada pelas partes envolvidas.</br>
 
<ul style="list-style-type:circle">
<li>A estrutura prop&otilde;e as seguintes caracter&iacute;sticas:</li>
</ul>
</ul>
<ol type="a">
<ol type="a">
<li>Camada de Webservices para que os aplicativos de terceiros possam obter os dados dos cadastros. Cada servi&ccedil;o ter&aacute; seu nome intuitivo ao dado retornado e conter&aacute; a respectiva documenta&ccedil;&atilde;o (seja embutida ou n&atilde;o). Nessa camada n&atilde;o h&aacute; qualquer processamento dos dados por parte do CIGAM, ou seja, apenas listagens.</br></li>
<li>Camada de Webservices para que os aplicativos de terceiros possam obter os dados dos cadastros. Nessa camada não há qualquer processamento dos dados por parte do CIGAM, ou seja, apenas listagens.<br/></li>


<li>Camada de Webservices para que os aplicativos de terceiros possam enviar dados para uma rotina ou cadastro espec&iacute;fico do CIGAM. Nessa camada os dados s&atilde;o pr&eacute;-processados pelo CIGAM e retornado o status do aceite a n&iacute;vel de tabela de integra&ccedil;&atilde;o. Nesse caso, se o dado for inconsistente, um c&oacute;digo de erro com uma mensagem ser&aacute; retornado ao chamador. Do contr&aacute;rio (caso os dados estiverem consistentes) o ID de integra&ccedil;&atilde;o ser&aacute; retornado para futuras confer&ecirc;ncias.</br></li>
<li>Camada de Webservices para que os aplicativos de terceiros possam enviar dados para uma rotina ou cadastro específico do CIGAM. Nessa camada os dados são pré-processados pelo CIGAM e retornado o status do aceite a nível de tabela de integração. Nesse caso, se o dado for inconsistente, um código de erro com uma mensagem será retornado ao chamador. Do contrário (caso os dados estiverem consistentes) o ID de integração será retornado para futuras conferências.<br/></li>


<li>Camada de objetos de banco de dados para uso alternativo a camada de Webservices. Essa camada possuir&aacute; as funcionalidades das duas camadas de Webservices listadas anteriormente. Cabe lembrar que o uso dessa camada &eacute; aconselhado somente em casos extremos (para maiores informa&ccedil;&otilde;es verificar com o Suporte T&eacute;cnico do CIGAM).</li>
<li>Camada de objetos de banco de dados para uso alternativo a camada de Webservices. Essa camada possuirá as funcionalidades das duas camadas de Webservices listadas anteriormente. Cabe lembrar que o uso dessa camada é aconselhado somente em casos extremos (para maiores informações verificar com o Suporte Técnico do CIGAM).</li>
</ol>
</ol>
</p>
</p>
 
== Log de XMLs recebidos pelo integrador ==
==== Processamento dos dados ====
:Para facilitar a identificação de divergências no envio de requisições de cadastro e movimentações, passa a ser possível através de parametrização a possibilidade de salvar as requisições enviadas por terceiros.
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
:Para ser possível informar um local a serem salvos os arquivos, é necessário configurar via settings.config o parâmetro 'CGREQUISICAOWS', caso o usuário queira definir um lugar especifico para armazenar determinada requisição, o padrão que deve ser seguido é, 'CGREQUISICAOWS_' + tipo de registro, por exemplo, 'CGREQUISICAOWS_CADNF1'. Caso o usuário não queira armazenar nenhuma requisição basta não informar nenhum desses padrões.
Quando as aplica&ccedil;&otilde;es de terceiros estiverem obtendo dados do CIGAM via consumo do respectivo servi&ccedil;o ou da respectiva camada de objetos de banco de dados, os par&acirc;metros de data e hora do controle de grava&ccedil;&atilde;o dos registros ser&atilde;o solicitados. Dessa forma se torna poss&iacute;vel filtrar os registros de acordo com a data e hora em que estes sofreram altera&ccedil;&otilde;es. Quando n&atilde;o informados, todos os dados do respectivo cadastro ser&atilde;o retornados. Nenhum controle por flag de leitura ou de integra&ccedil;&atilde;o ser&aacute; controlado pelo CIGAM e caso seja necess&aacute;rio, tal controle ser&aacute; feito pelos aplicativos dos terceiros em suas tabelas.</br>
:Exemplo de aplicabilidade dentro do settings:
      Para integração deve-se informar par&acirc;metros para a chave-&uacute;nica do cadastro para que se possa obter dados de apenas um registro (quando informado). O controle de acesso se feito atrav&eacute;s do par&acirc;metro para a informa&ccedil;&atilde;o do PIN (que ser&aacute; detalhado mais adiante).</br>
     <add key="CGREQUISICAOWS" value="C:\cigam\Temp\"/>
                Quando as aplica&ccedil;&otilde;es de terceiros estiverem enviando dados para o CIGAM, tais dados ser&atilde;o inseridos na tabela de integra&ccedil;&atilde;o caso tenham sido aceitos. A importa&ccedil;&atilde;o/processamento somente ser&aacute; feita quando o programa espec&iacute;fico da Aplica&ccedil;&atilde;o de Importa&ccedil;&atilde;o for executado. Caso o dado n&atilde;o seja aceito, nenhum registro ser&aacute; inserido na tabela de integra&ccedil;&atilde;o e apenas a mensagem de erro (com c&oacute;digo do erro e descri&ccedil;&atilde;o) ser&aacute; enviada ao chamador.</br>
     <add key="CGREQUISICAOWS_CADNF1" value="C:\cigam\Temp\NF\"/>
                Para controle de exist&ecirc;ncia de registros as camadas de consultas ir&atilde;o disponibilizar uma lista com todos os registros cadastrados na tabela. Essa lista conter&aacute; somente os campos chaves e com ela ser&aacute; poss&iacute;vel que a aplica&ccedil;&atilde;o do terceiro compare com sua base cadastrada para saber quais registros foram exclu&iacute;dos.</br>
{{VoltarInicio}}
                Caso a tabela tenha um grande n&uacute;mero de registros ou se existem muitas exclus&otilde;es, poder&aacute; ser criada uma trigger a qual consome o respectivo servi&ccedil;o a cada exclus&atilde;o (cabe lembrar que a utiliza&ccedil;&atilde;o de triggers interfere na performance da aplica&ccedil;&atilde;o agravando-se ainda mais quando utilizada por requisi&ccedil;&otilde;es de webservices).</p>
 
==== Estrutura dos registros ====
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
A tabela de integra&ccedil;&atilde;o deve receber os registros a serem importados pelo CIGAM. Nessa tabela, todos os tipos de cadastros ser&atilde;o inclu&iacute;dos e um campo &lsquo;Tipo&rsquo; ir&aacute; identificar o tipo de registro/rotina que ir&aacute; fazer a importa&ccedil;&atilde;o.</br>
        &nbsp;&nbsp;&nbsp;<u>Exemplo:</u>
        </br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>MATCAD</b> Cadastro de materiais</br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>EMPCAD</b> Cadastro de empresas</br>
</br>
Essa tabela tem um grande n&uacute;mero de campos para contemplar qualquer tipo de cadastro do CIGAM. Somente os campos de ID e tipo ser&atilde;o indexados.</br>
        A camada de servi&ccedil;os ser&aacute; a porta de entrada para as integra&ccedil;&otilde;es. Existir&aacute; um servi&ccedil;o para cada tipo de cadastro/registro. Nesse servi&ccedil;o, al&eacute;m dos par&acirc;metros
        necess&aacute;rios, existir&aacute; tamb&eacute;m o par&acirc;metro PIN que identificar&aacute; o usu&aacute;rio/aplicativo que est&aacute; fazendo a requisi&ccedil;&atilde;o.</br>
                Existir&aacute; um campo para controle do status do registro na tabela de integra&ccedil;&atilde;o. Esse controle ser&aacute; feito no registro m&aacute;ster quando houver relacionamento m&aacute;ster detalhe. Esse controle &eacute; necess&aacute;rio para que somente seja importado o relacionamento inteiro e evite que o programa de importa&ccedil;&atilde;o execute um ciclo exatamente no momento em que os dados estejam sendo inseridos na tabela
                de integra&ccedil;&atilde;o. Logicamente, o status do registro m&aacute;ster ser&aacute; liberado somente ap&oacute;s todos os registros de detalhe terem sido inclu&iacute;dos. Tamb&eacute;m existe a estrat&eacute;gia que o programa que faz a importa&ccedil;&atilde;o sempre inicie pelo registro m&aacute;ster, e nesse caso, inserindo-o por &uacute;ltimo na tabela de integra&ccedil;&atilde;o, tamb&eacute;m ser&aacute; garantia de integridade.</br>
                Existir&aacute; um webservice para listagem da tabela de integra&ccedil;&atilde;o que permitir&aacute; a filtrar a consulta por ID da tabela, data da inclus&atilde;o do registro ou por tipo do registro e ou ambos. Essa consulta auxilia as aplica&ccedil;&otilde;es de terceiros a controlarem se tal registro integrado j&aacute; foi importado.</p>
 
==== Valida&ccedil;&atilde;o de par&acirc;metros ====
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
                No momento da requisi&ccedil;&atilde;o do servi&ccedil;o, caso haja algum par&acirc;metro definido como obrigat&oacute;rio e n&atilde;o informado, ser&aacute; retornada uma mensagem de erro com o nome do par&acirc;metro.
                Caso tenha mais de uma ocorr&ecirc;ncia, os demais nomes de par&acirc;metros tamb&eacute;m ser&atilde;o listados.</br>
Para par&acirc;metros que possuem depend&ecirc;ncia de outro par&acirc;metro, ser&aacute; exibido um asterisco (&ldquo;*&rdquo;) ap&oacute;s o nome.</p>
 
==== Tabela de integra&ccedil;&atilde;o e log ====
        <p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
&nbsp;&nbsp;&nbsp;<b>Nomes-l&oacute;gicos:</b> GEINTEGRADOR (integra&ccedil;&atilde;o) e GEINTEGRADORLOG (log)</br>
</br>
Todas as altera&ccedil;&otilde;es de dados requisitadas para o CIGAM ficar&atilde;o na tabela de integra&ccedil;&atilde;o at&eacute; seu processamento pela Aplica&ccedil;&atilde;o de Integra&ccedil;&atilde;o. Sempre que uma das camadas alterarem os dados dessa tabela ser&aacute; adicionada uma linha da tabela de log.</br>
Como a tabela de integra&ccedil;&atilde;o e log possuem campos com nomes gen&eacute;ricos a qualquer cadastro ou rotina do CIGAM, a consulta bem como a inclus&atilde;o de dados dever&aacute; ser feita pelas respectivas camadas as quais apresentar&atilde;o os nomes dos campos adequadamente.</br>
As tabelas de integra&ccedil;&atilde;o e log ficar&atilde;o em um banco separado. Esse banco ser&aacute; acesso pelo Database CIGAM_INTEGRA em aplica&ccedil;&otilde;es do CIGAM e pela Aplica&ccedil;&atilde;o de
                Integra&ccedil;&atilde;o (componente CGIntegrador.ecf)</br>
Se o banco de dados for diferente ao utilizado pelo CIGAM (inclusive se mudar apenas o database/usu&aacute;rio), deve-se informar uma <i>connection string</i> chamada INTEGRACAO no arquivo de configura&ccedil;&atilde;o.</br>
</br>
Tamb&eacute;m deve ser informado o banco de dados nessa nova conex&atilde;o no par&acirc;metro providerName.</br>
        &nbsp;&nbsp;&nbsp;<u><b>Exemplo:</u></b></br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;add name=&quot;CIGAM&quot; connectionString=&quot;Server=10.200.0.42;Database=INFRA;User ID=TESTE;Password=ABYZ.;</br>
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;add name=&quot;INTEGRACAO&quot; connectionString=&quot;Server=10.200.0.42;Database=INFRA;User ID=TESTE;Password=ABYZ.;&quot; providerName=&quot;02&quot;/&gt;</br>
</br>
O c&oacute;digo de banco de dados do CIGAM deve ser informado na configura&ccedil;&atilde;o BANCO_DADOS da aplica&ccedil;&atilde;o.</br>
        &nbsp;&nbsp;&nbsp;<u><b>Exemplo:</u></b></br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;add key=&quot;BANCO_DADOS&quot; value=&quot;03&quot; /&gt;</p>
 
==== Registros correlatos ====
        <p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
A tabela de integra&ccedil;&atilde;o poder&aacute; ter registros correlatos pendentes de importa&ccedil;&otilde;es, como por exemplo, pedidos versus itens versus grade do item. Neste caso quando o pedido for importado ser&aacute; feita uma verifica&ccedil;&atilde;o se existem itens para esse pedido. Da mesma forma, quando o item do pedido for importado ser&aacute; verificado se existe grade do item. Nesse ponto, somente os registros com status liberado ser&atilde;o avaliados e importados/recursados.</br>
Os registros correlatos que n&atilde;o est&atilde;o liberados, n&atilde;o ser&atilde;o tratados e, portanto jamais ser&atilde;o reavaliados. Para evitar registros perdidos na tabela de integra&ccedil;&atilde;o, ser&aacute;
                executada uma rotina de limpeza que ir&aacute; excluir os registros com ID correlato cujo registro m&aacute;ster n&atilde;o esteja mais pendente de importa&ccedil;&atilde;o. Essa exclus&atilde;o registrar&aacute; um log espec&iacute;fico.</p>
 
==== Seguran&ccedil;a ====
        <p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
N&atilde;o ser&aacute; utilizado o cadastro de usu&aacute;rio nem de direitos do CIGAM, at&eacute; porque as aplica&ccedil;&otilde;es de terceiros n&atilde;o podem controlar adequadamente esses dados.</br>
O PIN ir&aacute; identificar quem est&aacute; fazendo a requisi&ccedil;&atilde;o e deve estar inserido no arquivo de configura&ccedil;&otilde;es do ambiente do Web Service (se&ccedil;&atilde;o &lt;appSettings&gt;).</br>
Conforme exemplo abaixo, as requisi&ccedil;&otilde;es com o PIN &ldquo;001&rdquo; podem utilizar os servi&ccedil;os &lsquo;CADMAT&rsquo; e &lsquo;CADEMP&rsquo;. Os demais &ldquo;002&rdquo;, &ldquo;003&rdquo; e &ldquo;004&rdquo; podem utilizar todos os servi&ccedil;os, pois n&atilde;o h&aacute; restri&ccedil;&atilde;o atribu&iacute;da a eles.</br>
     &nbsp;&nbsp;&nbsp;<u><b>Exemplo:</u></b></br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;appSettings&gt;</br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;add key=&quot;pin&quot; value=&quot;001;002;003;004&quot;/&gt;<br/>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;add key=&quot;001&quot; value=&quot;CADMAT;CADEMP&quot;/&gt;
</br>
==== Requisi&ccedil;&atilde;o e resposta dos Webservices ====
<p align="justify" style="margin-left: 0.32in; text-indent: 0.45in; margin-bottom: 0.08in; font-weight: normal; line-height: 150%;">
Ser&atilde;o suportadas as tecnologias SOAP e Rest/JSon sendo que nessa segunda op&ccedil;&atilde;o os par&acirc;metros devem ser enviados por POST e o nome do m&eacute;todo junto na URL. As respostas dos servi&ccedil;os
                tamb&eacute;m estar&atilde;o dispon&iacute;veis nessas duas tecnologias.</br>
Quando o retorno contiver mais de um registro, a exporta&ccedil;&atilde;o ser&aacute; feita com duas cole&ccedil;&otilde;es (objetos), uma para as colunas e outra para os dados. Neste caso as colunas ganham cabe&ccedil;alhos
                nomeados para referenciar os dados (c1, c2...).</br>
A op&ccedil;&atilde;o EXPORT_HEADERS pode ser inserida no arquivo de configura&ccedil;&otilde;es do ambiente do Web Service (se&ccedil;&atilde;o &lt;appSettings&gt;) para indicar se a exporta&ccedil;&atilde;o deve ocorrer
                sempre usando os cabe&ccedil;alhos ou n&atilde;o, independentemente da quantidade de registros.</br>
     &nbsp;&nbsp;&nbsp; <u><b>Exemplo:</u></b></br>
  &nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp; &lt;appSettings&gt;</br>
  &nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp; &lt;add key=&quot;EXPORT_HEADERS&quot; value=&quot;N&quot;/&gt;</br>
&Eacute; poss&iacute;vel incluir no arquivo Settings.</br>
Quando o nome da coluna da tabela no banco de dados for diferente do nome utilizado no CIGAM/CGData, na cole&ccedil;&atilde;o dos nomes de colunas existir&aacute; uma tag com essa identifica&ccedil;&atilde;o.</br>
N&atilde;o ser&atilde;o exportados campos ainda n&atilde;o nomeados (exemplo: Campo31, Campo32...). Exce&ccedil;&atilde;o: Campos de usu&aacute;rio que s&atilde;o os iniciados com nome &ldquo;Usr&rdquo;.</br>
No formato JSON ser&aacute; necess&aacute;rio atributar ambas as propriedades, pois n&atilde;o h&aacute; como colocar um valor para a tag principal como no XML. Neste caso, o apelido da coluna dever&aacute; ficar na tag
                &ldquo;db_alias&rdquo;.</br>
Como primeiro n&oacute; da &aacute;rvore, em ambos os formatos ser&aacute; utilizado o valor da tradu&ccedil;&atilde;o do Nome L&oacute;gico da tabela exportada. As colunas ser&atilde;o agrupadas na cole&ccedil;&atilde;o
                &ldquo;col&rdquo; e os campos de cada registro na cole&ccedil;&atilde;o &ldquo;reg&rdquo;. Os dados ser&atilde;o formatados com decodifica&ccedil;&atilde;o UTF-8.</br>
    &nbsp;&nbsp;&nbsp; <u><b>Exemplos de resposta:</u></b></br>
 
<font color="#5b9bd5" size="4" style="font-size: 16pt;">XML</font></br></br>
&nbsp;&nbsp;&nbsp;&lt;esmateri&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;col&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;cd_material&gt;c1&lt;/cd_material&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;descricao&gt;c2&lt;/descricao&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;valor_imposto db_column=&rdquo;campo3&rdquo;&gt;c3&lt;/valor_imposto&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;/col&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;reg&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c1&gt;001&lt;/c1&gt; </br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c2&gt;Material Teste 1&lt;/c2&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c3&gt;10&lt;/c3&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;/reg&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;reg&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c1&gt;002&lt;/c1&gt; </br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c2&gt;Material Teste 2&lt;/c2&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;c3&gt;20&lt;/c3&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp;&nbsp;&lt;&lt;/reg&gt;</br>
&nbsp;&nbsp;&nbsp;&lt;lt;/esmateri&gt;</br>

Edição atual tal como às 21h26min de 1 de abril de 2025

Acessos

Para que seja possível fazer uso da integração CIGAM é necessário ter acesso ao módulo Integrador e estar com os web services no IIS, podendo ser requisitado através de uma URL por terceiros com uma chave de acesso (PIN) a ser fornecida pela TI ou responsável pela instalação.

Introdução

O Integrador é a maneira oficial para que o CIGAM possa integrar-se com aplicativos de terceiros de maneira automática.
O Integrador contempla aqueles casos em que o processo de integração seja normal, ou seja, sem a necessidade de intervenções por customizações.
O Integrador disponibiliza os dados gerados no CIGAM para que aplicativos de terceiros possam ter acesso e usar essas informações conforme sua necessidade. Também é fornecida uma camada para que esses aplicativos de terceiros possam enviar dados para o processamento pelo CIGAM.
Quando o CIGAM receber dados, estes deverão estar íntegros a nível de tipagem para que sejam aceitos. A importação valida a regra de negócio e recusa os registros com problemas.
O CIGAM fornece os seus dados para outros aplicativos para que possam utilizá-los como desejarem. Em nenhum momento o CIGAM controla o status de integração com outros aplicativos.
A integração com a folha de pagamento é uma das possibilidades de integração através de objetos de banco, necessitando seguir nas atualizações os passos indicados em Integra Colaboradores.

Pré-requisitos de Instalação (software e hardware necessários)

Uma estrutura muito simples é suficiente para disponibilizar a camada de serviços para integrações. Poderá ser utilizado o Windows Server 2003 ou superior com IIS 6 ou superior. Contudo, a homologação do ambiente foi feita no Windows Server 2008 R2 com IIS 7 e portando esse é o ambiente indicado.
Em alguns casos, dependendo principalmente da versão do Windows Server utilizado, a configuração do IIS 6 acabou tornando-se mais trabalhosa devido a incompatibilidade dos demais serviços utilizados no mesmo servidor. Essa situação é contornada automaticamente com o uso do IIS 7, fazendo que não seja indicado o uso de versões do Windows Server que não suportam o IIS 7.
Para execução dos serviços será necessário também o Microsoft .Net Framework na versão 3.5 e o Asp.Net do servidor deverá suportar o modo compatibilidade 32 bits. O Provider (driver de acesso ao banco de dados) nativo do banco de dados também precisa estar instalado no servidor.
Ambientes com servidores Linux com Mono também torna-se uma possibilidade alternativa. Considerando as inúmeras distribuições do sistema operacional bem como as versões dos pacotes e incompatibilidades entre eles, nenhum desses ambientes foi homologado.
A nível de hardware a necessidade também é relativamente simples, considerando que a camada de serviços não irá manter sessão entre servidor e cliente, ou seja, a conexão é iniciada na requisição e encerrada após a resposta. Dessa forma, as configurações de hardware para o servidor precisarão ser avaliadas em função do número de requisições, número de rotinas utilizadas na integração e performance na execução da importação.

Estrutura de funcionamento

A camada de Web Services trabalha em conjunto com componentes do ERP CIGAM que possibilitam sistemas de terceiros realizarem consultas de modo síncrono e movimentações e cadastros de modo assíncrono, uma vez que as requisições precisam passar por regras de negócio antes de serem inseridas no sistema.
Funciona de forma passiva, os serviços entregam informações sempre que solicitado. Nos serviços de cadastros e movimentos registra o resultado da operação em uma tabela de log que pode ser consultada através de um programa no ERP e também através de serviços disponíveis na própria camada.
O Integrador contempla os casos em que o processo de integração seja normal, ou seja, sem a necessidade de intervenções por customizações. Para estes casos, a necessidade de novos serviços deve ser avaliada.
Para isso funcione é necessário se ter um ambiente onde se tenha o CIGAM rodando, para a utilização do programa Integrador.
  • A estrutura propõe as seguintes características:
    1. Camada de Webservices para que os aplicativos de terceiros possam obter os dados dos cadastros. Nessa camada não há qualquer processamento dos dados por parte do CIGAM, ou seja, apenas listagens.
    2. Camada de Webservices para que os aplicativos de terceiros possam enviar dados para uma rotina ou cadastro específico do CIGAM. Nessa camada os dados são pré-processados pelo CIGAM e retornado o status do aceite a nível de tabela de integração. Nesse caso, se o dado for inconsistente, um código de erro com uma mensagem será retornado ao chamador. Do contrário (caso os dados estiverem consistentes) o ID de integração será retornado para futuras conferências.
    3. Camada de objetos de banco de dados para uso alternativo a camada de Webservices. Essa camada possuirá as funcionalidades das duas camadas de Webservices listadas anteriormente. Cabe lembrar que o uso dessa camada é aconselhado somente em casos extremos (para maiores informações verificar com o Suporte Técnico do CIGAM).

    Log de XMLs recebidos pelo integrador

    Para facilitar a identificação de divergências no envio de requisições de cadastro e movimentações, passa a ser possível através de parametrização a possibilidade de salvar as requisições enviadas por terceiros.
    Para ser possível informar um local a serem salvos os arquivos, é necessário configurar via settings.config o parâmetro 'CGREQUISICAOWS', caso o usuário queira definir um lugar especifico para armazenar determinada requisição, o padrão que deve ser seguido é, 'CGREQUISICAOWS_' + tipo de registro, por exemplo, 'CGREQUISICAOWS_CADNF1'. Caso o usuário não queira armazenar nenhuma requisição basta não informar nenhum desses padrões.
    Exemplo de aplicabilidade dentro do settings:
       <add key="CGREQUISICAOWS" value="C:\cigam\Temp\"/>
       <add key="CGREQUISICAOWS_CADNF1" value="C:\cigam\Temp\NF\"/>
    

    Voltar ao início