Questions d'ordre général concernant le développement de connecteurs

Bonjour,

Concernant sourceAccountIdentifier , quand je suis sur un espace multicompte (qui permet d’avoir accès à plusieurs comptes client à partir d’un seul login), faut-il que je mette le numéro de client pour différencier les comptes ? Ou faut-il quelque-chose de plus verbeux avec par exemple numero_client-libelle_client ?

Sinon une autre question, pour un autre fournisseur qui souhaite que je fasse un pause d’une seconde entre chaque requête REST. Y a-t-il un moyen de faire des pauses entre les téléchargement avec la fonction saveBills() ? Et plus compliqué, le fournisseur m’autorise à télécharger jusqu’à 5 factures à la fois cependant il souhaite que ces 5 téléchargement soient suivi d’une pause d’une seconde avant d’en lancer 5 autres. Est-ce que ça semble réalisable ? Dans un premier temps, je peux me contenter de faire les téléchargements un par un suivi espacés d’une pause d’une seconde, c’est ce que je fais actuellement (mais pas en cozy). A terme, j’aimerais pouvoir le faire car quand il s’agit de faire le téléchargement initial de 4 ans d’historique, ça nous fait des milliers de factures qui font parfois plusieurs dizaines voire plusieurs centaines de pages, ça prend un temps infini.

Un autre problème avec l’espace client direct énergie, c’est que les dates de facture et les montants indiqués dans l’espace client sont approximatifs et peuvent même changer dans le temps ! La date de la facture correspond plutôt à la date de dépose sur l’espace client (mais ça n’a pas toujours été le cas, je les ai prévenu, je leur ai rappelé mais ça n’a pas l’air de les chagriner) et les montants ne sont pas toujours justes et peuvent changer dans le temps. Ce n’est donc pas terrible pour générer un nom de fichier unique avec la date et le montant dedans. N’y a-t-il pas le risque de télécharger les factures en doublon ? Il me semble avoir vu un solution dans la documentation mais je ne réussi pas à remettre la main dessus.

Salut,
Je vais essayer de te répondre le plus clairement possible, désolé te t’avoir laissé en plan sur l’autre post. N’hésites pas à nous relancer.

Q1 ) le multi contrat dans un même compte. (on va utilisé le terme compte pour un couple login/mdp et contrat pour un ensemble de factures accessible depuis l’accès avec ce compte)

Le sourceAccountIdentifier va être automatiquement renseigné si tu utilises le this.saveBills dont parlait doubleface, il le sera avec le compte. Sinon tu le définis avec le fields.login.

Pour faire ce que tu souhaites, utilise les attributs de bills ‘contractId’, (et potentiellement contractLabel).
En ajoutant cet attribut, chaque groupe de factures va être placées dans un sous dossier différents.
Pour le contratId, choisit quelque chose d’immuable : un numéro de téléphone pour un opérateur, un numéro de contrat.
Si tu souhaites surcharger le nom du dossier, tu peux utiliser le contratLabel (mais la déduplication s’effectuera sur le contratId.

Exemple chez un opérateur téléphone, ou on définit un ‘contratId’ pour la facture générale, et un contratId par numéro avec un label amélioré.

Q2) Timing des requêtes personnalisé
Tu ne pourras pas configurer un seul saveBills comme tu le souhaites. Par contre tu peux en appeler autant que tu veux, dans le cas d’un connecteur atypique comme celui ci.
La solution la moins couteuses selon moi, c’est de faire des groupes de 5 factures par saveBills. Tu vas avoir les 5 téléchargements puis tu peux faire ta pause de 1 seconde et faire les 5 suivants.

Autre solution possible : Crée un objet slowRequest qui surchage l’objet request et qui attend une seconde avant de lancer la requête. Tu peux passer un objet de type request à saveBills si tu souhaites qu’il l’utilise. Mais je pense que c’est moins efficace, car dans ce que tu décris, pas besoin d’attendre 1 secondes avant chaque fichier.

Quoiqu’il arrive, le connecteur sera tué au bout de 10 minutes. Donc il faudra le relancer pour obtenir le reste des factures dans ton cas avec plusieurs années d’historique, les précédentes étant déja trouvées, il devrait aller beaucoup plus rapidement aux factures manquantes. Je te conseille d’ordonner donc ta liste avant le saveBills et de commencer par les plus récentes.

Q3) Dépuplication complexe.
Oula, c’est effectivement quelque chose d’inhabituel et problématique.
Oui il y a risque de doublons.
Est ce que tu possèdes quelque chose qui ne bouge pas ? Un numéro de facture idéalement.
Si oui, il faut baser la déduplication la dessus. Tu peux utiliser une option du saveBills, le fileIdAttributes défini le champ pour dire qu’un fichier est le même et non plus son nom, puis l’attribut keys, qui sert à donner les clés de déduplication, dans notre cas, le numéro de facture devrait suffire. Si tu l’as mis dans le vendorRef de la bill, tu devrais pouvoir imiter cet exemple :

Lucas