Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. 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:

TabelaDescriçãoOpcionalMemo Opcional
SB1Descrição Genérica do ProdutoB1_OPC    B1_MOPC   
SBZIndicadores de Produtos       BZ_OPC    BZ_MOPC   
SC2Ordens de Produção            C2_OPC    C2_MOPC   
SC4Previsão de Vendas            C4_OPC    C4_MOPC   
SC6Itens dos Pedidos de Venda    C6_OPC    C6_MOPC   
SHCPlano 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.


IMPORTANTE!

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.