Comandos
/migrate
Migra codigo ADVPL procedural para codigo TLPP orientado a objetos com classes, namespaces e padroes modernos
/advpl-specialist:migrate
Converte codigo ADVPL procedural para TLPP com padroes orientados a objetos.
Uso
/advpl-specialist:migrate <file.prw> [options]Opcoes
| Flag | Descricao | Padrao |
|---|---|---|
--output | Caminho do arquivo .tlpp de saida | Mesmo nome com extensao .tlpp |
--dry-run | Mostrar plano de migracao sem gerar arquivos | false |
--keep-original | Manter o arquivo .prw original | true |
--wrapper | Gerar wrapper de compatibilidade retroativa | true |
--namespace | Sobrescrever namespace | Auto-detectado a partir do modulo |
Processo
OBRIGATORIO: Sempre entra em modo de planejamento antes de migrar codigo. Nunca pula o planejamento.
Fase de Analise
- Ler arquivo-fonte - Ler o arquivo .prw completamente
- Analisar estrutura - Identificar funcoes, dependencias, variaveis compartilhadas
- Buscar chamadores - Pesquisar na base de codigo por referencias
u_NomeFuncao
Fase de Planejamento (OBRIGATORIA)
- Carregar skill - Invocar skill
advpl-to-tlpp-migrationpara regras e checklist - Entrar em modo de planejamento - Usar
EnterPlanModepara criar um plano estruturado de migracao - Projetar estrutura de classes - Mapear funcoes para classes e metodos
- Apresentar plano - Mostrar ao usuario um plano detalhado de migracao incluindo:
- Analise do arquivo-fonte (funcoes encontradas, dependencias, variaveis compartilhadas)
- Chamadores externos que serao impactados
- Estrutura da classe alvo (nome da classe, namespace, propriedades, metodos)
- Mapeamento: qual funcao se torna qual metodo (publico/privado)
- Variaveis Private/Public a converter para propriedades de classe
- Includes a atualizar (TOTVS.CH -> tlpp-core.th, etc.)
- Se um wrapper de compatibilidade retroativa e necessario
- Quaisquer riscos ou breaking changes
- Aguardar aprovacao - O usuario deve aprovar o plano antes de qualquer codigo ser escrito. Se o usuario solicitar alteracoes, revisar o plano.
- Se --dry-run - Parar aqui apos mostrar o plano
- Sair do modo de planejamento - Usar
ExitPlanModeapos aprovacao
Fase de Implementacao (somente apos aprovacao)
- Executar migracao - Gerar arquivo(s) .tlpp seguindo o plano aprovado e skill
advpl-to-tlpp-migration - Gerar wrapper - Criar wrapper .prw de compatibilidade retroativa se --wrapper
- Executar checklist - Validar contra migration-checklist.md
- Relatar - Mostrar resumo das alteracoes
Exemplos
# Migrar um arquivo (mostra plano primeiro, depois gera)
/advpl-specialist:migrate src/FATA001.prw
# Visualizar migracao sem gerar arquivos
/advpl-specialist:migrate src/FATA001.prw --dry-run
# Especificar caminho de saida e namespace
/advpl-specialist:migrate src/FATA001.prw --output src/tlpp/PedidoService.tlpp --namespace mycompany.faturamento
# Migrar sem wrapper de compatibilidade retroativa
/advpl-specialist:migrate src/FATA001.prw --wrapper falseSaida
- Arquivo
.tlppcom codigo migrado baseado em classes - Wrapper
.prwopcional para compatibilidade retroativa - Resumo da migracao com o que mudou e por que