Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicosfc/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.


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.