getRessourceUrl ne renvoie pas la bonne url

Tags: #<Tag:0x00007fdd45566358>

Bonjour,

J’essaye actuellement d’utiliser getRessourceUrl pour récupérer des fichiers. J’utilise la librairie Nodejs.

Voici mon code :

 await this.$simplicite
    .getBusinessObject("ressource")
    .getResourceURL(123)

Ceci me renvoie cette url: https://exemple.dev.simplicite.io/resource?code=123&type=IMG&object=ressource

Malheureusement, aucun fichier n’est renvoyé…

Quand je copie l’adresse du fichier directement depuis le cms, j’ai cette d’url: https://exemple.dev.simplicite.io/ui/document?doc_id=123&object=KtcRessource&field=ktcRssFile&row_id=1&cdisp=inline

Comment puis-je faire pour recevoir la bonne url ? Est-ce que je dois utiliser une autre méthode ?

Merci beaucoup

Je ne comprend pas ce que vous voulez faire…

Déjà, avez vous un objet métier nommé ressource ??? Si oui c’est un très mauvais nommage car outre le fait qu’il n’est pas préfixé il est très ambigu avec l’objet système Resource.

Mais de ce que je vois votre objet doit plutôt s’appeler KtcRessource et du coup votre .getBusinessObject("ressource") n’a pas de sens.

Ensuite, cf. la JSDoc (https://simplicitesoftware.github.io/nodejs-api/module-simplicite-BusinessObject.html#getResourceURL) il faut passer le code et le type à la methode BusinessObject.getResourceURL, pas un row ID

Suite à un échange avec @Simon, votre besoin n’a rien à avoir avec l’URL d’une ressource de l’objet

Ce que vous voulez c’est l’URL d’un attribut d’objet de type document/image. Nous allons ajouter une méthode pour ça à la lib npm.

Très bien, merci beaucoup !

Désolé pour l’explication très approximative, je ne suis pas très calé sur vos nommages et vos configurations.

Une ressource est - comme son nom l’indique - une image, un CSS, un JS, … statique associé à globalement un objet et qui ne dépend pas d’un record (item) donné de cet objet.

Ce dont vous parlez ici c’est d’un attribut de type “document” ou “image” d’un record de cet objet. Celui-ci a donc un contenu différent pour chaque record considéré.

La méthode a été ajoutée dans la version 1.1.16 de la lib: https://simplicitesoftware.github.io/nodejs-api/module-simplicite-BusinessObject.html#getFieldDocumentURL

Pour l’utiliser sur l’item courant:

let url = myobj.getFieldDocumentURL('myFieldName');

ou sur un item de liste:

let url = myobj.getFieldDocumentURL('myFieldName', list[i]);

NB: on peut aussi passer une définition de field plutôt qu’un simple nom de field:

const myField = myObj.getField('myFieldName');
(...) 
let url = myobj.getFieldDocumentURL(myField);