Árvore de páginas

PECusAct - Ação botão customizado 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
PARAMIXBJson Object

O Objeto Json recebido como parâmetro possui como atributos todos os campos visíveis no formulário com seus respectivos valores, além do atributo "formSource", que ajudará a identificar a origem da requisição, contendo os seguintes atributos:

  • formCode: Código do formulário
  • fieldCode: Nome do campo referente ao botão acionado, conforme informado na coluna "Campo" do PCPA125 (ex.: "D3_CCBT01", "H6_CCBT01", "CYV_CCBT01", "C2_CCBT01", "D4_CCBT01")
  • appointmentType: Tipo do formulário (1=Produção Simples, 3=Produção Pcp Mod2, 4=Produção Chão de Fabrica, 6=Ordem de Produção)    



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 PECusAct é executado quando um campo customizado do tipo botão é acionado no formulário. Com este ponto de entrada é possível alterar informações dos campos que estão visiveis no formulário para que sejam visualizadas instantaneamente no formulário de apontamento de produção ou cadastro da ordem de produção do APP Minha Produção.
Localização:

API ProductionAppointment/ProductionOrderAppAPI, método POST CustomAction - Responsável por editar e retornar informações dos formulários do APP Minha Produção.

Eventos:

Não se aplica.

Programa Fonte:ProductionAppointment.PRW / ProductionOrderAppAPI.PRW

Sintaxe:

PECusAct( ) --> oJsonRet

Retorno:
NomeTipoDescriçãoObrigatório
cJsonRetCaracter

JSON que deverá ser retornado pela API, com todas as informações dos campos visíveis do formulário. 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 que foi recebido pelo ponto de entrada.

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.

Exemplo
#INCLUDE "TOTVS.CH"
 
User Function PECusAct()
    Local cBodyParam := PARAMIXB
    Local cJsRet     := ""
    Local oJsRet     := JsonObject():New()
     
    //Converte a string JSON para objeto JSON, para que seja possível manipular os dados.
    oJsRet:FromJson(cBodyParam)
    Do Case
        Case oJsRet["formSource"]["appointmentType"] == "1" // Apontamento MATA250
			If oJsRet["formSource"]["fieldCode"] == "D3_CCBT01"
	            If oJsRet["D3_LOCAL"] == "01"
    	            oJsRet["D3_PERDA"] := 2
        	        oJsRet["D3_TM"]    := "010"
            	    oJsRet["D3_EMISSAO"] := "2023-08-03"
                	oJsRet["D3_PARCTOT"] := "P"
	                oJsRet["CustomFieldList01"]["code"] := "01449"
    	            oJsRet["CustomFieldList01"]["description"] := "01449 - criacao de suinos"
        	    EndIf
			EndIf
        Case oJsRet["formSource"]["appointmentType"] == "3" // Apontamento MATA681
            oJsRet["H6_FERRAM"] := "FERRAMENTA01"
            oJsRet["H6_PT"]     := "T"
        Case oJsRet["formSource"]["appointmentType"] == "4" // Apontamento SFCA314
            oJsRet["CYV_QTATAP"] := 3
            oJsRet["CustomFieldCharacter01"] := "Campo Customizado Caracter"    
        Case oJsRet["formSource"]["appointmentType"] == "6" // Criação OP (MATA650)
            oJsRet["C2_QUANT"]   := 50
            oJsRet["C2_TPOP"]    := "P"
            oJsRet["C2_TPPR"]    := "O"
            oJsRet["C2_STATUS"]  := "U"
            oJsRet["C2_OPTERCE"] := "1"
            oJsRet["CustomFieldCharacter01"] := "Campo Customizado Caracter OP"
            oJsRet["CustomFieldList01"]["code"] := "0005"
            oJsRet["CustomFieldList01"]["description"] := "0005 - Pneumaticos"

    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)
Return cJsRet