NAVDEV Tips: Validación de controles en Dynamics NAV 2018

octubre 17, 2018 Christian Amado 0 Comentarios

Las validaciones siempre son importantes dentro del mundo de las aplicaciones, es por eso que no puede faltar dentro de Microsoft Dynamics NAV.


Existen varias formas de realizar validaciones. Aquí menciono dos:



  • Tablas: Las validaciones se realizan en los campos de las tablas, afectando a todos los demás objetos. Estas validaciones son generales y afectan a tablas y páginas.

  • Páginas: Las validaciones se realizan en los campos de la página. Por ejemplo, cuando sólo queremos realizar las validaciones en la página sin afectar a otras páginas.


Hoy, demostraré cómo validar un campo de tabla:



  • Afectaremos al campo RUC ("VAT Registation No." en NAV):


  • En las tablas, seleccionamos la 79 (Company Information):


  • Nos dirigimos al campo 19 (VAT Registration Number):


  • Seleccionamos el botón que nos lleva al código C/AL:


  • Escribimos el código que valida nuestro campo:


  • VAT Registration No. - OnValidate()
    // "VAT Registration No." := UPPERCASE("VAT Registration No.");
    // IF "VAT Registration No." = xRec."VAT Registration No." THEN
    // EXIT;
    // IF NOT VATRegNoFormat.Test("VAT Registration No.","Country/Region Code",'',DATABASE::"Company Information") THEN
    // EXIT;
    // IF "Country/Region Code" = '' THEN
    // EXIT;
    // IF VATRegNoSrvConfig.VATRegNoSrvIsEnabled THEN BEGIN
    // VATRegistrationLogMgt.ValidateVATRegNoWithVIES(ResultRecordRef,Rec,"Primary Key",
    // VATRegistrationLog."Account Type"::"Company Information","Country/Region Code");
    // ResultRecordRef.SETTABLE(Rec);
    // END;

    ////CAMADO
    //Con esto verificamos que el RUC debe contener 8 caracteres como mínimo
    IF STRLEN("VAT Registration No.") < 8 THEN
    FIELDERROR("VAT Registration No.", 'El RUC debe contener como mínimo 8 caracteres');

    //Con esto verificamos que tenga el dígito verificador. En Paraguay, el RUC sería 1234567-8
    IF STRPOS("VAT Registration No.", '-') < 1 THEN
    FIELDERROR("VAT Registration No.", 'El RUC debe contener el DV (dígito verificador)');
    ////CAMADO

  • Probamos la validación con los datos de España:


  • Al colocar los datos del RUC de Paraguay...


  • La validación siempre se produce al salir del campo a validar.



De esta manera, hemos validado que se cumplan los requisitos para el RUC, en territorio paraguayo :)

0 comentarios: