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

F060CPM

F060CPM()

Permite tratar o cálculo de prazo médio em FINA060/FINA061. Exemplo independente de média ponderada e critérios para homologar a integração.

F060CPMFINA060FINA061
01 · VISÃO GERAL

Visão geral

O índice oficial Financeiro P12 associa F060CPM a FINA060/FINA061 para cálculo de prazo médio; a ficha específica permanece em construção. (TOTVS, s.d., ref. 1) A documentação funcional situa essas rotinas na geração e manutenção de borderôs, incluindo opções de transmissão por API. (TOTVS, 2023, ref. 2) Esse contexto não determina quando o PE executa nem o que recebe. A notação F060CPM() identifica o ponto de entrada; a chamada completa, o formato de PARAMIXB e o retorno não foram confirmados nas fontes públicas localizadas. O exemplo abaixo é um exercício editorial independente: mostra uma possível média ponderada por valor, sem afirmar que essa é a fórmula do Protheus. Conteúdo em revisão, com pesquisa baseada em evidência indexada e acesso integral limitado.

02 · SINTAXE

Sintaxe

F060CPM()

Parâmetros

Contexto do PE
Não documentadoContexto a confirmar

Argumentos e contexto de execução não confirmados. Não suponha que exista um array de títulos, valores ou vencimentos em PARAMIXB; a estrutura usada no exemplo foi criada exclusivamente para o exercício.

Retorno

Tipo, unidade e consumo do retorno do PE não confirmados. O exemplo não implementa F060CPM e não define o retorno exigido pelo chamador.

03 · EXEMPLO PRÁTICO

Conferir uma hipótese de média ponderada, fora do PE

#Include "Protheus.ch"

User Function ExF060CPM()
    Local aCasos := {{1000, 30}, {3000, 60}}
    Local nIndice := 0
    Local nTotalValor := 0
    Local nTotalPonderado := 0
    Local nPrazoMedio := Nil

    // Cada linha autoral contém {valor fictício, prazo em dias}.
    // Esse formato não representa PARAMIXB nem a fórmula do padrão.
    For nIndice := 1 To Len(aCasos)
        nTotalValor += aCasos[nIndice][1]
        nTotalPonderado += aCasos[nIndice][1] * aCasos[nIndice][2]
    Next nIndice

    // Sem base positiva, não adotamos zero como prazo calculado.
    If nTotalValor > 0
        nPrazoMedio := nTotalPonderado / nTotalValor
        ConOut("Prazo medio do exercicio: " + AllTrim(Str(nPrazoMedio, 10, 2)))
    EndIf
Return
Resultado esperado

O conjunto fictício resulta em 52,5 dias: (1000 × 30 + 3000 × 60) ÷ 4000. A média simples seria 45 dias; essa diferença ajuda a detectar hipóteses de ponderação distintas. O exemplo não usa datas reais, não grava borderô e não foi compilado nem executado em Protheus.

BOAS PRÁTICAS
  • Antes de customizar, confirme a fórmula e o contrato do PE no release-alvo. Identifique se o peso é valor original, saldo ou outro montante.
  • Defina a data-base, o tratamento de vencidos, o calendário e o arredondamento com os responsáveis pelo processo. Esses critérios não são confirmados pelo nome do PE.
  • Compare uma seleção com valores iguais e outra com valores diferentes. Guarde os resultados padrão e a memória de cálculo esperada.
  • Teste a seleção vazia, títulos de valor zero e casos de arredondamento conforme as combinações efetivamente aceitas no ambiente.
  • Valide FINA060 e FINA061 separadamente; a presença das duas rotinas no índice não demonstra contratos idênticos.
ARMADILHAS COMUNS
  • Confundir média simples com ponderada e obter resultado correto apenas quando os valores coincidem.
  • Tratar o array do exercício como estrutura oficial de PARAMIXB.
  • Misturar moedas ou bases de valor sem uma regra explícita de normalização.
  • Retornar Nil, zero ou número de dias ao PE sem confirmar o que o chamador espera.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. Pontos de Entrada - Financeiro - P12. TDN. Evidência indexada consultada em 2026-10-20.
  2. TOTVS. Transferência e Manutenção de Borderô - FINA060 / FINA061. TDN. 6 jan. 2023. Evidência indexada consultada em 2026-10-20.
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