Reglas de Validación
  • 23 May 2024
  • 1 Minute to read
  • Contributors
  • Dark
    Light

Reglas de Validación

  • Dark
    Light

Article summary

El método para validar una regla recibe dos parámetros, un diccionario de datos y la regla a validar.

El diccionario debe tener:

Un objeto que sea un diccionario (de strings) debe tener todos los siguientes tags definidos:

myPerson: Contiene todos los datos de la persona con la que hubo match (se obtiene de la BD) + lastEvents. dict.add(myPerson)

myCompany: Contiene todo lo que sabemos de la company.

myConfig: Contiene todo de la tabla config para ese appId que esta guardado en la session.

myRequest: Es el request donde se está aplicando la regla de validación.

Ejemplos:

myCompany_companyLogoUrl=>null
myCompany_id=>50
myCompany_name=>Argentilemon
myConfigs_0_appId=>50
myConfigs_0_editable=>1
myConfigs_0_id=>2
myConfigs_0_mobile=>1
myConfigs_0_value=>Config_de_Nico
myConfigs_1_appId=>50
myConfigs_1_editable=>0
myConfigs_1_id=>PCGroupId
myConfigs_1_mobile=>1
myConfigs_1_value=>22
myConfigs_2_appId=>50
myConfigs_2_editable=>0
myConfigs_2_id=>PC_EVENT_RULE
myConfigs_2_mobile=>0
myConfigs_2_value=>(myPerson_person_active) && (myPerson_person_attributes_role.equals("Cosechero")) && (today.compareTo(myPerson_person_lastEvents_0_date)<0)
myConfigs_3_appId=>50
myConfigs_3_editable=>0
myConfigs_3_id=>PPGroupId
myConfigs_3_mobile=>1
myConfigs_3_value=>21
myConfigs_4_appId=>50
myConfigs_4_editable=>0
myConfigs_4_id=>collectionId
myConfigs_4_mobile=>0
myConfigs_4_value=>rekonpeople-prueba-oracle
myConfigs_5_appId=>50
myConfigs_5_editable=>0
myConfigs_5_id=>s3BucketName
myConfigs_5_mobile=>0
myConfigs_5_value=>rekonpeople-desa-pp
myPerson_active=>true
myPerson_appId=>50
myPerson_attributes_role=>Cosechero
myPerson_created=>null
myPerson_documentNumber=>34378958
myPerson_documentType=>1
myPerson_face=>null
myPerson_firstname=>Nicolas
myPerson_groupId=>22
myPerson_id=>15445
myPerson_lastEvents_0=>2020-09-08
myPerson_lastEvents_1=>2020-09-08
myPerson_lastEvents_2=>2020-09-07
myPerson_lastEvents_3=>2020-09-01
myPerson_lastEvents_4=>2020-08-31
myPerson_lastname=>Ganam
myPerson_rekonFaceId=>null
myPerson_upDate=>2020/07/23
myRequest_actionId=>29
myRequest_attributes_task=>Cosecha a Mano
myRequest_date=>
myRequest_gateId=>47
myRequest_groupId=>22
myRequest_person_documentNumber=>34378958
myRequest_person_documentType=>1
today=>2020-09-09

  • Todas las entidades deben tener un toJSONOBject que convierta la entidad a un JSON. Pueden ir en un modelo aparte.
    Update: Una clase que recibe cualquier objeto y lo devuelve en JSON.

Sintaxis de expresiones regulares

A continuación, compartimos el link hacia la base de las expresiones regulares:
JEXL - Apache Commons JEXL Syntax

Cuando en la expresión regular se hace referencia, por ejemplo a "my_request_gate_id.equals(324)", está llamando a la funciones equals de Java del objeto.

Cabe destacar, que mediante este tipo de expresión, es posible llamar a cualquier función de los tipos básicos, como puede ser un ejemplo, toString().

Por último, es posible probar las expresiones regulares utilizando el siguiente espacio: JexlPlayground


What's Next