Nov 27 2019 06:40 AM - edited Nov 27 2019 07:08 AM
Bonjour,
pour faire simple j'ai créée un type de contenu "myCT" pour lequel j'ai défini des champs / colonnes.
J'ai aussi créée un librairie de document "myLib" à laquelle j'ai associé le type de contenu.
Je dois créer un formulaire de recherche qui puisse trouver les documents d'une lib en utilisant les champs / colonne du type de contenu. Pour ça j'ai créée un composant WebPart. Ce composant doit générer un formulaire à la volée (en utilisant javascript) qui récupère les datas de myCT et qui puisse effectuer une recherche sur myLib...
J'ai besoin de récupérer :
J'ai découvert que pour accéder à toutes ces informations on pouvait passer via un API rest dans ce genre là : https://myAppUrl.sharepoint.com/_api/web/
Mon soucis est que je n'arrive pas à trouver le bon point d'entrée. J'ai un peu exploré ces URL sans succès :
J'ai tenté aussi une autre approche en javascript et en cherchant à afficher les content type utilisés avec un script sympathique :
function getallContentTypes() { var clientContext = SP.ClientContext.get_current(); oContentTypes = clientContext.get_web().get_contentTypes(); clientContext.load(oContentTypes); clientContext.executeQueryAsync( Function.createDelegate(this, function() { var ctypesInfo = ''; var ctypesEnumerator = oContentTypes.getEnumerator(); while (ctypesEnumerator.moveNext()) { var ocontentType = ctypesEnumerator.get_current();
ctypesInfo += '\n' + 'ContentType Title: ' + ocontentType.get_name()+'\t'+ ocontentType.get_id(); }
console.log(ctypesInfo.toString()); }), Function.createDelegate(this, function() {
console.log('failed'); })); } function injectMethod(){ getallContentTypes(); } ExecuteOrDelayUntilScriptLoaded(injectMethod, "sp.js");
Ce script a eu pour effet d'afficher mon type de contenu et son id.
ContentType Title: myCT 0x0101007D18D0E5D0A176498869E2673AD0CA14
J'ai présumé qu'on pouvait avec ces informations là accéder à ce dont j'ai besoin via une requete REST dans ce genre :
/_api/Web/ContentTypes('0x010100ED0CEB986D733A47AD45D9A995911BAA')/Fields
_api/web/AvailableContentTypes?$select=Name,Id,StringId&$filter=Name eq 'myCT'
Malheurement tout cela ne fonctionne pas vraiment.
Merci pour votre aide.