- A configuração dos acessos externos SERASA PJ RELATO 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 |
Para o uso direto em testes,
usaríamos…deve usaríamos(e.g. /home/jboss/intellector).
Bloco de código | ||||
---|---|---|---|---|
| ||||
java -jar -cp. -Dserasa-relato.datadir=/home/jboss/intellector SerasaRelato.jar |
Dicawarning |
---|
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. |
‘https.properties‘ –
arquivosArquivos de propriedades do certificado e conexão ‘host-to-host‘ com a SERASA.
Bloco de código | ||||
---|---|---|---|---|
| ||||
# Arquivo de properties para o SERASA PJ # $Revision: 1.2 $ RELATO # # Informações de autenticacao e certificados do serasa user.url=sitenet07sitenethomologa.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 |
Dica |
---|
Existe no Site do Intellector, uma funcionalidade |
Dica |
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. |
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.
‘layout_p002.xml‘ – Header do Registro
P005 – Parcelas com cheques de Compromisso.P002 – IP20(RELATO)/P8GL.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?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> <serasa-relato> <field> <id>P002_REGISTRO</id> <value>P002</value> <size>4</size> <type>S</type> </field> <field> <id>P002_COD1</id> <value>IP20</value> <size>4</size> <type>S</type> </field> <field> <id>P002_CHAVE1</id> <value>Q</value> <size>21</size> <type>S</type> <!-- chave de acesso para consultar a 1a opcao se necessario --> </field> <field> <!-- codigo da 2a opcao para consultar outro produto, feature ou base (ver tabela 30 --> <id>P002_COD2</id> <value>P8GL</value> <size>4</size> <type>S</type> </field> <field> <!-- chave de acesso para consultar a 1a2a opcao se necessario --> <id>P002_CHAVE2</id> <name>Q</name> <value> </value> <size>21</size> <type>S</type> </field> <field> <field> <!-- codigo da 2a3a opcao para consultar outro produto, feature ou base (ver tabela 30 --> <name> </name> <size>4</size> <type>S</type> </field> <field> <id>P002_COD3</id> <value> </value> <size>4</size> <type>S</type> </field> <field> <!-- chave de acesso para consultar a 2a3a opcao se necessario --> <name> </name> <size>21</size> <type>S</type> </field> <field> <!-- codigo da 3a <id>P002_CHAVE3</id> <value> </value> <size>21</size> <type>S</type> </field> <field> <!-- codigo da 4a opcao para consultar outro produto, feature ou base (ver tabela 30 --> <name> <id>P002_COD4</id> <value> </name> value> <size>4</size> <type>S</type> </field> <field> <!-- chave de acesso para consultar a 3a4a opcao se necessario --> <id>P002_CHAVE4</id> <name> </name> <value> </value> <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> < <field> <id>P002_FILLER</id> <value> </value> <size>11</size> <type>S</type> </field> </serasa-relato> |
Bloco de código | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="ISO-8859-1"?> <serasapj> <field> <!-- header Credit Bureau --> <name>B49C</name> <size>21<<size>4</size> <type>S</type> </field> <field> <field> <!-- filler de COMPLEMENTO do registro P002 Filler --> <name> </name> <size>11<<size>6</size> <type>S</type> </field> </serasapj> |
language | html/xml |
---|
<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> |
Bloco de código | ||
---|---|---|
| ||
<?xml version="1.0" encoding="ISO-8859-1"?> <serasapj> <!-- Base de consulta --> <name>C</name> <size>6</size> <type>S</type> <field></field> <field> <!-- headerModalidade Credit Bureau --> <name>B49C<<name>FI</name> <size>4<<size>2</size> <type>S</type> </field> <field> <<!-- valor Fillerda consulta --> <name> <<name>8888888</name> <size>6<<size>7</size> <type>S<<type>N</type> </field> <field> <!-- NUM_DOC=CPF; está neste XML ilustrando, pois o mesmo é tratado numaCentro de custo --> <!-- tag de entrada, serve como referencia pra substituicao do real CPF --><name> </name> <size>12</size> <name>cpf</name> <size>15</size> <type>N</<type>S</type> </field> <field> <!-- Tipo Pessoa F=pessoa fisica; J=pessoa juridicaCodificado (S/N) --> <name>J<<name>N</name> <size>1</size> <type>S</type> </field> <field> <!-- quantidade de registros <!-- Basepor transmissao de consultadados --> <name>C<<name>99</name> <size>6<<size>2</size> <type>S<<type>N</type> </field> <field> <!-- Modalidade -Deseja dialogo de comunicacao (S/N) --> <name>FI<<name>S</name> <size>2<<size>1</size> <type>S</type> </field> <field> <!-- valor da consulta Funcao: INI,CON,ENC,ERR,TMD,FIM --> <name>8888888<<name>INI</name> <size>7<<size>3</size> <type>N<<type>S</type> </field> <field> <!-- CentroTipo de custoconsulta --> <name> <<name>A</name> <size>12<<size>1</size>size>> <type>S</type> </field> <field> <!-- atualiza dados Codificadoenviados (S/N) --> <name>N</name> <size>1</size> <type>S</type> </field> <field> <!-- quantidade de registros por transmissao de dados Filler (2) --> <name>99<<name> </name> <size>2<<size>42</size> <type>N<<type>S</type> </field> <field> <!-- Deseja dialogoquantidade de comunicacao (S/N)cheques sequenciais --> <name>S<<name>00</name> <size>1<<size>2</size> <type>S<<type>N</type> </field> <field> <!-- Funcao: INI,CON,ENC,ERR,TMD,FIMendereço + telefone --> <name>INI<<name>N</name> <size>3<<size>1</size> <type>S</type> </field> <field> <!-- Tipo de consultafiller (3) --> <name> <name>A<</name> <size>1<<size>8</size>>size> <type>S</type> </field> <field> <!-- atualiza dados enviados (S/N)conta corrente --> <name>N<<name>0000000000</name> <size>1<<size>10</size> <type>S<<type>N</type> </field> <field> <!-- Filler (2)digito da conta corrente --> <name> <<name>0</name> <size>42<<size>1</size> <type>S<<type>N</type> </field> <field> <!-- quantidade de cheques sequenciais agencia --> <name>00<<name>0000</name> <size>2<<size>4</size> <type>N</type> </field> <field> <!-- endereçofiller +(4) telefone --> <name>N<<name> </name> <size>1<<size>61</size> <type>S<<type>N</type> </field> <field> <!-- quantidade filler (3)de compromisso encontrados --> <name> </name> <size>8<<size>2</size> <type>S<<type>N</type> </field> <field> <!-- conta correntetem anotacoes negativas (S/N/B) --> <name>0000000000<<name> </name> <size>10<<size>1</size> <type>N<<type>S</type> </field> <field> <!-- digitoanotacoes dade conta correntecheques (S/N/B) --> <name>0<<name> </name> <size>1</size> <type>N<<type>S</type> </field> <field> <!-- data da agenciaconsulta --> <name>0000<<name> </name> <size>4<<size>8</size> <type>N<<type>S</type> </field> <field> <!-- hora fillerda (4)consulta --> <name> </name> <size>61<<size>6</size> <type>N<<type>S</type> </field> <field> <!-- quantidadetotal de compromisso encontradosregistros --> <name> </name> <size>2<<size>4</size> <type>N<<type>S</type> </field> <field> <!-- tem anotacoes negativas (S/N/B)quantidade de registros enviados por transmissao --> <name> </name> <size>1<<size>4</size> <type>S<<type>N</type> </field> <field> <!-- numero de anotacoescontrole de atualizacao cheques (S/N/B)das tabelas --> <name> </name> <size>1<<size>4</size> <type>S</type> </field> <field> <!-- datafiller da(5) consulta --> <name> </name> <size>8<<size>176</size> <type>S</type> </field> <field> <!-- horaacessou recheque da consultaonline (S/N) --> <name> <<name>N</name> <size>6<<size>1</size> <type>S</type> </field> <field> <!-- totaltem ocorrencia de registrosRecheque ultimo ano (S/N) --> <name> <<name>N</name> <size>4<<size>1</size> <type>S</type> </field> <field> <!-- quantidade de registros enviados por transmissao filler (6) --> <name> </name> <size>4<<size>1</size> <type>N<<type>S</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> |
Bloco de código | ||
---|---|---|
| ||
# 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 |
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"/> |
</serasapj> |
Bloco de código | ||||
---|---|---|---|---|
| ||||
# Arquivo de properties para o SERASA RELATO
#
# 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 |
Esse será o método usado pelo reflection da politica.
Bloco de código | ||||
---|---|---|---|---|
| ||||
<!-- metodo de acesso para ser carregado no acesso -->
<code name="br.com.tools.acessos.serasa.SerasaRelato"/> |
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>serasa_acesso>serasapj<relato</nome_acesso> |
Exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
serIn.put("CNPJB49C_NUM_DOC", "0000000000191"); |
Exception:
Bloco de código | ||||
---|---|---|---|---|
| ||||
throw new LayoutException("Erro preenchendo HashMap " + this.toString()); |
Dica |
---|
Contador’ – sempre existe um atributo no XML nomeado ’counter’ como indexador dos registros |
...
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> |
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> |
...
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. |
aqui. |
Variáveis
Variável | Descrição | Tipo | Formato |
---|---|---|---|
R430_SUBTPREG_ | Subtipo do registro | String | |
R430_DTCALCLIM_ | Data cálculo limite crédito | Date | yyyyMMdd |
R430_HRCALCLIM_ | Hora cálculo limite crédito | Integer | |
R430_VLCALCLIM_ | Valor cálculo limite crédito | Double | |
R430_OBSERV_ | Observação | String |
...
Dica |
---|
A variável abaixo deverá ser preenchida com total valor, somente se a discriminação for ’PROTESTO’; caso contrário, virá ’zerado’. |
...
virá ’zera |