Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
Qlik Launches Open Lakehouse and advanced agentic AI experience in Qlik Answers! | LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
DavidDocquoyBaudelet
Contributor III
Contributor III

Connexion CRM Sellsy

Bonjour,

J'essaye désespérément de récupérer certaines infos du CRM Sellsy grace à leur API (https://api.sellsy.com/doc/v2/) mais je bloque sur le filtrage des données !

Dans ma requête, j'utilise la clause "With connection" suivante : 

WITH CONNECTION (
URL "https://api.sellsy.com/v2/activities/search",
HTTPHEADER "Authorization" "Bearer $(vAuthorization)",
BODY "$(vBody)"
);

vAuthorization, c'est le token que je récupére pour autoriser la connexion, aucun souci.

Et vBody, c'est ca : 

Let vBody ='{""filters"":""entities"":[""calendar_event""]}';

Je precise que j'ai utilisé plusieurs modèles pour le vBody

Exemple : '{[""filters"": {""entities"": [""calendar_event""]}]}';

Et malgré ca, le filtre ne fonctionne pas du tout !

Ca ne renvoi pas d'erreur, mais ca ne filtre pas !

J'ai testé dans le requeteur Postman, et ca fonctionne très bien !

En espérant que quelqu'un ai déjà utilisé ce type de connexion !

Merci d'avance !

 

 

 

 

 

 

 

10 Replies
Nicolas-Sellsy
Contributor
Contributor

Bonjour David,

Je suis Nicolas de Sellsy, je ne connais pas tous les prérequis pour utiliser Qlik, par contre si le call fonctionne depuis Postman, avez-vous testé d'exporter la requête dans le language approprié ?

2024-09-12_15-00.png

voici un exemple en requête http :

POST /v2/activities/search?direction=asc&limit=25 HTTP/1.1
Host: api.sellsy.com
Content-Type: application/json
Authorization: Bearer codedubearer
Cookie: PHPSESSID=0aq5u34djsb052ko6g4db38sj0
Content-Length: 104

{
"filters": {

"entities": [
"calendar_event"
]

}
}

Si vous le souhaitez, nous pouvons faire une viso rapide à ce sujet afin de vérifier le paramétrage et la structure attendue. ( je vous envois un email direct via Sellsy pour organiser ce point)

Cordialement,

Nicolas

DavidDocquoyBaudelet
Contributor III
Contributor III
Author

Bonjour,

Merci pour votre réponse, j'ai copié-collé le code du body en provenance de Postman, en ajoutant des doubles quotes tel que demandé par Qlik.

Je ne penses pas que le souci vienne de Sellsy vue que cela fonctionne dans Postman ou dans d'autres outils utilisés par mes collègues.

Il semblerait plutôt que la clause BODY ne soit pas prise en compte par la connection établi par Qlik.

 

 

 

mpc
Partner Ambassador
Partner Ambassador

Salut David, 

Pas d'erreur du coup ? 
Essaye de remplacer les " par chr(34) LET vRequestBody = replace(vRequestBody,'"',chr(34)&chr(34))
Réf: Solved: Re: WITH CONNECTION statement - BODY with Double q... - Qlik Community - 1237635

Belle journée et à très bientôt 😉

From Next Decision and mpc with love
DavidDocquoyBaudelet
Contributor III
Contributor III
Author

Bonjour !

Je reprends le sujet après 1 mois d'absence, pour cause d'arrêt de travail (Mais ca va mieux ! )

Et donc en mettant les doubles quotes, je n'ai pas d'erreur certes, mais le filtre ne s'applique pas du tout !

DavidDocquoyBaudelet_0-1728899462040.png

Et c'est bien pris en compte dans la requete

DavidDocquoyBaudelet_1-1728899856075.png

 

Et donc, pas d'erreur, mais pas d'application du filtre non plus 😞

 

 

mpc
Partner Ambassador
Partner Ambassador

Bonjour et bon retour parmi nous !

Le content type est bien en application/json ? 

J'ai l'impression qu'il y'a trop de " pour former un JSON valide, d'ailleurs si tu le passes dans un JSONLint celui ci devrait être en erreur/ 
J'aurai pensé voir "{"filters": {"entities": ["email"]}}", les "" externes étant celle de la commande Qlik et en gras celle du JSON (en gras), et du coup être un chr(34) (et du coup ça passe dans JSONLint)

Peux-tu regarder ? 

From Next Decision and mpc with love
DavidDocquoyBaudelet
Contributor III
Contributor III
Author

Pardon, mais je ne sais pas à quel paramètre correspond le content type dans les paramètres de ma connexion Qlik ?

J'utilise une connexion de ce type pour accéder à l'API

DavidDocquoyBaudelet_0-1728916800099.png

Si je mets les doubles Quotes, en effet, le JSONLint me renvoi une erreur !

Mais si je ne les mets pas dans le script, là, c'est l'API qui me renvoi une erreur !

DavidDocquoyBaudelet_1-1728917269231.png

DavidDocquoyBaudelet_3-1728917295676.png

Meme si le contrôle du JSON est ok !

DavidDocquoyBaudelet_4-1728917350067.png

 

 

 

mpc
Partner Ambassador
Partner Ambassador

Il s'agit d'un paramètre d'en-tête soit définit sur la connexion soit avec
HTTPHEADER "Content-Type" "application/json" 

vBody est bien défini de la sorte:
Let vBody = Replace('{"filters":{"entities":["email"]}}','"',chr(34)&chr(34)); ?


From Next Decision and mpc with love
DavidDocquoyBaudelet
Contributor III
Contributor III
Author

Bonjour,

Alors en effet, je n'utilisais pas ce parametre dans ma connexion.

Voila ma requête actuelle pour obtenir le nombre de ligne :

RestConnectorMasterTable:
SQL SELECT
"__KEY_root",
(SELECT
"limit",
"count",
"total",
"offset",
"__FK_pagination"
FROM "pagination" FK "__FK_pagination")
FROM JSON (wrap on) "root" PK "__KEY_root"
WITH CONNECTION (
URL "https://api.sellsy.com/v2/activities/search",
HTTPHEADER "Authorization" "Bearer $(vAuthorization)",
HTTPHEADER "Content-Type" "application/json",
BODY "$(vBody)"
);

 

avec la création du vBody :

Let vBody = '{"filters":{"due_date":{"start": "2024-10-01T10:00:00Z","end": "2024-10-05T10:00:00Z"}}}';

LET vBody = replace(vBody,'"',chr(34)&chr(34));

Pas d'erreur lors de l'execution de la requête, mais le nombre de ligne renvoyés est toujours de 10 000 !

Ce qui est impossible compte tenu du filtre !

Idem avec votre filtre sur les Emails !

 

 

 

DavidDocquoyBaudelet
Contributor III
Contributor III
Author

Bon ...

Il s'avère que c'est bien le Content-type qui me pose souci, car si je le désactive dans Postman, le contenu du Body avec les filtres n'est plus pris en compte et je récupère tout !

Par contre, y a du nouveau cotés Qlik !

J'ai modifié la connexion pour y inclure un body et le paramètre   "Content-type" et là, ca marche !

DavidDocquoyBaudelet_0-1729499290463.pngDavidDocquoyBaudelet_1-1729499307358.png

Le souci, c'est que avec cette méthode, je récupère trop de ligne, et ca dépasse les 10 000, soit la limite de l'API !!

Il faut donc que je puisse passer un paramètre de période dans mon Filter 

Et apparemment, ca ne marche pas dans le WITH CONNECTION !