← ClaudeAtlas

advpl-advancedlisted

Tópicos avançados ADVPL — transações ACID (Begin Transaction + DisarmTransaction), relatórios TReport (TRSection/TRCell/TRFunction), FWTemporaryTable, manipulação de arquivos (FT_F* família 2 para SPED/EDI), MsNewGetDados, threads (MsRunInThread), OOP em ADVPL clássico (Class/Method/Self), reflection via Type/ValType, NoRound financeiro, anti-padrões legados (AxCadastro/Modelo2/Modelo3). Use quando contexto sair do escopo básico de cadastros/MVC.
JoniPraia/plugadvpl · ★ 12 · AI & Automation · score 66
Install: claude install-skill JoniPraia/plugadvpl
# advpl-advanced — Tópicos avançados ADVPL ADVPL avançado cobre o que vai além do CRUD MVC básico: transações ACID, relatórios estruturados (TReport), manipulação de arquivos em massa (SPED, EDI), captura de informações multi-linha (grids dinâmicas fora de MVC), threads paralelas, OOP clássico, e técnicas de programação eficiente. ## Quando usar - Usuário pede "relatório", "TReport", "impressão", "PDF", "Excel". - Necessidade de `Begin Transaction` / `BeginTran` (gravações atômicas multi-tabela). - Manipulação de arquivos texto (`.csv`, `.txt`, layouts SPED/EDI/SEFAZ) com `FCreate`/`FOpen`/`FRead`/`FWrite` ou `FT_FUse`/`FT_FReadLn` (família 2). - Telas com grids dinâmicas (`MsNewGetDados`, `TCBrowse`) fora do contexto MVC. - Performance de loops, arredondamento financeiro (`NoRound`), I/O bulk. - Threads paralelas com `MsRunInThread` (cuidado com WorkArea por thread). - OOP em ADVPL clássico (`Class ... Method ... EndClass`). - Migrações de código `Modelo1`/`Modelo2`/`Modelo3`/`AxCadastro` (legacy) → MVC moderno. ## Transações — Begin Transaction × BeginTran ```advpl Begin Transaction RecLock("SC5", .T.) SC5->C5_NUM := cNumPed SC5->C5_FILIAL := xFilial("SC5") SC5->C5_CLIENTE := cCli SC5->(MsUnlock()) RecLock("SC6", .T.) SC6->C6_FILIAL := xFilial("SC6") SC6->C6_NUM := cNumPed SC6->C6_ITEM := "01" SC6->(MsUnlock()) If lErroNaValidacao DisarmTransaction() // forca rollback explicito Break