Á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 recebida da leitura de código de barras na tela de 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( ) --> oJson

Retorno:
NomeTipoDescriçãoObrigatório
cJsonRetCaracter

JSON que deverá ser retornado pela API com todas as informações 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[1] que foi recebido pelo ponto de entrada.
Além das informações 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), bastando referenciá-los a partir de 

'CustomFieldCharacter01' - Campo customizável tipo texto 01
'CustomFieldCharacter02' - Campo customizável tipo texto 02
'CustomFieldCharacter03' - Campo customizável tipo texto 03
'CustomFieldCharacter04' - Campo customizável tipo texto 04
'CustomFieldCharacter05' - Campo customizável tipo 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
'CustomFieldList01' - Campo customizável tipo lista 01
'CustomFieldList02' - Campo customizável tipo lista 02
'CustomFieldList03' - Campo customizável tipo lista 03
'CustomFieldList04' - Campo customizável tipo lista 04
'CustomFieldList05' - Campo customizável 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 POGetPdInf()
    Local cJson      := PARAMIXB[1]
    Local cFormCode  := PARAMIXB[2]
    Local cBcodeData := PARAMIXB[3]
    Local oJson     := JsonObject():New()
 
    //Converte a string JSON para objeto JSON, para que seja possível manipular os dados.
    oJson:FromJson(cJson)
 
    If cFormCode == "FORMOP"
        oJson["C2_PRIOR"]               := "999"             //campo padrão disponível no formulário do programa pcpa125
        oJson["CustomFieldCharacter02"] := "JOAO CRIOU A OP" //campo customizado

        //Verifica se existe conteúdo de leitura de código de barras
        If !Empty(cBcodeData)
            oJson["C2_CC"] := Substr(cBcodeData,20,9)
        EndIf
    EndIf
 
    //Converte o objeto Json com as informações manipuladas em uma String Json.
    cJson := oJson:ToJson()
 
    //Limpa da memória o objeto Json utilizado.
    FREEOBJ( oJson )
 
Return cJson