Árvore de páginas

Documento de BO

Produto:

Datasul

Ocorrência:

Documentação de BO

Nome Físico

 frbo/bofr056 

 

Objetivo

Validação, Manutenção e acesso rápido a tabela “mab-control-bomba”.

 

Funcionamento

A BO irá validar os dados, manutenir a tabela e fazer a leitura dos registros da tabela “mab-control-bomba”.

Na forma padrão, realiza-se a chamada através de um comando RUN.

A sintaxe para a chamada BO é:

run frbo\bofr056.p.

 

A execução na forma persistente ...

A sintaxe para executar a BO em modo persistente é:

run frbo\bofr056.p persistent set h-handle.

 

A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da BO.

 

Tabelas Temporárias

Nos atributos das tabelas temporárias:

Tabela Temporária

Descrição

Entrada/Saída

RowObject

Tabela de comunicação entre Interface e banco de dados da tabela “mab-control-bomba”.

Entrada/Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

num-docto

int

>>>,>>>,>>9

Número Documento

Sim  /  Key

001

dat-apont

date

99/99/9999

Data Apontamento

Sim

001

hra-apont

char

99:99:99

Hora Apontamento

Sim

001

val-dat-hora-invrtda

dec

999999999999

Valor da Data e Hora Invertidas do Apontamento

Sim

001

cod-posto-orig

char

x(8)

Código do Posto de Origem

Sim

001

cod-bomba

char

x(12)

Código da Bomba Abastecimento

Sim

001

idi-tip-movto

int

9

Tipo de Apontamento

1 = Aferição

2 = Transferência

3 = Leitura de Bomba

Sim

001

val-quant

dec

>>>>>>9.99

Quantidade do Apontamento

Sim

001

val-leitura-inicial

dec

>>>>>>9.9

Valor da leitura inicial da bomba

Sim

001

val-leitura-final

dec

>>>>>>9.9

Valor da leitura final da bomba

Sim

001

cod-posto-dest

char

x(8)

Código do Posto Destino

Sim

001

cod-usuar

char

x(12)

Código Usuário do EMS

Sim

001

cod-livre-1

char

x(1000)

Character Livre

Não

001

cod-livre-2

char

x(1000)

Character Livre

Não

001

log-livre-1

log

Sim/Não

Logical Livre

Não

001

log-livre-2

log

Sim/Não

Logical Livre

Não

001

num-livre-1

int

->>>>>>>>>9

Inteiro Livre

Não

001

num-livre-2

int

->>>>>>>>>9

Inteiro Livre

Não

001

val-livre-1

dec

->>>>>>>>>>>9.9

Decimal Livre

Não

001

val-livre-2

dec

->>>>>>>>>>>9.9

Decimal Livre

Não

001

dat-livre-1

date

99/99/9999

Data livre

Não

001

dat-livre-2

date

99/99/9999

Data livre

Não

001

Tabela Temporária

Descrição

Entrada/Saída

RowErrors

Contém os erros ocorridos na BO.

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

ErrorSequence

integer

padrão

Seqüência dos erros

Sim

001

ErrorNumber

integer

padrão

Número do erro

Sim

001

ErrorDescription

char

padrão

Descrição do erro

Sim

001

ErrorParameters

char

padrão

Parâmetros passados para criar mensagem

Não

001

ErrorType

char

padrão

Tipo do erro:

WARNING: Aviso

ERROR: Erro

Sim

001

ErrorHelp

char

padrão

Texto de ajuda do erro

Sim

001

ErrorSubType

char

padrão

Sub Tipo da mensagem de erro

Não

001

 

Métodos

Quando a BO for executada em modo persistente, os seguintes métodos estarão disponíveis para execução:

 

Método Básico

goToKey

Requisito

Nenhum

Sintaxe

run goToKey in h-handle (input <integer>).

Descrição

Reposiciona a query com base na chave primária da tabela.

 

Parâmetros

Descrição

 

pnum-docto

Número do Documento

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getKey

Requisito

Nenhum

Sintaxe

run getKey in h-handle (output <integer>).

Descrição

Retorna os campos da chave primária da tabela.

 

Parâmetros

Descrição

 

pnum-docto

Número do Documento

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getCharField

Requisito

Nenhum

Sintaxe

run getCharField in h-handle (input  <character>,

                              output <character>).

Descrição

Retorna os valores dos campos da tabela que são caracteres.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getDateField

Requisito

Nenhum

Sintaxe

run getDateField in h-handle (input  <character>,

                              output <date>).

Descrição

Retorna os valores dos campos da tabela que são data.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getDecField

Requisito

Nenhum

Sintaxe

run getDecField in h-handle (input  <character>,

                             output <decimal>).

Descrição

Retorna os valores dos campos da tabela que são decimais.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getIntField

Requisito

Nenhum

Sintaxe

run getIntField in h-handle (input  <character>,

                             output <integer>).

Descrição

Retorna os valores dos campos da tabela que são inteiros.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getLogField

Requisito

Nenhum

Sintaxe

run getLogField in h-handle (input  <character>,

                             output <logical>).

Descrição

Retorna os valores dos campos da tabela que são Lógicos.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getRawField

Requisito

Nenhum

Sintaxe

run getRawField in h-handle (input  <character>,

                             output <raw>).

Descrição

Retorna os valores dos campos da tabela que são caracteres longos.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getRecidField

Requisito

Nenhum

Sintaxe

run getRecidField in h-handle (input  <character>,

                               output <recid>).

Descrição

Retorna os valores dos campos da tabela que são numéricos e definem uma seqüência única para a tabela dentro do database.

 

Parâmetros

Descrição

 

pFieldName

Nome do campo a ser retornado

 

pFieldValue

Valor do campo.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

getRowid

Requisito

Nenhum

Sintaxe

run getRowid in h-handle (output <rowid>).

Descrição

Retorna o ROWID do registro corrente da Query que está aberta na BO. Este método não aparece para ser manutenido.

 

Parâmetros

Descrição

 

pRowid

Rowid da tabela.

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

 

OpenQuery / SetConstraint / LinkTo

setConstraintData

Requisito

Nenhum

Sintaxe

run setConstraintData in h-handle (input <date>,

                                   input <date>).

Descrição

Seta as restrições para abrir a query por faixa de data de apontamento.

 

Parâmetros

Descrição

 

pDataIni

Data Apontamento Inicial

 

pDataFim

Data Apontamento Final

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

setConstraintDocumento

Requisito

Nenhum

Sintaxe

run setConstraintDocumento in h-handle (input <integer>,

                                        input <integer>).

Descrição

Seta as restrições para abrir a query por faixa de número do documento.

 

Parâmetros

Descrição

 

pDocIni

Documento Inicial

 

pDocFim

Documento Final

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

setConstraintFiltro

Requisito

Nenhum

Sintaxe

run setConstraintFiltro in h-handle (input <logical>,

                                     input <logical>,

                                     input <logical>).

Descrição

Seta as restrições para abrir a query pelo filtro de tipo de apontamento.

 

Parâmetros

Descrição

 

pAfericao

Apontamento de Aferição de Bomba

 

pTransferencia

Apontamento de Transferência de Bomba

 

pLeitura

Apontamento de Leitura de Bomba

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

setConstraintPostoOrigem

Requisito

Nenhum

Sintaxe

run setConstraintPostoOrigem in h-handle (input <character>,

                                          input <character>).

Descrição

Seta as restrições para abrir a query por faixa de posto de combustível Origem.

 

Parâmetros

Descrição

 

pPostoIni

Posto de Origem Inicial

 

pPostoFim

Posto de Origem Final

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryData

Requisito

A setConstraintData ter sido executada anteriormente.

Sintaxe

run openQueryData in h-handle.

Descrição

Abre a query da BO conforme a faixa de Data do Apontamento passada na procedure setConstraintData.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryDataFiltro

Requisito

A setConstraintData e a setConstraintFiltro terem sido executadas anteriormente.

Sintaxe

run openQueryDataFiltro in h-handle.

Descrição

Abre a query da BO conforme a faixa de Data do Apontamento passada na procedure setConstraintData e utilizando o filtro da setConstraintFiltro.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryDocumento

Requisito

A setConstraintDocumento ter sido executada anteriormente.

Sintaxe

run openQueryDocumento in h-handle.

Descrição

Abre a query da BO conforme a faixa de Documento passada na procedure setConstraintDocumento.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryDocumentoFiltro

Requisito

A setConstraintDocumento e a setConstraintFiltro terem sido executadas anteriormente.

Sintaxe

run openQueryDocumentoFiltro in h-handle.

Descrição

Abre a query da BO conforme a faixa de Documento passada na procedure setConstraintDocumento e utilizando o filtro da setConstraintFiltro.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryMain    

Requisito

Nenhum

Sintaxe

run openQueryMain in h-handle.

Descrição

Abre a query da BO com todos os registros.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryPostoOrigem

Requisito

A setConstraintPostoOrigem ter sido executada anteriormente.

Sintaxe

run openQueryPostoOrigem in h-handle.

Descrição

Abre a query da BO conforme a faixa de Posto de Origem passada na procedure setConstraintPosto.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

openQueryPostoOrigemFiltro

Requisito

A setConstraintPosto e a setConstraintFiltro terem sido executadas anteriormente.

Sintaxe

run openQueryPostoFiltro in h-handle.

Descrição

Abre a query da BO conforme a faixa de Posto de Origem passada na procedure setConstraintPosto e utilizando o filtro da setConstraintFiltro.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

 

Método   Negócio

validateRecord

Requisito

Ter sido executada alguma ação para manutenção do registro da tabela. Esta procedure é executada somente internamente pela BO.

Sintaxe

run validate in this-procedure (input <character>).

Descrição

Valida as ações feitas em cima do registro da tabela corrente da BO. Estas ações podem ser: “CREATE”, “UPDATE” e “DELETE”.

 

Parâmetros

Descrição

 

pType

Tipo de ação:

“CREATE”

“UPDATE”

“DELETE”

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table RowErrors.

afterCreateRecord

Requisito

Procedure chamada pelo método interno CreateRecord. Não deve ser chamada externamente.

Sintaxe

run afterCreateRecord in this-procedure.

Descrição

Chama a procedure “atualizaQuantidade”, a qual atualizará as quantidades dos apontamentos conforme a ação efetuada.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

afterDeleteRecord

Requisito

Procedure chamada pelo método interno DeleteRecord. Não deve ser chamada externamente.

Sintaxe

run afterDeleteRecord in this-procedure.

Descrição

Chama a procedure “atualizaQuantidade”, a qual atualizará as quantidades dos apontamentos conforme a ação efetuada.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

afterUpdateRecord

Requisito

Procedure chamada pelo método interno UpdateRecord. Não deve ser chamada externamente.

Sintaxe

run afterUpdateRecord in this-procedure.

Descrição

Chama a procedure “atualizaQuantidade”, a qual atualizará as quantidades dos apontamentos conforme a ação efetuada.

 

Parâmetros

Descrição

 

Não Contém

 

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

atualizaQuantidade

Requisito

Chamada apenas pelas procedures (afterCreateRecord, afterDeleteRecord e afterUpdateRecord).

Sintaxe

run atualizaStatus in this-procedure (input <character>).

Descrição

Atualiza as quantidades dos apontamentos de bomba, se o apontamento manutenido for uma leitura de bomba.

Para a criação do registro, diminui as quantidades dos outros apontamentos.

Para a alteração, verifica as quantidades e diminui dos outros apontamentos.

Para a eliminação, adiciona a quantidade.

 

Parâmetros

Descrição

 

pAction

Ação da Manutenção:

CREATE

UPDATE

DELETE

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

buscaProximoDocumento

Requisito

Nenhum.

Sintaxe

run buscaProximoDocumento in h-handle (output <integer>).

Descrição

Busca o próximo número do documento a ser incluído.

 

Parâmetros

Descrição

 

pNrDocumento

Número do Documento

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

consisteBomba

Requisito

Nenhum.

Sintaxe

run consisteBomba in h-handle (input <character>,

                               input <character>).

Descrição

Consiste se a bomba do posto informados, controlam a leitura. Se não controla, cria um erro e retorna “NOK”.

 

Parâmetros

Descrição

 

pCodPosto

Código do Posto de Origem

 

pCodBomba

Código da Bomba

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

consisteLeitura

Requisito

Nenhum.

Sintaxe

run consisteLeitura in h-handle (input <rowid>,

                                 input <character>,

                                 input <character>,

                                 input <integer>,

                                 input <decimal>,

                                 input <decimal>,

                                 input <decimal>,

                                 input-output <decimal>).

Descrição

Verifica se a leitura inicial da bomba é a mesma da leitura do último apontamento, se for, a bomba está quebrada e deve-se incluir a quantidade no apontamento.

Passando o parâmetro Tipo de Apontamento com a opção 20, pode-se ter o retorno do cálculo da quantidade de abastecimentos e apontamentos de aferição e transferência.

 

Parâmetros

Descrição

 

pRowid

Rowid da tabela de Controle Bombas.

 

pCodPosto

Código Posto Origem

 

pCodBomba

Código da Bomba

 

pTipo

Tipo de Apontamento

1 = Aferição

2 = Transferência

3 = Leitura de Bomba

20 = Calcular as quantidades apontadas

 

pInvert

Data / Hora invertida do Apontamento

 

pInicial

Leitura Inicial da Bomba

 

pFinal

Leitura Final da Bomba

 

pQtde

Quantidade do Apontamento

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

consistePosto

Requisito

Nenhum.

Sintaxe

run consistePosto in h-handle (input <character>,

                               input <integer>).

Descrição

Verifica se o posto informado é próprio ou de terceiro.

Postos de terceiros não devem ter apontamentos de controle de bomba.

 

Parâmetros

Descrição

 

pCodPosto

Código do Posto

 

pTpPosto

Tipo do Posto

1 = Origem

2 = Destino

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....

consistePostoDestino

Requisito

Nenhum.

Sintaxe

run consistePostoDestino in h-handle (input <character>,

                                      input <character>,

                                      input <character>).

Descrição

Verifica se o posto destino contém pelo menos uma bomba com o mesmo tipo de material da bomba informada.

Verifica também se o posto destino é igual ao posto origem. (Esta validação é somente para apontamentos de transferência)

Cria-se erros e retorna “NOK”.

 

Parâmetros

Descrição

 

pCodPostoOrigem

Código do Posto de Origem

 

pCodBomba

Código da Bomba

 

pCodPostoDestino

Código do Posto de Destino

Retorno

A API/BO irá setar o return-value de forma a informar ao programa “chamador” se a execução foi realizada com sucesso ou não. Os valores possíveis para o return-value são: OK (execução correta) e NOK (execução com problemas). Os motivos para a rejeição do movimento de reporte são especificados na temp-table tt-erro....