Páginas filhas
  • SERASA Relato

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Registros disponíveis no Credit Bureau – B49C para Pessoas Jurídicas.

Configurando acesso ao SERASA PJ

 

  • A configuração dos acessos externos SERASA PJ deve inicialmente passar por uma indicação para a JVM do path do arquivo de properties, do certificado e do log4j; veja abaixo o setting para a JVM (‘-D option‘):
1
2
3
Bloco de código
languagejava
Dserasa-relato.datadir=/home/jboss/intellector
-Dlog4j.configuration=/home/jboss/intellector
-Daccess.ssl=/home/jboss/intellector/ssl

 Para o uso direto em testes, usaríamos… (e.g. /home/jboss/intellector)  

Dica

 Usando a execução acima, não esqueça de colocar no CLASSPATH todas as dependências; e o mesmo para JAVA_OPTS no JBoss.

 

Propriedades para o Acesso Seguro (HTTPS)
  • ‘https.properties‘ – arquivos de propriedades do certificado e conexão ‘host-to-host‘ com a SERASA

 

Bloco de código
languagejava
# Arquivo de properties para o SERASA PJ 
# $Revision: 1.2 $ 
# 
  
# Informações de autenticacao e certificados do serasa 
user.url=sitenet07.serasa.com.br 
user.root=/Homologa/consultahttps
user.jks=lVaxvlqeVH5ugq/rba5vYvSWhu8kYJqO3Q==O63WLqgqpA== 
user.cert=/home/jboss/intellector-files/serasa.jks 
#user.serasa.cert=e:/tools/desv/ws_tec/serasa/resources/serasa.jks

 

  • Existe no Site do Intellector, uma funcionalidade para configurar os arquivos de propriedades, lá você poderá gerar a senha criptografada.
  

 

 

Aviso

Configurando SSL e HTTPS, leia aqui; sem Certificado ’não funciona’ e, entenda bem o conceito, leia sobre isso. Esse certificado é fornecido pela própria entidade, tipo host<->host. 

  

Auditoria dos dados de Acesso

Para efeitos de auditoria, esse plugin persiste os dados da string de Envio e Retorno do acesso (dados brutos), sendo possível consultar esses dados via web service de Auditoria e verificar ou fazer uso dessas strings. O conteúdo dessa string bruta é composto pelos campos que compõe o layout de entrada e saída, especificada na documentação do SERASA.

 

Layouts para o Acesso

 

  • Nos Layouts são apresentados dados fixos, que provavelmente não sofrerão alterações; caso haja, a codificação do acesso também deverá ser alterada; basicamente, são dados transacionais.
  • Baixe aqui o Layout B49C/L49C.
  • ‘layout_p002.xml‘ – Header do Registro P005 – Parcelas com cheques de Compromisso

 

Bloco de código
languagehtml/xml
<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- layout_p002.xml - Registro P002 - Outras Opcoes de Consulta Pessoa Juridica -->
<serasapj> 
    <field> 
    <!-- Tipo de registro TIPO-REG -->
        <name>P002</name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- codigo da 1a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
        <name>IP20</name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- chave de acesso para consultar a 1a opcao se necessario -->
        <name>Q</name> 
        <size>21</size> 
        <type>S</type> 
    </field> 
  
    <field> 
    <!-- codigo da 2a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
        <name> </name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- chave de acesso para consultar a 2a opcao se necessario -->
        <name> </name> 
        <size>21</size> 
        <type>S</type> 
    </field> 
  
    <field> 
    <!-- codigo da 3a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
        <name> </name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- chave de acesso para consultar a 3a opcao se necessario -->
        <name> </name> 
        <size>21</size> 
        <type>S</type> 
    </field> 
  
    <field> 
    <!-- codigo da 4a opcao para consultar outro produto, feature ou base (ver tabela 30 -->
        <name> </name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- chave de acesso para consultar a 4a opcao se necessario -->
        <name> </name> 
        <size>21</size> 
        <type>S</type> 
    </field> 
  
    <field> 
    <!-- filler de COMPLEMENTO do registro P002 -->
        <name> </name> 
        <size>11</size> 
        <type>S</type> 
    </field> 
</serasapj>

 

  • Arquivo layout_p006.xml - Opções de consulta do Cadastro Sintético
Bloco de código
languagehtml/xml
<?xml version="1.0" encoding="ISO-8859-1"?> 
<serasapf> 
    <field> 
    <!-- Layout de consulta P006: trata-se de uma sequencia de S/N, para cada registro -->
    <!-- para uma melhor visualizacao e configuracao, verificar o layout de consulta do P006 -->
        <name>P006SNSSS9999SSSSSSSN NNNSN</name> 
        <size>27</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- filler (7): filler de COMPLEMENTO do registro P006 -->
        <name> </name> 
        <size>88</size> 
        <type>S</type> 
    </field> 
</serasapf>

 

  • Arquivo layoutPJ_b49c.xml - Header transacional para a consulta Pessoa Jurídica

     

    Bloco de código
    languagehtml/xml
    <serasapj> 
        <field> 
            <!-- header Credit Bureau -->
            <name>B49C</name> 
            <size>4</size> 
            <type>S</type> 
        </field> 
        <field> 
            <!-- Filler -->
            <name> </name> 
            <size>6</size> 
            <type>S</type> 
        </field> 
        <field> 
            <!-- NUM_DOC=CPF; está neste XML ilustrando, pois o mesmo é tratado numa -->
            <!-- tag de entrada, serve como referencia pra substituicao do real CPF -->
            <name>cpf</name> 
            <size>15</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- Tipo Pessoa F=pessoa fisica; J=pessoa juridica -->
            <name>J</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
            <!-- Base de consulta -->
            <name>C</name> 
            <size>6</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- Modalidade -->
            <name>FI</name> 
            <size>2</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- valor da consulta -->
            <name>8888888</name> 
            <size>7</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- Centro de custo -->
            <name> </name> 
            <size>12</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- Codificado (S/N) -->
            <name>N</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- quantidade de registros por transmissao de dados -->
            <name>99</name> 
            <size>2</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- Deseja dialogo de comunicacao (S/N) -->
            <name>S</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- Funcao: INI,CON,ENC,ERR,TMD,FIM -->
            <name>INI</name> 
            <size>3</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- Tipo de consulta -->
            <name>A</name> 
            <size>1</size>> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- atualiza dados enviados (S/N) -->
            <name>N</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- Filler (2) -->
            <name> </name> 
            <size>42</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- quantidade de cheques sequenciais -->
            <name>00</name> 
            <size>2</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- endereço + telefone -->
            <name>N</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- filler (3) -->
            <name> </name> 
            <size>8</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- conta corrente -->
            <name>0000000000</name> 
            <size>10</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- digito da conta corrente -->
            <name>0</name> 
            <size>1</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- agencia -->
            <name>0000</name> 
            <size>4</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- filler (4) -->
            <name> </name> 
            <size>61</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- quantidade de compromisso encontrados -->
            <name> </name>  
            <size>2</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- tem anotacoes negativas (S/N/B) -->
            <name> </name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- anotacoes de cheques (S/N/B) -->
            <name> </name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- data da consulta -->
            <name> </name> 
            <size>8</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- hora da consulta -->
            <name> </name> 
            <size>6</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- total de registros -->
            <name> </name> 
            <size>4</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- quantidade de registros enviados por transmissao -->
            <name> </name> 
            <size>4</size> 
            <type>N</type> 
        </field> 
        <field> 
        <!-- numero de controle de atualizacao das tabelas -->
            <name> </name> 
            <size>4</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- filler (5) -->
            <name> </name> 
            <size>176</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- acessou recheque online (S/N) -->
            <name>N</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- tem ocorrencia de Recheque ultimo ano (S/N) -->
            <name>N</name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
        <field> 
        <!-- filler (6) -->
            <name> </name> 
            <size>1</size> 
            <type>S</type> 
        </field> 
    </serasapj>

     

    Propriedades Configuráveis do Acesso
  • As propriedades abaixo podem sofrer alterações, e essas podem ser feitas pelo site do Intellector (veja aqui); muita atenção no preenchimento dessas informações, pois elas definem o acesso ao conteúdo (informações) e, não de conexão ao host da SERASA.

 

  • ‘serasa.properties 

 

Bloco de código
languagehtml/xml
# Arquivo de properties para o SERASA PJ 
# $Revision: 1.2 $ 
# 
# type S=string, N=numeric 
# 
# Informaçoes de Login no SERASA 
serasa.login=00186487 
serasa.login_size=8 
serasa.login_type=N 
serasa.password=11003344    
serasa.pass_size=8 
serasa.pass_type=S 
serasa.newpass=  
serasa.npass_size=8 
serasa.npass_type=S

 

Preenchimento da HashMap de Entrada

‘Método de acesso no XML

Esse será o métdo usado pelo reflection da politica

 

Bloco de código
languagehtml/xml
<!-- metodo de acesso para ser carregado no acesso       -->
<code name="br.com.tools.acessos.serasa.SerasaPJ"/>

  Sufixo para as variáveis‘ internas da política; toda vez que você acessar um item de registro, ele só poderá ser acessado acrescentado esse sufixo, e.g., ‘B001_GRAFIAserasapf‘. Isso diferencia os vários acessos disponiveis nas políticas. Será usada apenas pelo Compilador e pela política, mas deve ser informado numa construção do acesso (veja Intellector Developer API).

 

Bloco de código
languagehtml/xml
<!-- esse deverah ser sufixo para ser acrescentado ao nome   -->
<!-- vindo da politica, entao irei buscar na hash da politica    -->
<!-- hash.getKey(cnpj_serasa); um de/para para os elementos  -->
<nome_acesso>serasapj</nome_acesso>

 Exemplo: 

 

1
serIn.put("CNPJ", "0000000000191");

 

Exception: 
throw new LayoutException("Erro preenchendo HashMap " + this.toString());
Dica
Contador’ – sempre existe um atributo no XML nomeado ’counter’ como indexador dos registros

 

Dados de Entrada do Acesso

 

  • Para o preenchimento da HashMap de entrada, é imprescindivel entender o layout B49C e, devem conter as seguintes chaves de entrada (UPPERCASE); cada campo contém os seguintes dados, sendo eles validados pelo Compilador:

    1. ‘description‘ – Propriedade da tag “field”, contem a descrição do campo

    2. ‘type‘ –          Propriedade da tag “field”, define o tipo de dado Pure Java, como StringIntegerDoubleDate e Boolean.

    3. ‘format‘ –       Propriedade da tag “field”, contem o formato do dado; atualmente, só os dados de datas tem esse campo preenchido.

    4. ‘field‘ –          Tag relativa ao nome do campo, escrito em maiúsculas (não necessariamente), como por ex. ‘TPRESPOSTA