Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

MTA650GEM - Explosão da Estrutura - Geração dos Empenhos

Características do Requisito

Ponto 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):

Informe os parâmetros utilizados.

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):

TODOS

Tabelas Utilizadas:

Informe as tabelas utilizadas.

Todos

Banco(s) de Dados:

TODOS

Todos

Sistema(s) Operacional(is):

Todos

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:

  1. No   Configurador (SIGACFG), veja se a empresa utiliza Integridade   Referencial, selecionando a opção Integridade/Verificação   (APCFG60A).
  2. Se não   há Integridade Referencial ativa,   são relacionadas em uma nova janela todas as empresas e filiais cadastradas   para o sistema e nenhuma delas estará selecionada. Neste caso, E SOMENTE NESTE, não é necessário   qualquer outro procedimento de ativação   ou desativação de integridade, basta finalizar a verificação e aplicar   normalmente o compatibilizador, conforme instruções.
  3.  Se há Integridade Referencial ativa   em todas as empresas e filiais, é   exibida uma mensagem na janela Verificação   de relacionamento entre tabelas. Confirme a mensagem para que a   verificação seja concluída, ou;
  4.  Se   há Integridade Referencial ativa   em uma ou mais empresas, que não   na sua totalidade, são relacionadas em uma nova janela todas as empresas e   filiais cadastradas para o sistema e, somente, a(s) que possui(em)   integridade está(arão) selecionada(s). Anote qual(is) empresa(s) e/ou   filial(is) possui(em) a integridade ativada e reserve esta anotação para   posterior consulta na reativação (ou ainda, contate nosso Help Desk Framework   para informações quanto a um arquivo que contém essa informação).
  5. Nestes   casos descritos nos itens “iii” ou   “iv”, E SOMENTE NESTES CASOS, é necessário desativar tal integridade, selecionando a opção Integridade/ Desativar (APCFG60D).
  6.  Quando desativada a Integridade Referencial,   execute o compatibilizador, conforme instruções.
  7. Aplicado o compatibilizador, a Integridade   Referencial deve ser reativada, SE E   SOMENTE SE tiver sido desativada, através da opção Integridade/Ativar (APCFG60). Para isso, tenha em mãos as   informações da(s) empresa(s) e/ou filial(is) que possuía(m) ativação da   integridade, selecione-a(s) novamente e confirme a ativação.

 

Contate o Help Desk Framework EM CASO DE DÚVIDAS!

 

  1. 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 ___/___/____.
  2. Clique em OK para continuar.
  3. 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().
  4. Ao confirmar é exibida uma mensagem de advertência sobre o backup e a necessidade de sua execução em modo exclusivo.
    1. Clique em Processar para iniciar o processamento. O primeiro passo da execução é a preparação dos arquivos.
      É apresentada uma mensagem explicativa na tela.
    2. 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.
    3. Clique em Gravar para salvar o histórico (log) apresentado.
    4. Clique em OK para encerrar o processamento.

 

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.

  1. Aplique o patch do chamado e execute uma vez a rotina Informe o nome da rotina.
  2. 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)

  1. 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

 

  1. 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:

  1. A650RunBatch: Onde são selecionadas as ordens e os PIs que deverão ser geradas as OPs intermediárias.
  2. MontEstru: Onde retornará se a OP enviada será processada de forma especial ou não.
  3. A650RunBatch: Onde será executado o execauto para criação das OPs intermediárias que foram selecionadas.

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.

NomeTipoDescrição
IndicadorCaracter

Indica em qual ponto do MATA650 o PE está sendo chamado.

Neste caso é passado o indicador '1'

SC2->C2_FILIALCaracterIndica a filial da OP.
SC2->C2_NUMCaracterIndica o número da OP.
SC2->C2_ITEMCaracterIndica o item da OP.
SC2->C2_SEQUENCaracterIndica a sequência da OP.
SC2->C2_ITEMGRDCaracterIndica o item grade da OP.
SC2->C2_PRODUTOCaracterIndica o produto da OP.


Quando chamado no segundo ponto: Onde retornará se a OP enviada será processada de forma especial ou não.

NomeTipoDescrição
IndicadorCaracter

Indica em qual ponto do MATA650 o PE está sendo chamado.

Neste caso é passado o indicador '2'

SC2->C2_FILIALCaracterIndica a filial da OP.
SC2->C2_NUMCaracterIndica o número da OP.
SC2->C2_ITEMCaracterIndica o item da OP.
SC2->C2_SEQUENCaracterIndica a sequência da OP.
SC2->C2_ITEMGRDCaracterIndica o item grade da OP.
NIL
Nulo


Quando chamado no terceiro ponto: Onde será executado o execauto para criação das OPs intermediárias que foram selecionadas.

NomeTipoDescrição
IndicadorCaracter

Indica em qual ponto do MATA650 o PE está sendo chamado.

Neste caso é passado o indicador '3'

NIL
Nulo
NIL
Nulo
NIL
Nulo
NIL
Nulo
NIL
Nulo
NIL
Nulo




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'.

  • Não espera retorno.


Quando chamado no segundo ponto: Onde retornará se a OP enviada será processada de forma especial ou não. Indicador = '2'.

  • Espera como retorno .T. (Ordem normal, sem seleção de PIs) ou .F. (Geração especial, seleção de PIs).


Quando chamado no terceiro ponto: Onde será executado o execauto para criação das OPs intermediárias que foram selecionadas. Indicador = '3'.

  •  Não espera retorno.

 

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:

Nome

Tipo

Descrição

Obrigatório

 

 

 

 

 

 

 

 

 

 

 

 

 

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