PEBCodeAct - Manipular conteúdo lido no código de barras/QR Code do APP Minha Produção
Linha de Produto: | Protheus | ||||||||||||
Segmento: | Manufatura | ||||||||||||
Módulo: | SIGAPCP - Planejamento e Controle da Produção | ||||||||||||
Parâmetro(s): |
| ||||||||||||
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 PEBCodeAct é executado assim que a leitura do código de barras/QR Code é registrada, permitindo manipular o conteúdo lido e distribui-lo nos campos do formulário. Importante - Impacto da utilização do Ponto de Entrada PEBCodeAct Caso seja utilizado este ponto de entrada PEBCodeAct para personalizar o comportamento da leitura do código de barras/QR Code de algum campo, todos os outros campos que utilizarem esta leitura sem customização devem retornar o mesmo conteúdo enviado no atributo "formSource"."barcodeData". | ||||||||
Localização: | API FormRegistration, método POST BarcodeAction - Responsável por editar e retornar informações dos formulários do APP Minha Produção. | ||||||||
Eventos: | Não se aplica. | ||||||||
Programa Fonte: | FormRegistration.PRW | ||||||||
Sintaxe: | PEBCodeAct( ) --> oJsonRet | ||||||||
Retorno: |
| ||||||||
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. |
#INCLUDE "TOTVS.CH" User Function PEBCodeAct() Local cAptType := "" Local cBcodeData := "" Local cBody := PARAMIXB Local cFldCode := "" Local cFormCode := "" Local oBody := JsonObject():New() Local oJson := JsonObject():New() oBody:FromJson(cBody) If oBody:HasProperty("formSource") cAptType := oBody["formSource"]["appointmentType"] cBcodeData := oBody["formSource"]["barcodeData"] cFldCode := oBody["formSource"]["fieldCode"] cFormCode := oBody["formSource"]["formCode"] If cAptType == "1" //Formulário "SIMPLES01" If AllTrim(cFormCode) == "SIMPLES01" //Seleção da ordem de produção para apontamento If cFldCode == "productionOrder" oBody["productionOrder"] := Substr(cBcodeData,1,11) Else // Para todos os campos restantes, mover o conteúdo lido no Código de Barras sem alterações oBody[cFldCode] := cBcodeData EndIf ElseIf AllTrim(cFormCode) == "SIMPLES02" //Seleção da ordem de produção para apontamento If cFldCode == "productionOrder" oBody["productionOrder"] := Substr(cBcodeData,1,14) Else // Para todos os campos restantes, mover o conteúdo lido no Código de Barras sem alterações oBody[cFldCode] := cBcodeData EndIf EndIf ElseIf cAptType == "3" //Seleção da ordem de produção ou operação para apontamento If cFldCode == "productionOrder" .Or. cFldCode == "activityCode" //Buscar informações do código de barras por posição na string oBody["productionOrder"] := Substr(cBcodeData,1,11) oBody["activityCode"] := Substr(cBcodeData,12,2) Else // Para todos os campos restantes, mover o conteúdo lido no Código de Barras sem alterações oBody[cFldCode] := cBcodeData EndIf ElseIf cAptType == "4" //Seleção da ordem de produção ou operação para apontamento If cFldCode == "productionOrder" //Buscar informações do código de barras por posição na string oBody["productionOrder"] := Substr(cBcodeData,1,11) Else // Para todos os campos restantes, mover o conteúdo lido no Código de Barras sem alterações oBody[cFldCode] := cBcodeData EndIf ElseIf cAptType == "6" //Seleção do produto para criar ordem de produção If cFldCode == "productCode" oBody["productCode"] := Substr(cBcodeData,10,15) Else // Para todos os campos restantes, mover o conteúdo lido no Código de Barras sem alterações oBody[cFldCode] := cBcodeData EndIf ElseIf cAptType == "7" //Campo do formulário de apontamento de perda If cFldCode == "BC_LOCORIG" //Converter string no formato json de um qrcode para objeto json oJson:FromJson(cBcodeData) oBody["BC_LOCORIG"] := oJson["local_origem"] oBody["BC_LOCAL"] := oJson["local_destino"] EndIf EndIf EndIf cBody := oBody:ToJson() FreeObj(oBody) FreeObj(oJson) Return cBody