Árvore de páginas

Função Unificação Tabelas Foundation

Objetivo

A função do programa BTB959ZA é unificar os registros dos bancos: EMS2, EMS5 e HCM no banco EMSFND do Datasul 11 e 12.
Importante:
Por motivos de segurança e integridade dos dados, o programa Unificação Tabelas Foundation deve ser executado somente via atalho do sistema operacional. Caso o programa seja executado via menu do produto, será emitida uma mensagem de alerta e o programa será encerrado.

Programa

BTB959ZA

Pré-requisitos

Não há pré-requisito para a execução dessa função.

Descrição

O primeiro passo executado pelo BTB959ZA é verificar o valor da sequência seq_configur. Esta sequência é utilizada pela tabela “configur” e seu valor deverá ser maior ou igual ao último registro desta, pois erros poderão acontecer caso este valor esteja incorreto.

O próximo passo executado será um alerta com a mensagem abaixo:

Prezado usuário, o programa UNIFICAÇÃO TABELAS FOUNDATION - BTB959ZA é um programa crítico e muito importante, facilitando a migração de informações dos bancos EMS2, EMS5 e HCM. Este programa realiza muitas tarefas para unificar usuários, grupos de usuários, segurança, impressoras, empresas e por isso pode ser demorado. Por causa desta possível demora, em localizar registros e criá-los nos bancos de destino, este programa pode, aparentemente, parecer inoperante.

Para executar este processo com segurança observe as seguintes recomendações:

    1. Realize cópia de segurança (backup) da sua base de dados do Datasul antes de prosseguir;

    2. Não pare este processo, pois pode danificar sua base de dados;

    3. Se por algum motivo o processo for parado restaure os bancos destino e reinicie o processo;

Reforçamos que em alguns momentos este programa pode parecer inoperante - mesmo nestas circunstâncias não pare o processamento. 

Importante

A regra de unificação do menu altera de acordo com o produto.

No EMS5, os programas com o nome do procedimento que iniciam com BAS, CON, REL e TAR serão adicionados respectivamente a Cadastros, Consultas, Relatórios e Tarefas. Caso o programa não comece com estas iniciais, ele será adicionado no menu TAREFAS.

Já no EMS2 e HCM a regra muda. Nestes bancos, o programa localizará a primeira ocorrência na tabela USUAR_MENU, retornando o número da rotina datasul que determinará a rotina no novo menu, onde:

  • 1 = Cadastros
  • 2 = Consultas
  • 3 = Relatórios
  • 4 = Tarefas

Para verificar este número, pode-se usar a função abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

FUNCTION getRotDtsul4Prog RETURNS INTEGER ( INPUT programa AS CHARACTER, INPUT banco AS CHARACTER ) :
 
/*------------------------------------------------------------------------------
  Purpose: 
    Notes: 
------------------------------------------------------------------------------*/
    &SCOPED-DEFINE ROTINA_TAREFA 4
 
    DEFINE VARIABLE hquery        AS HANDLE   NO-UNDO.
    DEFINE VARIABLE hbufUsuarMenu AS HANDLE   NO-UNDO.
    DEFINE VARIABLE hbufProg      AS HANDLE   NO-UNDO.
 
    DEFINE VARIABLE retorno AS INTEGER     NO-UNDO.
    
    DEFINE VARIABLE instrucao     AS CHARACTER NO-UNDO.
 
    CREATE BUFFER hbufUsuarMenu FOR TABLE banco + '.usuar_menu'.
    CREATE BUFFER hbufProg FOR TABLE banco + '.prog_dtsul'
 
    CREATE QUERY hquery.
 
    hquery:SET-BUFFERS(hbufProg, hbufUsuarMenu ).
  
    instrucao = SUBSTITUTE(
        " FOR EACH prog_dtsul FIELDS(cod_prog_dtsul)" +
        " WHERE prog_dtsul.cod_prog_dtsul = '&1', " +
        " FIRST usuar_menu FIELDS(cod_prog_dtsul cod_proced num_rot_dtsul cod_modul_dtsul)" +
        " WHERE usuar_menu.cod_proced = prog_dtsul.cod_proced " +
        " AND usuar_menu.num_rot_dtsul < 4 ",
        programa
        ).
 
    hquery:QUERY-PREPARE( instrucao ).
    hquery:QUERY-OPEN().
    hquery:GET-FIRST(NO-LOCK, NO-WAIT).
 
    IF  hbufUsuarMenu:AVAIL THEN DO:
        retorno = hbufUsuarMenu::num_rot_dtsul.
     
        DELETE OBJECT hquery NO-ERROR.
        DELETE OBJECT hbufUsuarMenu NO-ERROR. 
        DELETE OBJECT hbufProg NO-ERROR.
   
        RETURN retorno.
    END
    ELSE
 
       RETURN {&ROTINA_TAREFA}.
 
END FUNCTION.
 
FOR FIRST prog_dtsul NO-LOCK
    WHERE prog_dtsul.cod_prog_dtsul = 'fnc_importar_msg_lit':
    DISP prog_dtsul.cod_prog_dtsul getRotDtsul4Prog(
                                                     prog_dtsul.cod_prog_dtsul,
                                                    'mguni'    
                                                   ).
END.

Executando-se a função acima para fnc_importar_msg_lit, ou para outros programas, deverá retornar a mesma ROTINA extraída no programa MER007A - Função Relatório Estrutura de Menu. Esta rotina determinará a localização deste programa no banco do Datasul 11 ou superior.

Nos produtos legados EMS, HCM e EMS 5, os programas podiam estar em diversos módulos diferentes, porém, a partir do Datasul 9, a estrutura do menu foi alterada e o programa pode estar relacionado somente a um módulo.

Sendo assim, optou-se por descobrir a estrutura do programa no menu do legado e atribuindo-a no Datasul; já que nos clientes há muitos programas específicos e, delegar ao usuário o serviço de seleção do menu dos programas específicos seria pouco prático e cansativo.

Este alerta existe, pois se o processo for interrompido pode danificar sua base. Ao clicar no botão “Compreendo e aceito” atingiremos o próximo passo, recusando-se os termos o programa deverá ser encerrado.

No próximo passo será exibida a primeira janela do programa com a mensagem abaixo:

UNIFICAÇÃO FOUNDATION PRODUTO LEGADO PARA PRODUTO DATASUL 11 OU SUPERIOR

IMPORTANTE!

Para unificação dos dados será necessário adotar os seguintes passos:

    1. Criar um atalho do sistema operacional conectando apenas o banco do Foundation (EMSFND) e executando diretamente o programa btb/btb959za.r.

    2. Nos parâmetros de conexão dos bancos NÃO informar o nome lógico do banco (-ld). No caso de bancos Oracle ou SQL Server, utilizar apenas o nome lógico do Schema Holder do banco conforme exemplo:

         -db "c:\totvs\bancos\shems2cad" -RO  -ld shmgcad  -db mgcad

         -U EMS206BMULTIO10P10102ADM/EMS206BMULTIO10P10102ADM@oracle10

Este programa realizará a unificação dos dados do foundation legado (EMS 2.04, 2.06B, 5.05, 5.06, HCM 2.09 e 2.10) para o Datasul 11 ou superior.

Para realizar a unificação, este programa realizará as seguintes funções:

    1. Conexão com os bancos a serem unificados.

    2. Exibição de telas de gerenciamento de conflitos para as tabelas de usuários/grupos, por produto conectado.

    3. Unificação do produto corrente.

    4. Execução dos programas das áreas de negócio para acerto dos registros conflitantes.

    5. Repetição dos passos 2, 3 e 4 para todos os produtos conectados.

Antes da unificação, passo 3, será solicitada a pasta de destino dos arquivos de log de unificação.

Estes arquivos conterão informações detalhadas da unificação, separada por tabela.

Considerações Importantes:

    1. A unificação só deve ser iniciada após a inicialização da versão do produto Datasul 11 ou superior.

    2. Para que a unificação seja realizada com sucesso, certifique-se que os programas específicos estão cadastrados como não-padrão. Para isso, acesse o programa MEN012AA, procure o programa específico e confira se a flag Registro Padrão está desmarcada.

    3. Após a unificação, deve-se analisar estes arquivos de log e utilizar o Tab Analys (proutil banco-by-you -C tabanalys > tab.txt) para a localização de possíveis erros de unificação.

    4. A senha do usuário será a mesma do login, após o primeiro contato com o produto Datasul 11 ou superior, será solicitado para alterar a senha.

 

Após ler os termos de uso, para prosseguir marque a caixa “Li e estou de acordo com os termos propostos acima” e clique em “Próximo”, caso não concorde com os termos o programa deverá ser encerrado.

No próximo passo temos três caixas de combinação (Combo-Box), identificadas como “Produto”, com as opções de produtos que desejamos migrar: EMS2, EMS5 e HCM. Escolha a opção(ões) desejada(s) e na caixa de texto identificada como “Conexão” informe os parâmetros de conexão ao banco escolhido SEM INFORMAR O NOME LÓGICO DO BANCO FÍSICO (-ld). Informe o nome lógico APENAS DO SCHEMA HOLDER (apenas para banco Oracle ou SQL Server), como segue o exemplo abaixo:

-db "c:\totvs\bancos\shems2cad" -RO -ld shmgcad -db mgcad

Após a informação dos parâmetros de conexão, pressione o botão “Conectar”. Ao clicarmos será feita uma validação, caso o banco informado não seja equivalente ao produto selecionado na caixa de combinação, surgirá a seguinte mensagem:

O banco conectado não possui as tabelas padrões do foundation, como os bancos MGUNI e EMSBAS.

Após informar os parâmetros de conexão e conectar aos bancos, clique no botão “Próximo” para prosseguir. Nas caixas de combinação pode-se optar pela opção “Não existe” para os produtos que não serão migrados.

No próximo passo temos a informação do produto que estamos migrando através do objeto “Produto”. Será exibida também a tabela que está sendo processada.

Temos as grades de registros (browse) para usuários, grupos de usuários e empresas com as informações que estão sendo migradas.

É possível alterar o valor atual dos registros clicando na coluna “Valor ByYou”, o registro irá para o banco EMSFND do Datasul com o valor alterado.

Para ignorar a migração de algum registro dê dois cliques na linha deste.

O botão “Todos” marcará todos os registros como “Ignorado”,  indicando que estes não serão migrados para o Datasul 11.

O botão “Nenhum” desmarcará todos, então todos os registros serão migrados.

O botão “Inverter” inverterá o valor de marcado para não marcado e vice-versa.

Clique em “Próximo” para prosseguir.

No próximo passo, na janela “Unificar”, serão exibidas as opções:

  • Empresa: serão unificadas as tabelas “empresa” e “bco-timeout”.
  • Usuário: durante a unificação dos usuários, a senha é o código do próprio usuário em minúsculos (usuário Alice, senha alice; usuário Bob, senha bob), por uma incompatibilidade entre as funções unilaterais utilizadas entre EMS2, EMS5 e HCM e o Datasul, e está expirada, obrigando o usuário a trocar a senha no primeiro acesso.  Neste processo serão unificadas as tabelas: “grp_usuar”, “layout_impres_padr”, “imprsor_usuar”, “usuar_mestre, configur”, “usuar_mestre_ext”, “usar_grp_usuar”. Serão criados os registros na tabela “fnd_usuar_univ”.
  • Tipo Impressora: são unificadas as tabelas “tip_imprsor”, “impressora”, “layout_impres”, “efeito_impres”, “configur_tip_imprsor”, “configur_layout_impres”, “ord_configur_imprsor”.
  • Tabelas do Dicionário: será unificada a tabela “tab_dic_dtsul”.
  • Menu: serão unificadas as tabelas “produt_dtsul”, “aplicat_dtsul”, “prog_dtsul”, “sist_dtsul”, “modul_dtsul”, “procedimento”, “proced_consult_proced”, “proced_relat_proced”.

    Importante: O APLICATIVO FINANCEIRO DO EMS2 FOI DESCONTINUADO e a estrutura do menu (aplicativo, sistemas, módulos, procedimentos e programas) deste não será copiada para o Datasul. Clientes com programas específicos nesta estrutura, por favor, troquem o aplicativo antes de unificar, para que seus programas sejam unificados no Datasul.
  • Segurança: serão unificadas as tabelas “grp_usuar”, “aplicat_dtsul_segur”, “prog_dtsul_segur”, “segur_empres_usuar”.
  • Tabelas Extras: serão unificadas as tabelas “vídeo”, “catal_video”, “som”, “catal_som”, “catal_img", ”imagem”, "docto_anexo", "catal_docto_anexo", "servid_exec", "servid_exec_imprsor", "servid_rpc", "idioma".
  • Empresas do Foundation: será unificada a tabela: “empresa” e serão criados os registros “fnd_empres” e “bco_empres”.

Na tabela abaixo, a coluna “Tabela” representa a tabela unificada, a coluna “EMS2” possui os programas que podem ser utilizados para verificar as informações migradas a partir do produto EMS2, a coluna “Datasul 11 e 12” possui os programas que podem ser utilizados para verificar as informações migradas para o Datasul.

Tabela

EMS2

Datasul 11 e 12

fnd_empres

Inexistente

btb/btb962aa.w

bco_timeout

btb/btb010aa.w

btb/btb010aa.w

empresa

cdp/cd0104.w

cdp/cd0104.w

grp_usuar

bas_grp_usuar

bas_grp_usuar

layout_impres_padr

bas_impressora

bas_impressora

fnd_usuar_univ



imprsor_usuar

bas_impressora

bas_impressora

usuar_mestre

bas_usuar_mestre

bas_usuar_mestre

configur



usuar_mestre_ext

bas_usuar_mestre

bas_usuar_mestre

usuar_grp_usuar

bas_usuar_mestre, bas_grp_usuar

bas_usuar_mestre, bas_grp_usuar

produt_dtsul

bas_produt_dtsul

bas_produt_dtsul

aplicat_dtsul

bas_aplicat_dtsul

bas_aplicat_dtsul

prog_dtsul

bas_prog_dtsul

bas_prog_dtsul

sist_dtsul

bas_sist_dtsul

bas_sist_dtsul

modul_dtsul

bas_modul_dtsul

bas_modul_dtsul

procedimento

bas_procedimento

bas_procedimento

proced_consult_proced

bas_procedimento

bas_procedimento

proced_relat_proced

bas_procedimento

bas_procedimento

grp_usuar

bas_grp_usuar

bas_grp_usuar

aplicat_dtsul_segur

bas_aplicat_dtsul

bas_aplicat_dtsul

prog_dtsul_segur

bas_prog_dtsul

bas_prog_dtsul

segur_empres_usuar

bas_usuar_mestre

bas_usuar_mestre

video

bas_video

bas_video

catal_video

bas_catal_video

bas_catal_video

som

bas_som

bas_som

Catal_som

bas_catal_som

bas_catal_som

Catal_img

bas_catal_img

bas_catal_img

imagem

bas_imagem

bas_imagem

docto_anexo

bas_docto_anexo

bas_docto_anexo

catal_docto_anexo

bas_catal_docto_anexo

bas_catal_docto_anexo

servid_exec

bas_servid_exec

bas_servid_exec

servid_exec_imprsor

bas_servid_exec_imprsor

bas_servid_exec

servid_rpc

btb013aa         

btb013aa

tip_imprsor

bas_tip_imprsor

bas_tip_imprsor

impressora

bas_impressora

bas_impressora

layout_impres

bas_layout_impres

bas_layout_impres

efeito_impres

bas_tip_imprsor

bas_tip_imprsor

configur_tip_imprsor

bas_impressora

bas_impressora

configur_layout_impres

bas_layout_impres

bas_layout_impres

ord_configur_imprsor

fnc_importar_layout

fnc_importar_layout

tab_dic_dtsul

bas_tab_dic_dtsul

bas_tab_dic_dtsul

bco_empres

Inexistente

btb/btb962aa.w


Para as opções das “Áreas de Negocio” são:

  • Financeiro EMS 2,
  • HCM,
  • Manufatura,
  • Financeiro,
  • Logística,

O próximo passo deve-se informar o arquivo de log a ser gerado durante a unificação. Selecione a pasta através do botão “...”, o nome do arquivo é calculado conforme a data e hora de execução da migração para evitar a sobreposição de múltiplas unificações.

Ao informar a pasta e o nome do arquivo estiver disponível no campo Pasta do Log, utilize o botão “Unificar” para migrar os dados do banco legado.

Repita estes procedimentos para cada banco conectado.