Documento de BO
Produto: | Datasul |
Ocorrência: | Documentação de BO |
Nome Físico | dibo/bodi593.p |
Objetivo
Criação, Validação, Manutenção e acesso rápido a tabela “ped-repres-item”
Funcionamento
A BO irá criar, validar os dados, manutenir as tabelas e fazer a leitura dos registros da tabela “ped-repres-item”
Na forma padrão, realiza-se a chamada através de um comando RUN.
A sintaxe para a chamada BO é:
run dibo\bodi593.p.
A execução na forma persistente ...
A sintaxe para executar a BO em modo persistente é:
run dibo\bodi593.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 “ped-repres-item”. | Entrada/Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução | ||
nr-pedido | Int | >>>,>>>,>>9 | Número do Pedido | Sim |
| ||
nome-ab-rep | char | X(12) | Representante | Sim |
| ||
ind-repbase | logi | Sim/Não | Representante Base | Sim |
| ||
it-codigo | char | X(16) | Item | Sim |
| ||
perc-comis | dec | >>9.999 | % Comissao | Sim |
| ||
idi-tip-comis-agent | int | 9 | Tipo Comissão Agente | Sim |
| ||
idi-tip-base-comis-agent | Int | 9 | Tipo Base Comis Agente | Sim |
| ||
idi-liber-pagto-comis-agent | int | 9 | Liberação Pagto Comiss | Sim |
| ||
val-base-comis | dec | >>,>>>,>>9.99 | Base Comissão | Não |
| ||
cod-livre-1 | char | X(100) | Livre 1 | Não |
| ||
cod-livre-2 | char | X(100) | Livre 2 | Não |
| ||
log-livre-1 | Log | Sim/Não | Livre 1 | Não |
| ||
log-livre-2 | Log | Sim/Não | Livre 2 | Não |
| ||
num-livre-1 | Int | ->>>>>>>>>9 | Livre 1 | Não |
| ||
num-livre-2 | Int | ->>>>>>>>>9 | Livre 2 | Não |
| ||
val-livre-1 | Dec | ->>>>>>>>>>>9.9999 | Livre 1 | Não |
| ||
val-livre-2 | Dec | ->>>>>>>>>>>9.9999 | Livre 2 | Não |
| ||
dat-livre-1 | date | 99/99/9999 | Livre 1 | Não |
| ||
dat-livre-2 | date | 99/99/9999 | Livre 2 | Não |
| ||
cod-classificador | char | X(08) | Cod Classificador | Sim |
| ||
val-perc-comis-emis | dec | >>9.99 | % Comis Emis | Não |
| ||
val-comis | dec | ->>>,>>>,>>>,>>9.9999 | Valor ComissÆo | Não |
| ||
val-comis-emis | dec | >>9.99999999 | Comissão Emissão | Não |
| ||
des-checksum | char | X(20) | Check -sum | Não |
| ||
num-seq | dec | >>,>>9 | Nr Sequência | Sim |
| ||
cod-refer | char | X(08) | Referência | Sim |
| ||
|
|
|
|
|
| ||
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 |
|
ErrorNumber | integer | padrão | Número do erro | Sim |
|
ErrorDescription | char | padrão | Descrição do erro | Sim |
|
ErrorParameters | char | padrão | Parâmetros passados para criar mensagem | Não |
|
ErrorType | char | padrão | Tipo do erro: WARNING: Aviso ERROR: Erro | Sim |
|
ErrorHelp | char | padrão | Texto de ajuda do erro | Sim |
|
ErrorSubType | char | padrão | Sub Tipo da mensagem de erro | Não |
|
Métodos
Quando a API/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 <character>). | |
Descrição | Reposiciona a query com base na chave primária da tabela. DEFINE INPUT PARAMETER pnr-pedido LIKE ped-repres-item.nr-pedido NO-UNDO. DEFINE INPUT PARAMETER pnome-ab-rep LIKE ped-repres-item.nome-ab-rep NO-UNDO. DEFINE INPUT PARAMETER pit-codigo LIKE ped-repres-item.it-codigo NO-UNDO. DEFINE INPUT PARAMETER pnum-seq LIKE ped-repres-item.num-seq NO-UNDO. DEFINE INPUT PARAMETER pcod-refer LIKE ped-repres-item.cod-refer NO-UNDO. DEFINE INPUT PARAMETER pcod-classificador LIKE ped-repres-item.cod-classificador NO-UNDO. | |
| Parâmetros | Descrição |
| pnr-pedido pnome-ab-rep pit-codigo pnum-seq pcod-refer pcod-classificador | Número do Pedido Representante Item do Pedido Sequência do Item no Pedido Referência do Item
Código Classificador |
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 <character>). | |
Descrição | Retorna os campos da chave primária da tabela. | |
| Parâmetros | Descrição |
| pnr-pedido pnome-ab-rep pit-codigo | Número do Pedido Representante Item do Pedido |
| pnum-seq | Sequêcia do Item no Pedido |
| pcod-refer | Referência do Item |
| pcod-classificador | Código classificador |
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. |
OpenQuery / SetConstraint
Definição das Queries (acesso ao banco de dados) e Contraints (regras de leitura) utilizadas para buscar grupos de registros da base de dados.
setConstraintByPedRepresItem
Requisito | Nenhum | |
Sintaxe | run setConstraintByPedRepresItem in h-handle (input <character>, input <character>). | |
Descrição | Carrega a tabela ped-repres-item para openQueryByPedRepresItem. | |
| Parâmetros | Descrição |
| pnr-pedido pnome-ab-rep pit-codigo pnum-seq pcod-refer pcod-classificador | Número do Pedido Representante Item do Pedido Sequência do Item no Pedido Referência do Item Código Classificador |
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. |
setConstraintByPedRepresItem2
Requisito | Nenhum | |
Sintaxe | run setConstraintByPedRepresItem2 in h-handle (input <character>, input <character>). | |
Descrição | Carrega o número do Pedido para openQueryByPedRepresItem2. | |
| Parâmetros | Descrição |
| pnr-pedido | Número do Pedido |
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. |
setConstraintByPedRepresItem3
Requisito | Nenhum | |
Sintaxe | run setConstraintByPedRepresItem3 in h-handle (input <character>, input <character>). | |
Descrição | Carrega variáveis para openQueryByPedRepresItem3. | |
| Parâmetros | Descrição |
| pnr-pedido pit-codigo pnum-seq | Número do Pedido Item do Pedido Sequência do Item no Pedido |
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. |
setConstraintByPedido
Requisito | Nenhum | |
Sintaxe | run setConstraintByPedido in h-handle (input <character>, input <character>). | |
Descrição | Carrega o número do Pedido para openQueryByPedido. | |
| Parâmetros | Descrição |
| pnr-pedido | Número do Pedido |
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. |
openQueryStatic(“Main”)
Requisito | Nenhum |
Sintaxe | run openQueryMain in h-handle. |
Descrição | Busca conjunto de registros da tabela ped-repres-item |
openQueryByPedRepresItem
Requisito | Nenhum |
Sintaxe | run openQueryByPedRepresItem in h-handle. |
Descrição | Busca conjunto de registros da tabela ped-repres-item. |
openQueryByPedRepresItem2
Requisito | Nenhum |
Sintaxe | run openQueryByPedRepresItem2 in h-handle. |
Descrição | Busca conjunto de registros da tabela ped-repres-item. |
openQueryByPedRepresItem3
Requisito | Nenhum |
Sintaxe | run openQueryByPedRepresItem3 in h-handle. |
Descrição | Busca conjunto de registros da tabela ped-repres-item. |
openQueryByPedido
Requisito | Nenhum |
Sintaxe | run openQueryByPedido in h-handle. |
Descrição | Busca conjunto de registros da tabela pedido. |
Método Negócio
PROCEDURE buscaValoresComissaoItemPedido
Descrição | Calcula valores de comissão por representante e item do Pedido. DEFINE INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. DEFINE INPUT PARAM p-it-codigo LIKE ped-item.it-codigo NO-UNDO. DEFINE INPUT PARAM p-cod-refer LIKE ped-item.cod-refer NO-UNDO. DEFINE INPUT PARAM p-sequencia LIKE ped-item.nr-sequencia NO-UNDO. DEFINE INPUT PARAM p-cod-rep LIKE repres.cod-rep NO-UNDO. DEFINE OUTPUT PARAM p-perc-comis LIKE ped-repres-item.perc-comis NO-UNDO. DEFINE OUTPUT PARAM p-perc-comis-emis LIKE ped-repres-item.val-perc-comis-emis NO-UNDO. |
PROCEDURE acumulaRepresPorItem
Descrição | Acumula valores de comissão por representante e item do Pedido. DEFINE INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. DEFINE INPUT PARAM p-it-codigo LIKE ped-item.it-codigo NO-UNDO. DEFINE INPUT PARAM p-cod-refer LIKE ped-item.cod-refer NO-UNDO. DEFINE INPUT PARAM p-sequencia LIKE ped-item.nr-sequencia NO-UNDO. DEFINE INPUT PARAM p-cod-rep LIKE repres.cod-rep NO-UNDO. DEFINE OUTPUT PARAM p-perc-comis LIKE ped-repres-item.perc-comis NO-UNDO. DEFINE OUTPUT PARAM p-perc-comis-emis LIKE ped-repres-item.val-perc-comis-emis NO-UNDO. |
PROCEDURE verificaValorFormula
Descrição | Verifica a fórmula parametrizada para cálculo da base de comissão e retorna a base de comissão por item do pedido. DEF INPUT PARAM p-i-seq-wt-docto AS INTEGER. DEF INPUT-OUTPUT PARAMETER p-valor-item LIKE it-nota-fisc.vl-merc-liq. |
PROCEDURE criaPedRepresItem
Descrição | Cria registro na tabela ped-repres-item. DEFINE INPUT PARAM p-rw-pedido AS ROWID NO-UNDO. DEFINE INPUT PARAM p-it-codigo LIKE ped-item.it-codigo NO-UNDO. DEFINE INPUT PARAM p-nr-sequencia LIKE ped-item.nr-sequencia NO-UNDO. DEFINE INPUT PARAM p-cod-refer LIKE ped-item.cod-refer NO-UNDO. |
PROCEDURE createNewRepresentative
Descrição | Inclui nova representante para o item do Pedido. DEFINE INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. DEFINE INPUT PARAM p-nome-ab-rep LIKE ped-repres.nome-ab-rep NO-UNDO. DEFINE INPUT PARAM p-comis LIKE ped-repres-item.perc-comis NO-UNDO. DEFINE INPUT PARAM p-comis-emis LIKE ped-repres-item.val-perc-comis-emis NO-UNDO. |
PROCEDURE acumulaRepresPorNota
Descrição | Calcula valores de Comissão por Representante e Pedido. DEF INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. |
PROCEDURE criaPedReprePorRepresentante
Descrição | Cria registro na tabela ped-repre. DEF INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. |
PROCEDURE buscaPedReprePorRepresentante
Descrição | Localiza registro na tabela ped-repre. DEF INPUT PARAM p-nr-pedido LIKE ped-venda.nr-pedido NO-UNDO. |
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. |