Proof Of Concept Word Automation on SharePoint 2013

Voici un bout de code permettant l’utilisation de l’application de service Word Automation de SharePoint 2013 dans un composant WebPart.

Nous utilisons ici la nouvelle fonctionnalité de conversion synchrone et non la création d’une tâche façon SharePoint 2010.


publicclassConvertToPDF : WebPart
{
  TextBox tbt =newTextBox();
  Button btn =newButton();

  protectedoverridevoid CreateChildControls()
  {
     btn.Text ="Convert";
     btn.Click += btn_Click;
     this.Controls.Add(tbt);
     this.Controls.Add(btn);
  }

  void btn_Click(object sender, EventArgs e)
  {
     SPFile file =SPContext.Current.Web.GetFile(tbt.Text);
     byte[] PDF = WriteSpFile(file);

     SPWeb web =SPContext.Current.Web;

     SPList list = file.Item.ParentList;

     // Url for file to be created
     string destFile = list.RootFolder.Url +"/"+ file.Name +".pdf";

     // create the document and get SPFile/SPItem for
     // new document
     SPFile addedFile = list.RootFolder.Files.Add(destFile, PDF, false);
     SPItem newItem = addedFile.Item;
     newItem["Title"] ="PDF";
     newItem.Update();
     addedFile.Update();
  }

  publicstaticbyte[] WriteSpFile(SPFile spFile)
  {
    using (Stream read = spFile.OpenBinaryStream())
    {
      using (MemoryStream write =newMemoryStream())
      {
        string wordAutomationServiceName = "Word";
        SyncConverter sc = newSyncConverter(wordAutomationServiceName);
        SPSite spSite = SPContext.Current.Site;
        sc.UserToken = spSite.UserToken;
        sc.Settings.UpdateFields =true;
        sc.Settings.OutputFormat =SaveFormat.PDF;
        ConversionItemInfo info = sc.Convert(read, write);

        if (info.Succeeded)
        {
          return write.ToArray();
        }
      }
    }
   returnnull;
  }
}

Il est nécessaire d’inscrire à votre projet la référence à la DLL Microsoft.Office.Word.Server du dossier ISAPI de SharePoint.

dll

Attention ce code n’a aucun contrôle d’erreur (POC).

Publicités

PowerPivot pour SharePoint 2013 et le refresh des données

Après plusieurs mois sans nouveaux articles, je vais aujourd’hui prendre le temps de vous faire un petit rappel sur le refresh des données PowerPivot sous SharePoint 2013.

Cet article ne vous montre pas comment mettre en place cette « u… à g.. » de Business Intelligence sous SharePoint 2013, il y a déjà beaucoup d’information sur Internet.

Le refresh on demand

Le refresh on demand utilise la configuration de la source de données du fichier Excel.

refreshOnDemand

Pour vérifier la configuration, ouvrir le fichier PowerPivot dans Excel 2013.

EditInExcel

Dans l’onglet Data, ouvrir les connexions de données.

EditConnection

Ouvrir les propriétés de la connexion aux données.

EditPropertiesConnection

Ouvrir les propriétés d’authentification

EdutAuthSetting

Sélectionner « None » pour que le refresh aille récupérer l’identité de la banque d’information sécurisée (Secure Store).

AuhtSecureStore

N’oubliez pas de positionner l’identité dans le secure store.

SetCredentialsSSOPowerPivot

Bien sur, donner les autorisations de lecture au compte sur les données (base de données) attaquées par le fichier PowerPivot.

Le refresh intéractif ou à la demande est normalement opérationnel.

Le refresh planifié

Une autre possibilité est de demander à SharePoint de faire la mise à jour des données PowerPivot.

Pour cela, rendez-vous dans la gestion des planifications de mises à jour.

ManageDataRefresh2

Activer la mise à jour planifiée et demander un refresh dès que possible.

EnableSchedule

Vous avez la possibilité de fournir des identifiants.

Sceduled1

Et de spécifier pour chaque connexion de données des paramètres spécifiques.

Sceduled2

Relancer la page de gestion des mises à jour planifiée. Vous allez voir apparaître sous peu une nouvelle ligne sur l’historique qui va vous confirmer (ou pas) la bonne exécution de la mise à jour des données.

ScheduleOK

L’astuce

Il est possible que la mise à jour échoue avec ce message d’erreur « Call to Excel Services returned an error. ».

SceduleFailed

ULS indique un message plus explicite :

EXCEPTION: System.InvalidOperationException: Call to Excel Services returned an error. —> Microsoft.AnalysisServices.SPClient.Interfaces.ExcelServicesException: We’re sorry. We can’t open the workbook in the browser because it uses these unsupported features:

Les mises à jour planifiées ne peuvent être réalisée si le fichier Excel PowerPivot contient une feuille PowerView. Cela fonctionne avec des PivotTables.

Supprimer ces feuilles, nous allons voir comment créer les rapports PowerView directement dans SharePoint.

Création d’un rapport PowerView depuis SharePoint

Nous avons désormais, un fichier PowerPivot avec beaucoup de données.

Nous allons créer un rapport PowerView sans Excel directement depuis SharePoint.

Depuis la galerie PowerPivot, lancer la création d’un rapport PowerView.

CreatePowerView

Vous vous retrouver dans votre navigateur à créer un rapport PowerView 🙂

IECreatePowerView

Enregistrer, le rapport il est ajouté automatiquement à la galerie.

Galerie

Conclusion

La mise à jour à la demande d’un fichier PowerPivot avec une feuille PowerView est possible mais plus de mise à jour planifiée. :-/

Je vous conseille donc de sortir les feuilles PowerView de vos fichiers PowerPivot afin de bénéficier de ces mises à jour automatiques bien pratiques !

@ bientôt, Damien

La recherche contextuelle SharePoint ne retourne aucun élément

Considérez le scénario suivant, une application web avec deux étendues :

– une étendue sur la zone par défaut avec une authentification par formulaire

– une étendue sur une autre zone avec une authentification windows intégrée

Mapping

Dans cette configuration, votre moteur de recherche SharePoint doit impérativement utiliser l’URL d’accès au contenu qui utilise l’authentification Windows intégrée.

Le moteur de recherche ne peut indexer un site SharePoint via une authentification par formulaire.

StartAdress

 L’indexation se passe dans ce cas normalement.

 Une recherche sur l’étendue « Tous les sites » fonctionne normalement.

searchresults

 Par contre une recherche contextuelle (conceptuelle selon le terme Microsoft) « Ce site » ou « cette liste » ne vous retourne aucun élément.

 

noresults

 

Cela se produit si l’URL par défaut d’une application web n’est pas l’URL d’accès au contenu du moteur de recherche.

Il est donc obligatoire de configurer la zone par défaut avec l’authentification Windows Intégrée et d’utiliser les autres zones pour les autres modes d’authentification.

GoodMapping

Damien.

 

Content search Webpart et le filtrage par type de contenu

Le content search Webpart permet d’effectuer une requête sur le moteur de recherche afin de proposer du contenu SharePoint peut importe où celui est stocké.

Ce composant WebPart très puissant est apparu avec la version 2013 de SharePoint. Sa configuration est assistée à l’aide d’une interface graphique.

Un bug se trouve sur cet assistant.

 En effet après avoir sélectionné la propriété « type de contenu », la requête créée utilise l’ID du type de contenu.

Hors la propriété ContentType attend le nom du type de contenu.

Le résultat est qu’aucun élément ne vous est retourné par la requête.

ContentSearchWPBadQuery

 Modifier dans la requête la propriété ContentType par ContentTypeId.

La requête retourne désormais des éléments.

ContentSearchWPGoodQuery

Damien.

Le Shredded Storage de SharePoint 2013

Shredded Storage

 

Ou « stockage râpé » pour Google traduction est une nouvelle fonctionnalité de SharePoint 2013.

Son objectif est de limiter la taille du stockage nécessaire à SharePoint en n’enregistrant que le différentiel des éléments.

 

Exemple : Je créé une bibliothèque de document, j’active le versioning, lorsque j’enregistre plusieurs fois le document, seule les mises à jours sont ajoutées en bases.

Contrairement à SharePoint 2010 ou chaque enregistrement de document nécessite un enregistrement complet du document en bases de données.

Je vous propose de visualiser concrètement le résultat de cette techno. en réalisant plusieurs enregistrement sur une infra SharePoint 2010 et sur une infra SharePoint 2013.

 

Mise en place de l’infrastructure

 

Pour réaliser ces tests, je dispose

  • d’une infra SharePoint 2010 (Windows 2008 R2, SQL 2008 R2, SharePoint Foundation 2010)
  • d’une infra SharePoint 2013 (Windows 2008 R2, SQL 2008 R2, SharePoint Foundation 2013).

 Nous allons tout d’abord créer une nouvelle base de données sur le serveur SQL de chaque Infra.

Je configure la taille de départ à 3 Mo avec un agrandissement par pas de 1Mo pour le fichier de données.

Pour le fichier de log, je pars sur 1Mo de taille initiale et 1Mo de croissance.

  

 

Je vais ensuite ajouter ces bases de données à une application web existante.

Maintenant, nous allons créer une collection de site vide sur chaque webapp. Après la création vérifier que celle-ci a bien été créée sur la base de données souhaitée.

  

Nous allons maintenant créer une bibliothèque de document dans chaque collection de site.

 Je réduis les bases de données pour partir sur une base sans journaux de transaction.

 Après réduction des bases de données :

 

 

SharePoint Foundation 2010 SharePoint Foundation 2013
Fichier de données 21 632 Ko

26 112 Ko

  

Ajout du document de référence

 

Ajout du document de référence, un simple document Word 2010 avec comme contenu le mot « TEST ».

 Le document n’a qu’une taille de 18 ko, il ne permet donc pas d’augmenter la taille de la base de données.

 Nous allons donc commencer par ajouter quelques photos pour que le document soit plus conséquent.

Bien évidemment les mêmes photos sont ajoutés sur nos deux infras.

 Le document a désormais une taille de 3.8 Mo

 Les bases de données sont désormais décomposées comme suit :

 

Ajout doc 3,8Mo SharePoint Foundation 2010 SharePoint Foundation 2013
Fichier de données 29 824 Ko 34 304 Ko
Différence étape précédente 8 192 Ko 8 192 Ko

 L’ajout du document a eu exactement le même impact sur les deux infra.

  

Création de nombreuses versions

 

Nous allons maintenant créer 10 versions du document en ajoutant à chacune d’entre elle une nouvelle ligne à la fin du doc avec le numéro de version.

 

On remarque tout de suite une différence de comportement, l’enregistrement des différentes versions du document sur SharePoint 2010 est relativement long (2 ou 3 sec).

L’enregistrement sur SharePoint 2013 est quasiment instantané.

Cela s’explique, le « shredded storage » permet de n’envoyer au serveur SharePoint que les mises à jour du document.

 

Le résultat final est le suivant :

 

Après 10 versions du document

SharePoint Foundation 2010 SharePoint Foundation 2013

Fichier de données

49 280 Ko

34 304 Ko

Différence étape précédente 19 456 Ko

0 Ko

 

 Stupéfiant, là ou SharePoint 2010 nécessite 20 Mo pour enregistrer nos 10 versions de document, qui pour rappel ne se différencie que de quelques mots.

SharePoint 2013 et le « stockage râpé  😉 » (Shredded Storage), n’ont même pas fait grossir la base de données. Effectivement, nous avons configuré l’agrandissement par pas de 1 Mo nos modifications n’ont pris en base que quelques Ko.

 

Copie de document

 

Je vais maintenant dupliquer le document dans la même bibliothèque en modifiant uniquement le titre de celui-ci.

Après 5 duplication du document

SharePoint Foundation 2010 SharePoint Foundation 2013

Fichier de données

65 664 Ko

51 172 Ko

Différence étape précédente 13 684 Ko

22 976 Ko

 

Le shredded storage n’a pas su déduire que nous avons dupliqué le même document, de plus le stockage nécessaire sur SharePoint 2013 est plus important.

 

Duplication du document dans différentes DocLib

 

 Je vais créer 10 DocLibs et y déposer à chaque fois le même document.

 Après la création des 10 DocLibs voici la taille des bases de données.

 

Après création des 10 DocLibs

SharePoint Foundation 2010 SharePoint Foundation 2013
Fichier de données 65 792 Ko

51 904 Ko

 

Ajoutons maintenant le même document dans les différentes bibliothèques de documents.

 

Après ajout des 10 documents

SharePoint Foundation 2010 SharePoint Foundation 2013

Fichier de données

104 704 Ko

91 840 Ko

Différence étape précédente 38 912 Ko

39 936 Ko

 

L’ajout du même document dans différentes bibliothèques de documents ne permet pas de tirer parti du « shredded storage »

Conclusion

 

Le « shredded storage » de SharePoint 2013 est d’une puissance redoutable lorsque vous travaillez sur des documents avec versioning.

La volumétrie des bases de données ne va plus augmenter de façon importante à cause du versioning.

De plus, l’enregistrement des documents ne nécessite plus l’envoie de la totalité de celui-ci.

Nous avons donc des gains de bande passante importants et pouvons envisager plus sereinement des scénarios de travail collaboratif à distance sur SharePoint.

Encore un point qui devrait vous faire rapidement migrer sur SP2013 …

Téléchargements de SharePoint 2013

Voici venu le temps …. des téléchargements de SharePoint 2013 :

Téléchargement RTM

Téléchargement Preview

Documentation

  • Module 1: SharePoint 2013 ITPro introduction and overview. Get an overview of key changes and new concepts in SharePoint Server 2013 and SharePoint Foundation 2013.
  • Module 2: SharePoint 2013 system requirements. Learn about the hardware and software requirements for SharePoint 2013 and supported browser levels and setup considerations.
  • Module 3: SharePoint 2013 architectural changes. Learn about key architectural changes in SharePoint 2013 platform. We’ll highlight the most relevant changes from overall architectural perspective.
  • Module 4: SharePoint 2013 server farms and site architecture planning. Plan for server farms and sites in SharePoint 2013. Learn about planning for the distributed cache, changes in alternate access mappings and self-service site creation, new features in themes and branding, new ways to share sites, lists, and libraries.
  • Module 5: Office Web Apps 2013 architecture and deployment. Learn about the new architecture and deployment model for Office Web Apps including architectural changes, deployment options, and operation aspects for Office Web apps.
  • Module 6: SharePoint 2013 service application architecture and individual service applications. Get an overview of about changes in individual service applications in SharePoint 2013, including new service applications, general considerations, and changes in service application architecture.
  • Module 7: SharePoint 2013 enterprise search overview. Learn about the redesigned Enterprise Search in SharePoint 2013 including architectural changes to physical and logical topologies, deatils about configuration options for crawling, content, and query.
  • Module 8: SharePoint 2013 social features. Social is one of the largest investments in SharePoint 2013. New features and capabilities provide a better and more comprehensive story for social computing in SharePoint 2013. Get a walthrough of social features in SharePoint 2013.
  • Module 9: SharePoint 2013 enterprise content management and web content management considerations. Get an overview of key changes and improvements in enterprise content management (ECM) and web content management (WCM) in SharePoint 2013. Learn about new capabilities from eDiscover improvements to major new capabilities for WCM-driven sites.
  • Module 10: SharePoint 2013 customization options and management. Learn about the new customization capabilities in SharePoint 2013 and what does that actually mean from IT Pro perspective. Learn about required infrastructural changes for new customization capabilities and setting up team development environments.
  • Module 11: SharePoint 2013 authentication and authorization overview. Get an overview of changes in claims-based authentication in SharePoint 2013. Learn about new support for OAuth and how it’s used in SharePoint 2013. Also see how OAuth is used in Server to Server (S2S) authentication scenarios.
  • Module 12: Overview of SharePoint 2013 business continuity management. Learn about the approaches and techniques to use when devising a meaningful and cost effective business continuity management (BCM) strategy for SharePoint 2013.
  • Module 13: Upgrading to SharePoint 2013. Learn about the different facets of upgrade preparation and understand the key skills and techniques you’ll need to successfully upgrade to SharePoint 2013.

%d blogueurs aiment cette page :