Histórico da Página
...
Configurando acesso ao SERASA PJ
Bloco de código | ||
---|---|---|
| ||
-Dserasa-relato.datadir=/home/jboss/intellector
-Dlog4j.configuration=/home/jboss/intellector
-Daccess.ssl=/home/jboss/intellector/ssl |
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‘):
Bloco de código | ||
---|---|---|
| ||
-Dserasa-relato.datadir=/home/jboss/intellector -Dlog4j.configuration=/home/jboss/intellector -Daccess.ssl=/home/jboss/intellector/ssl |
...
- Arquivo layoutPJ_b49c.xml - Header transacional para a consulta Pessoa Jurídica
Bloco de código | ||
---|---|---|
| ||
<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.
...
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 | ||
---|---|---|
| ||
<!-- 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 | ||
---|---|---|
| ||
<!-- 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" ); |
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:
‘description‘ – Propriedade da tag “field”, contem a descrição do campo
‘type‘ – Propriedade da tag “field”, define o tipo de dado Pure Java, como String, Integer, Double, Date e Boolean.
‘format‘ – Propriedade da tag “field”, contem o formato do dado; atualmente, só os dados de datas tem esse campo preenchido.
‘field‘ – Tag relativa ao nome do campo, escrito em maiúsculas (não necessariamente), como por ex. ‘TPRESPOSTA‘
Bloco de código | ||
---|---|---|
| ||
<!-- contem os dados necessarios para entrada no serasa PJ --> <entrada> <!-- posso testar pelo valor obrigatorio dentro de cada --> <!-- acesso, ele dever ser "CNPJ" --> <field description="CNPJ da empresa consultada" type="String" format="">CNPJ</field> </entrada> |
Resposta da Consulta
Dados de Saída do Acessos
A HasMap de saída dos acessos, seguem o mesmo princípio da entrada, exceto pelo fato de que os dados de um determinado registros, podem se repetir, nesse caso, há a presença de um ‘contador‘ para um eventual looping de tratamento pelas aplicações clientes. Cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
‘description‘ – propriedade da tag “register”, contem a descrição do campo
‘type‘ – propriedade da tag “register”, define o tipo de dado Pure Java, como String, Integer, Double, Date e Boolean.
‘format‘ – propriedade da tag “register”, contem o formato do dado; atualmente, só os dados de datas tem esse campo preenchido.
‘register‘ – tag relativa ao nome do campo, escrito em maiúsculas (não necessariamente), como por ex. ‘R104_DATAFUNDACAO_‘
Abaixo o XML de saída com o ‘contador‘.
exemplo ‘com‘ um contador… observe que ‘counter=R104_NUMRELAT‘ indica quantos registros, se existirem, ‘R104‘ foram retornados pelo SERASA.
Bloco de código | ||
---|---|---|
| ||
<!-- Obs.: quando counter=alguma_coisa, entao todo o bloco --> <!-- abaixo sofrerah um looping baseado nesse counter --> <saida id="R104" counter="R104_NUMRELAT" > <register description="Data da Fundação" type="Date" format="yyyymmdd">R104_DATAFUNDACAO_</register> <register description="Data do CNPJ" type="Date" format="yyyymmdd">R104_DATACNPJ_</register> <register description="Número de Filiais" type="String" format="">R104_NUMEROFILIAIS_</register> <register description="Código SERASA" type="String" format="">R104_CODIGOSERASA_</register> </saida> |
- exemplo ‘sem‘ um contador… neste caso, ‘counter=”"‘ indica que somente um registro, se existir, foi retornado pela SERASA
Bloco de código | ||
---|---|---|
| ||
<saida id="R203" counter="" > <register description="Descrição do Período" type="String" format="">R203_DESCREG</register> <register description="Quantidade do período" type="String" format="">R203_QTDPERIODO</register> <register description="Percentual do Período" type="String" format="">R203_PERPERIODO</register> </saida> |
Dica |
---|
Todos os registros seguem a mesma lógica e, o ’XML completo com todos os registros do acesso’, importado pelo Compilador, pode ser baixado aqui. |
Registros Disponíveis
Registro R102 – Relato Endereços
Registro R103 – Relato Localização
Registro R104 – Relato Atividade
Registro R105 – Relato Filiais
Registro R107 – Relato Controle Societário (Atualização e Capital Social)
R108 – Relato Controle Societário (Detalhes dos Socios)
Registro R109 – Relato Quadro Administrativo (atualização)
Registro R110 – Relato Quadro Administrativo (detalhes)
Registro R111 – Relato quadro administrativo (Detalhes cont.)
Registro R114 – Relato Participações (Detalhes Participantes)
Registro R115 – Relato Participações (Detalhes Participantes continuação)
Registro R202 – Relato Potencial de Negócios
Registro R203 – Relato Histórico de Pagamento
Registro R301 – Relato Controle de Consultas Passagem
Registro R302 – Relato Últimas Consultas
Registro R381 – Grafias
Registro R401 – RELATO – RiskScoring (12 meses)
Registro R412 – RELATO – Informações do Concentre – Resumo
n = ‘R412_NUMOCORR‘ – contator do número de ocorrências do Concentre
Dica |
---|
< >A variável abaixo deverá ser preenchida com total valor, somente se a discriminação for ’PROTESTO’; caso contrário, virá ’zerado’. |
- ‘R412_TOTALVALOR_n‘