80807361-MIT072-Conversao-P11

19
MIT072_Conversao_P11.doc Página 1 de 19 MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011 Projeto: Conversão para PROTHEUS 11 1. Roteiro: Módulo: Geral Roteiro para conversão para o Protheus 11. Conforme orientações do chamado SCUMQY, a conversão para a versão 11 segue os mesmos procedimentos que a 10, mudando apenas o nome da função a ser executada. Para deixar bem detalhado todos os procedimentos a serem executados, foi desenvolvido esse manual para que a conversão saia da melhor maneira possível. Foi desenvolvido com base em históricos de conversões na prática, ou seja, estão relatados quase todos os possíveis problemas que podem ocasionar um erro de conversão. Sugerimos a leitura INTEGRAL desse documento, antes de iniciar a conversão. Antes de iniciar a conversão, executar/analisar no ambiente atual do Protheus 10: 1) O espaço em disco livre deve ser de aproximadamente 3 vezes o tamanho atual da pasta System somado ao tamanho do banco de dados. Ou seja, se a sua database estiver com 4,5 GB, e a pasta system estiver com 500MB, então, o seu espaço em disco livre deverá ser de aproximadamente 15 GB. Isso se faz necessário pois o Protheus efetua backups de cada tabela no momento da conversão. 2) Fazer um backup da pasta Protheus_Data e do banco de dados. 3) Checar a duplicidade de registros: a. Baixar do portal o arquivo SX2.UNQ e colocar na systemload do ambiente a ser convertido. b. Executar a rotina CheckDupl (obs. A rotina não pode ser chamada pelo FORMULAS, tem que incluir no menu do módulo CONFIGURADOR (sigacfg.xnu): <MenuItem Status="Enable"> <Title lang="pt">CheckDupl</Title> <Title lang="es">CheckDupl</Title> <Title lang="en">CheckDupl</Title> <Function>CHECKDUPL</Function> <Type>1</Type> <Access>xxxxxxxxxx</Access> <Module>99</Module> <Owner>13</Owner> </MenuItem> c. Ajustar os registros duplicados (se houver)

Transcript of 80807361-MIT072-Conversao-P11

Page 1: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 1 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Projeto: Conversão para PROTHEUS 11 1. Roteiro:

Módulo: Geral

Roteiro para conversão para o Protheus 11. Conforme orientações do chamado SCUMQY, a conversão para a versão 11 segue os mesmos procedimentos que a 10, mudando apenas o nome da função a ser executada. Para deixar bem detalhado todos os procedimentos a serem executados, foi desenvolvido esse manual para que a conversão saia da melhor maneira possível. Foi desenvolvido com base em históricos de conversões na prática, ou seja, estão relatados quase todos os possíveis problemas que podem ocasionar um erro de conversão. Sugerimos a leitura INTEGRAL desse documento, antes de iniciar a conversão. Antes de iniciar a conversão, executar/analisar no ambiente atual do Protheus 10: 1) O espaço em disco livre deve ser de aproximadamente 3 vezes o tamanho atual da pasta System somado ao tamanho do banco de dados.

Ou seja, se a sua database estiver com 4,5 GB, e a pasta system estiver com 500MB, então, o seu espaço em disco livre deverá ser de

aproximadamente 15 GB. Isso se faz necessário pois o Protheus efetua backups de cada tabela no momento da conversão.

2) Fazer um backup da pasta Protheus_Data e do banco de dados.

3) Checar a duplicidade de registros:

a. Baixar do portal o arquivo SX2.UNQ e colocar na systemload do ambiente a ser convertido.

b. Executar a rotina CheckDupl (obs. A rotina não pode ser chamada pelo FORMULAS, tem que incluir no menu do módulo

CONFIGURADOR (sigacfg.xnu):

<MenuItem Status="Enable"> <Title lang="pt">CheckDupl</Title> <Title lang="es">CheckDupl</Title> <Title lang="en">CheckDupl</Title> <Function>CHECKDUPL</Function> <Type>1</Type> <Access>xxxxxxxxxx</Access> <Module>99</Module> <Owner>13</Owner> </MenuItem>

c. Ajustar os registros duplicados (se houver)

Page 2: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 2 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

4) Backup e remoção dos índices de usuários:

a. Abrir, via MPSDU, o arquivo SIXEE0.ext (EE = Empresa | ext = DBF ou DTC)

b. Filtrar pelo campo PROPRI diferente de “S”

c. Copiar para um arquivo de backup (o nome que desejar).

d. Apagar esses índices. Os mesmos não poderão ser utilizados na conversão.

Obs.: Será necessário voltá-los ao arquivo de índice ao final da conversão, atentando-se a seqüência informada pelo sistema. Isso quer dizer que também será necessário corrigir esse índice e seqüência nos rdmakes (fontes customizados) que utilizem os mesmos, e que indicam o número do índice ao invés do nickname do índice.

5) Apagar todos os arquivos de índices das pastas do Protheus_Data.

a. Faça uma busca pela extensão. Entendem-se os arquivos de índices: *.CDX ou *.IDX.

b. Em casos de base CTREE, são criadas pastas com o nome e extensão .idx, exemplo: sc62990a.idx. Pode apagá-las.

c. Apagar o conteúdo das pastas “ctreeint”. Normalmente são 2 pastas, sendo uma no Protheus_Data e a outra na System.

d. Apagar o índice do ARQUIVO DE EMPRESAS (arquivo SIGAMAT.IND).

6) Apagar os arquivos de LOG e TEMPORÁRIOS

a. Faça uma busca pela extensão *.LOG e *.TMP

7) Na pasta “SYSTEMLOAD”, exclua os arquivos *.DBF e *.IDX.

8) Apagar os arquivos da pasta temporária do Windows (Windows > Executar > %TEMP%). Se não apagar irá influenciar nos arquivos

temporários do Protheus, e pode ocasionar erros.

Dica para agilizar a conversão: Muitos clientes utilizam a empresa 99 para testes, e em muitos casos nem é mais utilizada. A sugestão é excluir os arquivos DBF ou DTC dessa empresa, e apagar a empresa do Cadastro de Empresas (abra o arquivo SIGAMAT.EMP via MPSDU, e apague a mesma).

Início do Protheus 11 9) Instalar e subir os serviços do Protheus 11. Atualizar com todos os pacotes mais recentes possível.

a. RPO - Categoria: Repositório de Objetos

b. BUILD - Categoria: Binário TOTVSTec

c. UPDATE - Categoria: Update de Programas

d. PATCH/LIB DE PROGRAMAS - Categoria: Path de Programas

e. HELP - Categoria: Help de Campo/Pergunta

f. MENUS - Categoria: Menu de módulo. Contempla os arquivos XNU. Esses arquivos deverão substituir os da pasta SYSTEM,

porém, fazer um backup antes para, após a conversão, poder comparar e incluir os menus customizados.

g. BRA.ZIP - Categoria: Dicionário de dados. Esse arquivo contém o arquivo SXBRA.TXT, que é o dicionário de dados padrão do

Protheus

h. Descompactar o conteúdo da pasta ACE_8.00 na pasta bin\appserver\. Atenção: somente essa pasta!

i. Certifique-se que o servidor tenha espaço em disco o suficiente para a conversão. Recomenda-se, no mínimo, um espaço 3 vezes

superior ao da base atual (soma da pasta SYSTEM e a base de dados). Isso se faz necessário pois o Protheus cria arquivos

temporários no momento da conversão.

Page 3: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 3 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

10) Descompacte os arquivos de “HELP” e “BRA.ZIP” na pasta “SYSTEMLOAD” da base a ser convertida. Deverá substituir os arquivos

existentes.

Obs.: cuidado com os servidores do Protheus que tenham o sistema operacional LINUX, pois quando o arquivo é copiado pelo programa WinSPC (por exemplo) o arquivo pode ser corrompido. Sugestão: copiar via linha de comando diretamente do Linux.

Caso queira, utilize o programa 7-Zip (programa tipo Winrar e Winzip). Gere um arquivo tipo TAR antes de copiar para o Linux, e faça

a transferência (cópia). Para descompactar no LINUX utilize a sintaxe: tar -xvf nomedoarquivo.tar

Como saber se deu problema? No inicio da conversão, após clicar em Avançar e apresentar a tela de progresso, o sistema irá criar na pasta “systemload” os arquivos do dicionário de dados (SX2, SX3, etc.), exibindo a mensagem:

Observar nessa pasta e, caso demore a criar os arquivos ou mesmo o tamanho desses arquivos não tiverem sendo alterado (para maior), quer dizer que o arquivo TXT está corrompido, e a conversão simplesmente está parada. Sendo assim, encerrar o processo reiniciando o Server. Dica: Em casos dos clientes que utilizam apenas o ambiente em linguagem PORTUGUES, dos arquivos de HELP de Campo/Pergunta, deixe

apenas o arquivo HLPPOR.TXT. Dessa forma a conversão será mais rápida, pois não irá atualizar os arquivos de help de campo espanhol e inglês.

11) Caso tenha um TOP Connect mais atualizado, também baixar, instalar e configurar. O mesmo deverá apontar para o banco de dados a ser

convertido. No caso do Protheus 11, deverá ser utilizado o ByYou DBAccess. Se não utilizar um DBAccess atualizado, terá sérios problemas.

Se quiser utilizar 2 TOP’s, pode-se configurá-los para compartilhar as licenças, colocando essas configurações nos INI’s dos Server’s dos

TOP’s:

[General] Licenselimit=nnn

Onde nnn é o limite de licenças que vai consumir do License Server.

12) No arquivo “appserver.ini” do Protheus 11, criar um ambiente que aponte para o ambiente a ser convertido. Exemplo:

[TOTVS_10_PARA_11] SourcePath = C:\TOTVS 11\Microsiga\Protheus\APO ;tem que ser o APO da versão 11 RootPath = C:\Protheus_Data ;apontar para o ambiente OFICIAL a ser convertido StartPath = \system\ x2_path = RpoDb = SQL RpoLanguage = Portuguese RpoVersion = 110 LocalFiles = ads Localdbextension = .dbf PictFormat = DEFAULT DateFormat = DEFAULT TopDataBase = MSSQL7 TopServer = LOCALHOST TopALIAS = TOTVS_10_11 ;nome do ALIAS criado no TOP – ambiente OFICIAL RegionalLanguage = BRA Helpserver = localhost:8687

Obs. extremamente importante: Não utilize esses espaços e “;” em servidores com S.O. Linux.

13) Arquivo de Senhas.

Na conversão de testes apresentaram erros no arquivo de senhas. A solução é simples: a. Apagar o arquivo sigapss.spf da pasta SYSTEM

b. Apagar os arquivos da pasta “profile” do Protheus_Data

Dessa forma, a senha do Administrador a ser utilizada será “em branco”. Após a conversão, abrir o SIGACFG – Configurador, cadastrar a POLÍTICA, no menu Senhas, e após cadastrado, sair do CFG, ir na pasta de

backup, copiar o arquivo SIGAPSS.SFP e a pasta “profile” inteira, e substituir na base convertida.

Page 4: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 4 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

O procedimento de copiar o sigapss e o profile foi passado pela TOTVS no chamado SCTXW5, e funcionou normalmente. A dica de apagar o sigapss antes do inicio da conversão foi minha, pois na conversão o sistema não altera o arquivo. Achei então mais fácil

fazer dessa forma, pois utilizando o padrão era apresentado erro (mas que não impediu a conversão).

14) Antes de iniciar a conversão, sugiro analisar os erros de conversão listados no item 18 desse manual. Dessa forma já se elimina alguns

erros que serão apresentados na conversão.

15) Inicio da conversão.

Seguido todos esses passos corretamente, poderá ser executado o smartclient.exe do Protheus 11, passando o seguinte Programa Inicial: MP710TO110

Utilizando o arquivo de senha padrão (sem apagar o sigapss.spf), ao digitar a senha, deu erro:

Porém, tentando novamente, digitei a senha, e passou. 16) Selecione de qual versão será originada a conversão.

Page 5: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 5 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Obs.: Não foram feitos teste com a versão 8 nem com a 7, então, não se sabe os riscos que implicariam. Vale lembrar que da versão 7 ou 8 para a 10, existem detalhes específicos a serem analisados, tais como alteração no fontes customizados (tamanho do ValidPerg de 6 para 10, e a troca da variável cUsuario para cUserName).

Obs. Importante: Após selecionar o tipo de conversão e clicar o OK, é criado o arquivo “mpupd.tsk” na pasta Appserver do Protheus 11.

Esse arquivo grava os passos da conversão, e se, for necessário re-iniciar a conversão, o Protheus utiliza esse arquivo para dar continuidade.

O mesmo só poderá ser apagado se a conversão for iniciada do ZERO. Se a tela para seleção de qual versão será originada a conversão não aparecer, é porque existe esse arquivo na pasta APPSERVER.

17) Configuração de execução do Update: Normalmente são marcadas as opções conforme imagem abaixo.

18) Será apresentada a tela com as empresas que serão convertidas:

Page 6: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 6 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

19) Ao clicar em AVANÇAR, a conversão terá início.

20) Se houver erros na conversão será apresentada a tela:

Emitir o relatório para analisar os erros. Finalizar a conversão.

Obs.: segue abaixo relação dos erros que foram apresentados na conversão da base de testes (sem customizações):

O gatilho AK2_CC sequencia 001 esta duplicado O gatilho AK2_CC sequencia 001 esta duplicado O gatilho AK2_CC sequencia 001 esta duplicado O gatilho AK2_CLVLR sequencia 001 esta duplicado O gatilho AK2_CLVLR sequencia 001 esta duplicado O gatilho AK2_CLVLR sequencia 001 esta duplicado O gatilho AK2_CO sequencia 001 esta duplicado O gatilho AK2_CO sequencia 001 esta duplicado O gatilho AK2_CO sequencia 001 esta duplicado O gatilho AK2_ITCTB sequencia 001 esta duplicado O gatilho AK2_ITCTB sequencia 001 esta duplicado O gatilho AK2_ITCTB sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado

Page 7: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 7 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado O gatilho QAA_RECUR sequencia 001 esta duplicado A chave de indice BMA ordem 2 registro 1430 esta duplicada A chave de indice CDM ordem 5 registro 10059 esta duplicada A chave de indice CDM ordem 6 registro 10060 esta duplicada Chave duplicada na tabela TRX990, existem procedimentos especificos a serem adotados, consulte o HelpDesk Microsiga, mensagem SQL Error: 1505 (23000) - RC -1 - [Microsoft][ODBC SQL Server Driver][SQL Server]A instrução CREATE UNIQUE INDEX foi encerrada porque foi encontrada uma chave duplicada para O tamanho no SX3 do campo VI0_LOJFOR é dIferente do SXG O tamanho no SX3 do campo VI0_LOJFOR é infeiror ao limite do SXG O tamanho no SX3 do campo AKX_CC_INI é dIferente do SXG O tamanho no SX3 do campo AKX_CC_FIN é dIferente do SXG O tamanho no SX3 do campo RFF_CC é dIferente do SXG O tamanho no SX3 do campo RFG_CC é dIferente do SXG O do tamanho no SX3 campo EK_NUMOPER é dIferente do SXG O tamanho da pergunta 07 do grupo MTA996 é dIferente do SXG O tamanho da pergunta 10 do grupo MTA996 é dIferente do SXG A chave de indice BMA ordem 2 registro 1430 esta duplicada O tamanho da pergunta 07 do grupo MTA996 é dIferente do SXG

A sugestão é que, antes do início da conversão, seja visto esses problemas. Como resolver: abrir o MPSDU (se já iniciou a conversão, abra pelo Protheus 11 mesmo. Ver um pequeno detalhe em Observações finais).

a. Em casos de GATILHOS com seqüência duplicada, abrir a tabela SX7EE0.ext, filtrar pelo gatilho mencionado, e apagar os que

estiverem duplicados.

b. Em casos de INDICES duplicados, abrir a tabela SIXEE0.ext, filtrar pelo índice mencionado, e apagar os que estiverem duplicados.

c. Quando o erro referencia a tabela SXG, significa que o campo está em desacordo com a tabela de GRUPO DE CAMPOS (SXG).

Exemplo:

O do tamanho no SX3 campo EK_NUMOPER é dIferente do SXG

Nesse caso, abrir a tabela SX3 (em casos de Campos de tabelas) ou SX1 (em casos de campos de Perguntas), filtrar o campo mencionado, e na coluna X3_GRPSXG ou X1_GRPSXG, apagar o conteúdo desse campo, para que o mesmo não faça mais parte desse grupo de campos.

Obviamente, deverá voltar essa informação após a conversão, e analisar os detalhes, ou melhor, fazer essa análise antes da conversão.

Obs.: EE = Empresa | ext = DBF ou DTC Obs. 2: os erros de português são do próprio sistema.

d. Quando o erro é referente a chave duplicada na tabela, quer dizer que o CHECKDUPL não foi executado. Para resolver isso, deverá

saber qual o X2_UNICO da tabela, e, via banco, fazer um select nessa tabela e ver qual o registro que está duplicado.

No exemplo desse log (em destaque vermelho), foi simples resolver: abri a tabela pelo MPSDU, e apaguei os dados da mesma, pois se

tratava de uma tabela sem uso.

Obs.: Ao sair da tela que apresenta os erros de conversão, apresentou o seguinte error.log (no caso de não ter apagado o arquivo sigapss.spf):

Page 8: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 8 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

21) Iniciado novamente a conversão, sem apagar o arquivo MPUPD.TSK.

Conforme mencionado anteriormente, como se manteve o arquivo MPUPD.TSK, não será apresentado a tela de seleção da origem da conversão, conforme item 15 desse boletim.

Se for apresentada uma tela mencionando que houve erros na conversão, seguir os procedimentos mencionados na mesma, e continuar a

conversão. Essa mensagem normalmente só é apresentada em casos de erros críticos, tais com exemplo, índices duplicados.

Page 9: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 9 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Depois da conversão... 22) Acessar o SIGACFG para que o sistema recrie as estruturas dos índices. Acessar todas as empresas. Se não fizer isso poderá dar erro ao

tentar acessar algum cadastro do sistema (Erro de tabela exclusiva).

23) Arquivo de índices: conforme item 3 desse documento.

Abrir via MPSDU o novo SIX, e também o arquivo do backup. Filtrar os índices e analisar quais alterações o compatibilizador fez e quais alterações você deverá fazer no arquivo de backup.

Exemplo prático. (Esse índice é só um exemplo. O mesmo não sofreu tal alteração). Antes da conversão:

Conforme orientação no item 3, o índice 6 seria copiado para uma tabela de backup e excluído dessa tabela principal. Após conversão:

Page 10: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 10 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Observem que o compatibilizador criou o índice 6, com o PROPRI = “S”. Sendo assim, na tabela de backup, deverá abrir a mesma e alterar a ordem do índice, nesse exemplo, pra 7:

Após analisar todos os índices, poderá então dar um “append” na SIX principal, com os arquivos contidos no backup. Sugiro antes do “append” fazer um backup da SIX principal.

24) Revise os índices dos fontes customizados, conforme as alterações executadas no passo 22.

25) Para atender ao novo conceito de empresas, filiais e unidades de negócio, foram inclusos 2 novos campos no arquivo SX2.

Porém, observe que se trata de campos OBRIGATÓRIOS.

Se for necessário dar manutenção em alguma tabela, ao tentar confirmar a alteração, deverá informar esses novos campos.

Para que isso não ocorra, execute o MPSDU, abra o arquivo SX2, e execute um “replace” nos campos X2_MODOUN e X2_MODOEMP com

o mesmo conteúdo do campo X2_MODO.

Page 11: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 11 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Obs. Importante: Na conversão o sistema não irá alterar o tamanho do campo “_FILIAL” das tabelas, será mantido o padrão de 2 e as

regras de empresa e filial. Não é necessário fazer nenhum tipo de tratamento. Veja o exemplo do SX3 após conversão:

Porém, quando se for criar uma nova empresa no Configurador, deverá seguir os novos padrões e exigências. Exemplo: ao se criar um

novo Grupo de Empresas, e definir o tamanho 6 e seu respectivo leiaute, o campos “_FILIAL” automaticamente serão criados com o tamanho 6.

Veja o exemplo:

26) Executar os passos de criar a política de senhas conforme passo 12. Copiar do backup do Protheus_Data o arquivo SIGAPSS.SPF e a pasta

“profile”, e substituir o da pasta convertida.

27) Substituir os arquivos de menu da pasta system (*.XNU) pelos baixados do portal. Antes, fazer um backup para, após a substituição,

analisar as customizações e particularidades.

28) Folha de Pagamento

Quando há uma conversão, é necessário apagar o roteiro e fazer com que o sistema recrie o padrão. Para isso: a. No MPSDU, abra a tabela SRM, copie para um backup as linhas que não são do sistema. Para diferenciar uma linha customizada

de uma linha padrão do sistema, poderá filtrar, utilizando a expressão, da seguinte forma:

SUBSTR(RM_SEQ,5,1) <> "0"

Obviamente deverá ser analisado com mais cautela, pois pode haver alterações em linhas que terminem com 0. Há casos onde

os analistas colocam “*” no campo RM_DESCRIC.

b. Após feito o backup, deletar os registros.

c. Entrar no SIGAMDI, e acessar o módulo GESTÃO DE PESSSOAL > ATUALIZAÇÕES > DEFINIÇÕES CALCULO > ROTEIROS CÁLCULO.

Com esse procedimento o sistema irá recriar os valores da tabela SRM, porém, no seu padrão.

Page 12: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 12 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

d. Em seguida, voltar ao MPSDU, e dar um “append” na SRM com o arquivo de backup, para aplicar as linhas customizadas do

cliente.

e. Nas linhas customizadas, alterar o campo RM_VERSAO para igual a criada pelo sistema. A versão do Protheus 11 é “194” até essa

data.

29) Verificar os fontes customizados

Pra quem utiliza alguns pontos de entrada que incluem novos botões em rotinas, tal como exemplo, GPE11ROT, relacionada a rotina GESTAO FUNCIONARIO, deverá ficar atento ao seguinte:

No Protheus 10, funcionava normalmente a rotina da seguinte forma: User Function GPE11ROT() Local aArea := GetArea() Local aRotinas := {} aFolProc :={{ "Lançam. p/ Verba" , "GPEA100()" , 0 , 6 },; { "CNAB (BB)" , "GPEM410()" , 0 , 6 },; { "SISPAG (ITAU)" , "GPEM450()" , 0 , 6 },; { "Import. Lanc. Mens." , "GPEA210()" , 0 , 6 }} aAdd( aRotinas, { "Oi*" , "u_oi()" , 6 , , .F. } ) aAdd( aRotinas, { "Processos Folha*" , aFolProc , 6 , , .F. } ) RestArea( aArea ) Return( aRotinas )

Porém, se deixar dessa forma, e compilar o projeto, será exibido erro no momento de entrar na rotina no Protheus 11.

Para corrigir isso, deverá fazer a seguinte alteração (na linha em destaque azul):

aAdd( aRotinas, { "Oi*" , "u_oi()" , 0 , 6 , , .F. } ) aAdd( aRotinas, { "Processos Folha*" , aFolProc , 0 , 6 , , .F. } )

Analise as demais rotinas para saber se estão dessa forma.

Para efeito de testes, essa alteração também foi feita no Protheus 10, e compilada, e a rotina funcionou normalmente.

Orientações conforme o chamado SCUMUO.

30) Compilar o projeto com as customizações do cliente.

31) Aplicação de UPDATES. (Rev. 005)

A execução da virada de versão não garante a aplicação dos updates modulares, como, por exemplo, UPDSIGAFIS, UPDCOM, UPDEST,

sendo esses 2 últimos exemplos com controles seqüenciais (UPDCOM01, UPDCOM03, etc), conforme resposta do chamado SDSFKX.

É sugerida então a execução de todos os updates para que a base fique completamente atualizada.

Como não há como sabermos se tal update já foi executado (exceto as do RH, onde possui a rotina RHUPDMOD), mesmo que antes da

conversão, teríamos então que executar TODOS os updates ou, no mínimo, os módulos que o cliente mais utiliza.

Para que possa haver esse controle, foi desenvolvida uma rotina específica que gera alguns arquivos de LOG, e quando for executado os

updates, essa rotina verifica se o mesmo já foi executado ou não.

Os detalhes da rotina estão no anexo 3.

32) Acessar o SIGAMDI ou ADV, e fazer todos os testes possíveis.

Page 13: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 13 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

Observações finais. � MPSDU

Não estranhar se você abrir o MPSDU e não encontrar o MENU. O mesmo estará no canto superior DIREITO: Novo menu: Menu padrão:

Isso acontece pois o tema está configurado para CLASSIC. Para voltar ao padrão, abra o SIGACFG e no menu Miscelanea, Configuração de

Tema, mude para STANDARD e confirme. Abra novamente o MPSDU.

Dica: No Protheus 11, quando se digita o usuário ou a senha errado, o mesmo é fechado por completo após o OK. Anteriormente, a tela de

login se mantinha. Já existe um chamado com FNC em aberto - SDEVH3.

Page 14: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 14 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

� Colletion diferentes entre a DataBase e a Tabela. Após a conclusão da conversão, e dado inicio ao uso do sistema, pode ocorrer o seguinte erro (como exemplo):

ERRO THREAD (Lancer, LANCER-PC) 19/01/2011 10:31:25 : Error : 468 (37000) - RC -1 - [Microsoft][SQL Server Native Client 10.0][SQL Server]Cannot resolve the collation conflict between "SQL_Latin1_General_CP437_BIN" and "Latin1_General_BIN" in the equal to operation. ( From tMSSQLConnection::GetQueryFile ) Thread ID [2580] User [Danilo ] IO [7529] Tables [45] MaxTables [45] Comment [FINA050 - TCPIP] Status [] SP [ ] Traced [No] DBEnv [MSSQL/dbBotti10Homolog] DBThread [(SPID: 152) ] Started [19/01/2011 10:13:51] IP [192.168.1.105] SELECT SE2.R_E_C_N_O_ RECTIT,E2_FILIAL,FQ_FILDES FROM SE2010 SE2 , SFQ010 SFQ WHERE E2_PREFIXO = FQ_PREFDES AND E2_NUM = FQ_NUMDES AND E2_PARCELA = FQ_PARCDES AND E2_TIPO = FQ_TIPODES AND E2_FORNECE = FQ_CFDES AND E2_LOJA = FQ_LOJADES AND SE2.D_E_L_E_T_ = ' ' AND FQ_FILIAL = '01' AND FQ_ENTORI = 'SE2' AND FQ_PREFORI = ' ' AND FQ_NUMORI = ' ' AND FQ_PARCORI = ' ' AND FQ_TIPOORI = ' ' AND FQ_CFORI = ' ' AND FQ_LOJAORI = ' ' AND SFQ.D_E_L_E_T_ = ' ' on FIMPEXCTIT(FINXAPI.PRX) 04/08/2010 15:28:02 line : 6898

Isso acontece pois a tabela está com um collation diferente da database:

Para resolver isso, poderá ser feito de 3 formas: i) Utilizar a rotina do Anexo 2.

ii) Abra a tabela via MPSDU, copie os dados para uma tabela de backup, “droppe”, recrie (entrando no sistema), e “append”. Verifique

no banco que os campos ficaram com o mesmo “collation” da Database. Caso isso não funcione, faça o passo ii.

iii) Abra o SQL. Localize a tabela citada no error.log. Clique com o botão direito e escolha a opção Design:

Em cada campo (isso mesmo, em cada campo) na opção Table Designer, troque o collation para “<database default>”:

Feito isso, salve a alteração da tabela, e pode usar o sistema normalmente.

Page 15: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 15 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

� Erro de estrutura não existente. No momento em que o compatibilizador estiver sendo executado, pode ser que aconteça o seguinte erro: “A estrutura do arquivo \data\LF2010 nao existe no SX3” Nesse caso o sistema não encontrou os campos na tabela SX3 da tabela citada no erro. Você pode contornar esse problema de 2 formas: 1) Solicite a alguém os campos da tabela e coloca no seu SX3 2) Apagar essa tabela do SX2 (não aconselhável).

Após essa decisão tomada, reinicie a conversão.

Elaboração: Fabricio Amaro – Unidade TOTVS OP – Bauru – [email protected] Colaboração: Gustavo Canela – Unidade TOTVS OP – Bauru – [email protected] Modo de Compartilhamento das tabelas

Victor Nigro – Unidade TOTVS OP – Bauru – [email protected] Copiar via linha de comando direto do Linux Daniel Peixoto da Silva – Unidade TOTVS OP – S. J. Rio Preto – [email protected] Collation diferentes Marco Smanioto – Unidade TOTVS OP – Bauru – [email protected] Rotina de ajuste das tabelas

Page 16: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 16 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

� ANEXO 1: Roteiro de conversão: Protheus 7 para 8 e Protheus 10 R1 para R3 Segue roteiro de uma versão antiga, para possíveis consultas:

Passos para a conversão da versão 7.10 para 8.11

1. Copiar a pasta \ap7\ para uma pasta a ser convertida. 2. Atualizar esta versão 7.10 completamente e baixar o programa e o documento que vai explicar como rodar a rotina que vai eliminar os registros duplicados da base da versão 7.10 antes de iniciar o processo de

conversão. (o ftp que segue vai trazer um patch e um documento explicativo sobre como atualizar o sistema e criar um programa no configurador que execute a rotina de compatibilizacão. -> ftp://ftp.microsiga.com.br/sistemas/CheckUnique/)

3. Após rodar essa rotina no banco da versão 7.10, instalar a versão 8.11 e atualiza-la completamente.

4. Instalar e atualizar o topconnect versão 4.0 ( e verificar se o seu mp8srv.ini indica que esta usando a dll da versão 4.0).

5. Criar um ambiente no topconnect que aponte para a sua base da versão 7.10 e testar esta conexão dentro do próprio topmonitor. 6. Criar um ambiente na versão 8.11 que aponte para a pasta da versão 7.10 como o exemplo: [Base710] SourcePath=c:\Protheus8\apo RootPath=c:\ap7 StartPath=\sigaadv\ RpoDb=Top RpoLanguage=portuguese RpoVersion=811 LocalFiles=ads localdbextenGsion=.dbf PictFormat=DEFAULT DateFormat=DEFAULT TopDataBase=MSSQL TopServer=Saturno TopALIAS=dbDatabase helpserver=192.168.1.1 Obs: Pode-se sim criar uma pasta na versão 7.10 chamada System e copiar os dados da pasta \SIGAADV\ para ela.. porem para fazer isso será necessário entrar nos arquivos SX2 de cada empresa e mudar o path de SIGAADV para SYSTEM, e fazer a mesma coisa com o arquivo de parâmetros, alem de deixar o StartPath=\SYSTEM\ Porem, prefiro fazer a conversão usando a pasta original sem realizar esta substituição, deixando para realiza-la após a conversão para a versão 8.11. 7. Copiar para a pasta da versão 7.10 a pasta \systemload\ da versão 8.11 (essa pasta contem o arquivo SXSBRA.TXT que é o dicionário de dados que será utilizado para descompactar as tabelas na pasta \sigaadv\ da

versão 7.10. 8. Remover do arquivo de índices, todos os índices criados pelo usuário, e copia-los num arquivo a parte, pois será necessário volta-los ao arquivo de índice ao final da conversão, atentando-se a seqüência informada pelo

sistema.. isso quer dizer que também será necessário corrigir esse índice e seqüência nos rdmakes que utilizam índices criados pelo usuário e que indicam o numero do indice ao invés do nick do índice. 9. Seguidos estes passos, entre na versão 8.11, digite no programa inicial: mp710to811 e no ambiente o ambiente que foi criado acima (apontando para a base da versão 710). 10. O sistema vai informar que esta versão atualizada permite atualiza o protheus 7.10 para a versão 8.11 R2 (Segundo release) ou então de uma versão 8.11 para o 8.11 R2, escolha apenas primeira opção. 11. em seguida a tela que segue solicita a criação de sindex exclusivo, selecione esta opção. 12. A próxima tela informa quais empresas passarão pelo processo de conversão, verifique se constam todas as empresas. (apenas a empresa “matriz” aparece, as filiais apesar de não aparecerem serão convertidas também

pois pertencem a mesma família de arquivos.) 13. Escolha então na próxima tela as opções de conversão, ou seja, marque “Warning Error”, “Remover arquivos de backup após atualização”,”substituir arquivo de log existente” e “Corrigir erros automaticamente”. (não

selecione “permitir interromper processo de conversão”, pois esta opção faz com que cada um dos passos da conversão solicite interação do usuário para passar para o próximo passo.)

14. Pronto, deixe a conversão seguir sozinha.

15. Após a conversão:

• Volte os índices criados pelo usuário

• Copie o conteúdo da pasta \sigaadv\ da versão 7.10 para a pasta \system\ da versão 8.11.

• Copie o conteúdo da pasta \profile\ da versão 7.10 para a pasta \profile\ da versão 8.11.

• Verifique o path do arquivo sx2 se estah correto e apontando para a pasta \SYSTEM\ ao invés de \SIGAADV\ (o mesmo vale para o aquivo de parâmetros)

• Copie o conteúdo da pasta \RDMAKE\ da versão 710 para a pasta \my projects\ da versão 8.11 e revise os rdmakes que utilizam esses índices.

• Abrir os Menus do systemload da internet na pasta /SYSTEM/

• Apagar o roteiro da folha (SRM010) • Entrar no cadastro de roteiro para ele criar o padrão

• Voltar o roteiro dos usuários e corrigir a seqüência baseada na seqüência da versao anterior

Possíveis erros:

1) Arquivos da contabilidade são diferentes dos informados em seus dicionários. R: Verifique se o arquivo de grupos contábeis contem o tamanha correto dos arquivos, esse arquivo contem o tamanho mínimo e o tamanho maximo destes arquivos, se necessário corrija o tamanho do campo de código contábil no sx3, mate a tabela e a appende. 2) Arquivos insistem em derrubar a conversão, dando erros inesperados. (Comum para tabelas SQ da qualidade.) R: Renomeie este arquivo e reinicie a conversão, e após a conversão, appende este arquivo apagado com o conteúdo do renomeado, ou copie a tabela pra outra e drope para depois appenda-la a partir desta copia. 3) Sistema trava durante a conversão de arquivos muito extensos. R: Derrube a conexão e inicie novamente a conversão. Pode haver perda de sincronismo entre server e remote, mas não apague os .log, nem os .tsk, apenas os .cdx devem ser apagados. 4) Algum erro que precise começar tudo novamente. R: Apague os arquivos com extensão .tsk (arquivo de lista de tarefas da conversão, que serve para saber quais os passos que foram feitos pelo sistema durante a conversão). Obs: Eis aí a necessidade da copia antes da conversão.. tanto da pasta AP7 quanto do banco, pois se precisar começar tudo novamente é preferível voltar o backup do que uma conversão já iniciada. 5) Erro em append por conta de índices. R: Verifique os índices criados, podem ter sido duplicados acidentalmente, ou então não constam do arquivo de índices. 6) sistema não entra mais por causa de senha errada, mesmo informando a senha do administrador. (erro corrigido na versão 8.11.009) R: comece apagando o arquivo de extensão .spf pois este arquivo pode ter sido corrompido durante a conversão. Se ainda assim der errado, apague a pasta \PROFILE\ pois as configurações de usuários podem estar erradas.(é claro que precisa de uma copia desta pasta a parte.) Obs: para a conversão de menus de usuários o sistema deixa a desejar na conversão do caminho destes menus, ou seja, nas configurações de usuários os menus de usuários continuarão apontando para a pasta \sigaadv\ ao invés da nova pasta \system\ criada na versão 8.11.. .para isso existem duas opções: Criar uma pasta \sigaadv\ na versão 8.11 que contenha somente os menus de usuários, ou então entrar via configurador no arquivo de usuários, e mudar um a um os caminhos de cada um dos menus.

CHAMADO TÉCNICO N.o ABXAFL

Page 17: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 17 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

It. Área Ocorr. Descrição Cons. Externo An. Alocado Dt. Ocorr.

002 N1-FRAMEW2 FeedBack

Boa Tarde, Fabrício. Segue abaixo os procedimentos para atualização de release: Passos para Migração de Release – P10 (R1) para P10 (R1.1) Preparando para a atualização 1. Atualize a Build e o RPO do sistema Site: http://portaldocliente.microsiga.com.br Link: Atualizações do Produto - RPO Palavra: Protheus10 Categoria: Repositório de Objetos - BUILD Palavra: Protheus10 Categoria: Binário TOTVSTec - UPDATE Palavra: Protheus10 Categoria: Update de Programas - PATCH/LIB DE PROGRAMAS Palavra: Protheus10 Categoria: Path de Programas 2. Atualize o diretório Systemload do sistema a. Descompacte: Help_de_Campo_Pergunta.zip - HELP Palavra: Protheus10 Categoria: Help de Campo/Pergunta b. Descompacte: Menu_de_Módulo.zip e Dicionário_de_Dados.zip - MENUS Palavra: Protheus10 Categoria: Menu de módulo - BRA.ZIP Palavra: Protheus10 Categoria: Dicionário de dados 3. Exclua os arquivos *.DBF do diretório SYSTEMLOAD 4. Exclua os arquivos *.IDX do diretório SYSTEMLOAD 5. Exclua o arquivo *.TSK do diretório APPSERVER do sistema 6. Exclua o arquivo *.LOG do diretório SYSTEM Atualização da Base de Dados. OBS.: Para bases TopConnect/DBAccess é necessário executar a rotina CheckDupl. Para maiores detalhes, entre em contato com o Suporte Help Desk e peça orientações para a execução da mesma. 1. Execute o SmartClient 2. No campo Programa Inicial digite: MP710TO101 Att, Daniel.

TBR047-FABRICIO DA SI

TI3205 DANIEL 04/07/08 13:50

Page 18: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 18 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

� ANEXO 2: Rotina para ajuste das tabelas: Essa rotina – xAjTab() - deverá ser chamado via MENU em algum módulo, e pelo SIGAMDI, pois via Configurador ela não é executada, e via

SIGAADV ele carrega as tabelas no inicio do programa, tirando então a exclusividade das mesmas. #INCLUDE "PROTHEUS.CH" #INCLUDE "TOPCONN.CH" #INCLUDE "RWMAKE.CH" //ROTINA DESENVOLVIDA POR MARCO SMANIOTO E AJUSTADA POR FABRICIO AMARO //OBJETIVO - RECRIAR AS TABELAS DO BANCO //EXEMPLO DE USO: EM ALGUNS CASOS, O COLETTION DA TABELA ESTÃO DIFERENTES DA DATABASE, SENDO NECESSÁRIO "DROPPAR" E "APPENDAR" A TABELA. COMO // É DIFICIL SABER QUAIS TABELAS ESTÃO DESSA FORMA, EXECUTA ESSA ROTINA PARA AS TABELAS QUE DESEJAR //AS TABELAS DE BACKUP NÃO SÃO APAGADAS POR QUESTÕES DE SEGURANÇA, CASO SEJA NECESSÁRIO RECUPERAR OS DADOS //SE EXECUTAR 2 VEZES ESSA ROTINA SEM MUDAR O PARAMETRO 'EXTENSAO DA TABELA', SERÁ EXIBIDO O ERRO (NO TOPCONNECT) DE CHAVE DUPLICADA //NO INSERT DA TABELA OFICIAL E DE BACKUP QUANDO FOR COPIADA DO BACKUP //NA TABELA DE BACKUP //SUGESTÃO: ANTES DE EXECUTAR ESSA ROTINA, ABRA O TOPCONNECT E FAÇA O ACOMPANHAMENTO NA ABA MENSAGENS //Montagem da tela para passagem dos parametros User Function xAjTab() Local aSays := {} Local aButtons := {} Private cPerg := "XAJTAB1" Private cCadastro := OemToAnsi( "* Ajusta Tabelas do Banco" ) ValidPerg() //Apresenta os parametros logo na entrada da rotina Pergunte(cPerg,.t.) AADD(aSays,OemToAnsi( " Este programa ira ajustar as tabelas do sistema, fazendo um backup," ) ) AADD(aSays,OemToAnsi( " apagando, recriando e recuperando os dados." ) ) AADD(aSays,OemToAnsi( " Obs.: Executar em modo exclusivo!" ) ) AADD(aButtons, { 5,.T.,{|| Pergunte(cPerg,.T. ) } } ) AADD(aButtons, { 1,.T.,{|o| yAjTab() }} ) AADD(aButtons, { 2,.T.,{|o| FechaBatch() }} ) //FechaBatch é padrão para fechar a tela FormBatch( cCadastro, aSays, aButtons ) Return //ROTINA QUE FAZ BACKUP, APAGA, RECRIA E RESTAURA OS ARQUIVOS USER FUNCTION AJUSTABANCO(cTabela) //POR GARANTIA, APAGA A TABELA //FABRICIO - MELHOR NÃO APAGAR A TABELA PARA NÃO TER PROBLEMAS //EM ALGUNS CASOS PODE DAR ERRO DE INSERT APOS RECRIAR A TABELA ORIGINAL E TENTAR COPIAR DA TABELA DO BACKUP (ACOMPANHAR PELO TOPCONNECT) //TcDelFile(RetSqlName(cTabela)+"_"+cExt) cExt := ALLTRIM(MV_PAR03) cCampos := "" //PRIMEIRO APAGA OS REGISTROS DELETADOS cQuery := " DELETE FROM "+RetSqlName(cTabela)+" WHERE D_E_L_E_T_ = '*' " TCSQLEXEC(cQuery) //ANALISA QUAIS OS CAMPOS DA TABELA dbSelectArea("SX3") dbSetOrder(1) dbGoTop() While !SX3->(Eof()) If SX3->X3_ARQUIVO == cTabela .AND. SX3->X3_CONTEXT <> "V" cCampos += SX3->X3_CAMPO + "," EndIf DbSelectArea("SX3") dbSkip() EndDo cCampos += " R_E_C_N_O_ " //SELECIONA OS REGISTROS PARA BACKUP cQuery := " SELECT * INTO "+RetSqlName(cTabela)+"_"+cExt+" FROM " + RetSqlName(cTabela) TCSQLEXEC(cQuery) //APAGA A TABELA OFICIAL TCDelFile(RetSqlName(cTabela)) //RECRIA A TABELA ORIGINAL COM BASE NO SX3 DA EMPRESA POSICIONADA DbSelectArea(cTabela) dbSetOrder(1) //RECUPERA OS DADOS DA TABELA DE BACKUP cQuery := "INSERT INTO " + RetSqlName(cTabela) + " (" + cCampos + ") SELECT "+ cCampos +" FROM "+RetSqlName(cTabela)+"_"+cExt+" " TCSQLEXEC(cQuery) //APAGA A TABELA DE BACKUP //TcDelFile(RetSqlName(cTabela)+"_"+cExt) Return Static Function yAjTab() If MsgBox("Será iniciado agora o processo de ajustes das tabelas do banco. Deseja continuar?","Continua?","YESNO") Processa({|| zAjTab() },"Processando...") EndIf FechaBatch() Return Static Function zAjTab() cAlias := "SX2" DbSelectArea(cAlias) dbSetOrder(1) dbGoTop() ProcRegua(RecCount()) // Numero de registros a processar While !SX2->(Eof()) If SX2->X2_CHAVE >= MV_PAR01 .AND. SX2->X2_CHAVE <= MV_PAR02 IncProc("Tabela :" + SX2->X2_CHAVE + " - " + SX2->X2_NOME) U_AJUSTABANCO(SX2->X2_CHAVE) EndIf DbSelectArea(cAlias) dbSkip() EndDo MsgBox("Tabelas ajustadas com sucesso!","Ok","INFO") Return Static Function ValidPerg() _sAlias:= Alias() aRegs:= {} dbSelectArea("SX1") dbSetOrder(1) cPerg:= PADR(cPerg,10) // Grupo/Ordem/Pergunta/Perg.Esp/Perg.Ingl/Variavel/Tipo/Tam/Dec/Presel/GSC/Valid/Var01/Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/Def05/Cnt05 aAdd(aRegs,{cPerg,"01","Tabela De ?","","","mv_ch1","C",03,00,00,"G","","mv_par01","","","","","","","","","","","","","","","","","","","","","","","","","HSPSX2","","","",""}) aAdd(aRegs,{cPerg,"02","Tabela Ate ?","","","mv_ch2","C",03,00,00,"G","","mv_par02","","","","","","","","","","","","","","","","","","","","","","","","","HSPSX2","","","",""}) aAdd(aRegs,{cPerg,"03","Extensão Tabelas Bkp","","","mv_ch3","C",03,00,00,"G","","mv_par03","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""}) For i:=1 to Len(aRegs) If !dbSeek(cPerg+aRegs[i,2]) RecLock("SX1",.T.) For j:=1 to FCount() If j <= Len(aRegs[i]) FieldPut(j,aRegs[i,j]) Endif Next MsUnlock() Endif Next dbSelectArea(_sAlias) Return

Page 19: 80807361-MIT072-Conversao-P11

MIT072_Conversao_P11.doc Página 19 de 19

MIT072 – Manual de Operação do Protótipo Conversão Protheus 11 Revisão 005 – 16/06/2011

� ANEXO 3: Rotina para execução e controle dos updates modulares

#include "rwmake.ch" #include "topconn.ch" #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /* FABRICIO AMARO - 06/06/2011 ROTINA PARA REGISTRAR A APLICAÇÃO DOS UPDATES RESUMO: PARA CADA UPDATE O SISTEMA IRÁ GRAVAR UM ARQUIVO COM O MESMO NOME DO UPDATE MAIS (+) A DATA DO FONTE DESSE UPDATE SE NA PROXIMA APLICACAO O SISTEMA VERIFICAR QUE A DATA É DIFERENTE, IRA APLICAR NOVAMENTE OBS.: SE CLICADO EM SIM PARA EXECUTAR O UPDATE, E DEPOIS CANCELAR O UPDATE (ROTINA PADRAO) FICARÁ GRAVADO NESSE LOG QUE ELE JÁ FOI EXECUTADO, PORTANTO, PARA ESSE CASO, IR NA PASTA DO LOG E APAGAR O ARQUIVO PARA QUE ELE POSSA SER EXECUTADO NOVAMENTE. */ User Function MeusUpds() Private oGera2 p11 := .T. cLocUpd := "UPDS\" //PASTA NA SYSTEM QUE FICARÁ GUARDADO O LOG DOS UPDATES - SUGESTÃO: CRIE ESSA PASTA cUpd := SPACE(15) If p11 cLocSystem := "C:\TOTVS 11\Microsiga\Treinamento\system\" //CAMINHO COMPLETO DA PASTA SYSTEM cLocSmart := "C:\TOTVS 11\Microsiga\Protheus\bin\smartclient\" //CAMINHO COMPLETO DA PASTA SMARTCLIENT cTCP := "TCP" //COMUNICAÇÃO TCP COM O SERVIDOR cAmbiente := "TOTVS_10_PARA_11" //AMBIENTE cProgCli := "SmartClient.exe" //NOME DO PROGRAMA DO SMARTCLIENT (PROTHEUS10 = TOTVSSMARTCLIENT.EXE | PROTHEUS 11 = SMARTCLIENT.EXE) Else cLocSystem := "A:\Protheus10\Treinamento\system\" //CAMINHO COMPLETO DA PASTA SYSTEM cLocSmart := "A:\Protheus10\bin\smartclient\" //CAMINHO COMPLETO DA PASTA SMARTCLIENT cTCP := "TCP" //COMUNICAÇÃO TCP COM O SERVIDOR cAmbiente := "Treinamento" //AMBIENTE cProgCli := "TotvsSmartClient.exe" //NOME DO PROGRAMA DO SMARTCLIENT (PROTHEUS10 = TOTVSSMARTCLIENT.EXE | PROTHEUS 11 = SMARTCLIENT.EXE) EndIf cLog := "" cLog2 := "" nCont1 := 0 //VARIAVEIS ESPECIFICAS PARA A PESQUISA DAS FUNÇÕES NO RPO aType := {} aFile := {} aLine := {} aDate := {} aTime := {} //MONTAGEM DA TELA PARA PASSAGEM DOS PARAMETROS @ 200,1 TO 400,400 DIALOG oGera2 TITLE OemToAnsi("Aplicação dos Updates") @ 10,018 Say "INFORME AS INICIAIS DO UPDATE - EXEMPLO: UPDCOM | UPDEST" PIXEL OF oGera2 @ 70,018 MSGET oVar VAR cUpd Picture "@!" SIZE 040,10 PIXEL OF oGera2 @ 80,170 BMPBUTTON TYPE 01 ACTION {Close(oGera2)} Activate Dialog oGera2 Centered cUpd := Alltrim(cUpd) IF Alltrim(cUpd) == "" Alert("Não foi informado nenhum UPDATE!") Return EndIf If MsgBox("Será iniado a execução dos UPDs. Deseja continuar?","Atenção","YESNO") cNomFunc := "U_"+cUpd+"*" //O * SERVE PRA PESQUISAR O RESTANTE DA STRING //PESQUISA AS FUNÇÕES NO RPO aRet := GetFuncArray(cNomFunc, @aType, @aFile, @aLine, @aDate, @aTime) For nCont := 1 To Len(aRet) //PRIMEIRO VERIFICA SE ESSE ARQUIVO JÁ EXISTE NA PASTA \SYSTEM\UPDS OU NO CAMINHO ESPECIFICADO cArqUpd := aRet[nCont] +"_"+ StrTran(dtoc(aDate[nCont]),"/","_") cArqUpd := cLocSystem + cLocUpd + cArqUpd + ".UPDATE" cTemArq := FOPEN(cArqUpd) //SE O ARQUIVO JÁ EXISTIR If !(cTemArq <= 0) cLog2 += aRet[nCont] +";" Else nCont1++ If MsgBox("Executa "+aRet[nCont]+"?","Atenção","YESNO") //EXECUTA O SMARTCLIENT COM OS PARAMETROS DO UPDATE WinExec(cLocSmart+cPROgCli+" -P="+aRet[nCont]+" -C="+cTCP+" -E="+cAmbiente+" -M") //ARMAZENA O LOG GERAL cLog += aRet[nCont] +";" //CRIA NA PASTA SYSTEM O UPDATE PARA DIZER QUE ELE JÁ FOI EXECUTADO MemoWrite(cArqUpd,cArqUpd) EndIf EndIf Next cArq := cLocSystem + cLocUpd + cUpd + ".TXT" MemoWrite(cArq,cLog) If nCont1 > 0 cMsg := "Compatibilizadores executado com sucesso! Foi gravado os LOG's na pasta SYSTEM" Else cMsg := "Não foi executado nenhum compatibilizador!" EndIf MsgBox(cMsg,"Acabou","INFO") If MsgBox("Deseja executar novamente a rotina MeusUpd's?","Meus Upds","YESNO") U_MEUSUPDS() EndIf EndIf Return