Sistema de Pagamentos Brasileiro
Modelo operacional - requisições da IF/Clearing
Legado
Procedimentos de segurança
STR
Parser XML
DTD
Converte código
Assinatura digital
Msg
assinada
LOG
Certificado digital da IF/C
LOG
Cifragem
Certificado digital BC
Msg assinada e cifrada
Modelo operacional - respostas do BACEN
Legado
Procedimentos de segurança
STR
Parser XML
DTD
Converte código
Msg
assinada
LOG
LOG
report
Confere assinatura
Certificado digital BC
Decifra
report
Certificado digital IF/C
Msg assinada e cifrada
Topologia 8 x 2
Servidor A
Provedor A
Provedor B
Servidor B
Sistema de Pagamentos Brasileiro
Infraestrutura Básica da Rede SPB
2M
64K
Provedor 1
rede IP
multiserviços
64K
IF
2M
256K-2M
2M
Provedor 2
rede IP
multiserviços
2M
256K-2M
Clearing
256K-2M
Clearing
Características da rede SPB
• Protocolo BGP
• Gerenciamento integrado e centralizado entre os
provedores
• Integração com o sistema Tivoli do BC
• Endereços IP válidos para a internet
• Não estará ligada à internet
• Provedores com redundância de meios físicos e rede
lógica em Brasília, Rio de Janeiro e São Paulo
Características da rede SPB
• Disponibilidade:
– 99,9% no backbone e na conexão com o BC
– 99,8% na última milha com as IF
• Comitê gestor:
– Banco Central
– Instituições financeiras
– Clearings
O Sistema de Pagamentos
Brasileiro
ea
Troca de Mensagens
08/03/2001
Agenda
• GT-Mensagem
• Arquitetura do SPB
• Fluxo de Mensagens no SPB
• Evolução do Manual de Mensagens
• Nova versão do Manual de Mensagens / DTD
GT-Mensagem
GT-Mensagem - Composição
•
•
•
•
•
•
•
•
•
ABBC
ABBI
ANDIMA
ASBACE
BACEN
BM&F
CBLC
CETIP
FEBRABAN
GT-Mensagem - Decisões
• Adoção do XML (Extensible MarkUp
Language);
• Criação de protocolo próprio;
• As mensagens serão estruturadas em 3 (três)
segmentos:
 BCMSG
 SISMSG
 USERMSG
GT-Mensagem - Modelo Padrão
<SPBDOC>
<BCMSG>
. . . informações do Controle da Mensagem
</BCMSG>
<SISMSG>
. . . informações do Sistema na Mensagem
</SISMSG>
<USERMSG>
. . . área livre
</USERMSG>
</SPBDOC>
GT-Mensagem - Próximos Passos
• Divulgação Nova Versão do Manual em
09.03.2001 (DTD disponível);
• Inclusão Mensagens das Câmaras LDL;
• Nova Revisão e Divulgação Versão 1.0;
• Participação no futuro Comitê do SPB.
Arquitetura
do
SPB
Impacto do SPB
• Novo desenho da rede
• Comunicação através de mensagens
• LBTR x LDL
• Tratamento dos débitos não efetivados
• “Piloto” de reservas
Sistemas a serem criados /
alterados no BACEN
STR
SLB
COMPULSÓRIO
REDESCONTO
COMPE
SELIC (*)
CONTABIL
CÂMBIO
CCR
MECIR
CNR
PROAGRO
LEILÃO
POUPANÇA
TESOURO
Sistemas a serem criados /
alterados pelo Mercado
CÂMARAS LDL
(BM&F, CBLC, CETIP, PAGAMENTOS, etc.)
COMPE
SISTEMAS INTERNOS DAS IF’s
Mensagens
(*) Em parceria com a ANDIMA
IF
Mensagens
RDC
Mensagens
CMP
LDL
SEL
CIR
S1
STN
Mensagens
Mensagens
S2
SLB
STR
IF
Sn
Mensagens
Conta
LDL
COMPE
MECIR
Reservas
Bancárias
Pendências
RCO
CBLC
BM&F
IF
CETIP
SEL
Pagamentos
Outros
RDC
LDL
RCO
STR
CMP
CIR
SLB
COMP
E
STN
Custodiante
BB
Premissas Básicas
IF
1) Apenas a Instituição Financeira
comanda débitos na sua conta
Reservas Bancárias.
Débito Comandado
STR
2) Saldo em Reservas
Bancárias não pode ser
negativo.
3) A responsabilidade pela
resposta a uma solicitação e/ou
requisição é sempre do sistema
que foi chamado.
Reservas
Bancárias
Pendências
Transferência de Reservas - Modelo Simplificado
IF 1
IF 2
Débito
Crédito
Serviço de Mensagens
STR
Reservas
Bancárias
Pendências
Fluxo de
Mensagens
- Alguns exemplos -
MECIR - Saque de Numerário
Débito Principal +
Tarifa (dia D)
CIR0003 (D-2)
IF
CIR0003R1(D-2)
MECIR
Pendente (dia D)
CIR0003R1(D)
<CIRReqSaqueNumerario>
<CodMsg>
<NumCtrlIF>
<CNPJIF>
<AgIF>
<CodDpnciaBC>
<CNPJCstdte>
<TipoVlr>
<Catg>
<Esp>
<DtSaque>
<CIR0003_Repet1>
<CIR0003_Grupo1>
<VlrDen>
<QtdDen>
</CIR0003_Grupo1>
</CIR0003_Repet1>
<DtMovto>
<AgCstdte>
<VlrTarifa>
<VlrLanc>
<VlrSaque>
</CIRReqSaqueNumerario>
STR
Apartado/Efetivado /
Código Mensagem
Número Controle IF
<CIRReqSaqueNumerarioRespReq>
CNPJ
IF
<CodMsg>
Agência
IF
<NumCtrlIF>
Código
Dependência
BACEN
<CNPJIF>
CNPJ
Custodiante
<NumCtrlCIR>
Tipo
Valor
<NumCtrlSTR>
Categoria
<SitLancCIR>
Espécie
<DtHSit>
Data
Saque
<DtMovto>
CIR0003
Repetição 1
<TipoVlr>
CIR0003
<Catg> Grupo 1
Valor
Denominação
<Esp>
Conta
Quantidade
Denominação
<CIR0003R1_Repet1>
Fim CIR0003
GrupoTransitória
1
<CIR0003R1_Grupo1>
Fim CIR0003
Repetição
1
<VlrDen>
MECIR
Data Movimento
<QtdDen>
Agência
Custodiante
</CIR0003R1_Grupo1>
Valor
Tarifa
</CIR0003R1_Repet1>
Valor
Lançamento
<VlrLanc>
Valor
Saque
</CIRReqSaqueNumerarioRespReq>
Obs.: Se o saque for
em Banco custodiante
deve-se informar o
CNPJ e a Agência do
Custodiante.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Código Mensagem
Número Controle IF
CNPJ IF
Número Controle Mecir
Número Controle STR
Situação Lançamento Mecir
Data Hora Situação
Data Movimento
Tipo Valor
Categoria
Espécie
Reservas
CIR0003R1 Repetição 1
Pendências
CIR0003R1 Grupo
1
Bancárias
Valor Denominação
Quantidade Denominação
Fim CIR0003R1 Grupo 1
Fim CIR0003R1 Repetição 1
Valor Lançamento
X
X
X
X
X
X
X
MECIR - Depósito de Numerário
Crédito Principal +
Débito Tarifa (dia D)
CIR0005 (D)
IF
CIR0005R1(D)
MECIR
Efetivado /
<CIRReqDepositoNumerario>
Pendente (dia D)
<CodMsg>
<NumCtrlIF>
<CNPJIF>
<AgIF>
<CodDpnciaBC>
<CNPJCstdte>
<AgCstdte>
<CIRReqDepositoNumerarioRespReq>
<TipoVlr>
<CodMsg>
<Catg>
<NumCtrlIF>
<Esp>
<CNPJIF>
<DtDep>
<NumCtrlCIR>
<CIR0005_Repet1>
<NumCtrlSTRDep>
<CIR0005_Grupo1>
<SitLancCIR><VlrDen>
<DtHSit>
<QtdDen>
<DtMovto></CIR0005_Grupo1>
<NumCtrlSTRTarifa>
</CIR0005_Repet1>
<VlrDep>
<DtMovto>
<VlrTarifa>
<VlrTarifa>
</CIRReqDepositoNumerarioRespReq>
<VlrDep>
</CIRReqDepositoNumerario>
Obs.: Se o depósito for
em Banco custodiante
deve-se informar o
CNPJ e a Agência do
Custodiante.
STR
Código Mensagem
Número Controle IF
CNPJ IF
Agência IF
Código Dependência BACEN
CNPJ Custodiante
Agência Custodiante
Tipo Valor
Código Categoria
Mensagem
X
NúmeroEspécie
Controle IF
X
CNPJ IFData Depósito
X
NúmeroCIR0005
ControleRepetição
Mecir
X
1
NúmeroCIR0005
ControleGrupo
STR Depósito
1
Situação
Lançamento
Mecir
X
Valor Denominação
Reservas
Data Hora
Situação Denominação
Quantidade
PendênciasX
Bancárias
Data
Movimento
X
Fim CIR0005 Grupo 1
NúmeroFim
Controle
STR
Tarifa
CIR0005 Repetição 1
Valor Depósito
Data Movimento
Valor Tarifa
Valor Tarifa
Valor Depósito
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
RDC - Redesconto Intradia
IF
RDC0002
RDC0002R1
Redesconto
<RDCReqRedescontoIntradia>
<RDCReqRedescontoIntradiaRespReq>
<CodMsg>
<CodMsg>
<NumCtrlIF>
<NumCtrlIF>
<CNPJIF>
<CNPJIF>
<NumCtrlRDC>
<IdTit>
<NumOpSelRet>
<NumOpSel>
<NumCtrlSTR>
<PU>
<SitLanc>
<QtdTits>
<DtHSit>
<VlrFinanc>
<DtMovto>
<DtMovto>
</RDCReqRedescontoIntradiaRespReq>
</RDCReqRedescontoIntradia>
SELIC
Custódia
Títulos
Código
Mensagem
Código Mensagem
Número
IF
Número Controle
Controle IF
CNPJ
IF
CNPJ IF
Número Controle
Identificador
TítuloRDC
Número Operação
Operação Selic
Número
Selic Retorno
Número
Controle
STR
Preço Unitário
Situação Lançamento
Quantidade
Títulos
Data Hora Situação
Valor
Financeiro
Data Movimento
Data Movimento
STR
Reservas
Bancárias
X
X
XX
XX
XX
XX
X
X
X
X
XX
X
SLB - Aviso de débito
IF
S1
Efetivado / Pendente
S2
Sn
SLB
Débito / Crédito
STR
<SLBAvisLancDevidoIF>
<CodMsg>
<SLBReqPagtoLancBACENRespReq>
<CNPJIF>
<CodMsg>
<CNPJConv>
<SLBReqPagtoLancBACEN>
<NumCtrlIF>
<NumCtrlSLB>
<CodMsg>
<CNPJIF>
<SistOrigem>
<NumCtrlIF>
<DtVenc>
<NumCtrlSLB>
<CNPJIF>
<Historico>
<NumCtrlSLB>
<NumCtrlSTR>
<VlrLanc>
Reservas
<NivelPref>
<SitLanc>
<DtMovto>
<DtMovto>
<DtHSit>
Bancárias
</SLBAvisLancDevidoIF>
</SLBReqPagtoLancBACEN>
<DtMovto>
</SLBReqPagtoLancBACENRespReq>
Código Mensagem
CNPJ IF
Código
Mensagem
CNPJ
Conveniado
Número
Controle
Número
Controle
SLBIF
Código Mensagem
CNPJ
IF
Sistema
Origem
Número Controle IF
Data
Vencimento
Número
CNPJ
IF Controle SLB
Histórico
Número
Controle
SLB
Número
Controle
STR
Valor
Lançamento
Nível
Preferência
Situação
Lançamento
Pendências
Data
Movimento
Data
Movimento
Data
Hora Situação
Data Movimento
X
X
X
X XX
X XX
X XX
XX
X X
X XX
X
RCO - Informação de Demonstrativo
SLB0002
Débito /
Custos
RCO0002
IF
RCO0002R1
RCO
Multas
<RCOInfDemonstrativo>
<RCOInfDemonstrativoRespInf>
<CodMsg>
<CodMsg>
<NumCtrlIF>
<NumCtrlIF>
<CNPJIF>
<CNPJIF>
SLB0001
<CodRCO>
<IndMulta>
<DtRefDmstr>
<DtMovto>
<DtIni>
</RCOInfDemonstrativoRespInf>
<DtFim>
<IndIncl_Alt>
<RCO0002_Repet1>
<RCO0002_Grupo1>
<CodItemBaseIncid>
<VlrItemDmstr>
</RCO0002_Grupo1>
</RCO0002_Repet1>
<DtMovto>
</RCOInfDemonstrativo>
Crédito
SLB
Efetivado /
STR
Pendente
Código
Mensagem
X X
Código
Mensagem
Número Controle IF
X
Número Controle IF
X
CNPJ IF
X
CNPJ
IF
Código RCO
X X
Indicador
Multa
Data
Referência
Demonstrativo
X
Data
Movimento
Data
Início
X X
Data Fim
X
Indicador Inclusão/Alteração
X
RCO0002 Repetição 1
X
RCO0002 Grupo 1
X
Reservas
Código
Item Base Incidência
X
Pendências
ValorBancárias
Item Demonstrativo
X
Fim RCO0002 Grupo 1
X
Fim RCO0002 Repetição 1
X
Data Movimento
X
STN - Repasse de Arrecadação
STN0002
Débito
IF
STN0002R1
STN
Efetivado /
STR
Pendente
<STNReqTransfRepArrecadacao>
<CodMsg>
<CNPJIF>
<STNReqTransfRepArrecadacaoRespReq>
<NumCtrlIF>
<CodMsg>
<DtArrec>
<CNPJIF>
<DtRecolh>
Tesouro
<NumCtrlIF>
<DtRep>
<NumCtrlSTR>
<VlrRep>
<NumCtrlSTN>
<VlrRem>
<SitLanc>
<DtMovto>
<DtHSit>
<NivelPref>
<DtMovto>
<Historico>
</STNReqTransfRepArrecadacaoRespReq>
</STNReqTransfRepArrecadacao>
Código Mensagem
CNPJ IF
Número Controle IF
Código
Mensagem
Data
Arrecadação
CNPJ
IF
Reservas
Data Recolhimento
Número
Controle IFPendências
Data
Repasse
Bancárias
Número
Controle STR
Valor
Repasse
Número
Controle STN
Valor Remuneração
Situação
Lançamento
Data Movimento
Data Preferência
Hora Situação
Nível
Data
Movimento
Histórico
X
X
X
XX
XX
XX
XX
X
XX
X
XX
STR - Transferências Interbancárias
STR0004
IF
1
Debitada
IF
2
Creditada
STR0004R1
<STRReqTransfReservaRespReq>
<CodMsg>
<NumCtrlIF>
<CNPJIFDeb>
<STRReqTransfReserva>
<NumCtrlSTR>
<CodMsg>
<SitLanc>
<NumCtrlIF>
<DtHSit>
<CNPJIFDeb>
<DtMovto>
<CNPJIFCred>
</STRReqTransfReservaRespReq>
<Finldd>
<VlrLanc>
<Historico>
<STRReqTransfReservaRespTerc>
<CodMsg>
<NivelPref>
<NumCtrlSTR>
<DtMovto>
<DtHSTR>
</STRReqTransfReserva>
<CNPJIFDeb>
<CNPJIFCred>
<VlrLanc>
<Finldd>
<Historico>
<DtMovto>
</STRReqTransfReservaRespTerc>
STR
Código Mensagem
Número Controle IF
CNPJ IF Debitada
Número Controle STR
Código Mensagem
Situação
Lançamento
Número Controle
IF
Data
Situação
CNPJHora
IF Debitada
Data
CNPJMovimento
IF Creditada
X
X
X
X
X
X
X
X
X
X
X
Finalidade
Valor Lançamento
Histórico
Código
Mensagem
Nível
Preferência
Número
Controle STR
Data
Movimento
X
X
X
Data Hora STR
CNPJ IF Debitada
Reservas
CNPJ IF Creditada
Bancárias
Valor Lançamento
Finalidade
Histórico
Data Movimento
Pendências
X
X
X
X
X
X
X
X
X
X
Sistemas LBTR
IF1
CRB a debitar
Confirma
CRB a creditar
Resposta
IF2
Confirma
Sistema
LBTR
Confirma
Rejeita
<SELReqOperacaoDefinitiva>
<CodMsg>
<NumOpSel>
<DtOp>
<CtCed>
<CtCes>
<SELReqOperacaoDefinitivaRespReq>
<TipoDebCred>
<CodMsg>
<IFLqdantCed>
<NumOpSel>
Observações para sistemas que<IFLqdantCes>
<IdTit>
<SitLanc>
transacionam papéis:
<DtVencTit>
<SitOpSEL>
• O papel tem que estar sob<PU>
<NumCtrlSTR>
<Qtd>
Custódia
custódia do vendedor.
<DtHSTR>
<VlrFinanc>
<DtHBC>
• Operações do Selic não<NivelPref>
<ChVSel>
entram em pendência no <DtMovto>
<DtMovto>
<CNPJIF>
STR.
<CNPJIF>
<NumCtrlIF>
<NumCtrlIF>
</SELReqOperacaoDefinitivaRespReq>
/SELReqOperacaoDefinitiva>
Resposta
STR
Código Mensagem
Número Operação Selic
Data Operação
Conta Cedente
Conta Cessionária
Tipo Débito/Crédito
Código
Mensagem
IF Liquidante
Cedente
IF Liquidante
Cessionário
Número
Operação Selic
Identificador
TítuloLançamento
Situação
Data Vencimento
SituaçãoTítulo
Operação Selic
Preço Unitário
Número Controle STR
QuantidadeReservas
Data Hora STR
Valor Financeiro
Bancárias
Data
Hora Bacen
Nível Preferência
Chave Vinculação
Selic
Data Movimento
Data Movimento
CNPJ IF
CNPJ IFNúmero Controle IF
Número Controle IF
LDL - Transferência Resultado Líquido
Câmara <LDLReqTransfResultadoLiquidoNegociacaoRespTerc>
LDL
IF
<CodMsg>
Código Mensagem
<NumCtrlLDLOr>
Número Controle LDL Original
<NumCtrlSTR>
Número Controle STR
<DtHSTR>
Data Hora STR
<CNPJIF>
CNPJ IF
<CNPJLDL>
CNPJ LDL
<IdMerc>
Identificador Mercado
<VlrLanc>
Valor Lançamento
<LDL0004R2_Repet1>
LDL0004R2 Repetição 1
LDL0004
<LDLReqTransfResultadoLiquidoNegociacao>
<LDL0004R2_Grupo1>
LDL0004R2 Grupo 1
<CodMsg>
Código
<CNPJSubLiqdd>
CNPJ
SubMensagem
Liquidado
<NumCtrlIF>
Número
Controle
IF
LDL0004R1 <VlrCredSubLiqdd>
Valor Crédito
Sub Liquidado
<NumCtrlLDLOr>
Número
Controle
LDL Original
<VlrDebSubLiqdd>
Valor
Débito
Sub Liquidado
<CNPJIF>
CNPJ
IF
</LDL0004R2_Grupo1>
Fim
LDL0004R2
Grupo 1
</LDL0004R2_Repet1>
Fim
LDL0004R2
Repetição 1
<CNPJLDL>
CNPJ
LDL
<DtMovto>
Data
Movimento
<IdMerc>
Identificador Mercado
</LDLReqTransfResultadoLiquidoNegociacaoRespTerc>
<VlrLanc>
Valor Lançamento
LDL
<LDL0004_Repet1>
<LDL0004_Grupo1>
<LDLReqTransfResultadoLiquidoNegociacaoRespReq>
<CNPJSubLiqdd>
Considerar a existência de:
<CodMsg>
Código Mensagem
<VlrCredSubLiqdd>
<NumCtrlIF>
Número Controle IF
Horário início liquidação da Câmara<VlrDebSubLiqdd>
LDL
<CNPJIF>
CNPJ IF
</LDL0004_Grupo1>
<NumCtrlSTR>
Número Controle STR
Horário término da liquidação</LDL0004_Repet1>
da Câmara
LDL
<SitLanc>
Situação Lançamento
<NivelPref>
<DtHSit>
Data Hora Situação
<DtMovto>Data Movimento
<DtMovto>
</LDLReqTransfResultadoLiquidoNegociacao>
</LDLReqTransfResultadoLiquidoNegociacaoRespReq>
STR
LDL0004 Repetição 1
LDL0004 Grupo 1
CNPJ Sub Liquidado
XValor Crédito Sub Liquidado
XConta
Valor Débito Sub Liquidado
Reservas
X
Câmara
Fim LDL0004 Grupo
1
Bancárias
X
LDL
Fim
LDL0004
Repetição
1
X
XNível Preferência
XData Movimento
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
CMP - Transf. para Depósito na COMPE
COMPE
BB
CMP0001
IF
CMP0002
CMP0002R1
CMP
<CMPReqTransfDepositoOperacionalCOMPERespReq>
<CMPInfValorParaOperarCOMPE>
<CMPReqTransfDepositoOperacionalCOMPE>
<CodMsg>
Código Mensagem
<CodMsg>
Código
Mensagem
<CodMsg>
Código
Mensagem
<NumCtrlIF>
Número
Controle IF
<CNPJIF>
CNPJ
<NumCtrlIF>
Número
Controle
IF
<CNPJIF>
CNPJIF
IF
<NumCtrlCMP>
Número
Controle
<CNPJIF>
CNPJ
IF ControleCMP
<NumCtrlCMP>
Número
CMP
<VlrFinanc>
Valor
Financeiro
<NumCtrlCMPOr>
Número
Controle
CMPSTR
Original
<NumCtrlSTR>
Número
Controle
<DtHBC>
Data
Hora
Bacen
<VlrLanc>
Valor
Lançamento
<SitLanc>
Situação
Lançamento
<DtMovto>
Data
Movimento
<DtHSit>
Data
Hora Situação
<NivelPref>
Nível
Preferência
</CMPInfValorParaOperarCOMPE>
<DtMovto>
Data
Movimento
<DtMovto>
Data
Movimento
</CMPReqTransfDepositoOperacionalCOMPERespReq>
</CMPReqTransfDepositoOperacionalCOMPE>
STR
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Conta
COMPE
Reservas
Bancárias
Exemplo de uma Mensagem
<SPBDOC>
<BCMSG>
. . . informações do Controle da Mensagem
</BCMSG>
<SISMSG>
<SLBAvisLancDevidoIF>
<CodMsg>
<CNPJIF>
<CNPJConv>
<NumCtrlSLB>
<SistOrigem>
<DtVenc>
<Historico>
<VlrLanc>
<DtMovto>
</SLBAvisLancDevidoIF>
</SISMSG>
<USERMSG>
. . . área livre
</USERMSG>
</SPBDOC>
Evolução do Manual de Mensagens
• Versão Preliminar - 30.11.2000;
• Versão Preliminar - 31.12.2000;
• Versão Preliminar - 31.01.2001;
• Versão Preliminar com DTD - 09.03.2001;
• Nova Versão Revisada em 30.03.2001;
• Manual de Mensagens único para o SFN;
• Subgrupo do Comitê Gestor de Tecnologia do SPB.
Nova Versão do Manual de
Mensagens
&
DTD
DTD?
Definindo que Tipo de Documento é
esse...
Como o computador vai reconhecer
quais campos devem constar numa
mensagem?
Um Documento XML
<SPBDOC>
<BCMSG>
. . . informações do Controle da Mensagem
</BCMSG>
<SISMSG>
<STRReqTransfReserva>
<CodMsg>
<NumCtrlIF>
<CNPJIFDeb>
<CNPJIFCred>
<Finldd>
<VlrLanc>
<Historico>
<NivelPref>
<DtMovto>
</STRReqTransfReserva>
</SISMSG>
<USERMSG>
. . . área livre
</USERMSG>
</SPBDOC>
Estrutura do DTD - Comentários
Comentários estão envolvidos pelas marcas “<--” e “-->”
Exemplo:
<-Evento: STR0004 - If requisita Transferencia de Reservas -->
<-Mensagem: Requisicao de Transferencia de Reservas
-->
<-- Codigo Msg: STR0004
Emissor: IF Destinatario: STR
-->
Estrutura do DTD - Mensagens
As mensagens são definidas como elementos dentro de uma estrutura.
Exemplo:
Definição da mensagem “Requisição de Transferencia de Reservas”
<-Evento: STR0004 - If requisita Transferencia de Reservas -->
<-Mensagem: Requisicao de Transferencia de Reservas
-->
<-- Codigo Msg: STR0004
Emissor: IF Destinatario: STR
-->
<!ELEMENT STRReqTransfReserva
(CodMsg, NumCtrlIF, CNPJIFDeb, CNPJIFCred, Finldd, VlrLanc,
Historico, NivelPref?, DtMovto) >
Observação: NivelPref? significa que Nivel Preferência é um campo
opcional.
Estrutura do DTD - SISMSG
Por sua vez, STRReqTransfReserva é um elemento do SISMSG
<!ELEMENT SISMSG
(STRReqTransfContaCliContaIf |
STRReqTransfContaCliContaIfRespReq |
STRReqTransfContaCliContaIfRespTerc |
STRReqTransfContaDifTitularidade |
STRReqTransfContaDifTitularidadeRespReq |
STRReqTransfContaDifTitularidadeRespTerc |
STRReqTransfReserva |
STRReqTransfReservaRespReq |
STRReqTransfReservaRespTerc) >
Observação: “|” significa “ou”
Este é apenas um trecho da definição do SISMSG
Estrutura do DTD - Notação
Já apresentamos uma parte da sintaxe utilizada, mas
ainda é necessário acrescentar outros símbolos para
os casos de estruturas de repetição.
“*” - pode repetir de 0 a n vezes
“+” - pode repetir de 1 a n vezes
Com isso já temos condições de entender plenamente o DTD...
Estrutura do DTD - Repetição
Correndo o risco de estar repetindo um assunto que já
é de pleno domínio de todos...
No STR0002 - STR avisa alteração horários, temos um
grupo de repetição que na versão anterior do manual
de mensagens estava:
<Repeticao>
<CodGrade>
<HrioAb>
<HrioFch>
</Repeticao>
Estrutura do DTD - Repetição
Agora ficou assim:
<STR0002_Repet1>
<STR0002_Grupo1>
<CodGrade>
<HrioAb>
<HrioFch>
</STR0002_Grupo1>
</STR0002_Repet1>
<STR0002_Repet1>
<STR0002_Grupo1>
<CodGrade>
<HrioAb>
<HrioFch>
</STR0002_Grupo1>
<STR0002_Grupo1>
<CodGrade>
<HrioAb>
<HrioFch>
</STR0002_Grupo1>
<STR0002_Grupo1>
<CodGrade>
<HrioAb>
<HrioFch>
</STR0002_Grupo1>
</STR0002_Repet1>
Estrutura do DTD - Repetição
Definição da mensagem “STR avisa Alteração Horários do STR”
<-Evento: STR0002 - STR avisa Alteracao Horarios do STR
<-Mensagem: Aviso de Alteracao de Horarios do STR
<-- Codigo Msg: STR0002
Emissor: STR Destinatario: Todas IFs
<!ELEMENT STRAvisAltHorarioSTR
(CodMsg, STR0002_Repet1, DtHSTR, TipoHrio, DtMovto) >
<!ELEMENT STR0002_Repet1 (STR0002_Grupo1+) >
<!ELEMENT STR0002_Grupo1 (CodGrade, HrioAb, HrioFch) >
-->
-->
-->
Estrutura do DTD - Campos
Definição dos campos que podem ser utilizados nas mensagens:
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
.
.
.
CodMsg
DtHSTR
TipoHrio
DtMovto
(#PCDATA)
(#PCDATA)
(#PCDATA)
(#PCDATA)
>
>
>
>
FIM
Banco Central do Brasil
Departamento de Informática
Download

STR - Erudito FEA-USP