Vous pouvez masquer les champs en surchargeant les attributs d’objet dans votre héritier, ou par code au postLoad via la visibilité des champs setVisibility.
public void postLoad() {
super.postLoad();
getField("row_module_id").setVisibility(ObjectField.VIS_HIDDEN);
}
Il faut que votre code Java hérite de SimpleUser (objet simplifié avec uniquement les champs requis par la plateforme et sans mise en forme) ou User (objet complet déjà mis en forme et plus compliqué à surcharger), et pas de ObjectDB sinon il n’aura pas les comportements des hooks natifs. Et donc bien penser à appeler les méthodes “super”, pour ne pas overrider totalement les hooks qui font des choses (générer un mot de passe, envoyer un email d’activation…).
Ensuite pour valoriser un champs, il suffit de forcer des valeurs / faire des setValue au preValidate/initCreate/initCopy par exemple.
public void initCreate() {
super.initCreate();
getField("row_module_id").setValue(ModuleDB.getModuleId("ApplicationUsers"));
getField("usr_home_id").setValue(View.getViewId("MyHomeView"));
}
Sinon il faut donner un droit de lecture sur Module et View à votre groupe pour avoir la possibilité de sélectionner une référence.
.