Histórico da Página
MTA650GEM - Explosão da Estrutura - Geração dos Empenhos
Características do RequisitoPonto de Entrada
Linha de Produto: | Protheus |
Segmento: | Manufatura |
Módulo: | SIGAPCP |
Rotina: | MATA650 - Ordens de Produção |
Cadastros Iniciais:
Relacione os cadastros necessários que precisam ser preenchidos antes da utilização desse requisito.
Parâmetro(s):
Ponto de Entrada: | MTA650GEM - Explosão da Estrutura - Geração dos Empenhos |
Tickets relacionados | TVJRIT |
Requisito/Story/Issue (informe o requisito relacionado): | MMAN-201 |
País(es): |
Tabelas Utilizadas:
Informe as tabelas utilizadas.
Todos |
Banco(s) de Dados: |
TODOS
Todos |
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição |
Escreva aqui a descrição da nova implementação ou melhoria.
Importante
(Apenas para Microsiga Protheus, versões anteriores à versão 12)
Antes de executar o compatibilizador informe o nome do compatibilizador é imprescindível:
- Realizar o backup da base de dados do produto que será executado o compatibilizador (diretório PROTHEUS_DATA\DATA, se versão 10, ou \PROTHEUS11_DATA\DATA, se versão 11) e dos dicionários de dados SXs (diretório PROTHEUS_DATA_SYSTEM, se versão 10, ou \PROTHEUS11_DATA\SYSTEM, se versão 11).
- Os diretórios acima mencionados correspondem à instalação padrão do Protheus, portanto, devem ser alterados conforme o produto instalado na empresa.
- Essa rotina deve ser executada em modo exclusivo, ou seja, nenhum usuário deve estar utilizando o sistema.
- Se os dicionários de dados possuírem índices personalizados (criados pelo usuário), antes de executar o compatibilizador, certifique-se de que estão identificados pelo nickname. Caso o compatibilizador necessite criar índices, irá adicioná-los a partir da ordem original instalada pelo Protheus, o que poderá sobrescrever índices personalizados, caso não estejam identificados pelo nickname.
- O compatibilizador deve ser executado com a Integridade Referencial desativada*.
Atenção O procedimento a seguir deve ser realizado por um profissional qualificado como Administrador de Banco de Dados (DBA) ou equivalente! A ativação indevida da Integridade Referencial pode alterar drasticamente o relacionamento entre tabelas no banco de dados. Portanto, antes de utilizá-la, observe atentamente os procedimentos a seguir:
Contate o Help Desk Framework EM CASO DE DÚVIDAS! |
---|
- Em Microsiga Protheus TOTVS Smart Client (se versão 10), digite o nome do compatibilizador no campo Programa Inicial. Descreva se o compatibilizador deve ter uma data específica ou superior para que a atualização nos dicionários seja efetuada corretamente. Importante: Para a correta atualização do dicionário de dados, certifique-se que a data do compatibilizador seja igual ou superior a ___/___/____.
- Clique em OK para continuar.
- Após a confirmação é exibida uma tela para a seleção da empresa em que o dicionário de dados será modificado ou é apresentada a janela para seleção do compatibilizador. Selecione o programa xxxx().
- Ao confirmar é exibida uma mensagem de advertência sobre o backup e a necessidade de sua execução em modo exclusivo.
- Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
É apresentada uma mensagem explicativa na tela. - Em seguida, é exibida a janela Atualização concluída com o histórico (log) de todas as atualizações processadas. Nesse log de atualização são apresentados somente os campos atualizados pelo programa. O compatibilizador cria os campos que ainda não existem no dicionário de dados.
- Clique em Gravar para salvar o histórico (log) apresentado.
- Clique em OK para encerrar o processamento.
- Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
Descreva se há algum procedimento necessário após a aplicação do compatibilizador.
Procedimento para Implantação
O sistema é atualizado logo após a aplicação do pacote de atualizações (Patch) deste chamado.
- Aplique o patch do chamado e execute uma vez a rotina Informe o nome da rotina.
- No módulo informe o nome do módulo acesse informe o caminho e verifique que o parâmetro informe o nome do parâmetro é criado conforme especificações abaixo:
Nome da Variável: | Informe o Nome da Variável |
Tipo: | Informe o Tipo |
Descrição: | Informe a Descrição |
Valor Padrão: | Informe o Valor Padrão |
Atualizações do Compatibilizador
(Apenas para Microsiga Protheus, versões anteriores à versão 12)
- Criação ou Alteração de Perguntas no arquivo SX1 – Cadastro de Perguntes:
Pergunte | (X1_PERGUNT) |
Nome |
|
Grupo | (X1_GRUPO) |
Ordem | (X1_ORDEM) |
Tipo | (X1_TIPO) |
Tamanho | (X1_TAMANHO) |
2. Criação ou Alteração de tabela no arquivo SX2– Tabelas:
Chave | Nome | Modo | PYME |
B04 (X2_CHAVE) | Dente/Região (X2_NOME) | C (X2_MODO) | N (X2_PYME) |
3. Criação ou Alteração de Tabelas Genéricas no arquivo SX5 – Tabelas Genéricas:
Chave | Ex.: AR |
Descrição | Ex.: Tabela de IR de Aplicações Financeiras |
4. Criação ou Alteração (mantenha somente a instrução correspondente) de Campos no arquivo SX3 – Campos:
- Tabela BGD - Prod x Cob x Proc x Co-Part:
Campo | (X3_CAMPO) |
Tipo | (X3_TIPO) |
Tamanho | (X3_TAMANHO) |
Decimal | (X3_DECIMAL) |
Formato | (X3_PICTURE) |
Título | (X3_TITULO) |
Descrição | (X3_DESCRIC) |
Nível | (X3_NÍVEL) |
Usado | (X3_USADO) Informe Sim ou Não |
Obrigatório | (X3_OBRIGAT) Informe Sim ou Não |
Browse | (X3_BROWSE) Informe Sim ou Não |
Opções | (X3_CBOX) |
When | (X3_WHEN) |
Relação | (X3_RELACAO) |
Val. Sistema | (X3_VALID) |
Help | Descreva o conteúdo informado para Help de Campo no ATUSX |
Importante:
O tamanho dos campos que possuem grupo pode variar conforme ambiente em uso.
5. Criação ou Alteração de Consulta Padrão no arquivo SXB – Consulta Padrão:
- Pesquisa B05PLS:
Alias | (XB_ALIAS) |
Tipo | (XB_TIPO) |
Sequência | (XB_SEQ) |
Coluna | (XB_COLUNA) |
Descrição | (XB_DESCRI) |
Contém | (XB_CONTEM) |
6. Criação ou Alteração de Índices no arquivo SIX – Índices:
Índice | AA1 |
Ordem | 6 |
Chave | AA1_FILIAL+AA1_CODVEN |
Descrição | Cod. Vendedor |
Proprietário | S |
7. Criação ou Alteração de Parâmetros no arquivo SX6 – Parâmetros:
Nome da Variável | (X6_VAR) |
Tipo | (X6_TIPO) |
Descrição | (X6_DESCRIC + X6_DESC1 + X6_DESC2) |
Valor Padrão | (X6_CONTEUD) |
8. Criação ou Alteração (mantenha somente a instrução correspondente) de Gatilhos no arquivo SX7 – Gatilhos:
- Tabela BD5 – Contas Médicas:
Campo | Informe o conteúdo do (X7_CAMPO) |
Sequência | Informe o conteúdo do (X7_SEQUENC) |
Campo Domínio | Informe o conteúdo do (X7_CDOMIN) |
Tipo | Informe o conteúdo do (X7_TIPO) |
Regra | Informe o conteúdo do (X7_REGRA) |
Posiciona? | Informe o conteúdo do (X7_SEEK) |
Chave | Informe o conteúdo do (X7_CHAVE) |
Condição | Informe o conteúdo do (X7_CONDIC) |
Proprietário | Informe o conteúdo do (X7_PROPRI) |
Procedimento para Configuração
(Estes procedimentos devem ser feitos quando for necessário configurar parâmetros e/ou rotinas no menu).
CONFIGURAÇÃO DE PARÂMETROS
- No Configurador (SIGACFG), acesse Ambientes/Cadastros/Parâmetros (CFGX017). Crie/configure (mantenha somente a instrução correspondente) o(s) parâmetro(s) a seguir:
(É necessário criar uma tabela para cada parâmetro descrito no item Parâmetro(s), da tabela Características do Requisito)
Itens/Pastas | Descrição |
Nome: |
|
Tipo: | Informe o Tipo do parâmetro |
Cont. Por.: | Informe o Conteúdo padrão |
Descrição: |
|
CONFIGURAÇÃO DE MENUS
2. No Configurador (SIGACFG), acesse Ambientes/Cadastro/Menu (CFGX013). Informe a nova opção de menu do informe o nome do módulo, conforme instruções a seguir:
Menu | Informe o Menu em que estará localizada a rotina |
Submenu | Informe o Submenu em que estará localizada a rotina |
Nome da Rotina | Informe o Título da rotina |
Programa | Informe o Fonte da rotina |
Módulo | Informe o Nome do(s) produto(s) a ser utilizado ou “Todos” |
Tipo | Informe a Função |
Procedimento para Utilização
- Descreva os procedimentos, passo a passo (caso de uso), que serão realizados pelos usuários para que a melhoria seja visualizada identificando as seguintes informações:
- Localização da rotina no menu;
- Localização dos novos campos e/ou perguntas e respectivas pastas de cadastro que são visualizadas pelo usuário;
- Caso seja necessário ter algum cadastro feito previamente, faça uma observação.
Exemplo:
1. No Plano de Saúde (SIGAPLS), acesse Atualizações / Produto Saúde / Produto Saúde (PLSA800).
O sistema apresenta a janela de produtos cadastrados.
2. Posicione o cursor em um produto e clique em Alterar.
3. Na pasta Cobertura/Carências selecione a subpasta Tipo de Prestador.
4. Dê duplo clique no campo TP Prestador (BCW_TIPPRE).
O sistema apresenta a janela Tipo de Prestador – Coparticipação – Alterar.
5. Informe os dados conforme orientação do help de campo e observe o preenchimento do novo campo:
Som. p/Compra (BCW_SOMCOM): selecione Sim para indicar se a coparticipação cadastrada será válida somente para efeito de compra de procedimentos ou Não, caso contrário.
6. Confira os dados e confirme.
Vídeo
- Vídeo hospedado no youtube e inserido no template por meio da macro Widget Connector.
** Canal do youtube e software de vídeoem definição.
Título do Vídeo: | Disponibilizado pelo Marketing. |
Introdução: | Disponibilizado pelo Marketing. |
Passo a Passo: | Capturar diretamente do sistema. |
Finalização: | Disponibilizado pelo Marketing. |
: | O ponto de entrada 'MTA650GEM' é chamado na geração dos empenhos no MATA650 (Ordens de Produção). Utilizando este PE é possível indicar quais os produtos intermediários de uma determinada ordem de produção deverá ser gerada a OP intermediária. Ao utilizar esse ponto de entrada, não será feita a geração padrão das ordens de produções intermediárias. As OPs intermediárias serão criadas dentro do PE (chamado no terceiro ponto) via EXECAUTO. Ou seja, a implementação da geração das OPs intermediárias será desenvolvida no PE de forma específica. IMPORTANTE Somente é possível utilizar este ponto de entrada quando a execução do MATA650 for pelo MENU, sem EXECAUTO. Como a geração dos empenhos das OPs intermediárias é feita via EXECAUTO dentro do PE, não é possível utilizar o PE executando o MATA650 pelo EXECAUTO. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Localização: | Este PE é chamado em três pontos:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programa Fonte: | MATA650.prw | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parâmetros:: | Como parâmetro de entrada é enviado um Array (PARAMIXB) Quando chamado no primeiro ponto: Onde são selecionadas as ordens e os PIs que deverão ser geradas as OPs intermediárias.
Quando chamado no segundo ponto: Onde retornará se a OP enviada será processada de forma especial ou não.
Quando chamado no terceiro ponto: Onde será executado o execauto para criação das OPs intermediárias que foram selecionadas.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Retorno: | Quando chamado no primeiro ponto: Onde são selecionadas as ordens e os PIs que deverão ser geradas as OPs intermediárias. Indicador = '1'.
Quando chamado no segundo ponto: Onde retornará se a OP enviada será processada de forma especial ou não. Indicador = '2'.
Quando chamado no terceiro ponto: Onde será executado o execauto para criação das OPs intermediárias que foram selecionadas. Indicador = '3'.
|
Exemplo:
Estrutura:
TST-PA
|
|----------------------------------------|
TST-PI1 TST-PI2
| |
TST-PI3 TST-MP2
|
TST-PI4
|
TST-MP1
#INCLUDE "PROTHEUS.CH"
/////////////////////////////////
USER Function MTA650GEM()
/////////////////////////////////
Local cTipo := PARAMIXB[1]
Local c2filial := PARAMIXB[2]
Local c2num := PARAMIXB[3]
Local c2item := PARAMIXB[4]
Local c2sequen := PARAMIXB[5]
Local c2itemgrd := PARAMIXB[6]
Local c2prod := PARAMIXB[7]
Local aArrayProd
Local aArrayOps
Local lRet
Local i
Local aVetor := {}
Local dData
Local nOpc := 3
PRIVATE lMsErroAuto := .f.
DO CASE
//Quando cTipo == '1'
//É possível varrer a estrutura da OP principal para selecionar
//quais Produtos deverão ser geradas as OPs intermediárias.
//Poderá ser criada uma tela para selecionar esses produtos
//Esses produtos poderão ser armazenados em uma tabela específica ou em um array, contendo os campos necessários.
//O recomendável é que seja criada uma tabela específica
//Neste exemplo passarei fixo para o array aArrayProd quais produtos intermediários
//serão e não geradas as OPS.
//Também estarei alimentando o array aArrayOps com as ordens que terão esse tratamento especial
//Para que as demais OPs sejam criadas normalmente
CASE cTipo == '1'
aArrayProd := {}
aArrayOps := {}
Mta650GrAr(c2num,c2prod)
Return Nil
//Quando cTipo == '2'
//Retornará se a Ordem terá o tratamento especial ou não.
//Se retornar .T é porque NÃO terá um tratamento especial e serão processadas normalmente,
//Gerando todas OPs intermediárias automaticamente.
//Se retornar .F. é porque possui um tratamento especial e as ordens não serão geradas neste momento.
CASE cTipo == '2'
aArrayProd := Mta650BAPr()
aArrayOps := Mta650BAOp()
lRet := .T.
For i:=1 to Len(aArrayOps)
If aArrayProd[i,1] == c2num
lRet := aArrayOps[i,3]
Exit
EndIf
Next i
Return lRet
//Quando cTipo == '3'
//No final do processamento dos empenhos será chamado essa Opção 3 para criar as OPs intermediárias.
//Através de um EXECAUTO
CASE cTipo == '3'
MsErroAuto := .F.
RpcSetEnv( "99","01",,,,,,,,,)
dData:=dDataBase
aArrayProd := Mta650BAPr()
aArrayOps := Mta650BAOp()
For i:=1 to Len(aArrayProd)
If aArrayProd[i,4] == .T.
aVetor := {{"C2_PRODUTO",aArrayProd[i,2], NIL},;
{"C2_LOCAL","01" , NIL},;
{"C2_QUANT",aArrayProd[i,3] , NIL},;
{"C2_DATPRI", dDataBase , NIL},;
{"C2_DATPRF", dDataBase , NIL},;
{"C2_EMISSAO", dDataBase , NIL},;
{"C2_TPOP", "F" , NIL},;
{"AUTEXPLODE", "S" , NIL}}
msExecAuto({|x,y| MATA650(x,y)},aVetor,3)
If lMsErroAuto
Mostraerro()
else
CONOUT ("Inclusão OK")
Endif
EndIf
Next i
Return Nil
ENDCASE
/////////////////////////////////
Function Mta650GrAr(c2num,c2prod)
/////////////////////////////////
If c2prod == "TST-PA "
aadd(aArrayPro1,{c2num,"TST-PI1 ",20,.T.}) //OP - Produto intermediário - QTD - Gera ou não gera OP
aadd(aArrayPro1,{c2num,"TST-PI2 ",10,.F.})
aadd(aArrayPro1,{c2num,"TST-PI3 ",20,.F.})
aadd(aArrayPro1,{c2num,"TST-PI4 ",20,.T.})
aadd(aArrayOps1,{c2num,c2prod ,.F.}) // OP - Produto Acabado - .F. possui tratamento especial
Else
aadd(aArrayOps1,{c2num,c2prod ,.T.}) // OP - Produto Acabado - .T. não possui tratamento especial
EndIf
Return Nil
/////////////////////////////////
Function Mta650BAPr()
/////////////////////////////////
Return aArrayPro1
/////////////////////////////////
Function Mta650BAOp()
/////////////////////////////////
Return aArrayOps1
Ponto de Entrada
Descrição: | Informe o Menu em que estará localizada a rotina | ||||||||||||||||
Localização: | Informe o Submenu em que estará localizada a rotina | ||||||||||||||||
Eventos: | Informe o Título da rotina | ||||||||||||||||
Programa Fonte: | Informe o Fonte da rotina | ||||||||||||||||
Função: | Informe o Nome do(s) produto(s) a ser utilizado ou “Todos” | ||||||||||||||||
Retorno: |
|
Exemplo:
#Include 'Protheus.ch'
User Function CN120ALT()
Local aCab:= PARAMIXB[1]
Local cTipo:= PARAMIXB[2]
If cTipo == '1'
aCab[4][2]:= 'NF' //Validações do usuário
EndIf
Return aCab