Chargement d'un CSV ne possédant pas de clé fonctionnelle

4.0
Chargement d'un CSV ne possédant pas de clé fonctionnelle
0
Tags: #<Tag:0x00007f6489549b98>

#1

Bonjour,
Je voudrais charger un CSV provenant de l’extérieur et contenant des écritures bancaires.

Le fichier contient les transactions (Date, compte bancaire, montant D, montant C, …) mais pas de clé fonctionnelle.
L’objet correspondant possède une clé fonctionnelle alimentée par la formule suivante :

[EXPR:Tool.format("MOUV-%05d", Long.valueOf([ROWID]))]

Si je mets cette formule dans la valeur par défaut de la clé, la première ligne est insérée avec la valeur MOUV-00000, les suivantes tombent en anomalie.
Si je la mets dans « Expression calculée », toutes les lignes tombent en erreur.

Est-ce qu’il y a un moyen pour que je charge ce fichier et que la clé s’alimente et s’incrémente normalement ?

Dans le csv, faut-il prévoir une colonne pour cette clé ? vide (ne sachant pas quelle est la valeur du dernier rowid utilisé dans l’objet, je ne peux pas l’alimenter)?
Merci d’avance.
Abed.


(David AZOULAY) #2

Le calcul de valeur par défaut (ou de champs calculés) utilisant [ROWID] a été inhibé sur les imports car ça se mordait la queue.

L’idéal serait de trouver une clé fonctionnelle dans vos données entrantes (ex: pour des écritures bancaires, peut être que la combinaison des date/compte/montant/libellé peut constituer la clé fonctionnelle)

Sinon il faut calculer une clé fonctionnelle unique dans le pre/postValidate ou le preCreate en utilisant une stratégie de valorisation qui n’utilise pas le row ID (peur être qu’un hash des données entrantes ou dans le genre)