Bonjour,
Plutôt qu’une action qui va réinventer la roue, il faut à mon avis pour gérer cette notion de “versionning” de record :
- positionner un champ/verrou dans une colonne sur votre précédent record lors de la création par recopie au
postCreate
- ce champ sera utilisé par le hook
isUpdateEnable
pour interdire la mise à jour.
Par exemple :
public String postCreate() {
// Lock the original record
String originId = getCopyId();
if (isCopied() && !Tool.isEmpty(originId)) {
getGrant().update("update mytable set myrecordlock='1' where row_id="+Tool.toSQL(originId));
}
return super.postCreate();
}
public boolean isUpdateEnable(String row[]) {
// Denied locked records
if ("1".equals(getFieldValue("myRecordLock", row)))
return false;
return super.isUpdateEnable(row);
}