Árvore de páginas

Versões comparadas

Chave

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

POGetPdInf - 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

Json em formato String com as informações padrões do produto informado para a criação da ordem de produção, além da informações para inicialização padrão de alguns campos, 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.

O Json conterá as seguintes informações:

"C2_PRODUTO" - Código do Produto
"C2_PRODESC" - Descrição do Produto
"C2_LOCAL" - Armazém
"C2_UM" - Unidade de Medida
"C2_ROTEIRO" - Roteiro
"C2_REVISAO" - Revisão da Estrutura
"C2_SEGUM" - Segunda Unidade de Medida
"C2_CC" - Centro de Custo
"C2_PRIOR" - Prioridade
"C2_EMISSAO" - Data de Emissão
"C2_TPPR" - Tipo da Produção
"C2_STATUS" - Status da Ordem
"C2_TPOP" - Tipo da OP
"C2_OPTERCE" - OP de Terceiros
"C2_DIASOCI" - Dias para Ociosidade




PARAMIXB[2]Caracter

Código do formulário acessado no APP Minha Produção para realizar a chamada do Ponto de Entrada. Este formulário deve ser previamente cadastrado através do Formulário do Apontamento de Produção - PCPA125.

Através deste parâmetro, podem ser realizadas diferentes implementações no Ponto de Entrada, de acordo com cada formulário que esteja sendo utilizado no momento.




PARAMIXB[3]Caracter

Informação da leitura de código de barras na seleção do produto.




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 POGetPdInf é executado nas requisições de consulta de Produto da API ProdOrderApp. Com este ponto de entrada, é possível modificar as informações que serão retornadas para o APP Minha Produção e que serão exibidas no formulário que será utilizado para criar as ordens de produção.

Dica
titleFormato dos Campos

Os campos devem respeitar seus respectivos formatos, conforme são utilizados no Protheus.

Ex.: Campos do tipo Numérico são referenciados sem as aspas (9999) e campos do tipo Lógico são atualizados no formato .T. ou .F.
      Para os campos do tipo Data, o formato esperado "DD/MM/AA" ou "DD/MM/AAAA" e, caso seja utilizada alguma função para retornar a data, ela deve ser convertida para este formato através da função DTOC().

Localização:

API ProdOrderApp, método GET productInfo - Responsável por buscar as informações de um produto para utilização no APP Minha Produção.

Eventos:

Não se aplica.

Programa Fonte:ProductionOrderAppAPI.PRW

Sintaxe:

POGetPdInf( ) --> oJsonRetoJson

Retorno:
NomeTipoDescriçãoObrigatório
cJsonRetCaracter

JSON que deverá ser retornado pela API

,

com todas as informações

da ordem de produção.

que foram recebidas, além de permitir a inclusão de outros campos que estão presentes no formulário do programa PCPA125.
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

1] que foi recebido pelo ponto de entrada.
Além das informações

inerentes a cada tipo de apontamento

com campos padrões do sistema, é possível retornar conteúdo para os campos customizados (caso o cliente utilize algum destes campos no seu formulário),

incluindo as seguintes chaves:

bastando referenciá-los a partir de 

'

CustomFieldCharacter01

CustomFieldCharacter01' - Campo customizável tipo texto 01
'

CustomFieldCharacter02

CustomFieldCharacter02' - Campo customizável tipo texto 02
'

CustomFieldCharacter03

CustomFieldCharacter03' - Campo customizável tipo texto 03
'

CustomFieldCharacter04

CustomFieldCharacter04' - Campo customizável tipo texto 04
'

CustomFieldCharacter05

CustomFieldCharacter05' - Campo customizável tipo texto 05
'

CustomFieldDecimal01

CustomFieldDecimal01' - Campo customizável

tipo numérico

tipo numérico 01
'

CustomFieldDecimal02

CustomFieldDecimal02' - Campo customizável

tipo numérico

tipo numérico 02
'

CustomFieldDecimal03

CustomFieldDecimal03' - Campo customizável

tipo numérico

tipo numérico 03
'

CustomFieldDecimal04

CustomFieldDecimal04' - Campo customizável

tipo numérico

tipo numérico 04
'

CustomFieldDecimal05

CustomFieldDecimal05' - Campo customizável tipo numérico 05
'

CustomFieldDate01

CustomFieldDate01' - Campo customizável tipo data 01
'

CustomFieldDate02

CustomFieldDate02' - Campo customizável tipo data 02
'

CustomFieldDate03

CustomFieldDate03' - Campo customizável tipo data 03
'

CustomFieldDate04

CustomFieldDate04' - Campo customizável tipo data 04
'

CustomFieldDate05

CustomFieldDate05' - Campo customizável tipo data 05

'CustomFieldLogical01'

'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
'CustomFieldList01' - Campo customizável tipo lista 01
'

CustomFieldLogical02

CustomFieldList02' - Campo customizável

tipo lógico

tipo lista 02
'

CustomFieldLogical03

CustomFieldList03' - Campo customizável

tipo lógico

tipo lista 03
'

CustomFieldLogical04

CustomFieldList04' - Campo customizável

tipo lógico

tipo lista 04
'

CustomFieldLogical05

CustomFieldList05' - Campo customizável

tipo lógico

tipo lista 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 PApGetOPPOGetPdInf()
	    Local cTipocJson      := PARAMIXB[1]
	Local   cJsRet Local cFormCode  := PARAMIXB[2]
	    Local cFormCodecBcodeData := PARAMIXB[3]
	Local oJsRet    Local oJson     := JsonObject():New()
	
	 
    //Converte a string JSON para objeto JSON, para que seja possível manipular os dados.
	oJsRet    oJson:FromJson(cJsRetcJson)
	Conout("PE antes
 alteracao. Tipo: " +If cTipocFormCode +== "FORMOP"
 JSON: " + cJsRet)

	Do Case
		Case cTipo == oJson["1C2_PRIOR" // Apontamento MATA250
			oJsRet["CostCenter"] := "01"
			oJsRet["CustomFieldCharacter01"]]               := "Produto:999" + oJsRet["ItemCode"]
		Case cTipo == "3" // Apontamento MATA681
			If cFormCode = "USINAGEM"
				oJsRet["MachineCode"] := "REC" //campo Máquina padrão paradisponível ono formulário "USINAGEM"
			Else
				oJsRet["MachineCodedo programa pcpa125
        oJson["CustomFieldCharacter02"] := "IMPJOAO CRIOU A OP" //campo Máquinacustomizado
 padrão para o restante dos formulários
      If !Empty(cBcodeData)
      EndIf
		Case cTipo == "4" // Apontamento SFCA314
			oJsRet oJson["EndReportTimeC2_CC"] := TimeSubstr(cBcodeData,20,9)
	EndCase
	
        EndIf
    EndIf
 
    //Converte o objeto Json com as informações manipuladas em uma String Json.
	cJsRet    cJson := oJsRetoJson:ToJson()
 
	    //Limpa da memória o objeto Json utilizado.
	FreeObj(oJsRet)

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