Créer une copie de formulaire via une action

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);
}