Á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.




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[21] que foi recebido pelo ponto de entrada.
Além das informações inerentes a cada tipo de apontamentocom 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  cFormCode := PARAMIXB[3]
	Local oJsRetoJson     := 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 + cTipo +cFormCode == " JSON: FORMOP"
 + cJsRet)

	Do Case
		Case cTipo == "1" // Apontamento MATA250
			oJsRet["CostCenter oJson["C2_PRIOR"] := "01"
			oJsRet["CustomFieldCharacter01"] := "Produto:" + oJsRet["ItemCode"]
		Case cTipo == "3" // Apontamento MATA681
			If cFormCode = "USINAGEM"
				oJsRet["MachineCode"] := "REC" // Máquina padrão para o formulário "USINAGEM"
			Else
				oJsRet["MachineCode"] := "IMP" // Máquina padrão para o restante dos formulários
            EndIf
		Case cTipo == "4" // Apontamento SFCA314
			oJsRet["EndReportTime"] := Time()
	EndCase
	              := "999"             //campo padrão disponível no formulário do programa pcpa125
        oJson["CustomFieldCharacter02"] := "JOAO CRIOU A OP" //campo customizado
    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: " + cTipo + " JSON: " + cJsRet)FREEOBJ( oJson )

Return cJsRet



cJson