SPC14] SPC414 // Search content enrichment and extensibility in SharePoint 2013

Mail de Christian

Mercredi 05/03/2014 à 13h45

Speaker
Brent Groom – Senior Premier Field Engineer @ Microsoft Consulting Services Sreedhar Mallangi – Senior Consultant @ Microsoft Consulting Services

Résumé
C’est une session on-prem sur la façon dont on peut étendre les sources de contenus d’un moteur de recherche SharePoint 2013.
On utilise Search Indexing Toolkit (SIT) qui facilite la création de connecteurs de contenus.
On peut utiliser Content Enrichment Web Service (CEWS Pipeline Toolkit) aussi pour enrichir le contenu indexé par des informations supplémentaires.
Une session très intéressante et qui montre surtout comment le moteur de recherche SharePoint 2013 peut être étendu et configuré avec notamment un ajout de code qui permet d’ajouter du contenu spécifique à nos résultats, tout en gardant une expérience utilisateur poussée où on vient enrichir du contenu indexé pour par exemple enrichir le panneau de raffinement de métadonnées qui ne sont pas automatiquement indexées.

// Agenda
Identifier les extension de contenu
Connecteurs custom
Enrichissement du contenu
Toolkits de la communauté

// Architecture overview
Il décrit l’architecture du service de recherche et notamment le composant de crawl qui prend en input plusieurs connecteurs possibles.
On peut sur SharePoint 2013 faire du crawl continu.

// Content ingestion
Pourquoi est-ce important. On va voir comment fonctionne l’input de contenu, la gestion de contenus crawlante et comment on peut avoir des connecteurs spécifiques propres à chaque contenu.
FAST ESP (Enterprise Search Platforms), permettait d’avoir des APIs d’extraction de contenu.
Maintenant sur SharePoint 2013, on a des connecteurs, des handlers (pour file share, sharepoint, profils), et des connecteurs BCS.
Business Connectivity Services permet pour rappel de connecter des données externes vers SharePoint. BCS peut être utilisé comme source de contenu pour la recherche SharePoint.
On peut faire du BCS sans code avec OData ou SQL.
Ou BCS avec du code avec du WCF ou de l’assembly .NET pour extraire du contenu.

// Search Indexing Toolkit – SIT
C’est une implémentation générique d’un connecteur d’indexation Il a un modèle de données générique mais implémente la complexité du batching, du crawling (full/incrémentale), security trimming (gestion de la sécurité dans les résultats).
Dans le package il y a de l’XML avec un modèle, une interface à implémenter éventuellement.
SIT XML file connecter peut indexer n’importe quel fichier XML.
Bon il va très vite dans ce qu’il sait faire, en résumé c’est un outil top, qui est scalable, performant, flexible.

// DEMO
Il ouvre le package SIT. On voit des éléments de démos. Des DLL, des classes à récupérer. Et des scripts powershell permettent de déployer le tout.
Il montre un fichier XML qui liste différents documents à crawler.
Un autre de configuration SIT.
Le docandidpath permet au connecteur de savoir dans le fichier XML des éléments à crawler, comment le connecteur doit accéder (en DOM) à l’URL de l’identifiant du document.
Il lance une commande Powershell et utilise le Powershell qui va déployer notamment dans le GAC. Un autre Powershell lui permet d’enregistrer le fichier XML de configuration sur le service de recherche et d’ajouter le type de source de contenu à sa content source.
Eventuellement le script peut lancer un full crawl.
En allant voir dans le schéma de recherche, on voit qu’un certain nombre de Managed Properties sont créées pour être utilisées dans les résultats de recherches.
On peut désactiver ça en allant dans les crawled proprettes.
Il ouvre ULS Viewer et filtre sur la catégorie contient SIT pour voir comment se comporte le crawl.
Il utilise Search Query Tool disponible sur Codeplex pour faire une requête et tester son contenu.
Il fait une recherche sur la contentsource wikiabstracts qu’il a créé, et trouve les résultats de son fichier.

// SIT ISearchConnector interface
En implémentant cette interface, il y a 6 méthodes à implémenter.
Le ContentSource permet de définir le nom de la source de contenu.
Initialize() permet d’initialiser les paramètres du connecteur (lieu de stockage etc).
GetAllItems() permet grâce avec les paramètres offset (taille du match), crawlType, changeToken et changeTokenUpdate qui permettent de différencier le contenu de deux crawl consécutifs. Cette méthode génère un tableau d’ID de document.
GetSpecificItem(id) permet de retrouver un item en fonction de son ID fournit ci-dessus.
GetSpecificItemData(id) permet de récupérer le contenu.
GetSecurityDescriptorForSpecificItem(itemId, aclmeta, usesPluggableAuth) permet de gérer la sécurité d’un item (security trimming).

// Item level security
Chaque document doit supporter la sécurité NTLM, et être taggé.
Sinon on doit implémenter custom claims avec un provider ou security trimmer.

// Exemples de scénarios
Crawler des fichiers XML générés depuis des applications tierces.
SQL Server avec du security trimming.
SQL Server avec un BLOB relié sur un partage réseau.

// Content enrichment
C’est la façon d’enrichir du contenu existant.
Content Enrichement Web Service (CEWS).
C’est un web service qui est configuré sur le moteur de recherche via Powershell qui va prendre en input des données déjà existantes, et fournir en sortie des managed propreties qui seraient enrichies, nettoyées ou en tout cas traitées.
Il nous montre dans un rapport du service de recherche que cet enrichissement prend très peu de temps.
Quelques éléments à prendre en compte, c’est que les propriétés doivent exister, que c’est case sensitives, qu’on ne peut pas utiliser d’alias, et des propriétés par défaut sont parfois déroutantes car ressemblant à des propriétés existantes (DisplayAuthors vs Author). Enfin certaines propriétés sont en readonly (body). On ne peut avoir qu’un seul webservice par service application de recherche.
Attention à augmenter la capacité de la ferme en conséquence, et la topologie serveur.
Quelques techniques pour implémenter ça.
On peut utilise WCF Routing grâce à .NET 4.0.(http://aka.ms/Pqkjjj) Faire du Load balancine pour gérer la scalability.

// CEWS Pipeline Toolkit
Il y a un toolkit facilitant l’amélioration du contenu.
Il améliore le Search Index.
C’est fait en WCF avec un XML de configuration.
Il permet de simplifier et de cacher des complexité d’agrégation de service, de gestion de scalability.
Ce qu’il y a dans le package ? 55 stages permettant de gérer vraiment plus configurations avec l’XML de configuration. Cela fonctionne sur SharePoint 2010 avec FAST, ou SharePoint 2013 .. ou tout seul.
On peut le customiser avec Visual Studio 2012 et .NET 4.5.
Il y a beaucoup de documentation sur le wiki TechNet.

// DEMO
Il va montrer de quoi le package est composé.
Il montre déjà le résultat, il recherche « europe » et voit qu’il y a des éléments venant de wikipedia avec des raffinements sur la gauche, wikipedia population, la catégorie wikipedia qui sont custom.
On navigue dans pas mal de fichiers XML dans le package CEWSPT pour décrire comment les raffinements sont faits. Impossible de tout retranscrire mais il explique en gros que c’est très flexible et configurable, et que l’usage est plutôt bien documenté.

// How to get the tools
On peut récupérer les outils via un contact chez MCS, un contact chez PFE.
Le disponibilité en public est en cours d’approbation.

Christian

[SPC14] SPC267 // What’s new with Document Retention in SharePoint and OneDrive for Business

mail de Christian

Mercredi 05/03/2014 à 10h45
Speaker Astrid McClean – Senior Program Manager @ Microsoft (Information Protection)

Résumé
D’après les réactions de la salle, c’est un sujet qui intéresse mais qui est peu connu. Intéressant cependant dans le domaine du compliance management.
La session explique les quelques nouveautés dans le domaine des retention policies comment elle se comportent.
Le domaine du eDiscovery également.

// SharePoint Retention Policies
On parle des delete policies qui sont ces règles qui définissent la suppression du contenu selon certaines règles.
Pour SharePoint on parle de ça autour des personal sites, des team sites, des project sites (avec des site policies), des team sites (content type policies, in place records), records management (records center, in-place records).
Elle parle des sites non structurés où on se doit de décider de leur cycle de vie.
Document Deletion Policies – ces règles dont on discutera pour supprimer le contenu s’il n’est plus pertinent.

// Les Retention Policies existantes
Les records management, content type policies et son grand frère les rétentions sur listes et bibliothèques de documents.
Enfin les site policies qui vont gérer le cycle de vie d’un site, et de tout son contenu.

// Content type policies
Cela permet de déclencher une règle de traitement de contenu basé sur une colonne d’un type de contenu (suppression, mise en corbeille, déplacement, suppression de versions).

// Document Deletion Policies
Elle introduit « Document Deletion Policies » qui réduisent les risques de supprimer des données avec les règles. C’est une utilisation notamment pour les Team Sites et OneDrive for Business. Cela ne remplacement les records management ou les content type policies mais viennent en plus.
Contrairement à la plupart des autres, les Document Deletion Policies sont gérées sur un tenant (ferme à priori pour du on-prem). elles peuvent contenir une ou plusieurs règles.
On peut supprimer ou mettre en corbeille basé sur 2 champs possibles uniquement (date de création ou modification). Enfin on peut gérer des périodes en jours, mois ou années (supprimer les éléments de plus de 5 ans).
On peut attacher ces policies à des site collection templates. Il ne modifie pas le template, et un job tourne pour vérifier si un site existant correspond au template pour appliquer la policy.
On peut également attacher cette policy à une collection de sites en particulier.
Quand les policy ne sont pas obligatoires, l’administrateur de la collection de sites peut décider lui-même d’appliquer une policy alternative ou rien du tout.

// DEMO : Compliance center
Elle montre le compliance center dans Office 365.
C’est un panneau d’administration qui est en train d’arriver dans les 6 mois sur les tenant Office 365, puis sur on-prem dans la prochaine version délivrée.
On peut faire de l’audit avec des rapports.
On peut voir ce qui est eDiscovery ou encore de l’encryption pour paramétrer des IRM etc.
Dans la page Archive, on peut firéer les Document Deletion Policies. Cela nous mène à une collection de site « Document Deletion Center ». Il y a deux policy pour l’exemple. Une pour les myosite, une pour les documents.
Une policy est représentée par son nom, description et une règle (rule) de suppression. On définit si on supprime définitivement ou si on met en corbeille, cela basé sur quel champ, puis la période après laquelle on fait l’action. Assez simple. On peut mettre plusieurs règles dont une par défaut.
Dans le site, on a une page « Assign to template » en créant un élément dans la liste correspondante, où on choisit le template gréce à un wizard (le même que pour créer une collection de sites), mais on peut aussi alternativement assigner aux MySite (utilisé par OneDrive for Business). On enchaine et on sélectionne une policy, puis on coche si l’on veut qu’elle soit obligatoire.
Ensuite un job tourne pour assigner effectivement la policy.
Dans le site on a aussi une page « Assign to site collection » où on peut faire la même chose en ayant un wizard qui propose un outil de recherche de collection de sites. En le trouvant et cochant, on valide et on voit que l’outil nous dit qu’une policy existe déjà (éventuellement).
Elle montre une collection de sites où elle va en tant que d’administrateur aller dans site settings -> Document Deletion policies.
De là on voit quelles sont les policies assignées à son site. Mais s’il n’y a pas de policy obligatoires, on voit qu’on peut sélectionner « Opt-out » ce qui ne va rien faire (ne rien supprimer).

// Comment ça marche
On ne peut avoir qu’une seul policy par site. Une seule règle est active à la fois pour les bibliothèques de documents dans un site.
Les règles fonctionnent sur chaque document contrairement aux site policies.
Cela fonctionne uniquement sur les bibliothèques de documents.
Si une Document Deletion Policy est appliquée : les content types policies sont ignorées, les list policies sont ignorées … mais les Site policies restent actives.
Il n’y a qu’une seule Document Deletion Policy Center par tenant. Il est accessible par le compliance center. On ne peut pas en créer un 2ème. Il faut déléguer les permissions aux compliance officers.
Elle montre des exemples pour illustrer ce qu’elle vient d’expliquer.
Chose à savoir, si une policy est appliquée à une collection de sites, elle est appliquée à tous les sous-sites qu’elle contient.

// Exchange retention policies
Ok, on va parler des policies pour Exchange.
Elle montre l’exemple simple que sur un mail elle peut appliquer une policy qui dit qu’elle supprime ce mail après 1 mois d’existence.
Au delà de ça, il y a l’utilisation du eDiscovery Center.
Elle re-explique l’utilisation du eDiscovery en ce qui concerne Exchange, avec notamment la fonctionnalité de in-place records. Pour rappel, cela était déjà présenté en 2012, c’est le fait d’utiliser la recherche pour retrouver le contenu sur un sujet donné (ça c’est eDiscovery) et en stocker une copie sur le site eDiscovery center (ça c’est le in-place records). Cela permet en cas de suppression du site d’origine, de garder une copie en backup en cas de centralisation de données dans le cadre légal notamment.
Une nouveauté permet de stocker les données importantes.

// DEMO : eDiscovery in place hold
Elle va dans un eDiscovery center et va dans son in-place policy.
Elle va sur son compliance center, avec eDiscovery center, où dans le filtre on peut classifier son contenu avec ClassificationType en se basant sur l’index.
Dans son compliance center, elle crée dans Archive, une policy. Elle va rechercher dans les sites et mailbox, sélectionne la boite d’un monsieur. en plus elle ajoute un team site. Elle configure qu’elle garde son contenu infiniment ou bien sélectionne 1 mois. Et valide.
Ainsi elle a créé une une hold policy qui va garder le contenu concernant un sujet important.

// Comment ça marche : In-place hold
La préservation d’éléments fonctionne comme un évent receiver sur un item où sur la suppression il vérifie si le contenu doit être préservé et le fait le cas échéant. Sur la modification il change la date de préservation.
Les administrateurs ne peuvent pas supprimer les données ni les sites qui contiennent les données in-hold.

Christian

[SPC14] What’s new in workflow for SharePoint online

Mail de Fabien  : Session par Tim McConnell Program Manager Office

// pré-session
Je suis donc a la session dont Christian parle (si vous avez lu son post précèdent).
A priori, on va voir des nouveautés dans les modèles de workflows sur O365.

// résumé
Il nous montre effectivement des choses toutes nouvelles :
• Debugger des workflows SPO
• Content type filtered associations
• integrated workflow apps

// debugger des workflows SPO
Jusqu’à présent, pas de possibilité de de debugger un workflow sur online. Le debugging se fait sur un développer site dans O365. Pas besoin de VM se fou avec SP.
Ca y est, on va pouvoir !
Dans les settings du projet dans Visual studio, il suffit de cocher 2 checkboxes pour permettre le debugging. Il nous fait la démo dans VS. Techniquement Visual studio va se connecter au service bus Azure.

C’est disponible dès aujourd’hui.

// content type filtered associations
Scenario : 1 librairie avec plusieurs content types. Il fait un liste workflow dans SPD.

Une nouveauté dans les options de démarrage pour cibler un content type ! Le WF n’apparait alors pas dans la liste de WF lorsque ce n’est pas le CType ciblé.

// integrated workflow apps
L’idée est de rendre des workflow développés dans des Apps disponibles dans n’importe quelle liste, pas que dans celles de l’app.

Démo :
Il déploie une app dans son site de développement.
Il va maintenant dans une librairie de documents, il y ajoute un workflow et il peux choisir l’app d’où provient le workflow. On peut donc packager un wf dans une app et l’utiliser partout.

C’est maintenant la nouvelle façon de déployer les workflows.

Fabien

[SPC14] Developing an Intranet on Office 365

Mail de Felipe Mercredi 05/03/13 à 09:00

Speaker, Eric Shupps – SharePoint Server MVP

//Résumé
Pas vraiment de nouveautés, mais beaucoup du déjà vu,
Il nous montre les option disponible pour développer et customisé certains élément SharePoint avec client-side solution et le model oAuth utilisé par SharePoint

//Intro

La session est animé par le cowboy SharePointer, avec son fort accent texan,
Il commence nous disent qui c’est une session pour les développeurs et qui les IT Pro et administrateur peuvent sortir.
Eric nous ressort les famous slide de Apps pour Office 365, donc encore l’emphases sur les apps et office api’s
Après il nous fait une petit introduction sur le concept d’intranet
• Objective, fournit une site avec basée sur le règles métiers pour aider les collaborateurs et augmenté la productivité
• Audience, la solution doit s’adapter à différent types d’utilisateurs
• Expérience, le design doit pas affecté l’interface, donc il doit etre intuitive et facile d’utiliser
• Challenges, haute performance fonctionnel et adoption d’utilisateur final

//Navigation

Selon Eric un de plus grand défi sur Office 365,
Après il nous présente les composants, de façon très basic, (les même qui SharePoint On prem):
• Suiter Bar
o Peut-être customisé avec JavaScript, il nous montre un petit snipet de jQuery, qu’injecte un html avec un lien
• User Menu
o Customisé via JavaScript et Sandbox solution,
o Petit commentaire sur sandbox, pas « depricated » mais c’est la direction choisie par Microsoft dans l’avenir
• Site Settings
o Customisé avec JavaScript et Sandbox solution
• Quick Access
o Customisé via JavaScript et Sandbox solution
• Ribbon
o Customisé via JavaScript, Sandbox et Apps !
o Il nous fait une demo avec un lien dans le ribbon qui nous rediriger vers l’app
o Eric nous montre comme modifier le rubban via an App,
un simple custom actions qui nous avons déjà l’habitude de le faire avec le RegistrationType et RegistrationID
Et nous pouvons utiliser le token « ~appWebUrl » pour avoir l’url de l’app
En contrepartie nous ne pouvons pas ajouter de javascript comme « Command »
• Fil d’ariane
o Cache par défaut dans la master page
o Ne marche pas entre diffèrent site collection
o Customisé via JavaScript
• Top Navigation
o Navigation par métadonnées
 Il marche seulement dans collection de site curent
 Petit demo sur le « custom properties » de la métadonnées
et un code snippet qui montre qu’on peut accéder au termstore via l’api javascript
il profité aussi pour nous montrer qu’on peut utiliser des librarie javascript pour utiliser MvvC où MVC

//Agrégation de contenu
Comme nous savons déjà on peut toujours utiliser CQWP avec de XSLT,
On peut utiliser l’App Part avec CSOM, mais il n’y pas de cross-list site query, donc pour croiser le données nous sommes obligée de requêter chaque list individuellement
Social API, qu’on peut requêter via oData
la CSWP et display templates qui permet de customisé le rendu du résultat,
et finalement il nous mentionnés Search API’s

//Cross Site Publishing,
Ecrire une fois et lire en différents site, en utilisant In place Catalog, mais nous pouvons aussi utiliser la recherche et la search api’s
Eric nous lance une demo qui nous montre une liste avec beaucoup de données qui est affichée dans une app part ajoutée dans une deuxième collection des sites.

//Composed Look
Il nous montre comme déployer un composed look avec un sandbox solution, rien de vraiment nouveau.

//Design Packages
Qui permet de modifier l’interface du SharePoint et ajouter quelques customisation via code.

// Solutions packaging
Un sujet qui pourrait être vraiment intéressant mais pas assez détaille pour qu’on puisse avoir vraiment quelques choses de concret.
• Web Templates disponible sur office 365
• Déploiement de modules
• Déploiement de package via Sandbox solution (easy) mais aussi via une App(challenge)

//Authorization
Il nous explique que oAuth n’est pas une authentification, mais un protocole d’autorisation,
Donc en gros
• l’utilisateur accède l’app,
• l’app demande un token
• Le provider envoi un token au utilisateur
• L’app accède à diffèrent ressource en utilisant le token fournit au utilisateur

//Apps
Ils n’ont plus de temps, il passé très très vite sur l’app model et structure, qu’on connait déjà, donc rien de nouveau
Juste un point important mentionné, l’azure auto-hosted n’est pas conçu pour la production mais plutôt pour les POCs et tester qui permet d’avoir très rapidement un contexte de provider-hosted app

[SPC14] Developping socially connected apps with Yammer, SharePoint and OpenGraph

Mail de Fabien

Session par Chris Johnson, manager Provoke Solution

// Résumé
Session très intéressante sur l’intégration de Yammer via l’API à des pages d’un intranet, à des applications métier, à n’importe quoi !

Pour les Dev, plein d’exemples sympa a venir sur son blog, car il va y poster la session : http://www.looselytyped.net

// Yammer API
Il nous explique les cas d’usage classique : L’API peut servir a remonter les interactions utilisateurs dans des Apps. A commenter des éléments, a liker. A partager du contenu. On peut imaginer plugger une application métier a yammer.
Exemple dans Dynamics CRM. Yammer est intégré.

Les APIs:
• Rest
• Javascript
• Opengraph: ‘protocole’ social
• Embed widget : newsfeed, bouton like
• SDK Ruby python iOS Win phone

REST api : classique, requêtes https, réponses json, get, post, delete
Exemples:
https://www.yammer.com/api/v1/messages.json
/my_feed.json
/Following.json
/users.json
/users/current.json
/streams/notifications.json
/uploaded_files/in_group/58555.json
/search.json?…

Tout ce qu’il faut pour: les messages, groupes, réseaux, invitations, Suggestions, …
http://developers.yammer.com/restapi
Attention, peu de documentation, il faut se débrouiller avec tout ca 😉

démo de REST api:
Il utilise Postman, une extension chrome pour jouer avec l’API.

Authentification:
Yammer utilise Oauth 2.0:
• User authentication
• App autorisation
• App authentication

https://www.yammer.com/client_applications : cette url donne la liste des applications clientes, leur ID, secret, etc. Une application est liée a un network. Sauf si on veut la publier dans le store yammer et dans ce cas, il faut la soumettre et passer le filtre yammer (qualité, sécurité,…).

Il nous explique maintenant comment s’authentifier par du code serveur via Oauth. Tout est dans le slide.
Maintenant, même description en code client JS.
Ca redirige l’utilisateur veut une petite fenêtre de login pour autoriser l’app a accéder aux données yammer.
SDK Javascript : Un script a intégrer dans sa page : Https://assets.yammer.com/platform/yam.js

Il nous fait une démo d’authentification dans une app web en utilisant JS.
D’abord via code serveur .net puis en JS. Très simple

// OpenGraph dans Yammer

Opengraph defini un protocole du type : Person + action + thing on app name + message
Ex: Fabien aime le doc xyz dans l’intranet « bon document !:) »

Pour créer un objet opengraph: on POST vers /activity.json

Une démo en .net, on voir que tout objet opengraph a sa propre page dans yammer. On peut donc tout liker, commenter, etc… même des items d’une application métier par exemple.

L’exemple type est le flux yammer a coté des documents office web app.

Api embed :
Un script js a ajouter.
Une page cachée pour paramétrer la feed embed : https://…./widget/configure
On peut pousser un feed dans un DIV ou autre.
Super pour mettre des commentaire sur n’importe quel élément, page, etc.

Il montre maintenant comment ajouter un bouton like via l’API embed, le bouton embed permet de l’ile la page courant.
Il compare avec un autre like via JS SDK, et là, ca va plus loin, car il peut Mike via JS n’importe quel objet depuis n’importe quelle page (des likes dans une liste d’éléments, etc…)

// dernière démo
Im a codé une app office pour ajouter une conversation sur la droite d’un document.
Comme dans web app, mais dans le client lourd !
Ils ont re-codé l’interface mais ca aurait pu se faire facilement via l’API embed.

Fabien

 

[SPC14] SPC317 // Extend business processes with Workflow Manager

Mercredi 05/03/2014 à 9h00

Speaker
Alex Randall – Senior Consultant @ Microsoft Consulting Services

Résumé
C’est une session dev mais en je dirais que c’est moitié dev, moitié power user.
Le Workflow Manager est nouveau sur SharePoint 2013 et déporte le traitement des workflows hors de SharePoint et notamment sur Azure lorsqu’on est en mode Cloud.
Il conseille beaucoup l’utilisation de SharePoint Designer 2013 pour les workflows car l’outil s’est beaucoup amélioré avec de nombreuses actions plutôt puissantes. On pense notamment à l’action qui fait appel aux API REST, ce couplé avec le fait que ces APIs se soient beaucoup développées.
On peut malgré tout faire des App avec des workflows avec Visual Studio si on est plus dans un mode d’industrialisation.

// Office 365 Platform
Il montre la slide qui explique que maintenant les APIs Office 365 sont assez poussées à travers les différents produits de la plateforme.

// Agenda
Qu’est ce qu’est le Workflow Manager
Qu’est-ce qu’un workflow
Les outils de création de Workflows
Des démos
Comment choisir parmi les outils existant

// Qu’est-ce que Workflow Manager
C’est une nouvelle infrastructure pour faire tourner les workflows Le tenant SharePoint 2013 travaille avec un serveur à l’extérieur que ce soit Azure Workflow ou Workflow Manager. Cela permet de séparer le traitement des workflows sur une infra qui peut évoluer en conséquence et qui est indépendante.
Comme SharePoint 2013, Workflow Manager (ou Azure Workflow) est basé sur SQL Server et se base sur Workflow Foundation 4.5 (permet entre autres du du processing déclaratif) et Service Bus (qui permet notamment de gérer les erreurs, les essais en cas d’erreurs par exemple de réseau).
Pour des questions de rétrocompatibilité, la plateforme de workflow SharePoint 2010 continue à exister sur une ferme 2013.

// Workflow Manager Farms —> Aller voir SPC356

// Scénario de workflow
Garth Fort un utilisateur travaille sur des propales, qu’il doit faire relire par 2 personnes, puis relire par un approbateur technique afin de valider la propale. Ces process d’approbation peuvent mener à un nombre impressionnant de pièces jointe si cela se passe par mail.

// DEMO – Workflow d’approbation
Afin d’automatiser cette revue, il va d’abord montrer par navigateur.
Sur son site, sur sa bibliothèque de documents, il ajoute un workflow approbation natif SharePoint 2010.
Il définit les approbateurs commerciaux en parallèle d’abord. Puis ajoute un approbateur technique ensuite.
Il upload un document et exécute son workflow. Cela créé des tâches et des éléments d’historique du workflow. On voit le schéma visio web access représentant le workflow en cours.
Il passe à un des approbateurs commerciaux, voit dans ses mails qu’il a une tâche.
Il valide la tâche.
Démo d’un workflow natif, rien de spécial.

// Annonce
SPC3994 : What’s new in Workflow for SharePoint Online Il y a des nouveaux templates de workflows qui arrivent sur SharePoint Online !!

// Outils de création de workflows
Navigateur —> SharePoint Designer 2013 (et Visio) —> Visual Studio 2012/2013 Dans l’ordre de plus en plus complexe.

// Scénario de workflow à faire en SharePoint Designer – avec des personnes de son tenant Katie veut un site d’équipe. Elle appelle l’admin SharePoint Alex.
Quand il raccroche Alex a eu une urgence et oublie. De plus il a beaucoup de demandes de sites d’équipes à sa décharge.
On va chercher à automatiser l’approbation et la création de sous-sites avec SharePoint Designer.
Pour préparer le terrain, il crée une liste de demandes de Team sites avec quelques informations comme le nom, la justifications etc.
Il ouvre SharePoint Designer, et crée un workflow de liste en mode SharePoint 2013. Il va dans le designer et crée un « Call HTTP Web Service » qui est une action qui permet d’appeler des APIs REST. Il fait remarquer que de nouvelles actions existent, aussi faire des boucles (for et while), des blocs en parallèle.
Il passe en Visual Designer ce qui ouvre un outil basé sur Visio, où on peut effectivement ajouter des vraies actions. Il ajoute une étape « Attente d’approbation ».
Il ajoute une action « Assigner une tâche » où on peut configurer une tâche. On peut ajouter des rappels en cas de retard.
Il rattache son étape à l’étape création de site en cas de succès, aller à l’étape d’échec le cas échéant.
Il revient sur son Text-Based designer et sa tâche est effectivement là.
Il a créé une étape « Création de site » qui est exécuté avec les APIs REST en cas de succès de l’approbation.
Il démontre un bouton « App Step » qui permet d’effectuer une action avec des droits supérieurs pour le workflow. Pour ça on doit l’activer et donner des droits de full control au service. Il nous invite à voir cela sur internet où la documentation a été faite.
En validant sa tâche, approuvant la demande, son workflow passe en « Creating Team Site », et à la fin son sous-site est créé.

// SharePoint Designer 2013
La version 2013 est grandement améliorée au niveau des custom workflows.
C’est CET outil qu’il conseille pour les workflow business assez simplement.
Il y a beaucoup de nouvelles fonctionnalités.

// Scénario pour workflow – Tweet avec Visual Studio 2013 Garth a une idée de tweet pour le compte de son entreprise.
Il doit faire valider à Katie qui est responsable de la communication.
Ce qu’elle aimerait est de valider le tweet de Garth et automatiquement le poster.
Il montre l’App Contoso tweet for SharePoint qu’il a réalisé.
On passe sur Visual Studio 2013, il a crée une App SharePoint 2013 en provider-hosted.
Il ajoute des listes de workflow history et tâches pour le workflow.
Il ajoute un workflow dans son projet. Dans le designer en xaml, il crée des activités de tâches, des conditions.
A noter que son mail est customisé dans la tâche Visual Studio.
Dans la page Default.aspx, il utilise jQuery et une librairie twitter pour poster ton tweet.
Il a fait un WebService custom dans son projet qui va gérer la cryptographie que Twitter demande dans ses APIs car celui de base ne le fait pas.

// Architecture de l’App Twitter
Azure Workflow est dans Windows Azure.
Le Team Site et l’App est côté SharePoint Online. L’App Web contient les listes du Workflow.
Enfin Twitter est à côté.
Du team site on va vers l’App sur Azure, qui lance le workflow sur Azure workflow, workflow qui utilise les listes de l’App Web, mais aussi le web service sur Azure qui va poster le tweet.

// Les workflows en farm ou sandbox
Ils sont toujours supportés. Les solutions fermes ne sont pas supportés dans SharePoint Online.
Le code dans les solutions sandbox sont dépréciées (celles sans code sont toujours supportées).
Choses importantes mais pas de scoop.

// Comment choisir parmi les outils.
SharePoint Designer 2013 est le plus facile à utiliser notamment pour les power users. Développeurs, pensez-y aussi, c’est un outil plutôt puissant plutôt que de faire forcément quelque chose sur Visual Studio.

Christian

[SPC14] Building a modern portal in 75 minutes

Mail de Fabien

Session présentée par :
• Andrew Connell
• Daniel Kogan
• Luca Bandinelli
• Alissa Levitz
• Jeremy Keley

// résumé

Ils vont construire une intranet en 75 min.
Le scenario : woodgrove va fusionner avec contoso.

Une session plutôt drôle et pleine de démos.
Parfait pour mettre en perspective les travaux : design vs contenu vs paramétrages.

A voir en webcast, car complexe a retranscrire !

// Scenario :

Ils vont construire une intranet en 75 min.
Le scenario : woodgrove va fusionner avec contoso.
L’intranet de woodgrove date de 98, les gens qui l’ont construit sont encore là et ils sont fiers de leur vieil intranet. (une page html qui fleure bon 1998).

Le board de contoso veut qqchose de moderne.
Contoso veut :
• Social
• Vidéo
• Search driven
• Responsive
• Dans le Cloud

Petit jeu de rôle entre eux pour convaincre l’IT de woodgrove.

// design

Ils commencent par créer le design. Deux choix device Channel pu responsive design. Le choix ici est d’utiliser le « responsive SharePoint » (codeplex). Une starter kit qui permet de faire du responsive dans sp plus facilement.

// content

Il vont utiliser au maximum la cswp qui est dispo online depuis octobre pour rappel.

// personnalisation

Idem, on va utiliser les cswp pour filtrer par utilisateur.

// social

Ils intègrent la conversation yammer via la webpart dans le portail sur la home.

Elle édite le page layouts d’un article pour y intégrer le feed yammer, cela permet d’avoir des commentaires yammer. Le bout de code a intégrer est dispo sur le site de Dev yammer.

// vidéo portal

Ils vont maintenant intégrer les vidéos d’un vidéo portal dans l’intranet.
Ils les surfacent encore via une cswp.

Fabien