Mika A.

Blog Simple :)

Catégorie : Sharepoint 2013 (Page 1 of 2)

Panneau Informations sur le document ne peut pas ouvrir un nouveau formulaire.

SharePoint – Correction d’un problème sur le panneau d’information InfoPath

Nous avons récemment travaillé sur une bibliothèque SharePoint utilisant le panneau d’information InfoPath lors de la création de documents dans Office. Pour cela, un modèle XSN a été créé au départ mais entre temps, de nouvelles colonnes ont été ajoutées sur la bibliothèque.

Ce changement n’est pas directement pris en compte dans le modèle et cela cause une erreur d’ouverture du panneau d’information dans un document :

Panneau Informations sur le document ne peut pas ouvrir un nouveau formulaire.
Le formulaire contient des erreurs de validation de schéma.
Élément « {4aea2928-6375-42a8-b951-d006a268fe52}Nom_De_Colonne » inattendu selon le modèle de contenu de l'élément parent « documentManagement ».

Pour palier à cela, il suffit de mettre à jour le modèle en le modifiant dans InfoPath. Voici les etapes à suivre :

  • Ouvrir les paramètre de la bibliothèque et trouver le lien « Paramètres du panneau Informations sur le document » dans les paramètre du type de contenu concerné.
  • Cliquer sur le lien « Modifier ce modèle » pour ouvrir le document dans InfoPath.
  • Dans InfoPath, aller dans le menu Données > Actualiser les champs
  • Renseigner l’url de la bibliothèque dans l’assistant qui s’affiche
    err2
  • Aller à l’étape suivante pour choisir le type de contenu à utiliser et terminer les étapes de l’assistant
  • Aller dans Fichier > Publier pour mettre à jour le modèle dans SharePoint
  • Vider le cache dans le centre de téléchargement d’Office (Menu Démarrer > Microsoft Office > Outils Microsoft Office 20XX > Microsoft Office 20XX Centre de téléchargement)
    err3

Une fois ces manipulations terminées, le panneau d’information s’affiche correctement dans Office.

 

SharePoint – Construire une requête CAML facilement avec U2U CAML Query Builder

Je travaille actuellement sur une application SharePoint 2013 pour un de nos clients et l’application manipule plusieurs données déjà existantes sur le site afin de construire un tableau de bord des données.

A la différence des applications web « traditionnelles », les applications pour SharePoint n’utilisent pas SQL pour accéder aux données depuis le site hôte. C’est plutôt le langage CAML qui est préconisé pour former les requêtes vers SharePoint. Ce langage utilise des balises pour les éléments de la requête. Voici un exemple d’une requête CAML sur une liste de SharePoint :

<Query>
   <Where>
      <And>
         <Eq>
            <FieldRef Name='ContentType' />
            <Value Type='Computed'>Custom Type</Value>
         </Eq>
         <Or>
            <IsNull>
               <FieldRef Name='Etat' />
            </IsNull>
            <Eq>
               <FieldRef Name='Etat' />
               <Value Type='Choice'>Nouveau</Value>
            </Eq>
         </Or>
      </And>
   </Where>
</Query>

Nous pouvons y voir les balises comme Where, Eq, IsNull, etc… qui permettent de décrire ce que nous voulons avoir comme résultat.

Cependant, il peut être difficile de créer « à la main » ces requêtes, surtout quand il faut récupérer différents champs personnalisés et quand les conditions deviennent plus complexes.  Il existe plusieurs outils pour remédier à cela. J’ai testé U2U CAML Query Builder qui permet de se connecter à un site SharePoint, d’y trouver la liste sur laquelle on souhaite récupérer les données et construire la requête depuis des listes de sélections.

Le logiciel est très simple d’utilisation. Il faut commencer par se connecter à un site SharePoint sur l’interface de démarrage :

u2u3

La liste des listes du sites s’affiche ensuite et il faut en sélectionner une pour créer un nouvelle requête. Les éléments de la listes sont alors chargées et il suffit de les sélectionner pour former une requête. Un bouton permet ensuite de lancer la requête pour vérifier qu’on récupère les bons résultats.

u2u1

Pour couronner le tout, un onglet permet de copier le bout de code à insérer dans l’application pour exécuter la requête. En résumé, c’est un outil vraiment utile et pratique pour tout développeur d’application SharePoint!

N’hésitez pas à laisser un commentaire pour partager vos expériences avec d’autres outils du même genre.

Sharepoint – Placer une classe dans le tag body d’une enquete

J’ai récemment travaillé sur la personnalisation d’une enquête sur un site Sharepoint. Des éléments de l’affichage ainsi que les styles sont modifiés en utilisant CSS et l’injection Javascript.

Le problème que j’ai rencontré est que Sharepoint n’a pas de classe ou identifiant dans la structure HTMl qui permet d’identifier facilement une page d’une enquête et la différencier d’autres pages du site.

Après un bon moment de recherche et d’essais, j’ai finalement trouvé le moyen d’ajouter une classe particulière quand l’utilisateur est sur une des pages d’une enquête.

La solution utilise le JSOM pour identifier la liste liée à la page en cours et identifier le modèle utilisée par la liste. Le code pour les listes basée sur l’application enquête est 102. Je peux alors maintenant vérifier si j’ai la valeur 102 comme liste de base et ajouter une classe « survey » quand c’est le cas.

Voici le bout de code dans l’application :

// Check if page is from a survey list
function getIsQuizPage() {
 context = new SP.ClientContext.get_current();
 web = context.get_web();
 listColl = web.get_lists();
 list = listColl.getById(_spPageContextInfo.pageListId);
 context.load(list);
 context.executeQueryAsync(Function.createDelegate(this, this.onQueryIsQuizzSucceeded), Function.createDelegate(this, this.onQueryIsQuizzFailed));
}

// Success Callback
function onQueryIsQuizzSucceeded() {
 // If list is survey, add survey class
 if (list.get_baseTemplate() == '102') {
 jQuery('body').addClass('survey');
 }
}

// Error Callback
function onQueryIsQuizzFailed(sender, args) {
 alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

Avec ce code, je peux maintenant utiliser le sélecteur « body.survey » dans mon CSS et JS pour personnaliser les pages des enquetes.

J’espère que cela peut aider! N’hésitez pas à laisser un commentaire.

Page 1 of 2

Fièrement propulsé par WordPress & Thème par Anders Norén