Skip to content

$doc.clone

Description

Crée une copie d'un dossier existant.

Après appel de la méthode, le contexte courant (c.-à-d. la valeur retournée par $script.getContext()) devient le contexte du nouveau dossier. Ce comportement peut être modifié au moyen de l'option updateContext (voir ci-dessous).

Mode de gestion single

⚠️ Attention, le fait de créer un dossier par clonage depuis un script ne signifie pas que le dossier précédemment ouvert soit fermé, quand bien même que l'application fonctionne avec un mode de gestion de dossiers single.

Veuillez consulter la note exlicative liée au paramètre documentMode du fichier de config pour plus de détail.

Syntaxe

$doc.clone( context [ , options ] )

Paramètres

context string / map
Object décrivant le contexte du dossier source. Le paramètre peut désigner soit un contexte (exprimé en tant que string en clair, p.ex. "vendeur[123]" ou sous forme de hash) ou un map décrivant le contexte. Dans ce cas, le map doit a minima contenir une valeur pour les propriétés modelName et docId.
options map

Map d'options relatives au clonage de dossier. Les options reconnues sont:

mode string

Mode de clônage. Le mode permet d'indiquer quels champs doivent être clonés et lesquels ne doivent pas être clonés (il est clair que les champs identifiant ne peuvent pas être clonés).

Pour rappel, le mode de copie est à définir au niveau de la descript via l'élément

1
2
3
4
5
<clone>
    <mode name="">false</mode>
    <mode name="foo">false</mode>
    <mode name="bar">false</mode>
</clone>

La documentation au sujet de la descript détaille les options relatives au clonage.

updateContext boolean
Flag true/false indiquant si la méthode doit mettre à jour le contexte avec le dossier courant. Si true, le contexte est mis à jour, pour autant que le dossier peut être créé. L'option est true par défaut.
ignorePolicies boolean

Flag indiquant de ne pas tenir compte des policies lors du traitement.

Par défaut, les policies sont vérifiées si l'application gère des policies et si le thread courant est un thread "client", c'est-à-dire un thread initié par une requête du client. Si la méthode est invoquée par un script démarré par le scheduler, les policies ne seront pas vérifiées par défaut.

Lorsque le flag est false, le moteur évalue les policies lors du clônage. Si vous devez effectuer un traitement de masse, l'évaluation des policies peut avoir un impact sur les performances. Il peut donc dans ce cas être recommandé d'activer le flag.

docId string
Identifiant du dossier à créer. Par défaut le moteur se charge de générer un identifiant, mais la méthode autorise de passer un identifiant personnalisé.
writeable boolean
Flag indiquant le mode d'ouverture du nouveau dossier. Le flag permet d'indiquer que le moteur doit verrouiller le dossier en cas de gestion de lock pessimiste. Le flag est activé (true) par défaut.
notify boolean

Flag true/false indiquant si le moteur doit déclencher la notification doc-clone. Par défaut le flag est false.

Lorsque le flag est activé, les notifications before et after sont invoquées de la même façon que lors d'une action clone. Le script est exécuté de façon synchrone, mais par un processeur autre que le processeur en charge du traitement du script courant. Le traitement est interrompu si le script notifié génère une exception.

À noter que les notifications peuvent également être envoyées explicitement avec la méthode $app.sendNotification.

L'option est automatiquement activée si l'option notificationParams est définie avec une valeur non null.

notificationParams map

Paramètres supplémentaires à passer lors de la notification doc-clone. N'est pris en compte que lorsque notify est true.

Le paramètre attendu est un map de clés-valeurs. Les clés modelName et docId sont réservées et renseignées automatiquement par la méthode.

Le fait de spécifier des paramètres de notification active automatiquement l'option notify (pour autant qu'elle ne soit pas explicitement définir à false).

Retour

Le contexte décrivant le nouveau dossier, sous forme de map

Exemple

Non disponible