Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Descrição

Ponto de entrada para utilização no MNTNG MOBILE

Idioma

Português(Brasil)

Versões

A partir 12.1.16

Sistemas Operacionais Suportados

Todos

Compatível com as Bases de Dados

Todas

Parâmetros

PosiçãoTipoDescrição
1CID do local de execução do ponto de entrada
2OObjeto com referência ao webservice
IDConteúdo do objeto no 2º parâmetro


CREATED_ORDER

Bloco de código
titleExemplo do conteúdo
linenumberstrue
collapsetrue
{  
   "startDate":"20180326 17:56",
   "observation":"observação da ordem de serviço",
   "inputs":[  
      {  
         "sublot":"",
         "location":"",
         "task":"0",
         "serialNumber":"",
         "destiny":"A",
         "code":"007",
         "type":"P",
         "warehouse":"01",
         "date":"20180321 17:56",
         "amount":1,
         "isDone":true,
         "unity":"PC",
         "lot":"",
         "note":"observação insumo"
      }
   ],
   "plan":"LOCAL",
   "counter":[  
      {  
         "datetime":"20170128 10:00",
         "value":370
      }
   ],
   "service":"CORG2",
   "endDate":"20180326 17:56",
   "equipment":"EMPILHADEIRA 002",
   "code":"000000",
   "type":"C",
   "checklist":[  
      {  
         "worker":"1008",
         "isDone":true,
         "task":"0",
         "step":"MOTOLE"
      }
   ]
}

FINISHED_ORDER / FINISHED_VALID_ORDER


Bloco de código
titleExemplo do conteúdo
linenumberstrue
collapsetrue
{  
   "startDate":"20180326 17:56",
   "observation":"observ finaliza",
   "plan":"000000",
   "order":"001008",
   "json":"{\"startDate\":\"20180326 17:56\",\"observation\":\"teste stj\",\"inputs\":[{\"amount\":1,\"isDone\":true,\"unity\":\"PC\",\"task\":\"0\",\"destiny\":\"A\",\"code\":\"007\",\"type\":\"P\",\"warehouse\":\"01\",\"date\":\"20180321 17:56\",\"note\":\"teste observação insumo\"}],\"plan\":\"000000\",\"counter\":[{\"datetime\":\"20170128 10:00\",\"value\":370}],\"service\":\"CORG2\",\"endDate\":\"20180326 17:56\",\"equipment\":\"EMPILHADEIRA 002\",\"code\":\"001008\",\"type\":\"C\",\"checklist\":[{\"worker\":\"1008\",\"isDone\":true,\"task\":\"0\",\"step\":\"MOTOLE\"}]}",
   "counter":[  
      {  
         "value":370,
         "datetime":"20180326 18:03"
      }
   ],
   "hourCounter":"18:03",
   "endDate":"20180326 17:56",
   "fault":"01"
}
COUNTER_VALID_FINISH
Bloco de código
titleExemplo do conteúdo
collapsetrue
{  
   "startDate":"20180326 17:55",
   "observation":"444",
   "plan":"000000",
   "order":"001007",
   "json":"{\"startDate\":\"20180326 17:55\",\"observation\":\"teste\",\"inputs\":[{\"amount\":1,\"isDone\":true,\"unity\":\"PC\",\"task\":\"0\",\"destiny\":\"A\",\"code\":\"005\",\"type\":\"P\",\"warehouse\":\"01\",\"date\":\"20180326 17:55\",\"note\":\"teste\"}],\"plan\":\"000000\",\"counter\":[{\"datetime\":\"20180104 08:05\",\"value\":1000}],\"service\":\"CORG2\",\"endDate\":\"20180326 17:55\",\"equipment\":\"EMPGEN001\",\"code\":\"001007\",\"type\":\"C\",\"checklist\":[]}",
   "counter":[  
      {  
         "value":1001,
         "datetime":"20180326 18:06"
      }
   ],
   "hourCounter":"18:06",
   "endDate":"20180326 17:55",
   "fault":"01"
}
CANCEL_VALID
Bloco de código
titleExemplo do conteúdo
collapsetrue
{  
   "message":"observação da ordem de serviço", //observação
   "plan":"000000", //código do plano da ordem
   "order":"001006" //código da ordem de serviço
}




Retorno

O ponto de entrada é chamado em vários momentos dentro do fonte, na 2ª posição da estrutura do vetor é passado um ID que identifica qual é este momento. De acordo com o ID o retorno pode ser diferente, como citado na tabela abaixo:

IDMOMENTO DE EXECUÇÃO DO PONTO DE ENTRADARETORNO
CREATED_ORDERApós a inclusão de uma ordem de serviçoNulo
FINISHED_ORDERApós a finalização de uma ordem de serviçoNulo
FINISHED_VALID_ORDERValidação antes da finalização de uma ordem de serviçoString (retorna string com motivo quando a validação é negativa. Quando é positivo deve retornar vazio)
CANCEL_VALIDValidação antes do cancelamento de uma ordem de serviço

Vetor:

1º posição: boleano que indica validação

2º posição: string para indicar o motivo quando validação retorna negativo.

CREATED_PLANNED_INPUTApós incluir um insumo previstoNulo
COUNTER_VALID_FINISHValidação de contador na finalizaçãoString (retorna string com motivo quando a validação é negativa. Quando é positivo deve retornar vazio)
FILTER_PRODUCTFiltro para produtosString que será adicionada à cláusura 'where' para produtos (SB1).

FILTER_EQUIPMENT

Filtro para bensString que será adicionada à cláusura 'where' para bens (ST9).

FILTER_SERVICE

Filtro para serviçosString que será adicionada à cláusura 'where' para serviços (ST4).

FILTER_COSTCENTER

Filtro para centros de custoString que será adicionada à cláusura 'where' para centros de custo (CTT).

FILTER_FAMILY

Filtro para famílias de bens

String que será adicionada à cláusura 'where' para famílias de bens (ST6).

FILTER_TOOL

Filtro para ferramentas

String que será adicionada à cláusura 'where' para ferramentas (SH4).

FILTER_AREA

Filtro para áreas da manutençãoString que será adicionada à cláusura 'where' para área (STD).

FILTER_THIRDPART

Filtro para terceiros

String que será adicionada à cláusura 'where' terceiros (SA2).

Programa Fonte

MNTNG.APW

...

Bloco de código
languagesql
#include "PROTHEUS.ch"
User Function MNTNG()
  
    Local cId := PARAMIXB[1] //Indica o momento da chamada do PE
    Local oWS := PARAMIXB[2] //Objeto com referência ao webservice
    Local oParser, aArea, aAreaSTJ
     
    If cId == "CANCEL_VALID" //valida cancelamento da ordem
        If FWJsonDeserialize(oWS:GetContent(),@oParser) //Parse da string no formato Json
            If Empty( oParser:message )//verifica campo observação foi passado vazio
                Return "A observação do cancelamento é obrigatória."
            EndIf
        EndIf
     
	ElseIf cId == "FINISHED_VALID_ORDER"
	
		If FWJsonDeserialize(oWS:GetContent(), @oParser)
			If Empty( oParser:observation ) //verifica campo observação foi passado vazio
                Return "Campo observação deve ser informado."
            EndIf
		EndIf
	
    ElseIf cId == "FINISHED_ORDER"       
        If FWJsonDeserialize(oWS:GetContent(), @oParser)
             
            aArea := GetArea()
            aAreaSTJ := STJ->(GetArea())
 
 
            dbSelectArea("STJ")
            dbSetOrder(1)
            If dbSeek(xFilial("STJ") + oParser:order + oParser:plan)
                Reclock("STJ", .F.)
                STJ->TJ_DTPRINI := STJ->TJ_DTMRINI
                STJ->TJ_HOPRINI := STJ->TJ_HOMRINI
                STJ->TJ_DTPRFIM := STJ->TJ_DTMRFIM
                STJ->TJ_HOPRFIM := STJ->TJ_HOMRFIM
                MsUnlock()
            Endif
 
            RestArea(aAreaSTJ)
            RestArea(aArea)
        Endif
         
    ElseIf cId == "FILTER_PRODUCT" //adiciona filtro para busca de produtos
        Return " AND B1_GRUPO = '97'"
 
    EndIf
 
Return