CONTEÚDO
- Visão Geral
- Exemplo da Seleção e Gravação dos Campos _OPC e _MOPC
01. VISÃO GERAL
A utilização de Grupo de Opcionais tem a finalidade de otimizar o processo de cadastramento, produção e estoque, permitindo a montagem de estruturas dinâmicas para produtos com opcionais.
Ao abrir uma Ordem de Produção ou um Pedido de Venda, é solicitado ao usuário que selecione qual dos opcionais cadastrados para o produto será considerado pelo Sistema.
A seleção dos opcionais é feita considerando o parâmetro MV_REPGOPC - Indica se deverá solicitar os opcionais em todos os níveis da estrutura.
- MV_REPGOPC igual a N – Não
Ao abrir a tela para seleção dos opcionais, é apresentado somente uma vez um determinado grupo/item opcional para seleção. Se este grupo/item opcional existir em mais níveis, é considerado o mesmo item opcional selecionado anteriormente.
- MV_REPGOPC igual a S - Sim
Ao abrir a tela para seleção dos opcionais, se um determinado grupo/item opcional existir em mais níveis, é aberta a tela para seleção para cada nível da estrutura. Sendo possível selecionar itens opcionais diferentes para cada nível da estrutura.
Independente do conteúdo do parâmetro MV_REPGOPC os campos referentes ao opcional são gravados da mesma forma.
Todas as rotinas que utilizam o opcional armazenam as informações da mesma forma nos campos _OPC e _MOPC.
Principais tabelas e campos que utilizam o opcional:
Tabela | Descrição | Opcional | Memo Opcional |
---|---|---|---|
SB1 | Descrição Genérica do Produto | B1_OPC | B1_MOPC |
SBZ | Indicadores de Produtos | BZ_OPC | BZ_MOPC |
SC2 | Ordens de Produção | C2_OPC | C2_MOPC |
SC4 | Previsão de Vendas | C4_OPC | C4_MOPC |
SC6 | Itens dos Pedidos de Venda | C6_OPC | C6_MOPC |
SHC | Plano Mestre de Produção | HC_OPC | HC_MOPC |
02. EXEMPLO DA SELEÇÃO E GRAVAÇÃO DOS CAMPOS _OPC E _MOPC
Parametrizações
- Parâmetro MV_REPGOPC igual a Sim. Independente do conteúdo do parâmetro os campos de opcionais são gravados da mesma forma.
- Rotina acessada: Opção Opcional Default do MATA010 – Produtos. Todas as rotinas referente aos opcionais abrem a mesma tela para seleção e gravam os campos de opcionais da mesma forma.
Estrutura
Selecionando os opcionais defaults no MATA010 – Produto
As telas de seleção dos Opcionais Disponíveis são abertas com base nos opcionais cadastrados na estrutura.
Como neste exemplo o parâmetro MV_REPGOPC está definido como S – Sim, foi aberta duas vezes a tela de seleção para o Grupo 002. Uma tela de seleção para cada nível da estrutura, permitindo selecionar itens opcionais diferentes para cada nível.
Para os opcionais defaults do MATA010 – Produtos, os grupos/itens opcionais selecionados são gravados nos campos B1_OPC e B1_MOPC.
Campo B1_OPC
O campo B1_OPC é do tipo caractere e é gravado contendo os grupos/itens opcionais selecionados.
Valor gravado neste exemplo: 00101 /00201 /00202 /
Campo B1_MOPC
O campo B1_MOPC é gravado contendo os grupos/itens opcionais selecionados e a estrutura onde o opcional faz parte. Isso se faz necessário, pois como é possível selecionar grupos/itens opcionais diferentes em mais de um nível, é preciso ter a rastreabilidade da estrutura.
Este campo é do tipo MEMO e para gravação/leitura são utilizadas funções padrões do Protheus para conversão Str2Array e Array2STR.
Gravação do campo B1_MOPC
Primeiramente é gravado em um ARRAY a estrutura e o opcional selecionado para aquela estrutura.
Array gravado neste exemplo:
Então é utilizada a função Array2STR para codificar este array para o campo MEMO.
Esta variável que possui o conteúdo do array codificado é incluído no campo B1_MOPC.
Leitura do campo B1_MOPC
Conforme visto na gravação do campo B1_MOPC, o mesmo foi criado como um ARRAY e codificado para MEMO.
Para realizar a leitura do campo B1_MOPC é utilizada a função Str2Array onde o campo MEMO é transformado para ARRAY.
Primeiramente é feita a leitura do campo MEMO
Pode-se observar que o conteúdo do campo está codificado.
Então é utilizada a função Str2Array para transformar este campo em um ARRAY.
Desta forma é possível realizar as manipulações e consistências necessárias nas rotinas que utilizam o campo MOPC.
É de extrema importância que o campo _MOPC seja gravado corretamente, caso contrário o Protheus não irá considerar corretamente os opcionais selecionados. Como por exemplo na geração de empenhos.
Para manipular as informações dos campos _MOPC é preciso utilizar as funções padrões do Protheus Str2Array e Array2STR. Não é possível realizar a manipulação destes campos pelo banco de dados.IMPORTANTE!