Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | sfc/sfapi009 |
Objetivo
Efetuar o Reporte (Apontamento) dos Splits de Operação no módulo Chão de Fábrica.
Principais Características
Esta API pode ser utilizada de duas formas diferentes:
• A primeira forma (forma padrão) é a execução direta (“não-persistente”) da API, passando-se por parâmetro - através das tabelas temporárias (temp-tables) de comunicação da API - os dados a reportar. Neste caso, os dados auxiliares do Reporte são gerados automaticamente (Reservas, MOB, Reciclados, Alocação), não sendo possível sua manipulação.
• A segunda forma de utilização da API é a execução “persistente”. Neste caso, é possível a chamada individual de diversos métodos da API a fim de manipular os dados auxiliares do Reporte. Esta forma de execução é menos prática, porém torna mais flexível a utilização da API, possibilitando o desenvolvimento de interfaces de Reporte customizadas integráveis com o programa de Apontamentos do Chão de Fábrica (SF0308) e Reporte por Dispatch-List (SF0310). Observação: Esta forma de execução da API está disponível para os clientes que possuem o EMS a partir da versão 2.07, e também para os clientes com versões inferiores do produto (a partir da versão 2.04) que possuírem a função “Automação” implantada.
Funcionamento
• Execução Direta
A sintaxe para a execução na modalidade Direta (“não-persistente”) da API é a seguinte:
run sfc/sfapi009.p (input <versao-integracao>, input table tt-import-rep-oper, output table tt-erro). |
Parâmetros | Descrição |
<versao-integracao> | Para os clientes que possuem o EMS 2.04, deve ser informado o valor 204. Para os clientes com EMS 2.05 ou superior, deve ser informado o valor 205. |
tt-import-rep-oper | Temp-table com os dados a reportar. Pode ser passada para a API contendo um ou mais registros, sendo que cada registro representa um Split de Operação a reportar. Mais detalhes sobre a definição da temp-table, obrigatoriedade de campos, etc., estão descritos adiante. |
tt-erro | Temp-table de retorno de erros gerados na execução. |
Esta modalidade de execução da API permite a importação dos Reportes de duas formas diferentes:
- Importação diretamente no Split de Operação, ou seja, importação pelo Split;
- Importação diretamente no Item que se deseja reportar, ou seja, importação pelo item.
Quando é feita a importação pelo Split, a API necessita das seguintes informações:
- Tipo do reporte (deve ser igual a 1);
- Número da ordem;
- Código do roteiro;
- Código da operação;
- Centro de trabalho;
- Item;
- Código da referência, caso o item seja controlado por referência;
- Lote/série, caso o item seja controlado por série ou número de lote;
- Data de validade do lote, caso o item seja controlado número de lote;
- Quantidade produzida;
- Quantidade refugada;
- Quantidade retrabalhada;
- Motivo de refugo;
- Conta e Sub-conta de refugo;
- Data de início do reporte;
- Hora de início do reporte;
- Data fim do reporte;
- Hora fim do reporte;
- Data início de setup, caso o centro de trabalho possua preparação;
- Hora de início de setup, caso o centro de trabalho possua preparação;
- Data fim de setup, caso o centro de trabalho possua preparação;
- Hora fim de setup, caso o centro de trabalho possua preparação;
- Código da equipe, caso o centro de trabalho reporte pela equipe;
- Código do operador, caso o centro de trabalho reporte pelo operador;
- Código da ferramenta, caso o centro de trabalho possua ferramenta cadastrada;
- Finaliza Split - indica se, ao final do reporte, irá finalizar o split/ordem.
Este tipo de reporte funciona de forma semelhante ao reporte do Split de Operação executado no programa SF0303 – Reporte de Produção*, através do botão “Reportar”, no qual o usuário informa os dados necessários para se efetuar o reporte do Split.
Quando for feita a importação pelo Item, a API irá necessitar das seguintes informações:
- Tipo reporte (deve ser igual a 2);
- Número da ordem;
- Centro de trabalho;
- Quantidade produzida.
Este tipo de reporte funciona de forma semelhante ao reporte do Item executado no programa SF0303 – Reporte de Produção*, através do botão “Item”, no qual o usuário informa o item e a quantidade, o programa então procura a primeira ordem aberta para o item e então faz o reporte do item na ordem.
* Observação: Para os clientes que possuem o produto EMS na versão 2.07, e também para os clientes de versões inferiores do produto (a partir da versão 2.04) que possuam a função “Automação” implantada, o programa SF0303 – Reporte de Produção foi substituído pelo programa SF0308 – Apontamentos do Chão de Fábrica.
Exemplo de Utilização com Execução Direta
Neste exemplo, é feito o reporte do Split número 10, da Operação 10, pertencente à Ordem 400.000.146. Estão sendo aprovadas 5 unidades e refugadas 3 unidades.
{sfc/sfapi009.i} /* Temp-table tt-import-rep-oper */ {cdp/cd0666.i} /* Temp-table de erros padrão */ FIND FIRST split-operac NO-LOCK WHERE split-operac.nr-ord-produ = 400000146 AND split-operac.num-operac-sfc = 10 AND split-operac.num-split-operac = 10 NO-ERROR. FIND FIRST ord-prod NO-LOCK WHERE ord-prod.nr-ord-produ = split-operac.nr-ord-produ NO-ERROR. CREATE tt-import-rep-oper. ASSIGN tt-import-rep-oper.tipo-rep = 1 tt-import-rep-oper.nr-ord-produ = split-operac.nr-ord-produ tt-import-rep-oper.num-operac-sfc = split-operac.num-operac-sfc tt-import-rep-oper.num-split-operac = split-operac.num-split-operac tt-import-rep-oper.cod-roteiro = split-operac.cod-roteiro tt-import-rep-oper.op-codigo = split-operac.op-codigo tt-import-rep-oper.cod-ctrab = split-operac.cod-ctrab tt-import-rep-oper.it-codigo = split-operac.it-codigo tt-import-rep-oper.cod-refer = ord-prod.cod-refer tt-import-rep-oper.lote-serie = "" tt-import-rep-oper.dat-valid-lote = 12/31/9999 tt-import-rep-oper.qtd-produzida = 5 tt-import-rep-oper.cod-motiv-refugo = "1.2" tt-import-rep-oper.qtd-refugada = 3 tt-import-rep-oper.qtd-retrabalho = 0 tt-import-rep-oper.ct-refugo = "" tt-import-rep-oper.sc-refugo = "" tt-import-rep-oper.dat-inic-setup = TODAY tt-import-rep-oper.hr-inic-setup = 28800 /*8:00 - em segundos*/ tt-import-rep-oper.dat-fim-setup = TODAY tt-import-rep-oper.hr-fim-setup = 30600 /*8:30 - em segundos*/ tt-import-rep-oper.dat-inic-rep = TODAY tt-import-rep-oper.hr-inic-rep = 30600 /*8:30 - em segundos*/ |
tt-import-rep-oper.dat-fim-rep = TODAY tt-import-rep-oper.hr-fim-rep = 32400 /*9:00 - em segundos*/ tt-import-rep-oper.cod-equipe = "" tt-import-rep-oper.cod-operador = "" tt-import-rep-oper.cod-ferramenta = split-operac.cod-ferr-prod tt-import-rep-oper.finaliza = FALSE tt-import-rep-oper.linha = 1. run sfc/sfapi009.p (input 204, input table tt-import-rep-oper, output table tt-erro). |
• Execução Persistente
A execução da API na modalidade Persistente tem a seguinte sintaxe:
run sfc/sfapi009.p persistent set h-handle(input <versao-integracao>, input table tt-import-rep-oper, output table tt-erro). |
Parâmetros | Descrição |
<versao-integracao> | Para os clientes que possuem o EMS 2.04, deve ser informado o valor 204. Para os clientes com EMS 2.05 ou superior, deve ser informado o valor 205. |
tt-import-rep-oper | Deve ser passada vazia, não é utilizada nesta modalidade de execução. |
tt-erro | Não é utilizada nesta modalidade de execução. |
Esta é a chamada inicial da API, ou seja, a instância da API é feita desta forma. Para que ela proceda os reportes, receba e retorne as informações auxiliares do Reporte, são necessárias chamadas de determinados métodos da mesma, através da variável handle que a representa. O detalhamento da forma de utilização de todos os métodos disponíveis para execução na API, bem como as instruções necessárias e exemplos de utilização dos mesmos, estão dispostos mais adiante.
Além da Inclusão de Reportes, nesta modalidade também é possível Iniciar um Reporte, ou seja, apenas indicar que o reporte de determinado Split de Operação está iniciado, indicando uma data e hora de início para o mesmo. Mais detalhes sobre como iniciar um reporte estão disponíveis na descrição do método iniciaReporte.
Para desenvolver interfaces de Reporte customizadas que se integrem com os programas de Apontamentos do Chão de Fábrica (SF0308) e Reporte por Dispatch-List (SF0310), é necessária a utilização da API nesta modalidade de execução. Mais informações sobre o desenvolvimento de interfaces de reporte customizadas e integráveis estão disponíveis na seção Informações sobre Desenvolvimento de Interfaces Customizadas.
Observação: Esta forma de execução da API está disponível para os clientes que possuem o EMS a partir da versão 2.07, e também para os clientes com versões inferiores do produto (a partir da versão 2.04) que possuírem a função “Automação” implantada.
Tabelas Temporárias
Para comunicação com os métodos da API, as seguintes temp-tables são utilizadas:
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-import-rep-oper | Utilizada para a entrada dos dados a reportar, quando fazendo execução Direta da API. Sua definição está na include sfc/sfapi009.i | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
tipo-rep | integer | Tipo de reporte 1- reporte pelo split , 2 – reporte pelo item | ||
nr-ord-produ | integer | Número da ordem de produção | ||
num-operac-sfc | integer | Número da operação da ordem no SFC (não é necessário informar) | ||
num-split-operac | integer | Número do split da operação (não é necessário informar) | ||
cod-roteiro | character | Código do roteiro | ||
op-codigo | Integer | Código da operação | ||
cod-ctrab | character | Código do centro de trabalho | ||
it-codigo | character | Código do item a ser reportado | ||
cod-refer | character | Código da referência do item |
lote-serie | character | Número do lote ou série do item |
dat-valid-lote | date | Data de validade do lote |
qtd-produzida | decimal | Quantidade produzida/reportada (Aprovada) |
qtd-refugada | decimal | Quantidade refugada |
qtd-retrabalho | decimal | Quantidade retrabalhada |
cod-motiv-refugo | character | Código do motivo de refugo |
Ct-refugo | character | Conta de refugo |
Sc-refugo | Character | Sub Conta de refugo |
dat-inic-rep | date | Data de início do reporte |
hr-inic-rep | decimal | Hora de início do reporte em segundos (quantidade de segundos contada a partir da 00:00 hora da data de início do reporte) |
dat-fim-rep | date | Data de término do reporte |
hr-fim-rep | decimal | Hora de término do reporte em segundos (quantidade de segundos contada a partir da 00:00 hora da data de término do reporte) |
dat-inic-setup | date | Data de início de setup |
hr-inic-setup | decimal | Hora de início de setup em segundos (quantidade de segundos contada a partir da 00:00 hora da data de início de setup) |
dat-fim-setup | date | Data de término de setup |
hr-fim-setup | decimal | Hora de término de setup em segundos (quantidade de segundos contada a partir da 00:00 hora da data de término de setup) |
cod-equipe | character | Código da equipe de produção |
cod-operador | character | Código do operador do centro de trabalho |
cod-ferramenta | character | Código da ferramenta do centro de trabalho |
Num-contador-ini | Integer | Número do contador inicial |
Num-contador-fim | Integer | Número do contador final |
finaliza | logical | Indica se o Split de Operação deve ser finalizado após o reporte ou não |
linha | integer | Número que identifica o registro na temp-table. Utilizado para atribuir os erros gerados na tt-erro aos respectivos Reportes. Útil para quando se usa a API em um programa de importação de Reportes via arquivo de texto, neste caso a linha corresponderia à linha do registro no texto. (Informação não obrigatória) |
erro | logical | Campo utilizado internamente pela API |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-erro | Utilizada como saída padrão dos erros gerados na execução da API. Sua definição está na include cdp/cd0666.i | Saída | ||
Atributo | Tipo | Descrição | ||
i-sequen | integer | Seqüência do erro | ||
cd-erro | integer | Número do erro | ||
mensagem | character | Texto da mensagem de erro |
Tabela Temporária | Descrição | Entrada/Saída | ||
rowErrors | Utilizada como saída alternativa dos erros gerados na execução da API. Sua definição encontra-se na include method/dbotterr.i. Obs.: Somente pode ser utilizada a rowErrors para saída dos erros da API quando fazendo a execução no modo persistente, e mediante o ajuste de um parâmetro específico. Mais detalhes estão descritos no detalhamento do método recebeParametros. | Saída | ||
Atributo | Tipo | Descrição | ||
ErrorSequence | integer | Seqüência do erro | ||
ErrorNumber | integer | Número do erro | ||
ErrorDescription | char | Descrição do erro | ||
ErrorParameters | char | Parâmetros passados para criar mensagem | ||
ErrorType | char | Tipo do erro. WARNING: Aviso; ERROR: Erro | ||
ErrorHelp | char | Texto de ajuda do erro | ||
ErrorSubType | char | Sub Tipo da mensagem de erro |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-param-reporte | Através dela são informados, à API, os parâmetros para execução do Reporte – quando em modo de execução Persistente. Sua definição encontra-se na include sfc/sfapi009.i. Mais detalhes sobre os parâmetros disponíveis na API estão descritos no detalhamento do método recebeParametros. | Entrada | ||
Atributo | Tipo | Descrição | ||
cod-param | character | Código do Parâmetro | ||
des-result-param | character | Valor do Parâmetro, quando se tratar de parâmetro do tipo caractér | ||
log-result-param | logical | Valor do Parâmetro, quando se tratar de parâmetro do tipo lógico | ||
dat-result-param | date | Valor do Parâmetro, quando se tratar de parâmetro do tipo data | ||
dec-result-param | decimal | Valor do Parâmetro, quando se tratar de parâmetro do tipo decimal | ||
rw-result-param | rowid | Valor do Parâmetro, quando se tratar de parâmetro do tipo rowid | ||
handle-result-param | handle | Valor do Parâmetro, quando se tratar de parâmetro do tipo handle |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-reservas | Através desta temp-table, é possível fazer a manipulação das Reservas que serão requisitadas no Reporte. Tal manipulação somente está disponível quando executando em modo Persistente. Sua definição encontra-se na include cpp/cpapi001.i1. Mais detalhes sobre sua utilização estão descritos no detalhamento dos métodos pi-recebe-tt-reservas, pi-retorna-tt-reservas e pi-cria-tt-reservas-alocacoes. | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
proporcao | decimal | |||
log-sem-saldo | logical | |||
nr-ord-produ | integer | Número da Ordem de Produção | ||
cod-refer | character | Código da Referência | ||
it-codigo | character | Código do Item | ||
quant-orig | decimal | Quantidade Original da Reserva | ||
quant-aloc | decimal | |||
quant-atend | decimal | Quantidade Atendida da reserva | ||
quant-calc | decimal | |||
quant-requis | decimal | |||
cod-depos | character | Código do Depósito | ||
cod-localiz | character | Código da localização do material | ||
lote-serie | character | Número do lote ou série do item | ||
dt-vali-lote | date | Data de Validade do lote | ||
un | character | Unidade de Medida | ||
estado | integer | Estado da Reserva. 1 = Ativo; 2 = Inativo | ||
tipo-sobra | integer | Tipo de sobra. 1 = Retorno de Requisição; 2 = Sobra; 3 = Co-produto; 4 = Normal | ||
item-pai | character | Item pai do item da Reserva (na estrutura) | ||
op-codigo | integer | Código da Operação | ||
cod-roteiro | character | Código do Roteiro | ||
veiculo | logical | Indica se componente é veículo na fórmula. Campo disponível somente para clientes com o produto EMS versão 2.5 ou superior. | ||
per-ppm | decimal | Campo disponível somente para clientes com o produto EMS versão 2.5 ou superior. | ||
tipo-formula | integer | Componente para formulação. Campo disponível somente para clientes com o produto EMS versão 2.5 ou superior. | ||
qt-atend-lote | decimal | Quantidade Atendida da Reserva Física. Campo disponível somente para clientes com o produto EMS versão 2.5 ou superior. | ||
processada | logical | |||
rw-reserva | rowid | Rowid do registro na tabela reservas | ||
rw-saldo-estoq | rowid | Rowid do registro na tabela saldo-estoq | ||
tipo-ordem | integer | |||
tempo | integer | |||
tentativas | integer | |||
sequencia | integer | Campo de identificação do registro – seqüencial. |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-aloca | Através desta temp-table, é possível fazer a manipulação das Alocações do Reporte. Tal manipulação somente está disponível quando executando em modo Persistente. Sua definição encontra-se na include cpp/cpapi001.i1. Mais detalhes sobre sua utilização estão descritos no detalhamento dos métodos pi-recebe-tt-aloca, pi-retorna-tt-aloca e pi-cria-tt-reservas-alocacoes. | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
cod-estabel | character | Código do Estabelecimento | ||
it-codigo | character | Código do Item | ||
nr-ord-produ | integer | Número da Ordem de Produção | ||
cod-depos | character | Código do Depósito | ||
cod-localiz | character | Código da localização do material | ||
lote-serie | character | Número do lote ou série do item | ||
quant-aloc | decimal | Quantidade alocada da Reserva | ||
quant-calc | decimal | |||
qt-a-req | decimal | |||
cod-refer | character | Código da referência do item | ||
op-codigo | integer | Código da Operação | ||
cod-roteiro | character | Código do Roteiro | ||
item-pai | character | Item pai do item da Reserva (na estrutura) | ||
un | character | Unidade de medida | ||
dt-vali-lote | date | Data de Validade do lote | ||
rw-aloca-reserva | rowid | Rowid do registro na tabela aloca-reserva | ||
sequencia | integer | Campo de identificação do registro – seqüencial. |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-mat-reciclado | Através desta temp-table, é possível fazer a manipulação dos Materiais Reciclados do Reporte. Tal manipulação somente está disponível quando executando em modo Persistente. Sua definição encontra-se na include cpp/cpapi001.i1. Mais detalhes sobre sua utilização estão descritos no detalhamento dos métodos pi-recebe-tt-mat-reciclado e pi-retorna-tt-mat-reciclado | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
nr-ord-produ | integer | Número da Ordem de Produção | ||
es-codigo | character | Componente da Lista | ||
cod-depos | character | Código do Depósito | ||
cod-localiz | character | Código da Localização | ||
quant-orig | decimal | |||
quant-atend | decimal | |||
quant-requis | decimal | |||
perc-requis | decimal | |||
old-quant | decimal | |||
nro-ord-seq | integer | Campo para uso interno, não deve ser manipulado |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-apont-mob | Através desta temp-table, é possível fazer a manipulação dos apontamentos de Mão-de-Obra (MOB) e Gastos Gerais de Fabricação (GGF) do Reporte. Tal manipulação somente está disponível quando executando em modo Persistente. Sua definição encontra-se na include cpp/cpapi001.i. Mais detalhes sobre sua utilização estão descritos no detalhamento dos métodos pi-recebe-tt-apont-mob, pi-retorna-tt-mob-ggf e geraMobGGFAutomatico | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
nr-ord-produ | integer | Número da Ordem de Produção | ||
tipo-movto | integer | Tipo de Movimento – MOB = 1; GGF = 2 | ||
op-codigo | integer | Código da Operação | ||
cod-roteiro | character | Código do Roteiro | ||
it-codigo | character | Código do Item | ||
cd-mob-dir | character | Código da MOB Direta | ||
gm-codigo | character | Código do Grupo de Máquina | ||
tipo-relogio | integer | Tipo de Relógio. 1 = Horário; 2 = Diferença Horária; 3 = Centesimal; 4 = Dif. Centesimal | ||
hora-ini | integer | Hora de início (somente a hora, sem o minuto) – usado quando tipo-relogio = dif horária (2) | ||
min-ini | integer | Minuto de início – usado quando tipo-relogio = dif horária (2) | ||
hora-fim | integer | Hora de término (somente a hora, sem o minuto) – usado quando tipo-relogio = dif horária (2) | ||
min-fim | integer | Minuto de término – usado quando tipo-relogio = dif horária (2) | ||
centesimal-ini | decimal | Hora de início centesimal – usado quando tipo-relogio = dif centesimal (4) | ||
centesimal-fim | decimal | Hora de término centesimal – usado quando tipo-relogio = dif centesimal (4) | ||
tempo | decimal | Quantidade de horas reportadas. Quando tipo-relogio = 2 ou 4, este campo deve receber a qtd de horas calculada (diferença entre a hora inicial e final), em decimal. Para o tipo-relogio = 3, este campo deve receber a qtd de horas informada pelo usuário (em centesimal). Para o tipo-relogio = 1, deve ser calculada a qtd de horas em centesimal e atribuída a este campo. | ||
minutos-report | integer | Quando o tipo-relogio = 1, este campo deve receber o número referente aos minutos. | ||
referencia | character | Referência | ||
matr-func | integer | Matrícula do Funcionário | ||
nro-ord-seq | integer | Campo para uso interno, não deve ser manipulado |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-ref | Através desta temp-table, é possível fazer a manipulação dos Motivos de Refugo e Retrabalho do Reporte. Tal manipulação somente está disponível quando executando em modo Persistente. Sua definição encontra-se na include sfc/sf0303a.i1. Mais detalhes sobre sua utilização estão descritos no detalhamento dos métodos pi-recebe-tt-ref, pi-retorna-tt-ref e acertaTTRef. | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
line | integer | Campo para uso interno, não deve ser manipulado | ||
rw-split-operac | rowid | Rowid do split-operac que está sendo reportado | ||
nr-ord-prod | integer | Número da Ordem de Produção | ||
cod-motiv-refugo | character | Código do Motivo de Refugo | ||
des-motiv-refugo | character | Descrição do Motivo de Refugo (não é necessário informar) | ||
codigo-rejei | integer | Código da Rejeição de Material | ||
qtd-operac-refgda | decimal | Quantidade Refugada a justificar | ||
qtd-operac-retrab | decimal | Quantidade Retrabalhada a justificar |
Tabela Temporária | Descrição | Entrada/Saída | ||
tt-param-interfac | Utilizada como parâmetro de entrada padrão para as interfaces de Reporte. Assim, no desenvolvimento de interfaces de Reporte customizadas, esta temp-table deverá ser utilizada. Mais detalhes sobre o desenvolvimento de interfaces de reporte customizadas disponíveis na seção “Informações Sobre Desenvolvimento de Interfaces Customizadas“. Encontra-se definida na include sfc/sf0303.i. | Entrada/Saída | ||
Atributo | Tipo | Descrição | ||
cod-param | character | Código do Parâmetro | ||
ind-tip-param | integer | Tipo de Parâmetro. 1 = decimal; 2 = caractér; 3 = lógico; 4 = data; 5 = rowid | ||
val-result-param | decimal | Valor do Parâmetro, quando se tratar de parâmetro do tipo decimal | ||
des-result-param | character | Valor do Parâmetro, quando se tratar de parâmetro do tipo caractér | ||
log-result-param | logical | Valor do Parâmetro, quando se tratar de parâmetro do tipo lógico | ||
dat-result-param | date | Valor do Parâmetro, quando se tratar de parâmetro do tipo data | ||
rw-result-param | rowid | Valor do Parâmetro, quando se tratar de parâmetro do tipo rowid |
Método
Para os clientes que possuem o EMS a partir da versão 2.07, e também para os clientes com versões inferiores do produto (a partir da versão 2.04) que possuírem a função “Automação” implantada, é possível a execução da API de Reporte de Produção na modalidade “Persistente”. Neste caso, é possível manipular os dados auxiliares do reporte através de seus diversos métodos disponíveis.
Desta forma, seguem as instruções para utilização dos métodos disponíveis.
Observação: Quando a API estiver sendo utilizada para Iniciar um Reporte, apenas devem ser utilizados os métodos iniciaReporte e finalizaAPI, descritos no final da seção de Métodos. Todos os demais métodos disponíveis na API deverão ser utilizados somente quando estiver sendo Incluído um Reporte.
- · MÉTODOS DE INICIALIZAÇÃO DA API
São os primeiros métodos que deverão ser invocados na execução da API. Trata-se de métodos de parametrização e geração das informações iniciais do Reporte.
recebeParametros | ||||
Requisito | Nenhum | |||
Obrigatório? | Não | |||
Sintaxe | RUN recebeParametros IN h-handle(INPUT TABLE tt-param-reporte). | |||
Descrição | Recebe uma temp-table populada com os parâmetros para execução da API. É o primeiro método que deve ser chamado, logo após instanciar a API. | |||
Parâmetros | Descrição | |||
tt-param-reporte | Temp-table de parâmetros | |||
Funcionamento | Cada parâmetro que a API recebe corresponde a um registro na temp-table tt-param-reporte. Assim, antes de chamar a procedure recebeParametros, é necessário criar na tt-param-reporte os registros. Cada parâmetro possui um valor padrão. Assim, caso a procedure recebeParametros não seja chamada, ou não seja criado na temp-table um registro relativo a algum dos parâmetros, a API assumirá o valor padrão. Um parâmetro pode ser do tipo Lógico, Caractér, Data, Decimal, Rowid e Handle. Assim, a temp-table de parâmetros tem um campo de cada um destes tipos. Conforme o tipo de parâmetro, deve ser usado o campo do tipo correspondente, conforme a listagem abaixo e o detalhamento da temp-table tt-param-reporte, feito anteriormente. | |||
Retorno | Não há. | |||
Lista de Parâmetros | Cód. Parâmetro l-on-line Tipo: Lógico Valor Default: No Descrição: Quando marcado como Yes, este parâmetro indica que a API está sendo executada on-line. Assim, em algumas situações ela poderá emitir mensagens de pergunta diretamente em tela. Este parâmetro pode ser utilizado com o valor Yes quando a API estiver sendo chamada por uma tela, por exemplo, na qual há um usuário interagindo diretamente com a aplicação. Já em aplicações com execução em batch, este parâmetro deve ter o valor No. Para o caso da execução em batch, nas situações em que a API emitiria perguntas para continuar a execução, as mesmas são “respondidas” automaticamente, mediante parâmetros específicos, que devem ser setados na API previamente. Tais parâmetros estão descritos mais abaixo. Cód. Parâmetro l-gera-rowErrors Tipo: Lógico Valor Default: No Descrição: Quando marcado como Yes, indica que a API também irá gerar os erros na temp-table rowErrors, em paralelo à temp-table de erros padrão (tt-erro). Esta opção é útil quando se está chamando a API a partir de uma interface escrita com thinTemplates, a qual tem como temp-table padrão de erros a rowErrors. _________________________________________________________________________ | |||
| Cód. Parâmetro l-msg-req-manual-continua Tipo: Lógico Valor Default: Yes Descrição: Parâmetro terá efeito, independentemente do parâmetro l-on-line. Nas situações em que a Requisição não poderá ser automática – devido a algum fator específico -, e que o sistema emitiria as perguntas 7401, 7403 ou 7404 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua No = Aborta o processo. Cód. Parâmetro l-msg-termina-com-operac-incompl Tipo: Lógico Valor Default: No Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e l-msg-termina-ordem igual à yes. Caso um destes dois parâmetros esteja diferente, o l-msg-termina-com-operac-incompl ficará como NO. Nas situações em que o sistema perguntaria se o usuário deseja finalizar a Ordem de Produção, mesmo tendo operações em aberto, através da mensagem 17987 (mensagens EMS*), este parâmetro irá “responder” a pergunta, tomando a ação especificada. Yes = Encerra a Ordem No = Não encerra. REGRA FINALIZA COMO Cód. Parâmetro i-regra-finaliza-como Tipo: Inteiro Valor Default: 2 - Perguntando, mas atualizado a partir regra-finaliza-como do SF0101 (Pasta Regra Finalização), e caso exista o registro na tt-param-reporte, ele sobrepõe o valor. Descrição: REGRA FINALIZA COMO indica se irá ou não apresentar pergunta em tela. Quando for 2 - Perguntando, usado apenas l-on-line = YES. Caso l-on-line = NO o tratamento igual ao 1 - Automaticamente. 1 - Automaticamente (indica que sempre vai Finalizar respeitando a parametrização do "Quando" tanto pra quantidade quanto pra nível). 2 - Perguntando (indica que sempre vai Perguntar, respeitando a parametrização do "Quando" tanto pra quantidade quanto pra nível). REGRA FINALIZA QUANDO Quant. Reportada Cód. Parâmetro i-regra-finaliza-quando-quant Tipo: Inteiro Valor Default: 2 - Aprovada mas atualizado a partir regra-finaliza-quando-quant Descrição: Durante o reporte de produção, no Chão de Fábrica, é possível verificar se a quantidade já atingiu a previsão. Esta previsão pode ser comparada com: Quantidade Produzida ou Quantidade Aprovada ou Não Valida. Este parâmetro trabalha em conjunto com REGRA FINALIZA QUANDO Nível (Split, Operação e Ordem de Produção), pois para cada nível, as quantidades previstas podem mudar. 1 - Produzida (Aprovada + Refugada) 2 - Aprovada 3 - Não Valida Quant. Obs.: para a Finalização da Ordem de Produção, quando a quantidade reportada, não consumir a quantidade total da Operação anterior, não será sugerida a Finalização, nem automaticamente, nem perguntando, mesmo que a "Regra Finaliza Quando Quant. Reportada" tenha sido atingida. REGRA FINALIZA QUANDO Nível Cód. Parâmetro l-msg-finaliza-split-operac Tipo: Lógico Valor Default: Yes, mas atualizados a partir l-regra-quando-nivel-split Descrição: Parâmetro terá efeito, independentemente do parâmetro l-on-line. Nas situações em que o sistema perguntaria ao usuário se deseja finalizar o Split de Operação, através das mensagens 32472 e 17989 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Finaliza o Split; No = Não Finaliza. Cód. Parâmetro l-msg-finaliza-operac Tipo: Lógico Valor Default: No, mas atualizados a partir l-regra-quando-nivel-operacao Descrição: Parâmetro terá efeito, independentemente do parâmetro l-on-line. Nas situações em que o sistema perguntaria ao usuário se deseja finalizar a Operação, através das mensagens 32472 e 17989 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Finaliza a Operação; No = Não Finaliza. Cód. Parâmetro l-msg-termina-ordem Tipo: Lógico Valor Default: No, mas atualizado a partir do l-regra-quando-nivel-OP Descrição: Parâmetro terá efeito, independentemente do parâmetro l-on-line. Nas situações em que o sistema perguntaria se o usuário deseja finalizar a Ordem de Produção, através das mensagens 5603 ou 5604 (mensagens EMS*), este parâmetro irá “responder” a pergunta, tomando a ação especificada. Yes = Encerra a Ordem No = Não encerra. | |||
| Cód. Parâmetro l-msg-qtd-menor-rep-ant Tipo: Lógico Valor Default: No Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no. Nas situações em que o reporte da operação anterior possui quantidade inferior ao reporte atual e o sistema emitiria a mensagem 17623 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-reporta-tempo-dif-real Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no. Nas situações em que o tempo reportado difere em mais de 1000% do tempo padrão, e o sistema emitiria a mensagem 18508 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-parada-sobrep-continua Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no. Nas situações em que o período do reporte está sobrepondo uma parada, e o sistema emitiria a mensagem 18011 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-reservas-n-requis-continua Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e a função especial Valida Reporte Sem Requisição** estiver implantada. Nas situações em que há reservas ainda não requisitadas, e o sistema emitiria a mensagem 30025 (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-requisita-saldo-disponivel Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no. Nas situações em que há reservas sem saldo suficiente para atender por completo, e o sistema emitiria a mensagem 32133, perguntando se deseja que seja requisitado para estas reservas apenas o saldo disponível (mensagens EMS*), este parâmetro irá “responder” a pergunta, tomando a ação especificada. Yes = Requisita apenas o saldo disponível; No = Entra na pergunta 32134 (parâmetro a seguir). | |||
| Cód. Parâmetro l-msg-nao-req-sem-saldo-sufic Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no. Nas situações em que há reservas sem saldo suficiente para atender, e o sistema emitiria a mensagem 32134, informando que as reservas sem saldo suficiente não serão requisitadas e perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-sem-reporte-ggf Tipo: Lógico Valor Default: No Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e a função especial Valida Reporte sem GGF** estiver ativa. Nas situações em que não há reporte de GGF informado, e o sistema emitiria a mensagem 30112, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-msg-sem-reporte-mob Tipo: Lógico Valor Default: No Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e a função especial Valida Reporte sem MOB** estiver ativa. Nas situações em que não há reporte de MOB informado, e o sistema emitiria a mensagem 30112, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta o processo. Cód. Parâmetro l-valida-op-anterior Tipo: Lógico Valor Default: Yes Descrição: Indica que irá validar se a operação anterior já foi reportada (mensagem EMS 3414 *) na inicialização da API. Na efetivação do registro, contudo, a validação continuará ocorrendo, independente deste parâmetro. Yes = Valida na inicialização; No = Não valida na inicialização. |
Cód. Parâmetro l-msg-sobrepoe-veiculos Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e quando o Tratamento Concentração/PPM está implantado (a partir da release 2.05 do produto Datasul EMS). Na situação em que o sistema emitiria a mensagem 34081, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta processo. Cód. Parâmetro l-msg-sobrepoe-veiculos Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e quando o Tratamento Concentração/PPM está implantado (a partir da release 2.05 do produto Datasul EMS). Na situação em que o sistema emitiria a mensagem 34081, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta processo. Cód. Parâmetro l-msg-sobrepoe-veiculos Tipo: Lógico Valor Default: Yes Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e quando o Tratamento Concentração/PPM está implantado (a partir da release 2.05 do produto Datasul EMS). Na situação em que o sistema emitiria a mensagem 34081, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta processo. Cód. Parâmetro l-msg-veic-sem-saldo-continua Tipo: Lógico Valor Default: No Descrição: Parâmetro que só terá efeito caso o parâmetro l-on-line seja igual à no e quando o Tratamento Concentração/PPM está implantado (a partir da release 2.05 do produto Datasul EMS). Na situação em que o sistema emitiria a mensagem 34088, perguntando se deseja continuar (mensagens EMS*), este parâmetro irá “responder” a pergunta, conduzindo a continuação do processo. Yes = Continua; No = Aborta processo. Cód. Parâmetro i-baixa-reservas Tipo: Decimal Valor Default: 1 Descrição: Corresponde ao parâmetro “Baixar Reservas”, presente na tela de Parâmetros do Reporte de Operações. 1 = Proporcionalmente à quantidade da ordem; 2 = Até o limite das reservas. |
Cód. Parâmetro l-informa-deposito Tipo: Lógico Valor Default: Yes Descrição: Corresponde ao parâmetro “Informar depósito único de saída de componentes?”, presente na tela de Parâmetros do Reporte de Operações. Cód. Parâmetro l-informa-localizacao Tipo: Lógico Valor Default: No Descrição: Corresponde ao parâmetro “Informar localização para saída de todos componentes?”, presente na tela de Parâmetros do Reporte de Operações. Cód. Parâmetro l-requisicao-automatica Tipo: Lógico Valor Default: No Descrição: Corresponde ao parâmetro “Requisição Automática?”, presente na tela de Parâmetros do Reporte de Operações. Cód. Parâmetro l-busca-saldos Tipo: Lógico Valor Default: No Descrição: Corresponde ao parâmetro “Procura Automática de Saldos?”, presente na tela de Parâmetros do Reporte de Operações. |
* Para consultar as mensagens do EMS, acesse, no menu do módulo, a opção Ajuda -> Visualiza Mensagens -> Datasul EMS.
** Caso deseje maiores informações sobre como adquirir esta Função Especial, favor entrar em contato com o canal de Consultoria em Manufatura, da Datasul.
retornaParametrosDefault | ||
Requisito | Nenhum | |
Obrigatório? | Não | |
Sintaxe | RUN retornaParametrosDefault IN h-handle(OUTPUT TABLE tt-param-reporte). | |
Descrição | Restaura os parâmetros default na API, e retorna a temp-table de parâmetros populada com os parâmetros default. | |
Parâmetros | Descrição | |
tt-param-reporte | Temp-table de parâmetros | |
Retorno | Não há. |
setaRowSplitCtrab | ||
Requisito | Nenhum | |
Obrigatório? | Sim | |
Sintaxe | RUN setaRowSplitCtrab IN h-handle(INPUT <rowid-split-operac>, INPUT <rowid-ctrab>). | |
Descrição | Seta na API o Split de Operação que será reportado, bem como o Centro de Trabalho no qual será feito o reporte. Faz todas as pré-validações do reporte para o Split e Centro de Trabalho indicados, bem como gera os valores iniciais para todos os campos do reporte. | |
Parâmetros | Descrição | |
<rowid-split-operac> | Rowid do registro da tabela split-operac (Split de Operação) que será reportado. | |
<rowid-ctrab> | Rowid do registro da tabela ctrab (Centro de Trabalho) no qual será feito o reporte. | |
Retorno | Após a execução, o RETURN-VALUE será igual a “NOK” caso tenha ocorrido erro nas validações iniciais. Neste caso, para retornar os erros será necessário executar os métodos retornaTTErro ou retornaRowErrors, descritos mais a frente. |
• MÉTODOS DE RETORNO DE INFORMAÇÕES DA API
São métodos que permitem retornar, para o programa chamador da API, as informações nela contidas, com o objetivo de viabilizar a sua manipulação.
retornaValorCampos | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN retornaValorCampos IN h-handle(INPUT <nome-atributo>, OUTPUT <campo-character>, OUTPUT <campo-integer>, OUTPUT <campo-decimal>, OUTPUT <campo-date>). | |
Descrição | Através deste método, é possível retornar os valores atuais de cada atributo do Reporte. Este método é útil para retornar os valores iniciais que a API gerou para o Reporte durante a execução do método setaRowSplitCtrab. | |
Parâmetros | Descrição | |
<nome-atributo> | Nome do atributo que se deseja retornar da API. | |
<campo-character> | Parâmetro que retorna o valor do atributo solicitado, quando se trata de um atributo do tipo character. Confira, na listagem abaixo, o tipo de cada atributo que é possível retornar por este método. | |
<campo-integer> | Parâmetro que retorna o valor do atributo solicitado, quando se trata de um atributo do tipo integer. Confira, na listagem abaixo, o tipo de cada atributo que é possível retornar por este método. | |
<campo-decimal> | Parâmetro que retorna o valor do atributo solicitado, quando se trata de um atributo do tipo decimal. Confira, na listagem abaixo, o tipo de cada atributo que é possível retornar por este método. | |
<campo-date> | Parâmetro que retorna o valor do atributo solicitado, quando se trata de um atributo do tipo date. Confira, na listagem abaixo, o tipo de cada atributo que é possível retornar por este método. | |
Retorno | Nenhum | |
Lista de Atributos | Vide a tabela “LISTA DE ATRIBUTOS COMUNICÁVEIS PELOS MÉTODOS DA API”. Os atributos utilizáveis através deste método são os marcados com “X” na coluna retornaValorCampos. |
pi-retorna-tt-ref | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-retorna-tt-ref IN h-handle(OUTPUT TABLE tt-ref). | |
Descrição | Através deste método, é possível retornar os registros atuais da temp-table de Motivos de Refugo e Retrabalho. Os registros para essa temp-table não são gerados automaticamente na inicialização da API. | |
Parâmetros | Descrição | |
tt-ref | Temp-table de Motivos de Refugo e Retrabalho | |
Retorno | Nenhum |
pi-retorna-tt-aloca | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-retorna-tt-aloca IN h-handle(OUTPUT TABLE tt-aloca). | |
Descrição | Através deste método, é possível retornar os registros atuais da temp-table de Alocação. Os registros iniciais da tt-aloca são gerados automaticamente na inicialização da API (método setaRowSplitCtrab), e podem ser regerados durante a execução do método pi-cria-tt-reservas-alocacoes, que será abordado mais adiante. | |
Parâmetros | Descrição | |
tt-aloca | Temp-table de Alocações | |
Retorno | Nenhum |
pi-retorna-tt-reservas | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-retorna-tt-reservas IN h-handle(OUTPUT TABLE tt-reservas). | |
Descrição | Através deste método, é possível retornar os registros atuais da temp-table de Reservas. Os registros iniciais da tt-reservas são gerados automaticamente na inicialização da API (método setaRowSplitCtrab), e podem ser regerados durante a execução do método pi-cria-tt-reservas-alocacoes, que será abordado mais adiante. | |
Parâmetros | Descrição | |
tt-reservas | Temp-table de Reservas | |
Retorno | Nenhum |
pi-retorna-tt-mat-reciclado | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-retorna-tt-mat-reciclado IN h-handle(OUTPUT TABLE tt-mat-reciclado). | |
Descrição | Através deste método, é possível retornar os registros atuais da temp-table de Materiais Reciclados. Os registros iniciais da tt-mat-reciclado são gerados automaticamente na inicialização da API (método setaRowSplitCtrab), e podem ser regerados durante a execução do método pi-cria-tt-reservas-alocacoes, que será abordado mais adiante. | |
Parâmetros | Descrição | |
tt-mat-reciclado | Temp-table de Materiais Reciclados | |
Retorno | Nenhum |
pi-retorna-tt-mob-ggf | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-retorna-tt-mob-ggf IN h-handle(OUTPUT TABLE tt-apont-mob). | |
Descrição | Através deste método, é possível retornar os registros atuais da temp-table de Apontamentos de MOB e GGF. Os registros iniciais da tt-apont-mob são gerados automaticamente na inicialização da API (método setaRowSplitCtrab), e podem ser regerados durante a execução do método geraMobGgfAutomatico, que será abordado mais adiante. | |
Parâmetros | Descrição | |
tt-apont-mob | Temp-table de Apontamentos de MOB e GGF | |
Retorno | Nenhum |
retornaHiddenSensitive | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN retornaHiddenSensitive IN h-handle(INPUT <nome-campo>, OUTPUT <log-hidden>, OUTPUT <log-sensitive>). | |
Descrição | Este método tem como objetivo retornar se o campo solicitado deverá estar visível e habilitado para modificação pelo usuário. Deve ser utilizado quando se tratar do desenvolvimento de interfaces de Reporte. | |
Parâmetros | Descrição | |
<nome-campo> | Nome do campo do qual se deseja retornar as informações. A listagem dos atributos possíveis de se retornar estas informações encontra-se especificada mais abaixo. | |
<log-hidden> | Retorna um valor lógico indicando se o campo deve ficar escondido (hidden) em tela ou não. | |
<log-sensitive> | Retorna um valor lógico indicando se o campo deve ficar habilitado (sensitive) para edição do usuário ou não. | |
Retorno | Nenhum | |
Lista de Atributos | Vide a tabela “LISTA DE ATRIBUTOS COMUNICÁVEIS PELOS MÉTODOS DA API”. Os atributos utilizáveis através deste método são os marcados com “X” na coluna retornaHiddenSensitive. |
retornaTTErro | ||
Requisito | Nenhum. | |
Obrigatório? | Não | |
Sintaxe | RUN retornaTTErro IN h-handle(OUTPUT TABLE tt-erro). | |
Descrição | Este método tem como objetivo retornar para o programa chamador os erros ocorridos durante o processamento de uma das rotinas da API. | |
Parâmetros | Descrição | |
tt-erro | É a temp-table de erros padrão da API. | |
Retorno | Nenhum |
retornaRowErrors | ||
Requisito | A saída padrão de erros desta API é a temp-table tt-erro. Caso queira que os erros da API também sejam gerados na temp-table rowErrors, será necessário setar o parâmetro l-gera-rowErrors = Yes durante a inicialização da API. | |
Obrigatório? | Não | |
Sintaxe | RUN retornaRowErrors IN h-handle(OUTPUT TABLE rowErrors). | |
Descrição | Este método tem como objetivo retornar para o programa chamador os erros ocorridos durante o processamento de uma das rotinas da API através da temp-table rowErrors. A utilização desta temp-table pode ser útil quando se utilizando esta API a partir de um programa construído com ThinTemplates, os quais tem como temp-table padrão de erros a rowErros. | |
Parâmetros | Descrição | |
rowErrors | É a temp-table de erros padrão da API. | |
Retorno | Nenhum |
• MÉTODOS DE MANIPULAÇÃO DAS INFORMAÇÕES DURANTE EXECUÇÃO
São métodos que executam processamentos específicos de determinadas informações/atributos do Reporte. Devem ser utilizados em conjunto com os “Métodos de Retorno das Informações da API“, conforme as instruções de cada um.
ajustaDataFimSetup | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN ajustaDataFimSetup IN h-handle(INPUT <date-dat-inic-setup>, INPUT <char-hra-inic-setup>, INPUT <decimal-de-tempo-oper>, INPUT <decimal-de-tempo-real-setup>, OUTPUT <date-dat-fim-setup>, OUTPUT <char-hra-fim-setup>, OUTPUT <date-dat-inic-reporte>, OUTPUT <char-hra-inic-rep>, OUTPUT <date-dat-fim-reporte>, OUTPUT <char-hra-fim-rep>). | |
Descrição | Este método tem como objetivo calcular, com base na Data e Hora de Início de Setup e tempos reais de Operação e Setup, a Data e Hora de Término de Setup, e as Datas e Horas de Início e Fim do Reporte. Além de retornar esses valores via parâmetros, os mesmos também ficam armazenados na API, após a execução do método, sendo possível retorná-los, posteriormente, através do método retornaValorCampos. Pode ser utilizado, quando desenvolvendo uma interface de Reporte, no tratamento de leave dos campos de Data e Hora de Início de Setup. | |
Parâmetros | Descrição | |
<date-dat-inic-setup> | Recebe a data de Início de Setup, sobre a qual o cálculo irá se basear | |
<char-hra-inic-setup> | Recebe a Hora de Início de Setup, sobre a qual o cálculo irá se basear. Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-de-tempo-oper> | Recebe o tempo real da Operação. Na inicialização da API, o tempo Padrão da operação pode ser retornado através do método retornaValorCampos. Baseado em uma nova Data e Hora de Término de Operação, também é possível retornar da API um novo tempo de operação Real, através do método ajustaDataInicRep, explicado mais adiante. | |
<decimal-de-tempo-real-setup> | Recebe o tempo real do Setup. Na inicialização da API, o tempo Padrão do Setup pode ser retornado através do método retornaValorCampos, com o atributo de-tempo-real-setup. Baseado em uma nova Data e Hora de Término de Setup, também é possível retornar da API um novo tempo de setup Real, através do método ajustaReportePeloSetup, explicado mais adiante. Caso seja passado o valor ? neste parâmetro, a API utilizará o tempo Real de setup. | |
<date-dat-fim-setup> | Retorna a nova Data de Término de Setup calculada | |
<char-hra-fim-setup> | Retorna a nova Hora de Término de Setup calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<date-dat-inic-reporte> | Retorna a nova Data de Início do Reporte | |
<char-hra-inic-rep> | Retorna a nova Hora de Início do Reporte calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<date-dat-fim-reporte> | Retorna a nova Data de Término do Reporte | |
<char-hra-fim-rep> | Retorna a nova Hora de Término do Reporte calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
Retorno | Nenhum |
ajustaReportePeloSetup | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN ajustaReportePeloSetup IN h-handle (INPUT <date-dat-fim-setup>, INPUT <char-hra-fim-setup>, INPUT <decimal-de-tempo-oper>, OUTPUT <date-dat-inic-reporte>, OUTPUT <char-hra-inic-rep>, OUTPUT <date-dat-fim-reporte>, OUTPUT <char-hra-fim-rep>, OUTPUT <decimal-de-tempo-real-setup>). | |
Descrição | Este método tem como objetivo calcular, com base na Data e Hora de Término de Setup e tempo real de Operação, as Datas e Horas de Início e Fim do Reporte, e o tempo Real de Setup. Além de retornar esses valores via parâmetros, os mesmos também ficam armazenados na API, após a execução do método, sendo possível retorná-los, posteriormente, através do método retornaValorCampos. Pode ser utilizado, quando desenvolvendo uma interface de Reporte, no tratamento de leave dos campos de Data e Hora de Término de Setup. | |
Parâmetros | Descrição | |
<date-dat-fim-setup> | Recebe a data de Término de Setup, sobre a qual o cálculo irá se basear | |
<char-hra-fim-setup> | Recebe a Hora de Término de Setup, sobre a qual o cálculo irá se basear. Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-de-tempo-oper> | Recebe o tempo real da Operação. Na inicialização da API, o tempo Padrão da operação pode ser retornado através do método retornaValorCampos. Baseado em uma nova Data e Hora de Término de Operação, também é possível retornar da API um novo tempo de operação Real, através do método ajustaDataInicRep, explicado mais adiante. | |
<date-dat-inic-reporte> | Retorna a nova Data de Início do Reporte | |
<char-hra-inic-rep> | Retorna a nova Hora de Início do Reporte calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<date-dat-fim-reporte> | Retorna a nova Data de Término do Reporte | |
<char-hra-fim-rep> | Retorna a nova Hora de Término do Reporte calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-de-tempo-real-setup> | Retorna o tempo Real de Setup calculado. | |
Retorno | Nenhum |
ajustaDataFimRep | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN ajustaDataFimRep IN h-handle (INPUT <date-dat-inic-reporte>, INPUT <char-hra-inic-rep>, INPUT <decimal-de-tempo-oper>, OUTPUT <date-dat-fim-reporte>, OUTPUT <char-hra-fim-rep>). | |
Descrição | Este método tem como objetivo calcular, com base na Data e Hora de Início de Reporte e tempo real de Operação, a Data e Hora de Término do Reporte. Além de retornar esses valores via parâmetros, os mesmos também ficam armazenados na API, após a execução do método, sendo possível retorná-los, posteriormente, através do método retornaValorCampos. Pode ser utilizado, quando desenvolvendo uma interface de Reporte, no tratamento de leave dos campos de Data e Hora de Início do Reporte. | |
Parâmetros | Descrição | |
<date-dat-inic-reporte> | Recebe a data de Término de Setup, sobre a qual o cálculo irá se basear | |
<char-hra-inic-rep> | Recebe a Hora de Início do Reporte, sobre a qual o cálculo irá se basear (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-de-tempo-oper> | Recebe o tempo real da Operação. Na inicialização da API, o tempo Padrão da operação pode ser retornado através do método retornaValorCampos. Baseado em uma nova Data e Hora de Término de Operação, também é possível retornar da API um novo tempo de operação Real, através do método ajustaDataInicRep, explicado mais adiante. | |
<date-dat-fim-reporte> | Retorna a nova Data de Término do Reporte | |
<char-hra-fim-rep> | Retorna a nova Hora de Término do Reporte calculada (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
Retorno | Nenhum |
ajustaDataInicRep | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN ajustaDataFimRep IN h-handle (INPUT-OUTPUT <date-dat-fim-reporte>, INPUT-OUTPUT <char-hra-fim-rep>, INPUT <decimal-qtd-total>, INPUT-OUTPUT <date-dat-inic-reporte>, INPUT-OUTPUT <char-hra-inic-rep>, OUTPUT <decimal-de-tempo-oper>). | |
Descrição | Este método tem como objetivo calcular, com base na Data e Hora de Término de Reporte e na Quantidade Total reportada, a Data e Hora de Início do Reporte e o Tempo Real de Operação. Além de retornar esses valores via parâmetros, os mesmos também ficam armazenados na API, após a execução do método, sendo possível retorná-los, posteriormente, através do método retornaValorCampos. Pode ser utilizado, quando desenvolvendo uma interface de Reporte, no tratamento de leave dos campos de Data e Hora de Término do Reporte. | |
Parâmetros | Descrição | |
<date-dat-fim-reporte> | Recebe a data de Término de Reporte, sobre a qual o cálculo irá se basear | |
<char-hra-fim-rep> | Recebe a Hora de Término do Reporte, sobre a qual o cálculo irá se basear (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-qtd-total> | Recebe a quantidade Total reportada (Quantidade Aprovada + Quantidade Refugada), que será utilizada para o cálculo do Tempo Real da operação, quando o tratamento de Tempo da Operação – setado no Grupo de Máquina ao qual o Centro de Trabalho pertence – for Proporcional. Na inicialização da API, a Qtd Total pode ser retornada através do método retornaValorCampos. | |
<date-dat-inic-reporte> | Caso neste parâmetro seja passado o valor ?, a API irá calcular o valor da Data de Início do Reporte e retornará pelo mesmo, baseado no tempo de Operação já setado na API previamente. Caso seja setado algum valor neste ponto, o mesmo será utilizado para calcular o tempo real da Operação. | |
<char-hra-inic-rep> | Recebe/Retorna a Hora de Início do Reporte. Este valor será utilizado sob os mesmos critérios do campo <date-dat-inic-reporte>. (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-de-tempo-oper> | Retorna o tempo real calculado para a Operação. | |
Retorno | Nenhum |
ajustaTempoPelaQtd | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Caso o usuário tenha indicado uma Ferramenta para o reporte, a mesma deverá ser setada na API antes da execução deste método, através do método recebeValorCampos. | |
Obrigatório? | Não | |
Sintaxe | RUN ajustaTempoPelaQtd IN h-handle(INPUT <date-dat-inic-reporte>, INPUT <char-hra-inic-rep>, INPUT-OUTPUT <date-dat-fim-reporte>, INPUT-OUTPUT <char-hra-fim-rep>, INPUT <decimal-qtd-total>, OUTPUT <decimal-de-tempo-oper>). | |
Descrição | Este método tem como objetivo calcular, com base na Data e Hora de Início de Reporte e na Quantidade Total reportada, a Data e Hora de Término do Reporte e o Tempo Padrão da Operação, considerando a forma de tratamento de tempo do Grupo de Máquina. Além de retornar esses valores via parâmetros, os mesmos também ficam armazenados na API, após a execução do método, sendo possível retorná-los, posteriormente, através do método retornaValorCampos. Pode ser utilizado, quando desenvolvendo uma interface de Reporte, no tratamento de leave dos campos de Quantidade Aprovada e Refugada. | |
Parâmetros | Descrição | |
<date-dat-inic-reporte> | Recebe a Data de Início de Reporte, sobre a qual o cálculo irá se basear | |
<char-hra-inic-rep> | Recebe a Hora de Início do Reporte, sobre a qual o cálculo irá se basear (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<date-dat-fim-reporte> | Retorna a Data Final calculada, considerando o tratamento de tempo do Grupo de Máquina. | |
<char-hra-fim-rep> | Retorna a Hora de Término do Reporte, sob os mesmos critérios do campo <date-dat-fim-reporte>. (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<decimal-qtd-total> | Recebe a quantidade Total reportada (Quantidade Aprovada + Quantidade Refugada), que será utilizada para o cálculo do Tempo Real da operação, quando o tratamento de Tempo da Operação – setado no Grupo de Máquina ao qual o Centro de Trabalho pertence – for Proporcional. Na inicialização da API, a Qtd Total pode ser retornada através do método retornaValorCampos. | |
<decimal-de-tempo-oper> | Retorna o tempo padrão da Operação, considerando o tratamento de tempo do GM. | |
Retorno | Nenhum |
geraMobGGFAutomatico | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | É necessário chamar este método, quando se manipular um dos seguintes atributos: cod-mob, dat-inic-reporte, hra-inic-rep, dat-fim-reporte, hra-fim-rep. O método deve ser chamado após setar uma dessas informações na API através do método recebeValorCampos, explicado mais adiante. |
Sintaxe | RUN geraMobGGFAutomatico IN h-handle. |
Descrição | O objetivo deste método é a geração automática dos registros iniciais de apontamento de MOB e GGF referentes ao Reporte de Operação em andamento. Este método já é executado automaticamente na inicialização da API. Entretanto, ao modificar um dos atributos listados no quesito “Obrigatório?”, é necessário executar este método novamente, pois tal modificação pode demandar uma nova geração dos registros iniciais de MOB e GGF. Sua chamada pode ser feita, quando se está desenvolvendo uma interface de Reporte, nas triggers de leave dos atributos listados no quesito “Obrigatório?”. |
Retorno | Quando a execução deste método realmente regerar os registros de apontamentos de MOB e GGF, o RETURN-VALUE será igual a “Yes”. Neste caso, poderá ser executado o método pi-retorna-tt-mob-ggf logo a seguir para retornar a temp-table tt-apont-mob atualizada. |
pi-cria-tt-reservas-alocacoes | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | É necessário chamar este método, quando se manipular um dos seguintes atributos: qtd-aprov, qtd-refgda, cod-depos, cod-localiz, dat-fim-reporte. O método deve ser chamado após setar uma dessas informações na API através do método recebeValorCampos, explicado mais adiante. |
Sintaxe | RUN pi-cria-tt-reservas-alocacoes IN h-handle. |
Descrição | O objetivo deste método é a geração automática dos registros iniciais das Alocações, Reservas e Materiais Reciclados referentes ao Reporte de Operação em andamento. Este método já é executado automaticamente na inicialização da API. Entretanto, ao modificar um dos atributos listados no quesito “Obrigatório?”, é necessário executar este método novamente, pois tal modificação pode demandar uma nova geração dos registros iniciais das referidas informações. Sua chamada pode ser feita, quando se está desenvolvendo uma interface de Reporte, nas triggers de leave dos atributos listados no quesito “Obrigatório?”. |
Retorno | Quando a execução deste método realmente regerar os registros de Alocações, Reservas e/ou Materiais Reciclados, o RETURN-VALUE será igual a “Yes”. Neste caso, poderão ser executados os métodos pi-retorna-tt-aloca, pi-retorna-tt-reservas e pi-retorna-tt-mat-reciclado logo a seguir a fim de retornar as temp-tables atualizadas. |
estadoEnableDtValid | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | É necessário chamar este método, quando se manipular o atributo lote-acab. O método deve ser chamado após setar esta informação na API através do método recebeValorCampos, explicado mais adiante. |
Sintaxe | RUN estadoEnableDtValid IN h-handle. |
Descrição | O objetivo deste método é verificar se há Saldo de Estoque para o item do Split de Operação que está sendo reportado com valor do atributo lote-acab informado. Caso já exista, o atributo dt-valid-lote é automaticamente setado para a data de validade do lote já existente, e o estado sensitive do atributo dt-valid-lote é modificado para No. Assim, sua chamada deve ser feita sempre que o atributo lote-acab for modificado. |
Retorno | Nenhum. Entretanto, após a execução do método é necessário retornar da API o valor do atributo dt-valid-lote através do método retornaValorCampos, bem como o estado de sensitive do referido campo, através do método retornaHiddenSensitive (quando se tratar do desenvolvimento de uma interface que use a API). |
estadoEnableLeaveRefgda | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | É necessário chamar este método, quando se manipular o atributo qtd-refgda. O método deve ser chamado após setar esta informação na API através do método recebeValorCampos, explicado mais adiante. |
Sintaxe | RUN estadoEnableLeaveRefgda IN h-handle. |
Descrição | O objetivo deste método é retornar as informações padrões e estados de sensitive e hidden dos atributos ct-refugo, dep-refugo e loc-refugo, que podem ter seus valores modificados devido à edição do atributo qtd-refgda. Assim, sua chamada deve ser feita sempre que o atributo qtd-refgda for modificado. |
Retorno | Nenhum. Entretanto, após a execução do método é necessário retornar da API os valores dos atributos ct-refugo, dep-refugo e loc-refugo, através do método retornaValorCampos; bem como os estados de sensitive e hidden dos referidos campos, através do método retornaHiddenSensitive (quando se tratar do desenvolvimento de uma interface que use a API). |
chamaTelaModifReserva | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Estar fazendo uma execução on-line (parâmetro l-on-line igual à Yes). | |
Obrigatório? | Não. | |
Sintaxe | RUN chamaTelaModifReserva IN h-handle. | |
Descrição | Este método tem como objetivo fazer a chamada para a Interface de Manipulação das Reservas do Reporte. A partir da realease 2.05 se no programa Parâmetros Controle Produção o parâmetro Interface Manut. Reservas (Reporte) estiver marcado com Detalhada, este método irá fazer a chamada para a Manutenção Baixa Reservas Detalhada (CP0337). Caso contrário, chamará a interface CP0320B. Como se trata da chamada de uma interface propriamente dita, é necessário que a execução seja on-line para o uso deste método. | |
Funcionamento | Antes de chamar o método chamaTelaModifReserva, é necessário executar primeiramente o método pi-recebe-tt-reservas, a fim de atualizar os registros das Reservas na API. Deve também ser utilizado o método reposicionaReserva para posicionar a API no registro da tt-reservas que se deseja manipular. | |
Retorno | Caso o usuário cancele o processo na tela de modificação das Reservas, o método trará o RETURN-VALUE igual a “NOK”. Caso o RETURN-VALUE seja diferente de “NOK”, deverá ser chamado o método pi-retorna-tt-reservas para retornar da API os registros das Reservas já manipulados. Além disso, também deverão ser chamados os métodos pi-retorna-tt-mat-reciclado e pi-retorna-tt-aloca, pois a manipulação das Reservas, em alguns casos, pode ocasionar na modificação automática dos dados correspondentes a algum destes métodos. |
efetivaAlternativoReserva | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN efetivaAlternativoReserva IN h-handle(INPUT <rowid-reserva>). | |
Descrição | Este método tem como objetivo validar a substituição de uma Reserva por seu Alternativo, e efetivar esta substituição na temp-table de reservas (tt-reservas). É um método útil para quando se desenvolver rotinas de Reporte em batch, nas quais não é possível o uso do método chamaTelaAlternatReserva, já explicada anteriormente. | |
Parâmetros | Descrição | |
<rowid-reserva> | Recebe o Rowid do registro da tabela reserva correspondente a Reserva Alternativa que será utilizada na substituição. | |
Funcionamento | Antes de chamar o método efetivaAlternativoReserva, é necessário executar primeiramente o método pi-recebe-tt-reservas, a fim de atualizar os registros das Reservas na API. Deve também ser utilizado o método reposicionaReserva para posicionar a API no registro da tt-reservas que se deseja manipular. Além disso, também é necessário setar na API os valores atuais dos atributos qtd-aprov e qtd-refgda, através do método recebeValorCampos, que é explicado mais adiante. | |
Retorno | Caso o RETURN-VALUE seja igual a “NOK”, deverão ser retornados os erros da API através de um dos seguintes métodos: métodos: retornaTTErro ou retornaRowErrors. Caso o RETURN-VALUE seja diferente de “NOK”, significa que o processo foi feito com sucesso, então é necessário executar o método pi-retorna-tt-reservas para retornar da API os registros das Reservas já manipulados. |
reposicionaReserva | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN reposicionaReserva IN h-handle(INPUT <integer-nr-ord-produ>, INPUT <integer-sequencia>). | |
Descrição | Este método tem como objetivo reposicionar a temp-table tt-reservas dentro da API, de acordo com a chave passada através dos parâmetros. | |
Parâmetros | Descrição | |
<integer-nr-ord-produ> | Recebe o número da Ordem de Produção que está sendo reportada. | |
<integer-sequencia> | Recebe o campo sequencia da temp-table tt-reservas, utilizado na identificação do registro. | |
Retorno | Caso o RETURN-VALUE seja igual a “NOK”, significa que o registro não foi encontrado. Caso contrário, o mesmo terá sido reposicionado com sucesso. |
reposicionaTTMatRecicl | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN reposicionaTTMatRecicl IN h-handle(INPUT <integer-nr-ord-produ>, INPUT <integer-nro-ord-seq>, INPUT <character-es-codigo>). | |
Descrição | Este método tem como objetivo reposicionar a temp-table tt-mat-reciclado dentro da API, de acordo com a chave passada através dos parâmetros. | |
Parâmetros | Descrição | |
<integer-nr-ord-produ> | Recebe o número da Ordem de Produção que está sendo reportada. | |
<integer-nro-ord-seq> | Recebe o campo nro-ord-seq da temp-table tt-reservas, utilizado na identificação do registro. | |
<character-es-codigo> | Recebe o campo es-codigo da temp-table tt-reservas, utilizado na identificação do registro. | |
Retorno | Caso o RETURN-VALUE seja igual a “NOK”, significa que o registro não foi encontrado. Caso contrário, o mesmo terá sido reposicionado com sucesso. |
chamaTelaInclusaoMobGGF | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Estar fazendo uma execução on-line (parâmetro l-on-line igual à Yes). |
Obrigatório? | Não |
Sintaxe | RUN chamaTelaInclusaoMobGGF IN h-handle. |
Descrição | Este método tem como objetivo fazer a chamada para a Interface de Inclusão de Apontamento de MOB e GGF, e efetivar o mesmo na temp-table tt-apont-mob. Como se trata da chamada de uma interface propriamente dita, é necessário que a execução seja on-line para o uso deste método. |
Funcionamento | Antes de chamar o método chamaTelaInclusaoMobGGF, é necessário executar o método pi-recebe-tt-mob-ggf, a fim de atualizar os registros na API. |
Retorno | Não há. Entretanto, é necessário, após a execução do método, executar o método pi-retorna-tt-mob-ggf, a fim de retornar a temp-table já com o novo registro. |
chamaTelaModifMobGGF | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Estar fazendo uma execução on-line (parâmetro l-on-line igual à Yes). | |
Obrigatório? | Não | |
Sintaxe | RUN chamaTelaModifMobGGF IN h-handle(INPUT <raw-tt-apont-mob>). | |
Descrição | Este método tem como objetivo fazer a chamada para a Interface de Modificação de Apontamento de MOB e GGF, e efetivar o mesmo na temp-table tt-apont-mob. Como se trata da chamada de uma interface propriamente dita, é necessário que a execução seja on-line para o uso deste método. | |
Parâmetros | Descrição | |
<raw-tt-apont-mob> | Recebe como parâmetro uma variável do tipo raw contendo o registro da tt-apont-mob que se deseja modificar. Mais informações sobre como converter um registro de uma temp-table para o tipo raw, favor verificar o comando raw-transfer no Help do Progress. | |
Funcionamento | Antes de chamar este método, é necessário proceder da seguinte forma: Definir uma variável do tipo raw, e gravar o registro que se deseja modificar nesta variável. Deletar o mesmo registro da temp-table tt-apont-mob. Passar a temp-table para a API já com esse registro excluído, através do método pi-recebe-tt-mob-ggf, que é explicado mais a seguir. Finalmente, chamar o método chamaTelaModifMobGGF, passando por parâmetro a variável raw definida no passo anterior. | |
Retorno | Não há. Entretanto, é necessário, após a execução do método, executar o método pi-retorna-tt-mob-ggf, a fim de retornar a temp-table já com o registro modificado. |
chamaTelaModifAlocacao | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Estar fazendo uma execução on-line (parâmetro l-on-line igual à Yes). | |
Obrigatório? | Não | |
Sintaxe | RUN chamaTelaModifAlocacao IN h-handle(INPUT <integer-nr-ord-produ>, INPUT <integer-sequencia>). | |
Descrição | Este método tem como objetivo fazer a chamada para a Interface de Modificação da Alocação, e efetivar o mesmo na temp-table tt-aloca. Como se trata da chamada de uma interface propriamente dita, é necessário que a execução seja on-line para o uso deste método. A partir da release 2.05 do EMS, caso esteja parametrizado nos parâmetros da Produção para utilização da interface simplificada de Requisição em Reporte, então será chamada a tela CP0320D. Caso contrário, será chamada a tela de Manutenção Detalhada de Requisição (CP0337). | |
Parâmetros | Descrição | |
<integer-nr-ord-produ> | Recebe o número da ordem de produção que está sendo reportada | |
<integer-sequencia> | Recebe o campo de identificação sequencia, da temp-table tt-aloca, do registro que se deseja modificar. | |
Funcionamento | Antes de chamar este método, é necessário executar o método pi-recebe-tt-aloca para atualizar os registros das alocações na API. | |
Retorno | Caso o RETURN-VALUE após a execução seja igual a “OK”, significa que o usuário concluiu a execução do processo, ou seja, não cancelou. Neste caso, é necessário retornar da API a temp-table tt-aloca com os registros atualizados, através do método pi-retorna-tt-aloca. |
balanceamentoVeiculos | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. Disponível a partir da release 2.05 do produto EMS, para clientes que possuírem a função Controle Concentração/PPM implantada. |
Obrigatório? | Não. Caso o parâmetro l-busca-saldos tenha sido setado igual a Yes, então o sistema efetuará o balanceamento automaticamente, não sendo necessário chamar este método. Porém, caso o mesmo esteja setado igual a No, e este método não seja chamado antes da confirmação dos dados do reporte, então os veículos não serão balanceados. |
Sintaxe | RUN balanceamentoVeiculos IN h-handle. |
Descrição | Consiste em distribuir a quantidade de variação existente no(s) componente(s) com tipo de formulação Concentração ou PPM, entre um ou mais veículo(s)/excipiente(s). % (Distribuição do Ajuste) – Em situações de ajuste e existência de mais veículos na fórmula, o sistema fará o ajuste proporcional este percentual. Este campo percentual de distribuição do ajuste será utilizado para resolver o balanceamento na existência de mais de um veículo / excipiente. |
Retorno | Após a execução, o RETURN-VALUE será igual a “NOK” caso tenha ocorrido erro no balanceamento. Neste caso, para retornar os erros será necessário executar os métodos retornaTTErro ou retornaRowErrors, descritos mais a frente. |
- MÉTODOS DE PRÉ-VALIDAÇÃO DE INFORMAÇÕES
São métodos que permitem validar certas informações do Reporte antes da efetivação final da transação. Todas as validações contidas nestes métodos são executadas automaticamente na efetivação do Reporte (método processaReporte).
validaRefugo | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | É importante executar este método toda vez que se criar ou modificar um registro de Motivo de Refugo e Retrabalho (temp-table tt-ref). | |
Sintaxe | RUN validaRefugo IN h-handle (INPUT <char-cod-motiv-refugo>). | |
Descrição | Efetua a validação de um determinado registro de Motivo de Refugo. | |
Parâmetros | Descrição | |
<char-cod-motiv-refugo> | Recebe o Código do Motivo de Refugo que se deseja validar. | |
Funcionamento | Antes de executar este método, é necessário passar para a API a temp-table tt-ref atualizada, através do método pi-recebe-tt-ref, que é explicado mais a frente. É necessário também setar na API os valores atualizados dos atributos qtd-refgda e qtd-retrab, através do método recebeValorCampo, que é explicado mais adiante. | |
Retorno | Quando é gerado algum erro na execução das Validações, o RETURN-VALUE é retornado igual a “NOK”. Neste caso, os erros deverão ser retornados da API através de um dos seguintes métodos: retornaRowErrors ou retornaTTErro. |
verificaSaldoReservas | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | Não |
Sintaxe | RUN verificaSaldoReservas IN h-handle. |
Descrição | Verifica se há saldo disponível em estoque para todas as reservas do reporte. |
Funcionamento | Antes de executar este método, é necessário passar para a API a temp-table tt-reservas atualizada, através do método pi-recebe-tt-reservas, que é explicado mais a frente. Após a execução do método verificaSaldoReserva, a temp-table de reservas deve ser retornada para o programa chamador, através do método pi-retorna-tt-reservas. |
Retorno | Não há. Como explicado no tópico anterior, a temp-table tt-reservas deve ser retornada através do método pi-retorna-tt-reserva após a execução. Assim, os registros da tt-reservas que retornarem com o campo log-sem-saldo = yes estarão atrasados. |
validaAlternativoReserva | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN validaAlternativoReserva IN h-handle(INPUT <rowid-reserva>). | |
Descrição | Este método tem como objetivo validar a Reserva quanto à existência de Alternativos para substituí-la. Esta mesma validação já é chamada automaticamente ao utilizar os métodos chamaTelaAlternatReserva e efetivaAlternativoReserva. | |
Parâmetros | Descrição | |
<rowid-reserva> | Recebe o Rowid do registro da tabela reserva que se deseja validar. | |
Retorno | Caso o RETURN-VALUE seja igual a “NOK”, deverão ser retornados os erros da API através de um dos seguintes métodos: métodos: retornaTTErro ou retornaRowErrors. Caso contrário, significa que não há problemas em substituir a reserva por um alternativo. |
validaMatReciclado | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | É importante executar este método toda vez que se modificar um registro de Material Reciclado (temp-table tt-mat-reciclado). |
Sintaxe | RUN validaMatReciclado IN h-handle. |
Descrição | Efetua a validação de um determinado registro de Material Reciclado. |
Funcionamento | Antes de executar este método, é necessário passar para a API a temp-table tt-mat-reciclado atualizada, através do método pi-recebe-tt-mat-reciclado, que é explicado mais a frente. É necessário também reposicionar o registro da temp-table tt-mat-reciclado dentro da API através do método reposicionaTTMatRecicl. |
Retorno | Quando é gerado algum erro na execução das Validações, o RETURN-VALUE é retornado igual a “NOK”. Neste caso, os erros deverão ser retornados da API através de um dos seguintes métodos: retornaRowErrors ou retornaTTErro. Caso o RETURN-VALUE seja igual a “OK”, significa que a execução foi feita com sucesso; em algumas situações, alguns dos dados auxiliares do Reporte são ajustados em função destas validações, logo, é necessário executar os seguintes métodos para retornar os valores atualizados: pi-retorna-tt-mat-reciclado, pi-retorna-tt-aloca e pi-retorna-tt-reservas. |
validaReporte | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | Não |
Sintaxe | RUN validaReporte IN h-handle. |
Descrição | Efetua a validação completa do Reporte. Esta validação é executada automaticamente na efetivação do reporte. |
Retorno | Quando é gerado algum erro na validação, o RETURN-VALUE é retornado igual a “NOK”. Neste caso, os erros deverão ser retornados da API através de um dos seguintes métodos: retornaRowErrors ou retornaTTErro. |
• MÉTODOS DE ATUALIZAÇÃO DAS INFORMAÇÕES DA API
São métodos que permitem setar na API os valores de todos os atributos e informações auxiliares do Reporte. Estes métodos são utilizados em conjunto com os métodos de Manipulação das Informações, validação, e de efetivação do Reporte.
recebeValorCampos | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN recebeValorCampos IN h-handle (INPUT <nome-atributo>, INPUT <campo-character>, INPUT <campo-integer>, INPUT <campo-decimal>, INPUT <campo-date>). | |
Descrição | É através deste método que são setados os valores de cada atributo do Reporte. | |
Parâmetros | Descrição | |
<nome-atributo> | Nome do atributo que se deseja retornar da API. | |
<campo-character> | Parâmetro que recebe o valor do atributo solicitado, quando se trata de um atributo do tipo character. Confira, na listagem abaixo, o tipo de cada atributo que é possível setar por este método. | |
<campo-integer> | Parâmetro que recebe o valor do atributo solicitado, quando se trata de um atributo do tipo integer. Confira, na listagem abaixo, o tipo de cada atributo que é possível setar por este método. | |
<campo-decimal> | Parâmetro que recebe o valor do atributo solicitado, quando se trata de um atributo do tipo decimal. Confira, na listagem abaixo, o tipo de cada atributo que é possível setar por este método. | |
<campo-date> | Parâmetro que recebe o valor do atributo solicitado, quando se trata de um atributo do tipo date. Confira, na listagem abaixo, o tipo de cada atributo que é possível setar por este método. | |
Retorno | Nenhum | |
Lista de Atributos | Vide a tabela “LISTA DE ATRIBUTOS COMUNICÁVEIS PELOS MÉTODOS DA API”. Os atributos utilizáveis através deste método são os marcados com “X” na coluna recebeValorCampos. |
pi-recebe-tt-ref | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-recebe-tt-ref IN h-handle(INPUT TABLE tt-ref). | |
Descrição | Através deste método, é possível setar na API os registros da temp-table de Motivos de Refugo e Retrabalho. | |
Parâmetros | Descrição | |
tt-ref | Temp-table de Motivos de Refugo e Retrabalho | |
Retorno | Nenhum |
pi-recebe-tt-aloca | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-recebe-tt-aloca IN h-handle(INPUT TABLE tt-aloca). | |
Descrição | Através deste método, é possível setar na API os registros da temp-table de Alocação. | |
Parâmetros | Descrição | |
tt-aloca | Temp-table de Alocações | |
Retorno | Nenhum |
pi-recebe-tt-reservas | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-recebe-tt-reservas IN h-handle(INPUT TABLE tt-reservas). | |
Descrição | Através deste método, é possível setar na API os registros da temp-table de Reservas. | |
Parâmetros | Descrição | |
tt-reservas | Temp-table de Reservas | |
Retorno | Nenhum |
pi-recebe-tt-mat-reciclado | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-recebe-tt-mat-reciclado IN h-handle(INPUT TABLE tt-mat-reciclado). | |
Descrição | Através deste método, é possível setar na API os registros da temp-table de Materiais Reciclados. | |
Parâmetros | Descrição | |
tt-mat-reciclado | Temp-table de Materiais Reciclados | |
Retorno | Nenhum |
pi-recebe-tt-mob-ggf | ||
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. | |
Obrigatório? | Não | |
Sintaxe | RUN pi-recebe-tt-mob-ggf IN h-handle(INPUT TABLE tt-apont-mob). | |
Descrição | Através deste método, é possível setar na API os registros da temp-table de Apontamentos de MOB e GGF. | |
Parâmetros | Descrição | |
tt-apont-mob | Temp-table de Apontamentos de MOB e GGF | |
Retorno | Nenhum |
• MÉTODOS DE EFETIVAÇÃO DO REPORTE E ENCERRAMENTO DA API
Após toda a manipulação do Reporte através dos demais métodos, é necessário efetivá-lo na base. Através dos métodos apresentados abaixo, é feita a efetivação do Reporte, bem como o encerramento da API.
processaReporte | |
Requisito | Ter executado pelo menos o método setaRowSplitCtrab, para gerar os valores iniciais. |
Obrigatório? | Sim. |
Sintaxe | RUN processaReporte IN h-handle. |
Descrição | Efetua todas as validações necessárias nas informações do Reporte, e efetiva o mesmo na base. |
Retorno | Quando é gerado algum erro na execução das Validações, o RETURN-VALUE é retornado igual a “NOK”. Neste caso, os erros deverão ser retornados da API através de um dos seguintes métodos: retornaRowErrors ou retornaTTErro. Deverão ainda ser retornados os registros referentes às Reservas, através do método pi-retorna-tt-reservas, pois as mesmas poderão ter sido modificadas em função das validações. Caso o RETURN-VALUE seja igual a “OK”, significa que a efetivação do Reporte foi feita com sucesso. |
iniciaReporte | ||
Requisito | Nenhum. | |
Obrigatório? | Quando for Iniciar um Reporte, este método será obrigatório. | |
Sintaxe | RUN iniciaReporte IN h-handle(INPUT <rowid-split-operac>, INPUT <date-inic-setup>, INPUT <character-hra-inic-setup>, INPUT <date-fim-setup>, INPUT <character-hra-fim-setup>, INPUT <character-cod-ctrab>, INPUT <character-cod-ferr-prod>, INPUT <character-equipe>, INPUT <character-operador>, INPUT <date-inic-reporte>, INPUT <character-hra-inic-reporte>, OUTPUT TABLE rowErrors). | |
Descrição | O objetivo deste método é fazer a validação dos dados e a efetivação do procedimento Iniciar Reporte. Ao instanciar a API para iniciar um Reporte, somente este método e o método finalizaAPI deverão ser utilizados, pois os demais métodos destinam-se exclusivamente à Inclusão de Reporte. | |
Parâmetros | Descrição | |
<rowid-split-operac> | Rowid do registro da tabela split-operac que irá iniciar um reporte | |
<date-inic-setup> | Data de Início do Setup. Deverá ser informada quando o Centro de Trabalho reportado estiver parametrizado para Possuir Preparação. | |
<character-hra-inic-setup> | Hora de Início do Setup. Deverá ser informada quando o Centro de Trabalho reportado estiver parametrizado para Possuir Preparação. (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<date-fim-setup> | Data de Término do Setup. Deverá ser informada quando o Centro de Trabalho reportado estiver parametrizado para Possuir Preparação. | |
<character-hra-fim-setup> | Hora de Término do Setup. Deverá ser informada quando o Centro de Trabalho reportado estiver parametrizado para Possuir Preparação. (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
<character-cod-ctrab> | Código do Centro de Trabalho no qual o reporte será Iniciado | |
<character-cod-ferr-prod> | Código da Ferramenta utilizada | |
<character-equipe> | Código da Equipe. Deverá ser informado quando o Centro de Trabalho estiver parametrizado para reportar Equipe. | |
<character-operador> | Código do Operador. Deverá ser informado quando o Centro de Trabalho estiver parametrizado para reportar Operador. | |
<date-inic-reporte> | Data de Início do Reporte | |
<character-hra-inic-reporte> | Hora de Início do Reporte. (Vide a Observação sobre formato (*) constante abaixo da Lista de Atributos Comunicáveis da API) | |
rowErrors | Temp-table padrão de retorno de erros deste método. Obs.: quando utilizado este método, não será possível o retorno dos erros através da temp-table tt-erro. | |
Retorno | Caso seja gerado erro na execução deste método, o RETURN-VALUE será igual a “NOK” e os erros serão retornados através da temp-table rowErrors. Caso a API tenha sido instanciada apenas para Iniciar um Reporte, observe que é obrigatória a execução do método finalizaAPI, ao final da execução. |
reAnaliseRepRefugoOper | ||
Requisito | Nenhum. | |
Obrigatório? | Não | |
Sintaxe | RUN reAnaliseRepRefugoOper IN h-handle(INPUT <rowid-rep-oper-ctrab>, INPUT TABLE tt-ref). | |
Descrição | O objetivo deste método é fazer a Reanálise dos motivos de Refugo e/ou Retrabalho de um determinado reporte. Ao instanciar a API para efetuar uma reanálise de motivos de um Reporte, somente este método e o método finalizaAPI deverão ser utilizados, pois os demais métodos destinam-se exclusivamente à Inclusão de Reporte. | |
Parâmetros | Descrição | |
<rowid-rep-oper-ctrab> | Rowid do registro da tabela rep-oper-ctrab da qual fazem parte as quantidades de refugo e/ou retrabalho que se deseja re-analisar. | |
tt-ref | Temp-table que deverá conter os novos motivos e quantidades. | |
Retorno | Caso seja gerado erro na execução deste método, o RETURN-VALUE será igual a “NOK” e os erros serão retornados através da temp-table rowErrors. Caso a API tenha sido instanciada apenas para Iniciar um Reporte, observe que é obrigatória a execução do método finalizaAPI, ao final da execução. |
finalizaAPI | |
Requisito | Nenhum. |
Obrigatório? | Sim. |
Sintaxe | RUN finalizaAPI IN h-handle. |
Descrição | Efetua a finalização da API, eliminando da memória todos os dados temporários gerados durante a execução. Este método deve ser invocado após concluir a utilização da API. |
Retorno | Nenhum. |
• LISTA DE ATRIBUTOS COMUNICÁVEIS PELOS MÉTODOS DA API
Atributo
| Tipo | Descrição | Métodos de Comunicação da API | ||
retornaValor Campos | retornaHidden Sensitive | recebeValor Campos | |||
cod-ctrab | character | Código do Centro de Trabalho | X | X | |
des-ctrab | character | Descrição do Centro de Trabalho | X | X | |
nr-ord-produ | integer | Número da Ordem de Produção | X | X | |
cod-item-op | character | Código do Item da Ordem de Produção | X | X | |
operacao | character | Código do Item da Operação + Código do Roteiro + Código da Operação (concatenados, separados por barra / ) | X | X | |
num-split-operac | integer | Número do Split de Operação | X | X | |
num-operac-sfc | integer | Número da operação da ordem no SFC | X | X | |
des-oper | character | Descrição da Operação | X | X | |
cod-ferr-prod | character | Código da Ferramenta | X | X | X |
dat-inic-setup | date | Data de Início do Setup | X | X | X |
hra-inic-setup | character | Hora de Início do Setup, em formato horário ou decimal * | X | X | X |
qtd-segs-inic-setup | decimal | Hora de Início do Setup, em segundos – quando for informado o atributo hra-inic-setup, não é necessário informar este. E vice-e-versa. | X | ||
dat-fim-setup | date | Data de Término do Setup | X | X | X |
hra-fim-setup | character | Hora de Término do Setup, em formato horário ou decimal * | X | X | X |
qtd-segs-fim-setup | decimal | Hora de Término do Setup, em segundos – quando for informado o atributo hra-fim-setup, não é necessário informar este. E vice-e-versa. | X | ||
cod-unid-negoc | character | Código da Unidade de Negócio (Somente para clientes com o EMS versão 2.06B ou superior, com a função Unidade de Negócio implantada) | X | X | |
des-unid-negoc | character | Descrição da Unidade de Negócio (Somente para clientes com o EMS versão 2.06B ou superior, com a função Unidade de Negócio implantada) | X | X | |
cod-mob | character | Código da Mão-de-Obra | X | X | X |
dat-inic-reporte | date | Data de Início do Reporte | X | X | X |
hra-inic-rep | character | Hora de Início do Reporte, em formato horário ou decimal * | X | X | X |
qtd-segs-inic-rep | decimal | Hora de Início do Reporte, em segundos – quando for informado o atributo hra-inic-rep, não é necessário informar este. E vice-e-versa. | X | ||
dat-fim-reporte | date | Data de Término do Reporte | X | X | X |
hra-fim-rep | character | Hora de Término do Reporte, em formato horário ou decimal * | X | X | X |
qtd-segs-fim-rep | decimal | Hora de Término do Reporte, em segundos – quando for informado o atributo hra-fim-rep, não é necessário informar este. E vice-e-versa. | X | ||
qtd-aprov | decimal | Quantidade Aprovada | X | X | X |
qtd-refgda | decimal | Quantidade Refugada | X | X | X |
qtd-total | decimal | Quantidade Total (soma das quantidades Aprovada e Refugada) | X | X | |
qtd-retrab | decimal | Quantidade Retrabalhada | X | X | X |
relac-refugo-item | decimal | Relação Refugo Item (Somente para clientes com o EMS versão 2.05 ou superior) | X | X | |
qtd-refgda-ref | decimal | Quantidade Refugo, na unidade de medida do Refugo (Somente para clientes com o EMS versão 2.05 ou superior) | X | X | X |
formato-hora | character | Retorna o formato conforme parâmetros do módulo (vide *). Quando formato Horário, retorna o valor “99:99”. Quando Centesimal, retorna “99,99”. Este formato deve ser atribuído ao format do campo correspondente na tela, quando se tratar de uma interface utilizando a API | X | ||
cod-depos | character | Código do Depósito de Saída | X | X | X |
cod-localiz | character | Código da Localização de Saída | X | X | X |
ct-debito | character | Código da Conta de Débito Direto | X | X | X |
ct-refugo | character | Código da Conta de Refugo | X | X | X |
dep-refugo | character | Código do Depósito de Refugo | X | X | X |
loc-refugo | character | Código da Localização de Refugo | X | X | X |
dep-acab | character | Código do Depósito de Acabado | X | X | X |
loc-acab | character | Código da Localização de Acabado | X | X | X |
refer-acab | character | Referência do Acabado | X | X | X |
lote-acab | character | Número de Lote/Série do Acabado | X | X | X |
dt-valid-lote | date | Data de Validade do Lote | X | X | X |
per-ppm | decimal | PPM (Somente para clientes com o EMS versão 2.05 ou superior, e com a funcionalidade de Tratamento Concentração/PPM implantada) | X | X | X |
format-ppm | character | Retorna o formato que deve ser atribuído ao campo per-ppm, quando se tratar de uma interface utilizando a API | X | ||
label-ppm | character | Retorna o label que deve ser atribuído ao campo per-ppm, quando se tratar de uma interface utilizando a API | X | ||
ordem-op-split | character | Número da Ordem de Produção + Código da Operação + Número do Split de Operação (concatenados, separados por barra / ) | X | X | |
it-codigo | character | Código do Item da Operação | X | X | |
de-tempo-oper | decimal | Tempo de Duração Real do Reporte | X | X | X |
op-codigo | integer | Código da Operação | X | X | |
de-tempo-real-setup | decimal | Retorna o tempo Real de Duração do Setup | X | X | |
bt-ferram | botão | Botão Ferramenta | X | ||
num-contador-inic | integer | Início Contador | X | X | X |
num-contador-inic | integer | Término Contador | X | X | X |
operador | character | Código do Operador | X | X | X |
equipe | character | Código da Equipe | X | X | X |
btBalanceia | botão | Botão Balanceamento (somente a partir da release 2.05 do EMS, caso a função Controle Concentração/PPM esteja implantada | X |
* O formato de hora que a API recebe/retorna depende do parâmetro Tipo Relógio, localizado no programa SF0101 – Parâmetros Chão de Fábrica – página Padrões. As opções são Horário e Centesimal. No caso de Horário, o valor deve ser passado no formato HHMM, onde as duas primeiras posições correspondem à hora, e as duas últimas, aos minutos (não deve ser passado o separador dois pontos(:)). Já quando se trata de Centesimal, a API trabalha com o seguinte formato: HHFH, onde HH é igual o número correspondente à hora, e FH é a fração da hora (não deve ser passado o separador vírgula (,)). Por exemplo: 1030 (10 horas e trinta minutos) no formato Horário corresponde a 1050 no formato Centesimal.
• EXEMPLO DE UTILIZAÇÃO DA API NA MODALIDADE PERSISTENTE
Exemplo de Chamada em Batch
Neste exemplo, é feito o reporte do Split número 1, da Operação 1, pertencente à Ordem 400.000.146. Estão sendo aprovadas 5 unidades e refugadas 3 unidades. A reserva do item "FFRE" tem sua quantidade modificada para 8 unidades. É também criado o registro de justificativa para o refugo.
DEFINE VARIABLE h-sfapi009 AS HANDLE NO-UNDO. DEFINE VARIABLE c-aux AS CHARACTER NO-UNDO. DEFINE VARIABLE de-aux AS DECIMAL NO-UNDO. DEFINE VARIABLE dt-aux AS DATE NO-UNDO. {sfc/sfapi009.i} /*tt-param-reporte*/ {cdp/cd0666.i} /*tt-erro*/ {cpp/cpapi001.i1} /*tt-reservas*/ {sfc/sf0303a.i1} /*tt-ref*/ RUN sfc/sfapi009.p PERSISTENT SET h-sfapi009(INPUT 204, INPUT TABLE tt-import-rep-oper, OUTPUT TABLE tt-erro). /*Definição dos Parâmetros. Apenas o parâmetro l-msg-termina-ordem será setado, os demais ficaram com seus valores default*/ CREATE tt-param-reporte. ASSIGN tt-param-reporte.cod-param = "l-msg-termina-ordem" tt-param-reporte.log-result-param = NO. RUN recebeParametros IN h-sfapi009(INPUT TABLE tt-param-reporte). /*Seleciona os registros de Split e Centro de Trabalho que serão reportados*/ FIND FIRST split-operac WHERE split-operac.nr-ord-produ = 400000146 AND split-operac.num-operac-sfc = 1 AND split-operac.num-split-operac = 1 NO-LOCK NO-ERROR. FIND FIRST ctrab WHERE ctrab.cod-ctrab = "ES01_01" NO-LOCK NO-ERROR. RUN setaRowSplitCtrab IN h-sfapi009(INPUT ROWID(split-operac), INPUT ROWID(ctrab)). IF RETURN-VALUE = "NOK" THEN RUN retornaTTErro IN h-sfapi009(OUTPUT TABLE tt-erro). ELSE DO: /*Seta as quantidades Aprovada(5 unidades) e Refugada(3 unidades)*/ RUN recebeValorCampos IN h-sfapi009("qtd-aprov", "", ?, 5, ?). RUN recebeValorCampos IN h-sfapi009("qtd-refgda", "", ?, 3, ?). /*Através da execução do método a seguir, a API irá: - Setar a nova data e hora de início do Reporte; - Calcular o tempo real da Operação, baseado no tempo padrão proporcional a quantidade informada; |
- Calcular e setar a data e hora de término do Reporte. Foram usadas variáveis auxiliares para receber os retornos da API, pois os valores não serão utilizados.*/ RUN ajustaTempoPelaQtd IN h-sfapi009 (INPUT 11/01/2006, /*<date-dat-inic-reporte> - 01/nov/2006*/ INPUT "0935", /*<char-hra-inic-rep> - 09:35*/ INPUT-OUTPUT dt-aux, /*<date-dat-fim-reporte>*/ INPUT-OUTPUT c-aux, /*<char-hra-fim-rep>*/ INPUT 5 + 3, /*<decimal-qtd-total> - qtd aprovada + qtd refugada*/ OUTPUT de-aux). /*<decimal-de-tempo-oper>*/ /*Executa os métodos para regerar as Reservas, Alocações e MOB/GGF, pois é obrigatória a execução destes métodos após a edição de alguns campos específicos (vide documentação)*/ RUN pi-cria-tt-reservas-alocacoes IN h-sfapi009. RUN geraMobGGFAutomatico IN h-sfapi009. /*Retorna as Reservas*/ RUN pi-retorna-tt-reservas IN h-sfapi009(OUTPUT TABLE tt-reservas). /*Modifica a quantidade da reserva do Item "FFRE" */ FIND FIRST tt-reservas WHERE tt-reservas.it-codigo = "FFRE" NO-ERROR. ASSIGN tt-reservas.quant-requis = 8. RUN pi-recebe-tt-reservas IN h-sfapi009(INPUT TABLE tt-reservas). /*Cria o registro de Justificativa do Refugo gerado*/ FIND FIRST motiv-refugo WHERE motiv-refugo.cod-motiv-refugo = "QualidEx" /*Qualidade do */ NO-LOCK NO-ERROR. /*Material Externo*/ CREATE tt-ref. ASSIGN tt-ref.rw-split-operac = ROWID(split-operac) tt-ref.nr-ord-prod = split-operac.nr-ord-produ tt-ref.cod-motiv-refugo = motiv-refugo.cod-motiv-refugo tt-ref.codigo-rejei = motiv-refugo.codigo-rejei tt-ref.qtd-operac-refgda = 3. /*Justificando 3 unidades refugadas*/ RUN pi-recebe-tt-ref IN h-sfapi009(INPUT TABLE tt-ref). /*Chama a efetivação do Reporte*/ RUN processaReporte IN h-sfapi009. IF RETURN-VALUE = "NOK":U THEN RUN retornaTTErro IN h-sfapi009(OUTPUT TABLE tt-erro). END. /*Faz a finalização da API*/ RUN finalizaAPI IN h-sfapi009. /*Mostra os erros, caso tenham ocorrido.*/ IF CAN-FIND(FIRST tt-erro) THEN DO: FOR EACH tt-erro: DISP tt-erro WITH WIDTH 500. END. RETURN "NOK":U. END. RETURN "OK":U. |
• INFORMAÇÕES SOBRE DESENVOLVIMENTO DE INTERFACES CUSTOMIZADAS
Para os clientes que possuem o produto Datasul EMS na versão 2.07, ou versão inferior (a partir da 2.04 com a função “Automação” implantada), é possível o desenvolvimento de Interfaces customizadas de Reporte de Produção, integráveis com os programas de Apontamentos do Chão de Fábrica (SF0308) e Reporte Dispatch-List (SF0310).
Essa integração se dá através do Grupo de Máquina, ao qual pode ser atribuída uma interface customizada através do campo Interface Reporte, presente no programa Manutenção Grupo Máquina SFC (SF0103), na pasta Operação. Essa interface customizada, por sua vez, deve ser cadastrada no programa Manutenção Interface Reporte (SF0110).
Quando houver uma interface customizada de Reporte devidamente cadastrada para um Grupo de Máquina, e for efetuado um Reporte para um Centro de Trabalho pertencente a este GM através do programa Apontamentos do Chão de Fábrica (SF0308), essa será a interface utilizada como entrada para as informações. Da mesma forma, quando se estiver fazendo um reporte através da tela de Reporte por Dispatch-List (SF0310), e se escolher a opção de Detalhamento do Reporte, será acionada também a interface customizada.
Para que uma interface de Reporte customizada possa se integrar perfeitamente ao sistema da forma descrita acima, a mesma deve ser desenvolvida utilizando a modalidade de execução Persistente da API, devendo possuir algumas características específicas, principalmente no que diz respeito à inicialização da Interface e a forma de validar e efetivar o Reporte. Tais características são descritas abaixo:
o Parâmetros
A tela de reporte customizada deverá receber, como parâmetro (input-output), a temp-table tt-param-interfac, definida na include sfc/sf0303.i. Assim, o programa deverá ter a seguinte assinatura:
run interface-especifica.w(input-output table tt-param-interfac).
Na inicialização do programa, os parâmetros deverão ser extraídos da temp-table, e o programa deverá fazer o devido tratamento para os mesmos. Os parâmetros que o programa deverá esperar da temp-table são os seguintes:
Cód. Parâmetro rw-split-operac
Tipo: Rowid (5)
Descrição: Rowid do Split de Operação que será reportado.
Cód. Parâmetro rw-ctrab
Tipo: Rowid (5)
Descrição: Rowid do Centro de Trabalho no qual o reporte será feito.
Cód. Parâmetro i-baixa-reservas
Tipo: Decimal (1)
Descrição: Corresponde ao parâmetro “Baixar Reservas”, presente na tela de Parâmetros do Reporte de Operações.
1 = Proporcionalmente à quantidade da ordem;
2 = Até o limite das reservas.
Este parâmetro deve ser repassado para a API sfapi009, na sua instanciação, através do método recebeParametros.
Cód. Parâmetro l-informa-deposito
Tipo: Lógico
Descrição: Corresponde ao parâmetro “Informar depósito único de saída de componentes?”, presente na tela de Parâmetros do Reporte de Operações.
Este parâmetro deve ser repassado para a API sfapi009, na sua instanciação, através do método recebeParametros.
Cód. Parâmetro l-informa-localizacao
Tipo: Lógico
Descrição: Corresponde ao parâmetro “Informar localização para saída de todos componentes?”, presente na tela de Parâmetros do Reporte de Operações.
Este parâmetro deve ser repassado para a API sfapi009, na sua instanciação, através do método recebeParametros.
Cód. Parâmetro l-requisicao-automatica
Tipo: Lógico
Descrição: Corresponde ao parâmetro “Requisição Automática?”, presente na tela de Parâmetros do Reporte de Operações.
Este parâmetro deve ser repassado para a API sfapi009, na sua instanciação, através do método recebeParametros.
Cód. Parâmetro l-busca-saldos
Tipo: Lógico
Descrição: Corresponde ao parâmetro “Procura Automática de Saldos?”, presente na tela de Parâmetros do Reporte de Operações.
Este parâmetro deve ser repassado para a API sfapi009, na sua instanciação, através do método recebeParametros.
Cód. Parâmetro l-dispatch-list
Tipo: Lógico
Descrição: Indica que a interface de reporte customizada está sendo chamada como detalhamento do Reporte, através do Reporte por Dispatch-List (SF0310). Quando este parâmetro vier marcado como Yes, a interface de reporte deverá fazer alguns tratamentos especiais, que serão descritos a seguir.
Cód. Parâmetro h-sfapi009
Tipo: Caractér
Descrição: Nas situações em que a interface de reporte customizada está sendo chamada como detalhamento do Reporte, através do Reporte por Dispatch-List (SF0310), a API sfapi009 é previamente instanciada e inicializada. Assim, quando o parâmetro l-dispatch-list vier marcado como Yes, este parâmetro conterá o handle da API já inicializada.
Como este campo é caractér, será necessário transformá-lo em handle, usando a função Progress WIDGET-HANDLE.
o Inicialização
Na inicialização da interface, caso o parâmetro l-dispatch-list esteja igual à No, o programa deverá inicializar a API, fazendo sua execução persistente, setando os parâmetros através do método recebeParametros (repassando os parâmetros recebidos através da temp-table tt-param-interfac), e setando o Split de Operação e Centro de Trabalho a reportar (recebidos por parâmetro também), através do método setaRowSplitCtrab.
Se o parâmetro l-dispatch-list for recebido igual à Yes, o programa já terá recebido a API devidamente inicializada e parametrizada, bastando atribuir à variável handle, que será usada para manipular a API, o handle recebido através do parâmetro h-sfapi009.
Após a inicialização, o passo seguinte é o retorno das informações armazenadas na API, através dos métodos descritos na seção MÉTODOS DE RETORNO DE INFORMAÇÕES DA API. Caso o parâmetro l-dispatch-list esteja igual à No, as informações retornadas serão as informações iniciais do Reporte. Caso l-dispatch-list seja igual à Yes, estes métodos poderão retornar informações já manipuladas e calculadas previamente, na tela de Reporte por Dispatch-List.
o Manipulação das Informações
De posse das informações inicializadas da API, a interface customizada deverá permitir que o usuário as manipule de acordo com suas necessidades.
Quando determinadas informações são atualizadas pelo usuário, entretanto, é obrigatória a execução de alguns métodos, a fim de atualizar/gerar algumas informações na API. Estes métodos e os atributos que os tornam obrigatórios encontram-se descritos na seção MÉTODOS DE MANIPULAÇÃO DAS INFORMAÇÕES DURANTE EXECUÇÃO.
Algumas informações, ainda, podem demandar uma pré-validação durante a execução, a fim de alertar o usuário antes da finalização do procedimento. Os métodos da API que permitem pré-validar determinadas informações encontram-se descritos na seção MÉTODOS DE PRÉ-VALIDAÇÃO DE INFORMAÇÕES.
o Encerramento da Interface - Validação/Efetivação
Cancelamento do Procedimento
Caso o usuário esteja Cancelando o procedimento, a interface deverá ser encerrada retornando o valor “NOK” (RETURN “NOK”). É importante que a interface seja encerrada retornando “NOK” neste caso, pois quando a mesma estiver sendo usada como detalhamento do Reporte por Dispatch-List, o programa de Reporte por Dispatch-List fará a chamada da interface customizada dentro do escopo de uma transação. Assim, a tela de Reporte por Dispatch-List somente desfará a transação caso o retorno seja “NOK”.
Caso o parâmetro l-dispatch-list esteja igual à No, será necessário também fazer o encerramento da API, através do método finalizaAPI. Caso l-dispatch-list esteja igual à Yes, entretanto, a API não deverá ser finalizada, pois a tela de Reporte por Dispatch-List continuará utilizando a instância da API para manipular o reporte.
Confirmação do Procedimento
Caso o usuário esteja Confirmando o procedimento, o passo inicial será setar na API os valores, atualizados em tela, dos atributos do Reporte. Essa atualização na API deve ser feita utilizando-se os métodos descritos na seção MÉTODOS DE ATUALIZAÇÃO DAS INFORMAÇÕES DA API.
Se o parâmetro l-dispatch-list estiver igual à Yes, o reporte não deverá ser efetivado na base, já que a efetivação será feita apenas quando o usuário clicar em OK na tela de Reporte por Dispatch-List. O reporte deverá apenas ser validado, através do método validaReporte.
Caso o parâmetro l-dispatch-list esteja igual à No, o reporte deverá ser efetivado na base através do método processaReporte.
Caso não tenham ocorrido erros no processamento/validação, e o parâmetro l-dispatch-list esteja igual à No, será necessário também fazer o encerramento da API, através do método finalizaAPI. Caso l-dispatch-list esteja igual à Yes, entretanto, a API não deverá ser finalizada, pois a tela de Reporte por Dispatch-List continuará utilizando a instância da API para manipular o reporte.