Aller au contenu

QueryReport

Génère immédiatement un rapport de requête et renvoie ses lignes en JSON, ou le fichier du rapport dans le format du rapport. Un autre système l’utilise pour récupérer les données du rapport quand il en a besoin, au lieu de recevoir le rapport par e-mail, par FTP ou par envoi vers une API. Pour un abonnement à un rapport avancé, utilisez AdvReport.

Seul un rapport dont l’option API Access est à Yes peut être récupéré. La page du rapport affiche ce paramètre ; c’est le support TrakIT qui le définit. Pour préparer un rapport pour l’API, voir Récupérer un rapport par l’API.

Comment envoyer la clé et lire la réponse : Clés d’API, Réponses.

GET /api/public/QueryReport?APIKey=your-api-key&RepID=your-report-id&Params=2026-10-01;2026-10-31&AsFile=false

Envoyez la clé dans le paramètre APIKey de la chaîne de requête. La clé doit être autorisée à obtenir des rapports de requête (qrep.getreport) ; c’est le support TrakIT qui la configure. Encodez chaque valeur pour l’URL. La clé fait partie de l’adresse : ne laissez donc pas ces URL dans les journaux que vous partagez.

Paramètre Obligatoire Signification
APIKey Oui La clé d’API.
RepID Oui L’identifiant du rapport, sous la forme codée que TrakIT utilise dans ses adresses : la partie qui suit qrep- dans l’adresse de la page du rapport. Le support TrakIT peut aussi vous le donner avec la clé. L’identifiant codé change à chaque ouverture de la page ; n’importe lequel fonctionne.
Params Non De nouvelles valeurs pour les paramètres du rapport, séparées par ; : une valeur pour chaque paramètre, dans l’ordre de l’onglet Parameters du rapport. Omettez-le pour générer le rapport avec les valeurs qu’il a déjà.
AsFile Non true pour obtenir le fichier du rapport, false pour obtenir les lignes en JSON. La valeur par défaut est false.

APIKey et RepID doivent figurer dans la chaîne de requête : s’il en manque un, TrakIT répond avec le statut HTTP 404.

Lorsque vous envoyez Params, TrakIT contrôle chaque valeur par rapport à son paramètre, enregistre les valeurs modifiées comme valeurs des paramètres du rapport, puis génère le rapport. Chaque valeur doit convenir au paramètre, comme dans l’onglet Parameters du rapport :

  • un paramètre numérique accepte un nombre de 18 caractères au plus ;
  • un paramètre de date accepte une date : envoyez-la au format yyyy-MM-dd (voir Dates et heures) ;
  • un paramètre avec une liste accepte l’un des éléments de la liste, écrit exactement comme dans la liste ;
  • toute valeur fait 500 caractères au plus, sans texte qui ressemble à du HTML.
Règle Info en cas d’échec
APIKey n’est pas vide. API Key is missing
La clé est active et autorisée à obtenir des rapports de requête. Key is disabled, not recognized or permission denied
RepID n’est pas vide. RepID is missing
RepID est un identifiant de rapport. Invalid RepID
Le rapport existe. Vide, avec Code à 0
Le rapport a l’option API Access. Report not enabled for API access
Params contient une valeur pour chacun des paramètres du rapport. Parameters passed do not match the number of parameters in the report
Un paramètre numérique reçoit un nombre de 18 caractères au plus. Params ... must be numeric, Params ... value too big, avec la position du paramètre, par exemple Params 2 must be numeric
Un paramètre de date reçoit une date. Params ... is invalid Date
Un paramètre avec une liste reçoit l’un de ses éléments. Params ... value does not belongs to the allowed list
Une valeur fait 500 caractères au plus et ne contient pas de texte qui ressemble à du HTML. Query Parameters suivi de Value cannot exceed 500 characters ou Value contains possible html tags or disallowed text
Le rapport n’est pas déjà en cours de génération, par un utilisateur, un envoi planifié ou un autre appel. Report generation is already in progress (started ...). Please try again shortly.
La requête du rapport renvoie des lignes, ou le rapport a l’option Generate Empty Report activée. Nothing to export

Si la requête du rapport échoue, Code vaut -1.

La réponse dépend de AsFile. Dans les deux cas, une requête refusée ou en échec reçoit l’enveloppe JSON habituelle, avec Code à 0 ou -1 et la raison dans Info.

Sans AsFile, ou avec AsFile=false, une réponse réussie n’est pas l’enveloppe : c’est la liste des lignes elle-même, un objet par ligne, dont les champs portent les noms des colonnes du rapport. Vérifiez si la réponse est une liste ou un objet avant de la lire.

[
{
"JobRef": "EXL-2610-0042",
"Customer": "Example Shipping Co",
"Containers": 3,
"LastEventDate": "2026-10-19T14:20:00"
},
{
"JobRef": "EXL-2610-0043",
"Customer": "Example Logistics Ltd",
"Containers": 1,
"LastEventDate": null
}
]
  • Les colonnes et leurs noms sont ceux du rapport : renseignez-vous auprès de la personne qui a configuré le rapport.
  • Les valeurs arrivent telles que la requête les renvoie, sans les formats de nombre et de date du fichier du rapport. Les dates n’ont pas de fuseau horaire : voir Dates et heures.
  • Un rapport à plusieurs tableaux ne renvoie que son premier tableau. Utilisez AsFile=true pour les obtenir tous.
  • Avec Generate Empty Report activé et aucune ligne, la liste est vide.

Avec AsFile=true, une réponse réussie est le fichier du rapport, généré de la même façon que l’aperçu du rapport. Un refus est en JSON : distinguez-les donc par le Content-Type :

HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="Open jobs_2610201430.xlsx"

Le nom du fichier est le titre du rapport, suivi de la date et de l’heure en UTC au format yyMMddHHmm, puis de l’extension du Report Type du rapport :

Report Type Fichier
Comma Separated Values (.csv) .csv
HTML File (.html), HTML In Email .htm, le rapport sous forme de page HTML
Excel Spreadsheet (.xlsx) .xlsx
Text File (.txt) .txt, avec le même contenu que le fichier CSV
JSON File (.json) .json : la liste des lignes ou, pour un rapport à plusieurs tableaux, un objet par tableau, avec son title et ses rows
  • Chaque appel qui va jusqu’à la génération du rapport est listé dans la file d’attente des rapports, avec API Call comme mode de livraison.
  • L’appel revient une fois le rapport généré, ce qui prend autant de temps qu’un aperçu du rapport. Tenez-en compte dans le délai d’expiration de votre client.
  • Un rapport ne peut pas être généré deux fois en même temps. Si vos appels peuvent se chevaucher entre eux, avec un aperçu ou avec un envoi planifié du même rapport, faites une nouvelle tentative après un court délai lorsque vous recevez Report generation is already in progress.