Integrador: mudanças entre as edições

De CIGAM WIKI
Sem resumo de edição
Sem resumo de edição
Linha 33: Linha 33:
                 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.</font></p>
                 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.</font></p>
<ol start="3">
<ol start="3">
  <li>
  <li>
      <p style="margin-top: 0.17in; margin-bottom: 0.08in; line-height: 100%;">
    <p style="margin-top: 0.17in; margin-bottom: 0.08in; line-height: 100%;">
                      <font face="Calibri, serif" color="#5b9bd5" font size="5" style="font-size: 14pt;">Estrutura de funcionamento</font></p></li></ol>
      <font face="Calibri, serif" color="#5b9bd5" font size="5" style="font-size: 14pt;">Estrutura de funcionamento</font></p></li></ol>
<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">
<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>
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>
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>
  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>
<u>A estrutura prop&otilde;e as seguintes caracter&iacute;sticas:</u>


 
<ul style="list-style-type:circle">
<ul style="list-style-type:circle" style="display: block">
<li>A estrutura prop&otilde;e as seguintes caracter&iacute;sticas:</li>
</ul>
<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. 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 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&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 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></ul></br>
<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>
</ol>
</p>


<ol start="4">
  <li>
    <p style="margin-top: 0.17in; margin-bottom: 0.08in; line-height: 100%;">
      <font face="Calibri, serif" color="#5b9bd5" font size="5" style="font-size: 14pt;">Processamento dos dados</font></p></li></ol>
<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">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>
      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>
                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>
                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>
                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>


<ol start="5">
  <li>
    <p style="margin-top: 0.17in; margin-bottom: 0.08in; line-height: 100%;">
      <font face="Calibri, serif" color="#5b9bd5" font size="5" style="font-size: 14pt;">Estrutura dos registros</font></p></li></ol>
<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 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>






* [[IN_Integrador Padrão|Integrador Padrão]]
* [[IN_Integrador Padrão|Integrador Padrão]]

Edição das 17h27min de 26 de maio de 2020

Integrador > Integrador Padrã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.
A ideia principal é disponibilizar um pacote (Kit) com a sua respectiva documentação de modo que não sejam necessários conhecimentos avançados ou técnicos para a implantação, treinamento e suporte.

  1. Abrangência

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.

  1. Software e hardware necessário

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.

  1. 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 deve contemplar 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 pelas partes envolvidas.

  • A estrutura propõe as seguintes características:
  1. Camada de Webservices para que os aplicativos de terceiros possam obter os dados dos cadastros. Cada serviço terá seu nome intuitivo ao dado retornado e conterá a respectiva documentação (seja embutida ou não). 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).

  1. Processamento dos dados

Quando as aplicações de terceiros estiverem obtendo dados do CIGAM via consumo do respectivo serviço ou da respectiva camada de objetos de banco de dados, os parâmetros de data e hora do controle de gravação dos registros serão solicitados. Dessa forma se torna possível filtrar os registros de acordo com a data e hora em que estes sofreram alterações. Quando não informados, todos os dados do respectivo cadastro serão retornados. Nenhum controle por flag de leitura ou de integração será controlado pelo CIGAM e caso seja necessário, tal controle será feito pelos aplicativos dos terceiros em suas tabelas.
Para integração deve-se informar parâmetros para a chave-única do cadastro para que se possa obter dados de apenas um registro (quando informado). O controle de acesso se feito através do parâmetro para a informação do PIN (que será detalhado mais adiante).
Quando as aplicações de terceiros estiverem enviando dados para o CIGAM, tais dados serão inseridos na tabela de integração caso tenham sido aceitos. A importação/processamento somente será feita quando o programa específico da Aplicação de Importação for executado. Caso o dado não seja aceito, nenhum registro será inserido na tabela de integração e apenas a mensagem de erro (com código do erro e descrição) será enviada ao chamador.
Para controle de existência de registros as camadas de consultas irão disponibilizar uma lista com todos os registros cadastrados na tabela. Essa lista conterá somente os campos chaves e com ela será possível que a aplicação do terceiro compare com sua base cadastrada para saber quais registros foram excluídos.
Caso a tabela tenha um grande número de registros ou se existem muitas exclusões, poderá ser criada uma trigger a qual consome o respectivo serviço a cada exclusão (cabe lembrar que a utilização de triggers interfere na performance da aplicação agravando-se ainda mais quando utilizada por requisições de webservices).

  1. Estrutura dos registros

A tabela de integração deve receber os registros a serem importados pelo CIGAM. Nessa tabela, todos os tipos de cadastros serão incluídos e um campo ‘Tipo’ irá identificar o tipo de registro/rotina que irá fazer a importação.