Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

PApGetOP - Manipular informações da ordem de produção para o APP Minha Produção

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]Caracter

Tipo do apontamento. Pode possuir os conteúdos abaixo:

  • 1 - Apontamento simples (MATA250);
  • 3 - Apontamento modelo 2 (MATA681);
  • 4 - Apontamento chão de fábrica (SFCA314).



PARAMIXB[2]Caracter

Json em formato String com as informações padrões da ordem de produção que será retornado pela API. Para manipular as informações do Json, é sugerido que seja realizada a conversão da String para um JsonObject, e após manipular os dados converta o objeto de formato JsonObject para string novamente. O exemplo deste ponto de entrada já possui este processo.

De acordo com o tipo do apontamento, o Json conterá as seguintes informações:

  • 1 - Apontamento simples:
    'ProductionOrderNumber' - Ordem de produção
    'ItemCode' - Produto
    'ItemDescription' - Descrição do produto
    'ApprovedQuantity' - Quantidade
    'WarehouseCode' - Armazém
    'UnitOfMeasureCode' - Unidade de medida
    'DocumentCode' - Documento
    'StartReportDateTime' - Data de emissão
    'Part_Total' - Parcial/Total
    'LotPotency' - Potencia lote
    'CostCenter' - Centro de custo
    'LedgerAcct' - Conta contábil
    'UnitOfMeasureCode2' - Segunda unidade de medida
    'UnitOfMeasureCode2Quantity' - Quantidade na segunda unidade de medida
    'LotCode' - Lote
    'LotDueDate' - Validade do lote
    'MovimentType' - Tipo do movimento
    'ScrapQuantity' - Perda

  • 3 - Apontamento modelo 2:
    'ProductionOrderNumber' - Ordem de produção
    'ItemCode' - Produto
    'ItemDescription' - Descrição do produto
    'WarehouseCode' - Armazém
    'ActivityCode' - Operação
    'OperationDescription' - Descrição da operação
    'MachineCode' - Recurso
    'StartReportDateTime' - Data inicial
    'EndReportDateTime' - Data final
    'ReportDateTime' - Data do apontamento
    'LotCode' - Lote
    'LotDueDate' - Validade do lote
    'LotPotency' - Potencia lote
    'ApprovedQuantity' - Quantidade
    'UnitOfMeasureCode2Quantity' - Quantidade na segunda unidade de medida
    'Part_Total' - Parcial/Total
    'Apportionment' - Percentual de Rateio
    'ToolCode' - Ferramenta
    'StartReportTime' - Hora inicial
    'EndReportTime' - Hora inicial
    'ScrapQuantity' - Perda
    'Split' - Desdobramento
    'RealTime' - Tempo
    'SubLotCode' - Sub-Lote
    'Comments' - Observação
    'OperatorCode' - Operador
    'AlternativeSequence' - Sequencia do Roteiro Alternativo

  • 4 - Apontamento chão de fábrica:
    'MachineCode' - Máquina
    'ProductionOrderNumber' - Ordem de produção
    'Split' - Split
    'ActivityID' - ID da operação
    'ActivityCode' - Operação
    'ItemCode' - Item
    'StartSetupDateTime' - Data inicio preparação
    'StartSetupTime' - Hora início preparação
    'EndSetupDateTime' - Data fim preparação
    'EndSetupTime' - Hora fim preparação
    'SetupCode' - Código preparação
    'ToolCode' - Ferramenta
    'ApprovedQuantity' - Quantidade aprovada
    'ScrapQuantity' - Quantidade refugada
    'StartReportDateTime' - Data início
    'StartReportTime' - Hora início
    'EndReportDateTime' - Data fim
    'EndReportTime' - Hora fim
    'ProductionShiftCode' - Modelo turno
    'DocumentCode' - Documento
    'DocumentSeries' - Série documento
    'WarehouseCode' - Depósito
    'LotCode' - Lote/Serie
    'LotDueDate' - Data validade lote
    'OperatorName' - Operador
    'ProductionTeamCode' - Equipe



Idiomas:

Todos

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:
O ponto de entrada PApGetOP é executado nas requisições de consulta de ordem de produção da API ProductionAppointment. Com este ponto de entrada, é possível modificar as informações que serão retornadas para o APP Minha Produção.
Localização:

API ProductionAppointment, método GET ProductionOrder - Responsável por buscar as informações de uma ordem de produção para utilização no APP Minha Produção.

Eventos:

Não se aplica.

Programa Fonte:ProductionAppointment.PRW

Sintaxe:

PApGetOP( ) --> oJsonRet

Retorno:
NomeTipoDescriçãoObrigatório
cJsonRetCaracter

JSON que deverá ser retornado pela API, com todas as informações da ordem de produção. Mesmo que não seja realizada a alteração de nenhuma informação no ponto de entrada, o JSON deverá ser retornado com base no parâmetro PARAMIXB[2] que foi recebido pelo ponto de entrada.
Além das informações inerentes a cada tipo de apontamento, é possível retornar conteúdo para os campos customizados (caso o cliente utilize algum destes campos no seu formulário), incluindo as seguintes chaves:

'CustomFieldCharacter01' - Campo customizável tipo caracter texto 01
'CustomFieldCharacter02' - Campo customizável tipo caracter texto 02
'CustomFieldCharacter03' - Campo customizável tipo caracter texto 03
'CustomFieldCharacter04' - Campo customizável tipo caracter texto 04
'CustomFieldCharacter05' - Campo customizável tipo caracter texto 05
'CustomFieldDecimal01' - Campo customizável tipo numérico 01
'CustomFieldDecimal02' - Campo customizável tipo numérico 02
'CustomFieldDecimal03' - Campo customizável tipo numérico 03
'CustomFieldDecimal04' - Campo customizável tipo numérico 04
'CustomFieldDecimal05' - Campo customizável tipo numérico 05
'CustomFieldDate01' - Campo customizável tipo data 01
'CustomFieldDate02' - Campo customizável tipo data 02
'CustomFieldDate03' - Campo customizável tipo data 03
'CustomFieldDate04' - Campo customizável tipo data 04
'CustomFieldDate05' - Campo customizável tipo data 05
'CustomFieldLogical01' - Campo customizável tipo lógico 01
'CustomFieldLogical02' - Campo customizável tipo lógico 02
'CustomFieldLogical03' - Campo customizável tipo lógico 03
'CustomFieldLogical04' - Campo customizável tipo lógico 04
'CustomFieldLogical05' - Campo customizável tipo lógico 05

Sim
Observações:

Não é permitida a utilização de qualquer componente de interface gráfica nesse ponto de entrada, visto que a função será executada durante uma requisição REST.

Bloco de código
languagec#
firstline1
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH"

User Function PApGetOP()
	Local cTipo  := PARAMIXB[1]
	Local cJsRet := PARAMIXB[2]
	Local oJsRet := JsonObject():New()
	
	//Converte a string JSON para objeto JSON, para que seja possível manipular os dados.
	oJsRet:FromJson(cJsRet)
	Conout("PE antes alteracao. Tipo: " + cTipo + " JSON: " + cJsRet)

	Do Case
		Case cTipo == "1" // Apontamento MATA250
			oJsRet["CostCenter"] := "01"
			oJsRet["CustomFieldCharacter01"] := "Produto:" + oJsRet["ItemCode"]
		Case cTipo == "3" // Apontamento MATA681
			oJsRet["MachineCode"] := "REC"
		Case cTipo == "4" // Apontamento SFCA314
			oJsRet["EndReportTime"] := Time()
	EndCase
	//Converte o objeto Json com as informações manipuladas em uma String Json.
	cJsRet := oJsRet:ToJson()

	//Limpa da memória o objeto Json utilizado.
	FreeObj(oJsRet)

	Conout("PE Apos alteracao. Tipo: " + cTipo + " JSON: " + cJsRet)
Return cJsRet