inletAP

Référence de l’importation

Cette page est la partie « consultation » de la configuration par importation : les colonnes, les graphies que reconnaît chacune, les règles qui décident de quelle fiche parle une ligne, les limites, et ce que font réellement les deux phases. Si vous lancez une importation pour la première fois, lisez plutôt importer vos données : cette page présente les six étapes dans l’ordre. Revenez ici quand vous devez savoir comment s’appelle une colonne, pourquoi une ligne a affiché tel message, ou ce que l’importation a fait du reste du fichier.

Deux faits encadrent tout ce qui suit.

inletAP lit un fichier que vous avez exporté. Il n’existe aucun lien avec le système qui l’a produit. Rien n’est récupéré, rien n’est renvoyé, et rien ne continue de tourner ensuite.

L’aperçu n’enregistre rien. Téléverser un fichier crée une trace de la demande et un rapport ligne par ligne, sans toucher à aucun immeuble, logement, fournisseur ou entité. L’importation est la seule phase qui enregistre, et elle est décrite au bas de cette page, y compris la partie que les gens supposent à tort.

Les limites

LimiteValeur
Lignes de données par fichier5 000, sans compter la ligne d’en-têtes
Taille du fichier2 Mio (2 097 152 octets)
Format à l’envoiCSV. Le navigateur convertit en CSV le fichier .xlsx que vous choisissez avant de l’envoyer
Types de fiches par fichierUn seul. Immeubles, fournisseurs, logements ou entités
Durée de vie d’un aperçu7 jours, après quoi il expire et ne peut plus être importé
Téléversements ou importationsCinq par minute
Point de reprise de l’importationToutes les 100 lignes

Un portefeuille de 1 500 logements exporté avec toutes les colonnes facultatives pèse bien moins de 100 Ko, si bien que la limite en octets n’est presque jamais celle qui bloque. C’est la limite de lignes que vous atteignez, et la solution est de diviser le fichier et de l’importer en plusieurs parties.

Qui peut en lancer une

Les rôles Administration, Contrôle et approbation, et Commis aux comptes fournisseurs. Configurer les données de référence fait partie du travail du commis aux comptes fournisseurs, donc ce n’est pas réservé au rôle Administration. Le rôle Lecture seule ne peut rien importer.

Un membre qui n’a accès qu’à certains immeubles peut importer des logements pour un immeuble auquel il a accès, mais ne peut pas du tout importer d’immeubles ni d’entités : créer un immeuble hors de vos immeubles accessibles serait une façon d’en sortir. Voir rôles et permissions.

Le dictionnaire des colonnes

L’en-tête canonique est celui qu’imprime le modèle généré. Chaque colonne reconnaît aussi les graphies de la colonne Aussi acceptée sous, et la correspondance ignore la casse, les espaces, les traits d’union et les traits de soulignement : Square Feet, square_feet et SQFT sont donc une seule colonne. Un en-tête qui ne correspond à aucun champ d’inletAP est ignoré plutôt que refusé.

Immeubles

ColonneObligatoireTypeAussi acceptée sousCe que c’est
CodeOuitexteproperty code, building code, property_code, short codeVotre propre code court pour l’immeuble, grâce auquel cette importation le reconnaît la fois suivante
NameOuitexteproperty, property name, building, building nameLe nom sous lequel l’immeuble est connu
EntityNontexteentity, entity name, ownership entity, owner, legal entityL’entité juridique propriétaire de cet immeuble, qui doit déjà exister dans votre espace de travail avant l’importation
Address line 1Nontexteaddress, address 1, address1, street, street addressLe numéro et le nom de la rue
Address line 2Nontexteaddress 2, address2, suite, unit numberUn bureau ou un étage, si l’adresse en comporte un
CityNontextetownLa ville ou la municipalité
State or provinceNontextestate, province, regionLa province ou l’État, en code à deux lettres s’il en existe un
Postal codeNontextepostal, zip, zip code, postcodeLe code postal ou ZIP
CountryNonpayscountry codeLe code de pays à deux lettres, comme CA ou US
Door countNonentierunits, doors, unit count, number of unitsLe nombre de logements de l’immeuble, qui sert à répartir un coût partagé selon le nombre de logements
Square feetNonentiersquarefeet, square feet, square_feet, sqft, sq ft, sq_ft, areaLa superficie locative de tout l’immeuble, qui sert à répartir un coût partagé selon la superficie

Fournisseurs

ColonneObligatoireTypeAussi acceptée sousCe que c’est
NameOuitextevendor, vendor name, supplier, supplier name, payeeLe nom du fournisseur, exactement comme il figure sur ses factures
CategoryNontextetype, vendor category, tradeCe que fait ce fournisseur, dans vos propres mots
Tax IDNontextetax id, taxid, ein, bn, business number, vatLe numéro fiscal du fournisseur, si vous l’avez
Default GL accountNontextedefaultglaccount, default gl account, default_gl_account, gl account, gl_account, gl, expense accountLe compte de grand livre auquel ses factures sont habituellement imputées
Payment termsNontexteterms, payment terms, payment_termsLes conditions de paiement convenues avec ce fournisseur, comme Net 30
StatusNonliste : active, review, inactivevendor statusSi vous faites encore affaire avec ce fournisseur : active, review ou inactive
Address line 1Nontexteaddress, address 1, address1, street, street addressLe numéro et le nom de la rue
Address line 2Nontexteaddress 2, address2, suite, unit numberUn bureau ou un étage, si l’adresse en comporte un
CityNontextetownLa ville ou la municipalité
State or provinceNontextestate, province, regionLa province ou l’État, en code à deux lettres s’il en existe un
Postal codeNontextepostal, zip, zip code, postcodeLe code postal ou ZIP
CountryNonpayscountry codeLe code de pays à deux lettres, comme CA ou US

Logements

Un fichier de logements appartient à un seul immeuble, que vous choisissez avant de téléverser. Le fichier contient les logements de cet immeuble.

ColonneObligatoireTypeAussi acceptée sousCe que c’est
LabelOuitextelabel, unit, unit label, unit_labelLe logement tel que l’inscrit votre liste des loyers, comme 4B ou 307
Square feetNonentiersquarefeet, square feet, square_feet, sqft, sq ft, sq_ftLa superficie locative de ce logement
BedroomsNonentierbedrooms, beds, bedroomLe nombre de chambres de ce logement
Default GL accountNontextedefaultglaccount, default gl account, default_gl_account, gl account, gl_account, glLe compte de grand livre auquel les travaux dans ce logement sont habituellement imputés
Cost centerNontextecostcenter, cost center, cost_center (la graphie en -re est aussi acceptée)Votre centre de coûts pour ce logement

Entités

ColonneObligatoireTypeAussi acceptée sousCe que c’est
NameOuitexteentity, entity name, legal name, ownership entityLe nom légal de l’entité propriétaire des immeubles
TypeOuitexteentity typeLe type d’entité, comme Ownership entity ou Joint venture
EINNontexteein, tax id, bn, business numberLe numéro fiscal de l’entité, si vous l’avez
GL segmentNontextegl segment, gl_segment, segmentLe segment du grand livre qui représente cette entité dans votre logiciel comptable
Address line 1Nontexteaddress, address 1, address1, street, street addressLe numéro et le nom de la rue
Address line 2Nontexteaddress 2, address2, suite, unit numberUn bureau ou un étage, si l’adresse en comporte un
CityNontextetownLa ville ou la municipalité
State or provinceNontextestate, province, regionLa province ou l’État, en code à deux lettres s’il en existe un
Postal codeNontextepostal, zip, zip code, postcodeLe code postal ou ZIP
CountryNonpayscountry codeLe code de pays à deux lettres, comme CA ou US

Les colonnes refusées

Cinq champs d’immeuble sont refusés dans une importation, quel que soit votre rôle, et vous sont nommés quand un fichier les contient :

ChampGraphies d’en-tête qui déclenchent le refus
Seuil d’approbation automatiqueauto approve under, autoapproveunder, auto approval limit, auto approve limit
Approbation principaleprimary approver, primaryapproverid, primary approver id, approver
Approbation de remplacementbackup approver, backupapproverid, backup approver id
Compte de grand livre par défautdefaultglaccount, default gl account, default_gl_account, gl account, gl_account, gl
Centre de coûtscostcenter, cost center, cost_center, et les mêmes mots écrits en -re

Ils décident qui approuve pour un immeuble et comment ses dépenses sont imputées, et ils se modifient sur la page de l’immeuble, par une personne qui a la permission de les modifier. Le reste du fichier s’importe normalement; le rapport nomme les colonnes refusées. Notez que les mêmes graphies de compte de grand livre et de centre de coûts sont des colonnes ordinaires dans un fichier de fournisseurs ou de logements : le refus est une règle propre aux fichiers d’immeubles.

Comment vos en-têtes sont associés

  • La ligne d’en-têtes est trouvée, pas présumée. inletAP parcourt les quinze premières lignes à la recherche de la première qui ressemble à des titres de colonnes : au moins trois cellules non vides, distinctes et non numériques. Une exportation de rapport avec une ligne de titre, un nom d’entreprise et les paramètres au-dessus des en-têtes est le cas normal pour lequel cette recherche existe. Vous pouvez indiquer une autre ligne.
  • Une cellule d’en-tête vide est un séparateur, pas une colonne. La laisser occuper une position décalerait d’un rang chaque correspondance qui la suit.
  • La première colonne qui revendique un champ l’emporte. Un fichier avec deux colonnes appelées Name garde celle de gauche.
  • Ce qui a été associé est toujours affiché, avec jusqu’à trois vraies valeurs tirées de votre propre fichier sous chacun de vos en-têtes. C’est ce qui vous apprend que la colonne appelée Descr est le nom de l’immeuble.
  • Un champ obligatoire qu’aucune colonne n’alimente ne fait pas refuser le fichier. Chaque ligne s’affiche comme une erreur qui nomme le champ, et vous corrigez en choisissant une colonne à l’écran. Appuyez sur le bouton de l’étape Colonnes et l’aperçu est refait à partir des mêmes octets téléversés : vous n’avez pas à téléverser de nouveau.

Les quatre dispositions reconnues d’emblée

inletap, doorloop, rentec et tenantcloud. Une disposition reconnue est une donnée (une signature d’en-têtes plus une correspondance de colonnes), jamais un chemin de code distinct : le même moteur lit chaque fichier. La détection est une suggestion qui épargne quelques clics, et elle ne change rien à elle seule; un fichier n’est jamais lu en silence selon une disposition que vous n’avez pas choisie.

Trois de ces quatre modèles publiés ne contiennent aucun code court pour un immeuble, et la colonne Code est obligatoire. La première expérience normale d’une importation de ce genre consiste donc à choisir laquelle de vos propres colonnes servira de code.

Toute autre disposition passe par le même modèle générique plus l’étape de correspondance. Ce n’est pas une lacune en attente d’être comblée : la plupart des systèmes de ce marché exportent au moyen d’un générateur de rapports, si bien que deux clients d’un même produit produisent deux fichiers différents, et une disposition nommée pour l’un serait fausse pour l’autre.

Comment une cellule est lue

TypeAccepté
texteTout, sans les espaces au début et à la fin
entierDes chiffres seulement. 12.5, 1,200, -3 et n/a sont des erreurs plutôt que des suppositions
paysDeux lettres, comme CA ou US
listeUne des valeurs indiquées, peu importe la casse

Une cellule vide veut dire « ne touchez pas à ce champ », pas « videz-le ». Une exportation d’un autre système est pleine de cellules vides, et les lire comme un effacement supprimerait des valeurs que quelqu’un a saisies à la main. Pour vider un champ, passez par la page de la fiche.

Une cellule vide dans une colonne obligatoire est une erreur pour cette ligne, qui nomme la colonne.

Les codes postaux ne sont jamais convertis en nombres, mais une feuille de calcul l’a peut-être déjà fait. Si un code postal arrive avec quatre chiffres ou moins et sans lettre, l’importation vous avertit qu’un zéro initial a peut-être été perdu avant même que le fichier nous parvienne. Vérifiez ces codes après l’importation.

Comment une ligne trouve sa fiche

Une règle de correspondance par type de fiche, et l’aperçu comme l’importation appellent la même. C’est ce qui donne sa valeur à l’aperçu : ce n’est pas une estimation parallèle de ce que fera l’importation.

TypeCorrespondance par, dans cet ordre
Immeubles1. un alias, exactement; 2. le code, sans tenir compte de la casse; 3. l’adresse normalisée
Fournisseurs1. un alias; 2. le nom, sans tenir compte de la casse; 3. le numéro fiscal, quand la ligne et la fiche en portent un toutes les deux
LogementsLe libellé, dans l’immeuble que vous avez choisi, comparé exactement : 4B et 4b sont deux logements
EntitésLe nom, sans tenir compte de la casse
  • Aucune correspondance donne une création. Une correspondance donne une mise à jour. Plus d’une correspondance donne une erreur, qui nomme les deux fiches, parce qu’en choisir une classerait les factures d’un client sous un immeuble que personne n’a choisi.
  • Une mise à jour ne liste que les champs qui diffèrent vraiment. Une ligne dont chaque cellule associée correspond déjà est indiquée sans changement plutôt que comme une mise à jour vide. Les valeurs sont comparées après normalisation, donc " 48 " par rapport à 48 n’est pas un changement, pas plus que hrb-01 par rapport à HRB-01.
  • Les lignes qui répètent une fiche déjà nommée plus haut dans le même fichier sont regroupées, et l’importation indique combien. Une ligne par logement est la forme normale d’une liste des loyers; sans ce regroupement, un portefeuille de 300 logements serait importé comme 300 immeubles.
  • L’entité d’une ligne d’immeuble est trouvée par son nom. Un nom qui ne correspond à rien est une erreur qui vous demande de créer d’abord l’entité; un nom qui correspond à deux entités est une erreur qui nomme les deux. Quand le fichier ne nomme aucune entité et que votre espace de travail en compte exactement une, c’est celle-là qui est utilisée. L’aperçu l’affiche alors sur la ligne, avec un avertissement sur l’importation, pour que vous puissiez la refuser avant que quoi que ce soit soit enregistré.
  • Une importation de logements ne réactive jamais un logement retiré. Importer de nouveau une liste des loyers ne remet pas en service un logement que quelqu’un a retiré exprès.

Ce que montre l’aperçu

L’étape Aperçu d’un petit fichier d’immeubles : chaque ligne indique Créer, Mettre à jour ou Non importée, avec les totaux au-dessus du tableau et, pour un immeuble, un panneau champ par champ qui montre la valeur actuelle et la valeur après l’importation.
Chaque ligne du fichier avant qu’aucune ne soit enregistrée et, pour une fiche que vous avez déjà, quels champs changent et quelle valeur ils remplacent.

Pour l’ensemble de l’importation : combien de lignes seraient créées, mises à jour, laissées sans changement et refusées; votre ligne d’en-têtes exactement telle que le fichier la contenait; lequel de nos champs chacun de vos en-têtes alimente; nos champs obligatoires qu’aucune colonne n’alimente encore; vos colonnes que nous ne lisons pas; les colonnes que nous avons refusées; et tout avertissement.

Pour chaque ligne : son numéro de ligne physique dans votre fichier, pour que vous puissiez la retrouver; ce qu’elle ferait; le nom sous lequel elle est connue; quelle fiche existante elle a trouvée, et comment; les valeurs lues; les changements champ par champ pour une mise à jour; et un message chaque fois que la ligne est refusée ou ne fait rien.

Le numéro de ligne est le numéro physique, et c’est ce que vous voulez : une fiche dont un champ entre guillemets s’étend sur quatre lignes est quand même signalée à la ligne où vous iriez la chercher.

Ce qu’une ligne peut indiquer

Dans l’aperçuDans le rapport après l’importationSens
CréerCrééeRien dans l’espace de travail ne correspond à cette ligne
Mettre à jourMise à jourUne fiche correspond, et au moins un champ diffère
Aucun changementSans changementUne fiche correspond et rien ne diffère, ou la même fiche est nommée plus haut dans le fichier
Non importéeNon importéeLa ligne n’a pas été enregistrée, et le message dit pourquoi

Les messages que porte une ligne refusée, et ce que chacun veut dire :

MessageQue faire
Aucune colonne n’alimente « Code », une valeur dont chaque ligne a besoinChoisissez-lui une colonne à l’étape Colonnes. N’importe laquelle de vos colonnes convient
Cette ligne n’a aucune valeur pour NameUne cellule obligatoire est vide sur cette ligne. Corrigez-la dans votre fichier
"n/a" n’est pas un nombre entier pour Door countLa cellule n’est pas du type que prend la colonne. Le message cite la cellule et nomme la colonne
Cette ligne correspond à 2 enregistrements existants (« … » et « … »)Vous avez deux fiches qui correspondent toutes deux à cette ligne. Réglez le doublon, puis importez de nouveau
Aucune entité propriétaire nommée « … » n’existe dans cet espace de travailCréez d’abord l’entité, ou corrigez la colonne Entity
Le même immeuble figure déjà à la ligne 12 de ce fichier, donc cette ligne n’ajoute rienRien. La première ligne de chaque fiche est utilisée

Quand le fichier entier est refusé

Seulement quand il ne peut pas produire une seule ligne utile. Tout le reste est signalé par ligne ou par colonne.

  • Le fichier est vide, ou n’a aucune ligne.
  • Aucune des quinze premières lignes ne peut être lue comme en-têtes, ou la ligne que vous avez indiquée n’existe pas.
  • Il a un en-tête, mais aucune ligne de données.
  • Il a plus de 5 000 lignes de données, ou dépasse 2 Mio.
  • Le CSV lui-même est mal formé : un champ entre guillemets qui ne se ferme jamais, ou du texte après un guillemet fermant. Le refus nomme la ligne. Le lecteur est strict ici exprès : une ligne récupérée en silence sous la mauvaise forme ne produit pas d’erreur visible, elle produit une fiche que personne n’a demandée.

Comment se comporte l’importation

C’est la partie qu’il est facile de supposer à tort, alors elle est dite clairement.

L’importation fait de son mieux ligne par ligne, et elle peut n’appliquer que le début du fichier. Les lignes sont enregistrées une à la fois, chacune avec son propre résultat, et les compteurs de l’importation sont enregistrés toutes les 100 lignes, pour qu’une importation qui s’arrête à mi-chemin décrive quand même ce qu’elle a fait. Une ligne qui échoue n’interrompt pas les autres.

Ce qui rend cela sûr plutôt qu’inquiétant, c’est que l’importation est idempotente : comme chaque type de fiche a une vraie clé de correspondance, importer de nouveau le même fichier met à jour ce qui existe déjà au lieu de le dédoubler. « Téléversez-le de nouveau » est une consigne exacte.

Autres comportements à connaître :

  • L’importation refait la correspondance; elle ne rejoue pas l’aperçu. Si quelqu’un a créé cet immeuble à la main entre-temps, l’importation indique updated là où elle prévoyait create. Les totaux prévus sont conservés à côté des totaux réels.
  • Une importation est refusée quand les octets ne sont pas ceux de l’aperçu, quand l’importation n’est plus un aperçu, et quand l’aperçu a expiré. Seul un aperçu que quelqu’un a approuvé peut être importé.
  • Si toutes les lignes échouent, l’importation est indiquée comme échouée, avec « Toutes les lignes ont échoué. Rien n’a été enregistré. »
  • Les octets que vous avez téléversés sont supprimés une fois l’importation faite ou l’aperçu supprimé. Garder la liste de fournisseurs d’un client une fois l’importation terminée ne sert à rien.
  • L’importation est inscrite dans la piste de vérification avec les totaux, le nom du fichier et le type de fiche. Voir piste de vérification.

Pour aller plus loin