O erro está a ocorrer por que algo está a correr mal na passagem de informação do título do BO para o FO. O título é criado no BO e é indicado um LDEP (em titulo_pracas) que na passagem para o dicionário do FO o campo SETTL_LOCATION (correspondente ao LDEP do BO) fica vazio. Depois quando a informação retorna ao BO o LDEP fica diferente e isso acaba por obrigar o BPI a ratear o efetuado.
Correção de Local de Depósito FO
Verificações iniciais:
No BO:
- Verificar se o título indicado pelo cliente não possui outros ISINs . Essa consulta é importante caso o título possua diferentes Praças.
Select * from titulo_alias where alias = ' ';
- Verificar as informações de negociação do título para comparar com o FO, sendo eles: Symbol, Security_Type, Security_Exchange, LDEP_Codigo.
LDEP_Codigo (BO) = SETTL_LOCATION (FO- Securities_definition)
Select symbol, security_type,security_exchange,ldep_codigo,tit_codigo from TITULO_PRACAS where TIT_CODIGO = ' ';
No FO:
- Verificar as informações de negociação do título para comparar com o BO, sendo eles: Symbol, Security_Type, Security_Exchange, SETTL_LOCATION .
Select a.settl_location, a.* from SECURITIES_DEFINITION a where a.SECURITY_ID = ' ' and a.SYMBOL = ' ' and a.SECURITY_TYPE= ' ' and a.SECURITY_EXCHANGE = ' ' ;
- Aqui é importante verificar o campo SETTL_LOCATION. Este campo pode estar vazio e este é o motivo do erro.
No BO:
- Verificar se há erros na passagem dos movimentos do BO para o FO.
Select * from MD_AUX_TIT_UPDATE where TIT_CODIGO = ' ' ;
Aqui podemos ter 2 situações:
- Retorno da consulta SEM DADOS: podem ser registos muito antigos que podem ter sido eliminados ou deram erro na criação (citados devemos inserir manualmente o Settl_location manualmente no FO)
- Retorno da consulta COM DADOS: aqui ou trataríamos o erro ou colocaríamos para não tratar (neste caso devemos inserir manualmente o Settl_location manualmente no FO).
Solução:
Inserir no dicionário do FO o SETTL_LOCATION correspondente ao LDEP_CODIGO do BO.
Select rowid, a.settl_location, a.* from SECURITIES_DEFINITION a where a.SECURITY_ID = ' ' and a.SYMBOL = ' ' and a.SECURITY_TYPE= ' ' and a.SECURITY_EXCHANGE = ' ' ;