Usina BRAdvPL Guide
Sign in
← All topics
ENTRY POINTUnder review

FINCMTC

User Function FINCMTC()

Parses check-reader fields in TOTVS Recibo.

FINCMTCFINXFIN
01 · OVERVIEW

Overview

The specific TOTVS Recibo page, scoped to localization and updated release 12.1.2210 or later, receives PARAMIXB[1] and requires six elements: bank, branch, postal code, check, account and account check digit. P12.2210 also passes {cCmc7}. The official table and sample differ on some positions; the code below demonstrates the stated table, not a universal bank layout. No useful GitHub implementation was found. (Refs. 1–2)

02 · SYNTAX

Syntax

User Function FINCMTC()

Parameters

PARAMIXB[1]
CharacterExecution context

Reader text; verify the documented 0< prefix. (Refs. 1–2)

Return value

Required six-field array in documented order; not a logical return.

03 · PRACTICAL EXAMPLE

Editorial example based on documentation

#Include "Protheus.ch"

User Function FINCMTC()
    // Based on the official table; the layout requires testing.
    Local cReading := PARAMIXB[1]
    Local aFields := {}
    // Bank, branch, postal, check, account and check digit, in order.
    AAdd(aFields, SubStr(cReading,2,3))
    AAdd(aFields, SubStr(cReading,5,3))
    AAdd(aFields, SubStr(cReading,8,4))
    AAdd(aFields, SubStr(cReading,12,8))
    AAdd(aFields, SubStr(cReading,20,10))
    AAdd(aFields, SubStr(cReading,30,1))
Return aFields
Expected result

Teaching proposal with behavior described in comments. Verify the context before compiling in a test environment. Under review: example not compiled or run in Protheus. Verify aliases, locks, transaction position and compatibility in the target release and patch.

04 · PRACTICAL EXAMPLE

Observed call and context

// P12.2210 caller excerpt (EURAI, ref. 2); not an entry point implementation.
// FINXFIN.PRX - FINCMC7TC() -> ACMC7TC := EXECBLOCK("FINCMTC",.F.,.F.,{CCMC7})
Expected result

The record shows arguments and immediate return use where present. It omits the full caller body and does not establish commit timing.

BEST PRACTICES
  • Verify layout and reader prefix using synthetic data. Do not log actual check/account numbers. Validate lengths and caller error policy before deployment.
  • A call without a fourth argument does not document a PARAMIXB layout. Preserve caller identifiers and do not invent fields or positions.
  • Test plan: compare standard and customized flows, exercise success, rejection and repetition, and inspect balances, movements and accounting as applicable.
  • Under review: example not compiled or run in Protheus. Verify aliases, locks, transaction position and compatibility in the target release and patch.

Related content

REFERENCES
  1. TOTVS. PE FINCMTC - Personalización de los datos ingresados en la lectora de cheques TOTVS Recibo. TDN. Accessed on 2026-10-24.
  2. EURAI. Pontos de Entrada P12.2210 - Parte 2. Universo do Desenvolvedor, 2023. Accessed on 2026-10-24.
Status
Under review
Page created on
Last reviewed on
Original language
Portuguese
Reviewed by
Usina.BR
0 approved comment(s)

Comments

There are no approved comments yet.

Sign in with Google or Microsoft to comment.

Powered by Usina Docs · Alpha