LAFrLvMnt - Manipular informações na listagem do primeiro nível da estrutura do produto da OP no 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 LaFrLvMnt é executado na requisição de busca dos componentes do primeiro nível da estrutura do produto da ordem de produção para o apontamento de perda da API ProductionAppointment. Formato 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. | ||||||||
| Localização: | API ProductionAppointment, método GET StructureFirstLevel - Responsável por listar os componentes do primeiro nível da estrutura do produto da ordem de produção para apontamento da perda. | ||||||||
Não se aplica. | |||||||||
| Programa Fonte: | ProductionAppointment.PRW | ||||||||
Sintaxe: | LAFrLvMnt( ) --> oJson | ||||||||
| 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 LAFrLvMnt()
Local cJson := PARAMIXB[1]
Local cOrdPrd := PARAMIXB[2]
Local cOperac := PARAMIXB[3]
Local nQuant := PARAMIXB[4]
Local cWstRsn := PARAMIXB[5]
Local nPos := 0
Local oJson := JsonObject():New()
//Converte a string JSON para objeto JSON, para que seja possível manipular os dados.
oJson:FromJson(cJson)
If cOperac == "10"
oJson["items"] := {} //Não retornará itens ao apontar a operação 10.
Else
nPos := Len(oJson["items"]) + 1
aAdd(oJson["items"], JsonObject():New())
oJson["items"][nPos]["BC_OP"] := cOrdPrd
oJson["items"][nPos]["BC_PRODUTO"] := "PRODUTOA"
oJson["items"][nPos]["BC_PRODESC"] := Posicione("SB1",1,xFilial("SB1")+"PRODUTOA", "B1_DESC")
oJson["items"][nPos]["BC_OPERAC"] := cOperac
oJson["items"][nPos]["BC_RECURSO"] := ""
oJson["items"][nPos]["BC_LOCORIG"] := "01"
oJson["items"][nPos]["BC_QUANT"] := nQuant
oJson["items"][nPos]["BC_QTDDEST"] := 0
oJson["items"][nPos]["BC_LOTECTL"] := ""
oJson["items"][nPos]["BC_NUMLOTE"] := ""
oJson["items"][nPos]["BC_DTVALID"] := ""
oJson["items"][nPos]["BC_LOCALIZ"] := ""
oJson["items"][nPos]["BC_NUMSERI"] := ""
oJson["items"][nPos]["BC_DATA"] := formatData(dDataBase)
oJson["items"][nPos]["BC_MOTIVO"] := cWstRsn
EndIf
//Converte o objeto Json com as informações manipuladas em uma String Json.
cJson := oJson:ToJson()
Conout("cJson: " + cJson)
//Limpa da memória o objeto Json utilizado.
FREEOBJ(oJson)
Return cJson
Static function formatData(cData)
Local cDataFrmt := dToS(cData)
Return SUBSTR(cDataFrmt, 0, 4) + "-" + SUBSTR(cDataFrmt, 5, 2) + "-" + SUBSTR(cDataFrmt, 7, 2)