Usina BRAdvPL Guia
Entrar
← Todos os tópicos
PONTO DE ENTRADAEm revisão

F241GAVE

User Function F241GAVE()

Recebe aVars diretamente em PARAMIXB; exemplo comunitário e diagnóstico editorial sem alterar elementos.

F241GAVEFINA241aVarsPARAMIXBExecBlock
01 · VISÃO GERAL

Visão geral

Eurai Rapelli apresenta uma implementação que recebe PARAMIXB como array e o devolve sem alteração. (Rapelli, 2023, ref. 1) A chamada oficial passa aVars diretamente como quarto argumento de ExecBlock; o índice específico permanece em construção. (TOTVS, s.d., refs. 2–3) A listagem P12.2210 situa a chamada em FA241BORDE e mostra o retorno clonado para aVars. (Universo do Desenvolvedor, 2023, ref. 4) O diagnóstico abaixo é autoral, inspirado nessa leitura, e não reproduz integralmente o fonte do artigo. A estrutura interna do array e o contrato completo por release não foram confirmados.

02 · SINTAXE

Sintaxe

User Function F241GAVE()

Parâmetros

PARAMIXB / aVars
Array no exemplo comunitário; estrutura a confirmarContexto a confirmar

O quarto argumento de ExecBlock fica disponível diretamente em PARAMIXB. Como a chamada passa aVars, não {aVars}, PARAMIXB representa a coleção inteira; PARAMIXB[1] representa seu primeiro elemento. (TOTVS, s.d., refs. 2 e 5) Nomes, tipos e significados de cada posição aguardam confirmação.

Retorno

No recorte do chamador, o resultado é passado a AClone e substitui aVars. Isso sustenta a expectativa de array nesse fluxo, sem documentar cada posição. O exemplo comunitário devolve o recebido. (refs. 1 e 4)

03 · EXEMPLO PRÁTICO

Diagnóstico editorial que preserva a coleção

#Include "Protheus.ch"

User Function F241GAVE()
    // Diagnóstico autoral; referência de contexto: Eurai Rapelli (ref. 1).
    // Não presume posições nem altera elementos de aVars.
    Local uContexto := PARAMIXB

    ConOut("F241GAVE: tipo recebido = " + ValType(uContexto))
    // Só conta elementos quando o valor recebido é um array.
    If ValType(uContexto) == "A"
        ConOut("F241GAVE: quantidade de elementos = " + AllTrim(Str(Len(uContexto))))
    EndIf

    // Devolve o recebido; isto não aplica uma regra de filtro.
Return uContexto
Resultado esperado

Registra tipo e, para array, quantidade de elementos; devolve o mesmo valor recebido. Não lê nem altera posições. Se o contexto não for array, o retorno também não será array: o diagnóstico não corrige uma incompatibilidade com o chamador. Não compilado nem executado no Protheus.

04 · EXEMPLO PRÁTICO

Recorte documental do chamador

// Listagem comunitária P12.2210: FINA241.PRX / FA241BORDE().
// Recorte documental, não implementação executável de F241GAVE.
aVars := AClone(ExecBlock("F241GAVE", .F., .F., aVars))
Resultado esperado

Mostra o retorno passado a AClone antes de substituir aVars. Não mostra o conteúdo das posições nem o restante da rotina.

BOAS PRÁTICAS
  • Não atribua significado de campo, filtro, banco ou data a uma posição sem verificar o fonte e o contexto do release utilizado.
  • A ausência de modificações no diagnóstico é intencional: primeiro confirme a estrutura recebida; depois desenvolva a regra de negócio.
  • Não substitua o retorno por .T., .F. ou NIL como se este PE fosse uma validação lógica.
  • Em homologação, compare a seleção de títulos antes e depois da customização e confira preservação do tamanho, ordem e tipos esperados no array.
  • Não registre conteúdo dos elementos no console. O diagnóstico limita a saída a tipo e quantidade.
  • Posição na transação, aliases, bloqueios e abrangência entre releases seguem a confirmar. As buscas no GitHub não localizaram implementação útil.

Conteúdos relacionados

REFERÊNCIAS
  1. RAPELLI, Eurai. FINA241-F241GAVE - Alterar aVars. Universo do Desenvolvedor, 2023. Consulta em 2026-10-23.
  2. TOTVS. Pontos de Entrada. TDN. Consulta em 2026-10-23.
  3. TOTVS. Pontos de Entrada - Financeiro - P12. TDN. Consulta em 2026-10-23.
  4. EURAI. Pontos de Entrada P12.2210 - Parte 2. Universo do Desenvolvedor, 2023. Consulta em 2026-10-23.
  5. TOTVS. ExecBlock - Execução do ponto de entrada. TDN. Consulta em 2026-10-23.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha