Produto: | Datasul |
Ocorrência: | Documentação de API |
| Nome Físico | bcp\bcapi001.p |
Objetivo: Gerar os registros de transações de coleta de dados que serão utilizados pelo Módulo de Coleta de Dados.
Considerações Gerais:
- Deve ser passada 2 temp-tables com informações e parâmetros para a criação de transações.
- Todas as temp-tables são passadas como parâmetro através do comando INPUT-OUTPUT, pois além de passar parâmetros, elas retornam informações para o programa chamador.
Temp-table tt-trans: nesta temp-table deverão ser armazenadas todas as informações com relação a transação a ser criada.
TEMP-TABLE TT-PARAM | |||
Atributo | Tipo | Formato | Valor Inicial |
Cod-versao-integracao | Integer | "999" | |
i-sequen | Integer | “999” | |
cd-trans | Character | “x(8)” | |
Conteudo-trans | Raw | ||
Detalhe | Character | “x(60)” | |
Nr-trans | Decimal | “zzzzzzzzz9” | 0 |
Usuario | Character | “x(12)” | |
Atualizada | Logical | “Sim/Não” | |
Temp-table tt-erro: nesta temp-table são armazenados os possíveis erros que ocorreram durante a criação das transações.
TEMP-TABLE TT-ERRO | |||
Atributo | Tipo | Formato | Valor Inicial |
i-sequen | Integer | “999” | |
cd-erro | integer | “>>>>9” | |
Mensagem | character | “x(256)” | |
Esta API pode ser executada de forma persistente ou não
A sintaxe para a chamada da API/BO é:
Chamada da API de forma não Persistente: run bcp/bcapi001.p ( input-output table tt-trans, Chamada da API de forma Persistente: define var h-bcapi001 as handle no-undo. /*chama o programa bcapi001.p persistente*/ |
Execução: O programa bcp/bcapi001.i irá executar basicamente as seguintes validações:
No retorno da execução do bcp/bcapi001.p, será retornado um dos valores abaixo:
NOK: execução com sucesso, porém, algum registro da temp-table está com problema
OK: execução com sucesso
A temp-table tt-erro conterá todos os erros que ocorreram na criação das transações.
OBS.: Quando a chamada da API for de forma Persistente, ao término da execução do programa específico, é necessário implementar a chamada da procedure "piFinalizaAPI", antes de eliminar a instância (handle), para que o programa elimine os handles e libere a licença novamente.
Exemplo:
Corpo programa específico:
define var h-bcapi001 as handle no-undo.
/*chama o programa bcapi001.p persistente*/
run bcp/bcapi001.p PERSISTENT SET h-bcapi001 ( input-output table tt-trans,
input-output table tt-erro).
rotinas especificas...
/*Faz a liberação do consumo de licença*/
RUN piFinalizaAPI in h-bcapi001.
IF VALID-HANDLE(h-bcapi001) THEN
DELETE OBJECT h-bcapi001 NO-ERROR.
fim programa.