Você está na página 1de 10

Indicadores de Produtos

Ambientes : Materias (Estoque/Custos, Faturamento, PCP e Compras)


Arquivos Envolvidos : Ver ao final do documento
Tabelas Utilizadas : SB1 / SBZ
Versões : Protheus 8 – Release 2
País : Todos
BOPS : 82099
Data da Revisão : 03/11/21

Algumas empresas que possuem várias filias no sistema e têm dificuldade de utilizar a tabela de produtos compartilhada
entre elas, pois determinadas informações são específicas de cada filial, não sendo funcional compartilhar todo o arquivo.

Para atender essas empresas, na versão Protheus 8 – Release 2, foi disponibilizada a rotina “Indicadores de Produtos”
(MATA018.PRX), a qual permite que alguns dos campos relacionados ao produto, chamados de “indicadores de produto”,
sejam separados por filial utilizando uma tabela independente da tabela padrão “SB1 - Produtos”, trata-se da tabela “SBZ –
Indicadores de Produtos”. Desta forma, é possível utilizar o cadastro de produtos como compartilhado e possuir uma tabela
de indicadores de produto exclusiva por filial.

No cadastro indicadores de produtos, foram criados alguns campos comuns ao cadastro de produtos, permitindo que sejam
diferenciados entre as filias da empresa. Assim, ao informar um determinado produto em uma rotina que utilize os
indicadores de produtos, o sistema verifica a sua existência na tabela “SBZ - Indicadores de Produtos” para selecionar os
dados relacionados a ele. Caso não exista, são utilizados os dados informados no cadastro de produtos.

Observe os campos do cadastro de produtos existentes na rotina “Indicadores de Produtos”:

B1_LOCPAD Armazém Padrão


B1_QE Quantidade por Embalagem
B1_EMIN Ponto de Pedido

Boletim Técnico – MATERIAIS – Indicadores de Produtos - 1


B1_CUSTD Custo Standard
B1_UCALSTD Data do Último Cálculo do Custo Standard
B1_UPRC Último Preço de Compra
B1_MCUSTD Moeda do Custo Standard
B1_UCOM Última Compra
B1_ESTSEG Estoque de Segurança
B1_ESTFOR Fórmula para Cálculo do Estoque de Segurança
B1_FORPRZ Fórmula para definir o Prazo de Entrega
B1_PE Prazo de Entrega do Produto
B1_TIPE Tipo de Prazo de Entrega
B1_LE Lote Econômico do Produto
B1_LM Lote Mínimo
B1_TOLER Tolerância
B1_TE Tipo de Entrada Padrão, sugerido no recebimento de materias
B1_TS Tipo de Saída Padrão, sugerido no recebimento de materias

Procedimentos de Implementação

1. No ambiente Configurador, menu “Base de Dados/Dicionários/Arquivos”, inclua a tabela “SBZ” conforme


instruções a seguir:

Prefixo SBZ
Descrição Indicadores de Produtos
Modo de Acesso Exclusivo

2. Cadastre os campos da nova tabela:

Cons.
Campo Tipo Tam. Dec. Formato Título Descrição Val. Usuário
Padrão
BZ_FILIAL C 02 Filial Filial do sistema
Existcpo("SB1") .And.
BZ_COD C 15 @! Código Código do Produto SB1 Existchav("SBZ") .And.
FreeForUse("SBZ")
Armazém Padrão
BZ_LOCPAD C 02 @! Armazém Pad.
p/Requis.
BZ_TE C 03 @9 TE Padrão Código de Entrada SF4 Vazio( ) .Or. Existcpo("SF4")

2 - Boletim Técnico – Materiais – Indicadores de Produtos


padrão .And. M->BZ_TE<"500"
Código de Saída Vazio( ) .Or. Existcpo("SF4")
BZ_TS C 03 @9 TS Padrão SF4
padrão .And. M->BZ_TS>= “500"
BZ_QE N 09 @E 999,999,999 Qtd.Embalag. Qtde por Embalagem A018Mult( )
BZ_EMIN N 12 2 @E 9,999,999.99 Ponto Pedido Ponto de Pedido
BZ_CUSTD N 12 2 @E 9,999,999.99 Custo Stand. Custo Standard Positivo( )
Dta Ult Calc. do
BZ_UCALSTD D 08 Ult. Cálculo
Custo Std.
Moeda do Custo Pertence("12345")
BZ_MCUSTD C 01 @! Moeda C.Std
Standard
Data da Ultima
BZ_UCOM D 08 Ult. Compra
Compra
Estoque de
BZ_ESTSEG N 12 2 @E 9,999,999.99 Segurança
Segurança
Fórmula Estoque Vazio( ) .Or. Existcpo("SM4")
BZ_ESTFOR C 03 @! Form.Est.Seg SM4
Segurança
Fórmula Calculo do Vazio( ) .Or. Existcpo("SM4")
BZ_FORPRZ C 03 @! Form. Prazo SM4
Prazo
BZ_PE N 05 @E 99999 Entrega Prazo de Entrega Positivo( )
H-Horas; D-Dias; S=Semana;
BZ_TIPE C 01 @! Tipo Prazo Tipo Prazo Entrega
M=Mês; A=Ano
BZ_LE N 12 2 @E 9,999,999.99 Lote Econom. Lote Econômico A018Mult( )
BZ_LM N 12 2 @E 9,999,999.99 Lote Mínimo Lote Mínimo Positivo()
BZ_TOLER N 03 999 Tolerância Tolerância Positivo( )

3. Após o cadastramento dos campos, crie também o índice da tabela “SBZ” com as instruções a seguir:

Chave BZ_FILIAL+BZ_COD
Nickname SBZ
Descrição FILIAL+CODIGO

4. Grave os dados da nova tabela, sem que nenhum usuário esteja utilizando o sistema no momento da gravação dos
arquivos SXs.

5. No ambiente Configurador, opção “Ambiente/Cadastros/Menus”, inclua nos menus dos ambientes Estoque/Custos,
Faturamento, PCP e Compras, a opção “Indicadores de Produtos” (menu “Cadastros”), programa “MATA018 “.

Menu Atualizações
Submenu Cadastros
Opção Indicadores Produtos
Programa MATA018
Tabela SBZ

Boletim Técnico – Materiais – Indicadores de Produtos - 3


6. Para determinar se serão considerados os dados da tabela “SBZ – Indicadores de Produtos”, na opção
Ambiente/Cadastros/Parâmetros do ambiente Configurador, crie o parâmetro “MV_ARQPROD” conforme instruçoes
a seguir:

Nome da Var. MV_ARQPROD


Tipo Caracter
Cont. Por. SBZ
Identifica se os dados de indicadores de produto serão
Descrição considerados pela tabela “SB1 – Cadastro de Produtos”
ou pela tabela “SBZ – Indicadores de Produto .

A seguir será apresentado um modelo de utilização desse conceito com telas de exemplo na versão Protheus 8.11.

Exemplo de utilização:

Este exemplo demonstra como cadastrar um novo produto e associar informações utilizando o conceito de “Indicadores de
Produtos por Filial”.

Neste exemplo, serão atualizadas duas filiais, sendo: a filial 01 em Curitiba e a filial 02 em São Paulo. Antes de iniciar, deve-
se configurar o parâmetro “MV_ARQPROD”, para utilizar o novo conceito de indicadores de produtos, com o conteúdo
“SBZ”.

1. No ambiente Configurador, opção “Ambiente/Cadastros/Parâmetros”, configure o parâmetro “MV_ARQPROD”


com conteúdo igual a “SBZ”, conforme figura abaixo:

4 - Boletim Técnico – Materiais – Indicadores de Produtos


2. No ambiente Configurador, opção “Base de Dados/Dicionário/Arquivos”, configure a tabela “SB1” para o modo
compartilhado, conforme figura abaixo:

3. No ambiente Estoque/Custos, opção “Atualizações/Cadastros/Produtos”, cadastre o produto “MP1” a ser utilizado,


preencha somente os campos obrigatórios.

Os campos referentes às informações de indicadores de produtos não precisam ser preenchidos. Observe:

Boletim Técnico – Materiais – Indicadores de Produtos - 5


4. No ambiente Estoque/Custos, utilizando a filial 01 – Curitiba – selecione a opção “Atualizações/ Cadastros/
Indicador de Produtos”, cadastre um indicador de produto para o produto MP1 / Filial 01, conforme instruções a
seguir:

5. No ambiente Estoque/Custos, utilizando a Filial 02 – São Paulo – selecione a opção “Atualizações/ Cadastros/
Indicador de Produtos”, cadastre outro indicador de produto para o produto MP1 / Filial 02, conforme instruções a
seguir:

6 - Boletim Técnico – Materiais – Indicadores de Produtos


Ao finalizar, será gravado o produto “MP1” na tabela “SB1” com os dados comuns para todas as filias do sistema.
Assim, os dados serão compartilhados entre todas as filiais.

Já para a tabela “SBZ”, serão gravados dois registros para o produto “MP1”. O primeiro com os dados exclusivos da
filial 01 – Curitiba – e o segundo, com os dados exclusivos da filial 02 – São Paulo.

Portanto, ao executar qualquer rotina que atualize ou consulte os campos do cadastro de indicadores de produtos, serão
selecionadas as informações da tabela “SBZ”. Exemplos: a rotina “Acerto do Custo de Entrada” (“MATA190”) ou a
rotina “Custo de Reposição” (“MATA320”), irão atualizar os valores dos campos da tabela “SBZ” de acordo com a filial
corrente e não irão mais atualizar o campos relacionados no arquivo SB1.

Novas Funções Disponíveis

1. RetFldProd(cCodPro,cCampo,cAliasTop)

Boletim Técnico – Materiais – Indicadores de Produtos - 7


Retorna as informações da tabela “SB1” ou da tabela “SBZ” de acordo com a configuração informada no parâmetro
“MV_ARQPROD” (Ambiente Configurador) e verifica a existência de registros na tabela SBZ.

Exemplo de utilização:

cCodProd – Código do produto.


cCampo – Campo a ser atualizado, verificar lista de campos de indicadores de produtos.
cAliasTop – Nome do arquivo de trabalho, parâmetro somente utilizado com querys.

User Function Teste_Padrao1( cCodProd)


Local aArea := GetArea( )
Local aRet // Array com informacoes do produto
Default cCodProd := “”
dbSelectArea(“SB1”)
dbSetOrder(1)
If dbSeek(xFilial()+cCodProd)
aAdd(aRet,B1_COD) // Codigo do produto
aAdd(aRet,RetFldProd(SB1->B1_COD,"B1_LOCPAD")) // Armazém padrão do produto
aAdd(aRet, RetFldProd(SB1->B1_COD,"B1_LE")) // Lote economico do produto
aAdd(aRet, RetFldProd(SB1->B1_COD,"B1_CUSTD")) // Custo Standard do produto
EndIf
RestArea(aArea)
Return aRet

2. RetArqProd(cCodPro)

Retorna a informação se deve gravar os dados referentes aos indicadores de produto na tabela “SB1” ou na tabela
“SBZ” conforme configuração do parâmetro “MV_ARQPROD“ informado no ambiente Configurador.

Exemplo de utilização:

cCodProd – Código de Produto

User Function Teste_Padrao2( cCodProd,cLocPad,nLE)


Local aArea := GetArea( )
Local aRet
Default cCodProd := “”

8 - Boletim Técnico – Materiais – Indicadores de Produtos


Default cLocPad := “”
Default nLe := “”

dbSelectArea(“SB1”)
dbSetOrder(1)
If dbSeek(xFilial()+cCodProd)
If RetArqProd(cCodProd)
Aviso(“Tabela SB1”,”A função verificou que será posicionado na tabela
SB1”,{'Ok'})
RecLock("SB1",.F.)
Replace B1_LOCPAD with cLocPad
Replace B1_LE with nLE
MsUnlock()
Else
Aviso(“Tabela SBZ”,”A função verificou que será posicionado na tabela SBZ”,{'Ok'})
RecLock("SBZ",.F.)
Replace BZ_LOCPAD with cLocPad
Replace BZ_LE with nLE
MsUnlock()
EndIf
EndIf
RestArea(aArea)
Return

Importante

No exemplo acima, verifique que a função está selecionando a tabela “SB1” com o comando “dbSelectArea”. Porém, ao
gravar os campos _LOCPAD (“Local Padrão”) e _LE (“Lote Economico”), é necessário utilizar a nova função
“RetArqProd( )” para verificar em qual tabela deve-se gravar o conteúdo das variáveis.
A nova função “RetArqProd( )” verifica em qual tabela deve-se gravar os conteúdos das variáveis através do parâmetro
“MV_ARQPROD”. Quando este estiver preenchido com “SBZ”, a própria função RetArqProd( ) se encarrega de
localizar o produto na tabela SBZ e posicionar no registro correto.

Relação de arquivos envolvidos:

ACDXFUN.PRW MATA100B.PRX MATA415.PRX MATR690.PRX PMSXFUN.PRX


COMXFUN.PRX MATA100C.PRX MATA430.PRX MATR755.PRX QIEA010.PRW
DAC.PRW MATA103.PRW MATA455.PRX MATR765.PRX QIPA010.PRW
DISXFUNA.PRW MATA103X.PRX MATA457.PRW MATR851.PRW QIPXFUN.PRW
DISXFUNB.PRW MATA105.PRX MATA462T.PRW MATR860.PRX QPPA010.PRW
DISXFUNC.PRW MATA110.PRX MATA760.PRX MATR870.PRX SIGACUS.PRW
DLGXFUN.PRW MATA118X.PRX MATA920.PRW MATR875.PRX SIGACUSA.PRX
FATA400.PRX MATA120.PRX MATA650.PRX MATR880.PRX SIGACUSB.PRX

Boletim Técnico – Materiais – Indicadores de Produtos - 9


LJTER01.PRW MATA125.PRX MATA650A.PRX MATR881.PRX TECA210.PRX
LOCXNF.PRW MATA130.PRX MATA680.PRX MATR911.PRX TECA250.PRW
LOCXNF2.PRW MATA145.PRX MATA710.PRX MATXFUNA.PRX TECA460.PRX
LOJA010B.PRW MATA150.PRX MATA711.PRW MATXFUNC.PRX TECA470.PRX
LOJA010D.PRW MATA160.PRX MATA720.PRX MATXMAG.PRX TECA700.PRX
LOJA020A.PRW MATA170.PRX MATC010X.PRX NEOXFUN.PRX TECR540.PRX
LOJA021B.PRW MATA171.PRX MATC040.PRX OMSA290.PRW TECXFUN.PRX
LOJA220A.PRW MATA173.PRX MATC050.PRX OMSR010.PRX TMKA030.PRX
LOJA430.PRW MATA190.PRX MATC120.PRW PLMEXP.PRW TMKA273.PRW
LOJA701A.PRW MATA240.PRX MATR140.PRX PMSA010.PRW TMKA273D.PRW
LOJA800.PRW MATA241.PRX MATR210.PRX PMSA100.PRW TMKR006.PRX
LOJA920.PRW MATA242.PRX MATR260.PRX PMSA101.PRW TMKR031.PRW
LOJA920X.PRX MATA260.PRX MATR290.PRX PMSA103.PRW TMKXFUNA.PRW
LOJATER.PRW MATA261.PRX MATR310.PRX PMSA200.PRW TMSA200.PRW
LOJC060.PRW MATA280.PRX MATR311.PRW PMSA203.PRW TMSA250.PRW
LOJC080.PRW MATA290.PRX MATR360.PRX PMSA410.PRW TMSA320.PRW
LOJR140.PRW MATA295.PRW MATR440.PRX PMSA600.PRW TMSA590.PRW
LOJXFUNA.PRX MATA297.PRW MATR450.PRX PMSC010A.PRW TMSXFUNB.PRW
MATA018.PRX MATA320.PRX MATR520.PRX PMSR010.PRW TMSXFUNC.PRW
MATA100A.PRX MATA410A.PRX

10 - Boletim Técnico – Materiais – Indicadores de Produtos

Você também pode gostar