Bonjour,
On a eu un souci en lançant un export csv, on a bien forcé la langue qu’on veut avoir en extraction (langue API) :
getGrant().setLangPreference(“API”);
getGrant().changeLang(“API”, true);
L’extraction se fait via un cron qu’on a affecté au profil designer qui a bien la langue API
On a 3 problèmes :
Il y a des fois que le cron ne se lance pas
Il y a des fois que le cron se lance avec la mauvaise langue
Le lancement via un autre utilisateur (IPN technique) ==> cause aussi des fois le changement de langue (Anglais ou Français à la place d’API)
On aimerait savoir si vous avez eu des problèmes de ce genre et s’il y avait des préconisations pour qu’on puisse les résoudre?
pour vos extractions via cron, mieux vaudrait selon moi utiliser un user ad hoc dont vous ne changez pas la langue dynamiquement
changer la langue d’un user via Grant.changeLang est un changement “lourd” = mise à jour de la langue en base + rechargement du user. Si l’utilisateur en question utilise la UI ou fait d’autres type d’appel qui changent la langue de la même manière cela peut expliquer que la langue à un instant donnée ne soit pas forcément celle souhaitée
Le point 2 rejoint le point 1 => si vous voulez être sûr de la langue de vos extractions, celles-ci ne doivent pas se faire via un user dont vous ne maitrisez pas à 100% la langue à un instant donné.
@Francois vois tu des choses à ajouter/préciser(/contredire) ?
Je confirme qu’il ne faut pas faire un changeLang sur le singleton système qui peut être utilisé par ailleurs. Et un simple setLang est suffisant car change la langue en mémoire sans recharger les droits, les menus… mais bon si un autre programme a besoin du système pour autre chose, il y aura des pb de concurrences d’accès imprévisibles.
Il suffit de créer un utilisateur avec la bonne langue et les bonnes responsabilités
Et de l’associer au champ “run as” dans vos cron
Tous les getObject de votre code lié à l’action de la cron seront fait avec ce User.