- Print
- DarkLight
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