01. DADOS GERAIS
Produto: | TOTVS Manufatura
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Manufatura |
Módulo: | SIGAPCP - Planejamento e Controle da Produção |
Função: | ProductionOrderSearch |
País: | Brasil |
Story: | DMANSMARTSQUAD1-22774 |
02. SITUAÇÃO/REQUISITO
Desenvolver métodos da API ProductionOrderSearch para atender a implementações da funcionalidade de consulta de Ordens de Produção pelo APP Minha Produção.
03. SOLUÇÃO
MÉTODO SEARCHID
Foi criado o método SearchId para retornar a identificação única da sessão da consulta.
Parâmetros de envio:
- User- Código do usuário que está realizando a consulta de Ordens de Produção (obrigatório)
JSON de Retorno:
[
{
"SearchId": "TC20396"
}
]
MÉTODO FILTERVALIDATION
Foi criado o método FilterValidation para validar se é possível realizar a consulta com o filtro informado. Ou seja, se a consulta retornar um número maior de ordens de produção que a permitida será apresentada uma mensagem que é necessário rever o filtro para refinar a busca.
Parâmetros de envio:
- FilterSearch - Filtro de pesquisa para realizar a seleção das OPs e Operações (obrigatório)
- NumberOfReturnOrders - Quantidade máxima de ordens de produção que pode retornar na consulta de OPs.
JSON de Retorno:
[
{
"Status": true
}
]
Considerações do método FilterValidation:
- Se a consulta retornar um número maior de ordens de produção que a enviada pela TAG NumberOfReturnOrders é apresentada a mensagem: Filtro da consulta retornou muitas Ordens de Produção. Rever filtro para refinar a busca.
- Se a consulta não retornar ordem de produção é apresentada a mensagem: Não existe ordem de produção cadastrada para o filtro informado.
- Se a consulta retornar a quantidade permitida enviada pela TAG NumberOfReturnOrders é enviado o JSON de retorno com a TAG STATUS igual a true.
MÉTODO PRODUCTIONORDERMASTER
Foi criado o método ProductionOrderMaster para retornar uma lista com informações da ordens de produção e operações das ordens de produção.
Parâmetros de envio:
- SearchId - Identificação única da sessão da consulta. (obrigatório)
- AppointmentType - Tipo do apontamento (opcional)
- FilterSearch - Filtro de pesquisa para realizar a seleção das OPs e Operações (obrigatório)
- OrderType - Tipo da ordenação da consulta (opcional)
- Action - Ação que será realizada (obrigatório)
- Page - Número da página que deve ser retornada (opcional)
- PageSize - Tamanho da página que deve ser retornada. Ou seja, quantidade de registros por página (opcional)
- User - Usuário que está realizando a consulta (obrigatório)
Considerações do método ProductionOrderMaster:
- A identificação única deve ser o valor retornado do método SearchId. Sempre que executar o método ProductionOrderMaster deve ser executado previamente o método SearchId para obter a identificação única da sessão.
- O tipo de apontamento é opcional e aceita os valores: 1 - Produção Simples; 3 - Produção Mod 2; 4 - Produção Chão de Fábrica, ' ' - Branco - Entende por Produção Simples.
- A busca das OPs é realizada com base no filtro de pesquisa enviado. O filtro pode ser uma Ordem de Produção e/ou Código do Produto, seguindo a regra:
- Ordem de Produção
- Primeiro é verificado se existe uma OP com o filtro enviado considerando a chave da OP (Número da OP + Item + Sequência + Item Grade). Se existir uma OP serão retornadas as informações desta OP.
- Caso não existir uma OP com o filtro enviado considerando a chave da OP (Número da OP + Item + Sequência + Item Grade), é verificado se existe uma OP considerando somente o número da OP. Se existir uma ou mais OPs serão retornadas as informações destas OPs.
- Se não existir OP com a chave completa da OP (Número da OP + Item + Sequência + Item Grade) ou somente com o Número da OP, não é utilizado o campo Ordem de Produção para retornar as informações da OP e Operações da OP.
- Código do Produto
- Primeiro é verificado se existe uma OP com o filtro enviado considerando o código completo do produto. Se existir uma OP com este código de produto serão retornadas as informações desta OP.
- Caso não existir uma OP considerando o código completo do produto, será verificado se existe uma OP contendo uma parte deste código de produto. Se existir uma ou mais OPs serão retornadas as informações desta OP.
- Se não existir uma OP com o código do produto completo ou parte dele, não é utilizado o campo Produto para retornar as informações da OP e Operações da OP.
- Se existir Ordem de Produção e Produto que atenda o filtro enviado, serão retornadas as informações considerando o filtro de Ordem de Produção ou do Código do Produto.
- Se não existir Ordem de Produção e Produto que atenda o filtro enviado, não é retornada nenhuma informação de Ordem de Produção.
- Ordem de Produção
- O tipo da ordenação da consulta é opcional e aceita os valores: 1-Por Ordem de Produção; 2-Pela data prevista para o início da Ordem de Produção; 3- Pelo código do produto da Ordem de Produção; ' ' - Branco - Entende por Ordem de Produção.
- A ação é obrigatório e indica a ação que o método irá realizar. Aceita os valores: R - Reordenar; B - Buscar; P - Paginação
- Quando é enviada a opção para Reordenar não é realizada uma nova busca. É feita a reordenação com base na última busca feita e a reordenação é feita com base no parâmetro OrderType. Mesmo que tenha sido alterado o filtro de pesquisa, não será realizada uma nova busca.
- Quando é enviada a opção para Buscar é realizada uma nova busca com base no filtro de pesquisa enviado.
- Quando é enviada a opção para Paginar não é realizada uma nova busca. É feita a paginação com base na última busca feita e a paginação é feita com base no parâmetro Page e PageSize.
- O número da página a ser retornada é opcional e indica qual página deve ser retornada na consulta. Se o parâmetro Page não for enviado, será considerado como 1.
- A quantidade de registros por página é opcional e indica quantos registros são apresentados por página. Se o parâmetro PageSize não for enviado, será considerado como 10.
- O usuário é obrigatório e deve ser enviado o usuário que esta realizando a consulta.
JSON de Retorno:
{
"Items": [
{
"Split": " ",
"StartActivityDate": "20201029",
"StartOrderDate": "20201029",
"StatusOrderType": "3",
"ProductionQuantity": 2.6,
"ActivityQuantity": 10,
"ItemDescription": "681-PA ",
"ActivityID": "0000000001"
"ItemCode": "681-PA ",
"StartOrderCPDate": "20201029",
"EndOrderCPDate": "20201029",
"EndOrderDate": " ",
"ProductionOrderNumber": "00002201001 ",
"ActivityCode": "10",
"EndActivityDate": " ",
"Quantity": 10,
"ReportQuantity": 2.6,
"ActivityDescription": "OPER 10 "
},
{
"Split": " ",
"StartActivityDate": "20210427",
"StartOrderDate": "20210427",
"StatusOrderType": "3",
"ProductionQuantity": 12,
"ActivityQuantity": 10,
"ItemDescription": "20770-PA ",
"ActivityID": "0000000001"
"ItemCode": "20770-PA ",
"StartOrderCPDate": "20210427",
"EndOrderCPDate": "20210427",
"EndOrderDate": " ",
"ProductionOrderNumber": "00005501001 ",
"ActivityCode": "10",
"EndActivityDate": " ",
"Quantity": 10,
"ReportQuantity": 12,
"ActivityDescription": "OPER 10 "
},
{
"Split": " ",
"StartActivityDate": "20210924",
"StartOrderDate": "20210924",
"StatusOrderType": "3",
"ProductionQuantity": 5.2,
"ActivityQuantity": 10,
"ItemDescription": "681-PA ",
"ActivityID": "0000000001"
"ItemCode": "681-PA ",
"StartOrderCPDate": "20210924",
"EndOrderCPDate": "20210924",
"EndOrderDate": " ",
"ProductionOrderNumber": "00005701001 ",
"ActivityCode": "10",
"EndActivityDate": " ",
"Quantity": 10,
"ReportQuantity": 5.2,
"ActivityDescription": "OPER 10 "
}
],
"hasNext": false
}
Informações das TAGS do JSON de retorno:
TAG | Nome | Campo |
---|---|---|
ProductionOrderNumber | Ordem de Produção | SC2 → C2_FILIAL+C2_NUM+C2_ITEM+C2_SEQUEN+C2_ITEMGRD |
ItemCode | Código do Produto da OP | SC2 → C2_PRODUTO |
ItemDescription | Descrição do Produto da OP | SB1 → B1_DESC |
Quantity | Quantidade Prevista da OP | SC2 → C2_QUANT |
ProductionQuantity | Quantidade Produzida da OP | SC2 → C2_QUJE |
StartOrderCPDate | Data Prevista de Início da OP | SC2 → C2_DATPRI |
EndOrderCPDate | Data Prevista de Término da OP | SC2 → C2_DATPRF |
StartOrderDate | Data de Início Real da OP | Produção Simples: MIN(D3_EMISSAO) Produção Mod 2: MIN(H6_DTAPONT) Produção Chão de Fábrica: MIN(CYV_DTRP) |
EndOrderDate | Data de Término Real da OP | SC2 → C2_DATRF |
StatusOrderType | Status da OP | Mesma regra da função A650DefLeg utilizada para carregar a legenda no MATA650. |
Split | Split da Operação | Tipo 1: Em branco Tipo 3: Em branco Tipo 4: CYY → CYY_IDATQO |
ActivityCode | Código da Operação | Tipo 1: Em branco Tipo 3: SHY → HY_OPERAC / SG2 → G2_OPERAC Tipo 4: CY9 → CY9_CDAT |
ActivityDescription | Descrição da Operação | Tipo 1: Em branco Tipo 3: SHY → HY_DESCRI / SG2 → G2_DESCRI Tipo 4: CY9 → CY9_DSAT |
ActivityQuantity | Quantidade Prevista da Operação/Split | Tipo 1: Em branco Tipo 3: SC2 → C2_QUANT Tipo 4: CYY → CYY_QTAT |
ReportQuantity | Quantidade Produzida da Operação/Split | Tipo 1: Em branco Tipo 3: SH6 → SUM(H6_QTDPROD) + SUM(H6_QTDPERD) Tipo 4: CYY → CYY_QTATAP + CYY_QTATRF |
StartActivityDate | Data de Início Real da Operação/Split | Tipo 1: Em branco Tipo 3: SH6 → MIN(H6_DTAPONT) Tipo 4: CYY → CYY_DTBGAT |
EndActivityDate | Data Fim Real da Operação/Split | Tipo 1: Em branco Tipo 3: SH6 → MAX(H6_DTAPONT) Tipo 4: CYY → CYY_DTEDAT |
ActivityID | ID de identificação da operação | Tipo 1: Em branco Tipo 3: Em branco Tipo 4: CYY → CYY_IDAT |
Observações das TAGs do JSON de retorno:
- O Status da OP retorna um valor caractere com os seguintes valores: 1-Prevista; 2-Em aberto; 3-Iniciada; 5-Encerrada Parcialmente; 6-Encerrada Totalmente. Não existe o Status 4-Ocioasa conforme existe na legenda do MATA650 (Ordem de Produção). Se uma OP estiver com o Status Ociosa no MATA650, na API retornará com um dos valores citados anteriormente.
- A Lista de Operações é carregada quando o Tipo do Apontamento for 3 - Produção Mod 2 ou 4 - Produção Chão de Fábrica. Quando o tipo for 3, as informações serão carregadas das tabelas SHY (Operações x Ordem) ou SG2 (Operações), conforme parametrização:
MV_APS = 'TOTVS' ou MV_PCPATOR = .T. - SHY
- MV_APS <> 'TOTVS' e MV_PCPATOR = .F. - SG2
- Se uma OP foi criada quando o sistema estava parametrizado para usar a SG2 e após isso foi alterado para usar a SHY, não serão apresentadas as operações desta OP.
- Foi criado o Ponto de Entrada POSFilOp onde é possível indicar se a OP selecionada irá ou não retornar no JSON de retorno.
MÉTODO LASTAPPOINTMENTS
Foi criado o método LastAppointments para retornar as últimas ordens de produção apontadas.
Parâmetros de envio:
- User - Usuário que realizou o apontamento (obrigatório)
- AppointmentType - Tipo do apontamento (opcional)
- NumberOfReturnOrders - Quantidade de ordens a serem retornadas (obrigatório)
Considerações do método LastAppointments:
- O tipo de apontamento é opcional e aceita os valores: 1 - Produção Simples; 3 - Produção Mod 2; 4 - Produção Chão de Fábrica, ' ' - Branco - Todos os tipos de apontamentos.
- Serão retornadas as últimas OPs apontadas e considerado somente um apontamento por OP (caso os últimos apontamentos na sequência sejam da mesma OP será considerada somente uma vez e irá buscar as próximas).
- Serão retornadas somente as OPs que o usuário realizou o apontamento. Ou seja, os apontamentos realizados pelo usuário que foi enviado nos parâmetros de envio.
JSON de Retorno:
{
"ProductionOrderNumber ": "00000801001"
"ItemCode ": "AA91"
}
Informações das TAGS do JSON de retorno:
TAG | Nome | Descrição | Campo |
---|---|---|---|
ProductionOrderNumber | Ordem de Produção | Ordem de produção apontada. | D3_OP |
ItemCode | Código do Produto | Produto da ordem de produção | D3_COD |
04. DEMAIS INFORMAÇÕES
Não se aplica.
05. ASSUNTOS RELACIONADOS
- Minha Produção_
- Pontos de entrada
- POSFilOp - Filtrar informações da Consulta de OP pelo APP Minha Produção