GabrielDeM
(Gabriel De Moura)
October 2, 2020, 12:00pm
1
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
david
(David AZOULAY)
October 2, 2020, 12:21pm
2
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
david
(David AZOULAY)
October 2, 2020, 12:46pm
3
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.
GabrielDeM
(Gabriel De Moura)
October 2, 2020, 12:49pm
4
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.
david
(David AZOULAY)
October 2, 2020, 12:54pm
5
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é.
david
(David AZOULAY)
October 2, 2020, 3:21pm
6
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);