Workflows et BCS sous
SharePoint 2013
Qui suis-je ?
nabil.babaci@azeo.com
http://dotnet4ever.fr
https://www.codeplex.com/site/users/view/nabilbabaci
Agenda
Workflow
• Dans la théorie
• Nouveautés
• Workflow manager
• Architecture & Topologie
• Workflow Service Manager
• Dans la pratique
• Binaires
• Workflow Manager en détail
• Configuration
• Tools
• Démo
• Troubleshooting courant
Agenda
BCS
• Dans la théorie
• Nouveautés
• ODATA
• ECT
• Dans la pratique
• SPO ODATA
• SPO AppLevel
Workflow en Théorie
Théorie > Nouveautés générales
Haute disponibilité, Multi tenant (WF cluster )
Scalabilité horizontale
Déclaratif (xaml) :
• Fin du Custom Code
• Custom Code => Web Service et Custom Code Activity
SharePoint Online : déjà installé, transparent pour
l’utilisateur
Service Bus (Hérité d’Azure) : REST & Message (
formatage du message )
Communication en CSOM
OOTB :
• Vue :
• Style Visio
• Style Classique
• Nouvelles Actions & Activities ( Http Web
Service, JSON, Get Items from Dictionary…)
Théorie > Workflow
Manager
Anciennement Windows Azure Workflow
Non installé par défaut
Non créé pour fonctionner avec SharePoint
Foundation 2013
Rappel Foundation => Workflow 2010
uniquement
Framework .NET 4.5
Pas de Workflow template pour 2013,
uniquement 2010
Support VS 2012 , SPDesigner 2013, Visio 2013
Théorie > Architecture
2 composants : WFM et Service Bus
WFM :
• utilise le Service Bus ( couche de communication)
• REST ( appels HTTP/S)
Service Bus :
• Facilite la communication entre serveurs
(OAUTH)
• Hérité d’azure, maintenant on-Prem
• Intermédiaire ( message delivery, check l’état du
WF)
Token OAuth : App ID + User Context
initializer
Théorie > Architecture
SharePoint Host 2013
Théorie > Topologie
Cohabitation
Cohabitation:
• NLB en entré
• WF Manager + WF Client installés
sur la même machine
• 1 DB
• HA 3 fermes
Théorie > Topologie Fédéré
Fédéré :
• WF Manager sur d’autres serveur ( sans SP)
• WF Client installé sur chaque machine
• HA 3 WF nodes
Théorie >WF Service
manager
Deployment :
• Description des WF
• Scope SPDesigner ou Browser ( commande de Publication)
Messaging :
• Déclenche des events quand il y a changement
• Notification au près du WF Manager
• Accessible depuis les APPS
Instance : Manage les instances (start, stop,status)
Interop : En charge d’invoquer les WF 2010
Théorie > WF Service manager >
Interop
Cas :
• Héritage de WF 2010
• Besoin d’accès à des activités sous SP2010
• Encapsulation
SP2013
WF Manager
WF HOST 3.5
Instance 2013Instance 2010
Start Request
Messagelayer
WF
Service
REST endpoint
Exécution
Events
WorkflowInterop.Wait
Exécution
Notification
Workflow en Pratique
Pratique > Binaires
WF Client 1.0
WF Manager 1.0
WF Manager CU 1.0
WF Manager Tools 1.0 Visual Studio
2012 Core
WF Manager Tools 1.0 Visual Studio
2012
Dépendance :
• Service Bus + CU 1.0
• App Fabric 1.0
Pratique > WF Manager en
détail
IIS : WorkflowMgmtPool, http et https
4 NT Services :
• Workflow Manager Backend
• Service Bus Message Broker
• Service Bus Gateway
• Windows Fabric Host Service
Base de données:
• Workflow databases:
• WFManagementDB : Base de données de gestion de la batterie de serveurs de WFM
• WFInstanceManagementDB : Magasin de gestion des instances
• WFResourceManagemetDB : Magasin de gestion des ressources
• Service bus databases:
• SBManagementDB :Base de données de gestion de la batterie de serveurs Service Bus
• SbGatewayDatabase :Base de données de passerelle Service Bus
• SBMessageContainer01-n :Bases de données de conteneurs de messages
Pratique > Configuration
1. Configuration par défaut ( sur la ferme)
• Utilisez un compte de service différent ( svc_wf + accès
DBO sur MASTER)
• 3Fichiers à garder :
• Config.txt
• Powershell.txt
• Journal.txt
2. Configuration personnalisé
3. Joindre une ferme
Register-SPWorkflowService ( pour SPDesigner)
IIS – WF management Site
Workflow Service Proxy => Status ok
Démo
Pratique > Custom > Custom
Action & Activities
SPD 2007/2010 SPD 2013
• Declarative Custom Activity « Sandbox + Farm +
SPO » , No code
• Code Custom Activity (On Prem) => SPD
1. Workflow Manager
• Custom assembly dans :
• WorkflowArtifacts
• WorkflowWFWebRootbin
• AllowedType.xml à copier dans les
dossiers
• Restart “Workflow Manager backend”
2. SharePoint
• GAC/BIN
• .actions4 dans
TEMPLATE1033Workflow
• Reset IIS
3. Client
• SPD cache à supprimer
(%LocalAppdata%MicrosoftWebsiteCache)
Pratique > Custom > Types
manquant
Trusted Surface : Primitives définies par défaut (OOTB)
Type Supporting Activities
String String Activities
Date support using DateTime and TimeSpan Date Support Activities
Numeric support using Int32 and Double Numeric Type Activities
Boolean Boolean Activities
Guid Guid Activities
ICollection, including IList Collection Activities
IDictionary and KeyValuePair IDictionary
DynamicValue DynamicValue Activities
Exception Exception Activities
Uri Uri Activities
Pratique > Custom > Types
manquant
AllowedTypes.xml :
• WFWebRootbin
• WorkflowArtifacts
• Multi-tenant : copie sur chaque serveur
Pratique > Debug
• Fiddler 
• Debug Mode > Breakpoint et Console
• Pour SPO pas de Debug -> History List, Remote
Log, Custom Web Part Log
• Event Viewer > Dossier Workflow
• WFInstancesManagementDB >Debug Traces
Pratique > Troubleshooting
courant
Register-SPWorkflowService : Unable to load one or more
of the requested types. Retrieve the LoaderExceptions property for more
information
• Assembly à supprimer ( Preview -> RTM = relicat)
• Microsoft.SharePoint.WorkflowServices.Activities
• Microsoft.SharePoint.WorkflowServices.Activities.Design
Workflow > Troubleshooting
courant
Erreur 401 sur le WF : Etat « Suspendu »
• User Profile Synchronisation à lancer
• Se connecter avec un compte différent de svc_wf ou
SHAREPOINTSYSTEM
• Compte en Owner
Workflow > Troubleshooting courant
Service bus 403 > Event viewer
• Voir l’état des connexions de sortie
Toolbox avec des éléments dépréciés (
GetCurrentListId ? SetField ?)
• Version de Workflow manager Tool -> Web installer
• Utiliser les DynamicValues (SPListItem + DynamicValue)
Aller plus loin !
Msdn forum : WF manager
La suite détaillée sur mon blog :
http://dotnet4ever.fr
WF Slides et Samples
BCS plus en détail
BCS en Théorie
BCS > Nouveautés
Même mode de fonctionnement entre 2010 et 2013
Amélioration sur les listes externes
SharePoint Apps et Office Apps
Réception d’évènement sur les listes externes
OData ( !! N’est plus présent dans SPDesigner)
REST et CSOM amélioré
Toujours présent , utilisation avec OFFICE
Visio 2013 : lié des données externes sur les diagrammes
Office > BCS office shared features
Hybride : On-Prem <-> Online
Level : Farm, App, .Net Assembly connector, Search
Connector ( No-Code)
BCS > Big picture
BCS > Big Comparaison - OnPrem
Features SharePoint Foundation
SharePoint Server 2013
Standard CAL
SharePoint Server 2013
Enterprise CAL
BCS: Alerts for External
Lists
No Yes Yes
BCS: App Scoped
External Content Types
(ECTs)
No Yes Yes
BCS: Business Data
Webparts
No Yes Yes
BCS: External List Yes Yes Yes
BCS: OData connector No Yes Yes
BCS: Profile Pages No Yes Yes
BCS: Rich Client
Integration
No No Yes
BCS: Secure Store
Service
Yes Yes Yes
BCS: Tenant-level
external data log
No No Yes
BCS> Big Comparaison – O365
Features Small Business
Small Business
Premium
Midsize
Business
Enterprise E1
Education A2
Government G1
Enterprise E3
Education A3
Government
G3
Enterprise E4
Education A4
Government
G4
Enterprise K1
Government
K1
Enterprise
External Users
BCS: Alerts for
External Lists
No No No No Yes Yes No Yes
BCS: App
Scoped
External
Content Types
(ECTs)
No No No No Yes Yes No Yes
BCS: Business
Data
Webparts
No No No No Yes Yes No Yes
BCS: External
List
No No No No Yes Yes No Yes
BCS: OData
connector
No No No No Yes Yes No Yes
BCS: Profile
Pages
No No No No No No No No
BCS: Rich
Client
Integration
No No No No No No No No
BCS: Secure
Store Service
No No No No Yes Yes No Yes
BCS: Tenant-
level external
data log
No No No No Yes Yes No Yes
BCS> Big Comparaison 2010 vs 2013
Business Connectivity
Services Feature
SharePoint 2010 SharePoint 2013
On-Premise SPO On-Prem SPO
External List √ √ √ √
External Data column √ √ √ √
Connectors WCF, SQL, .Net WCF
WCF, SQL, .Net,
OData
WCF, OData,
SQL Azure
Secure Store Service √ √ √ √
Profile Pages √ X √ X
Business Data Web Parts √ √ √ X
Rich Client Integration √ X √ X
BCS connectors for
Search
√ X √ X
InfoPath forms
connected to BCS
√ √ √ √
Notifications from
External Systems.
X X √ √
Hybrid BCS X X √
Additional CSOM APIs
for BCS
X X √ √
App scoped BCS models X X √ √
BCS > ODATA et Apps
Office Apps, SharePoint Apps : BCS est
partout
Hébergement selon 3 modes :
• SharePoint-Hosted App
• Cloud-based Apps (Provider-Hosted App &
Autohosted App)
BCS> Event receiver
Créer des alertes ( UI ou custom code)
Créer des WF sur les External Lists
External System Events feature
Powershell pour gérer les notifications :
• Get-SPBusinessDataCatalogEntityNoticationWeb,
• Clear-SPBusinessDataCatalogEntityNotificationWeb,
• Set-SPBusinessDataCatalogEntityNotificationWeb
BCS >ODATA
PowerShell
• Get-SPODataConnectionSetting
• Set-SPODataConnectionSetting,
• New_SPODataConnectionSetting
• Remove_SPODataConnectionSetting,
• Get-SPODataConnectionSettingMetadata
• Set-SPODataConnectionSettingMetadata
Créer des ECT avec du ODATA !
• Auto sous VS
• Pas sous SPD => WCF et exposer ses données !!! 
Bcs > ODATA Mapping
Modèle Opération HTTP ODATA
Finder Read List GET http://intranet/_api/web/lists/getByTitle(‘Tasks’)/Item
s
Specific
Finder
Read Item GET http://intranet/_api/web/lists/getByTitle(‘Tasks’)/Item
s(1)
Creator Create POST http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item
s
Updater Update PUT http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item
s(2)
Deleter Delete DELETE http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item
s(2)
Association
Navigator
Association GET http://intranet/_vti_bin/LisdtData.svc/Customers(‘Con
toso’)/
Invoices
BCS > ECT Architecture
BCS >ECT
App Level
• Indépendante
• Isolation granulaire
• 1 seul fichier BDCM ( Doc lib) ->
wspimport
• Pas de configuration BDC Service
Application
Farm Level
• BDC Store
• Sandbox aussi
BCS > Limites BDC SA
Type Scope Default Max
Connections Global 100 500
Items Database 2000 25,000
Timeout Database 60 sec 600 sec
Size Service 3 MB 150 MB
Timeout Service 60 sec 600 sec
Démo
Conclusion
Avec les WFS et BCS on peut tout faire !
… ou presque.
Merci

Workflow et bcs sous SharePoint 2013

  • 1.
    Workflows et BCSsous SharePoint 2013
  • 2.
  • 3.
    Agenda Workflow • Dans lathéorie • Nouveautés • Workflow manager • Architecture & Topologie • Workflow Service Manager • Dans la pratique • Binaires • Workflow Manager en détail • Configuration • Tools • Démo • Troubleshooting courant
  • 4.
    Agenda BCS • Dans lathéorie • Nouveautés • ODATA • ECT • Dans la pratique • SPO ODATA • SPO AppLevel
  • 5.
  • 6.
    Théorie > Nouveautésgénérales Haute disponibilité, Multi tenant (WF cluster ) Scalabilité horizontale Déclaratif (xaml) : • Fin du Custom Code • Custom Code => Web Service et Custom Code Activity SharePoint Online : déjà installé, transparent pour l’utilisateur Service Bus (Hérité d’Azure) : REST & Message ( formatage du message ) Communication en CSOM OOTB : • Vue : • Style Visio • Style Classique • Nouvelles Actions & Activities ( Http Web Service, JSON, Get Items from Dictionary…)
  • 7.
    Théorie > Workflow Manager AnciennementWindows Azure Workflow Non installé par défaut Non créé pour fonctionner avec SharePoint Foundation 2013 Rappel Foundation => Workflow 2010 uniquement Framework .NET 4.5 Pas de Workflow template pour 2013, uniquement 2010 Support VS 2012 , SPDesigner 2013, Visio 2013
  • 8.
    Théorie > Architecture 2composants : WFM et Service Bus WFM : • utilise le Service Bus ( couche de communication) • REST ( appels HTTP/S) Service Bus : • Facilite la communication entre serveurs (OAUTH) • Hérité d’azure, maintenant on-Prem • Intermédiaire ( message delivery, check l’état du WF) Token OAuth : App ID + User Context initializer
  • 9.
  • 10.
    Théorie > Topologie Cohabitation Cohabitation: •NLB en entré • WF Manager + WF Client installés sur la même machine • 1 DB • HA 3 fermes
  • 11.
    Théorie > TopologieFédéré Fédéré : • WF Manager sur d’autres serveur ( sans SP) • WF Client installé sur chaque machine • HA 3 WF nodes
  • 12.
    Théorie >WF Service manager Deployment: • Description des WF • Scope SPDesigner ou Browser ( commande de Publication) Messaging : • Déclenche des events quand il y a changement • Notification au près du WF Manager • Accessible depuis les APPS Instance : Manage les instances (start, stop,status) Interop : En charge d’invoquer les WF 2010
  • 13.
    Théorie > WFService manager > Interop Cas : • Héritage de WF 2010 • Besoin d’accès à des activités sous SP2010 • Encapsulation SP2013 WF Manager WF HOST 3.5 Instance 2013Instance 2010 Start Request Messagelayer WF Service REST endpoint Exécution Events WorkflowInterop.Wait Exécution Notification
  • 14.
  • 15.
    Pratique > Binaires WFClient 1.0 WF Manager 1.0 WF Manager CU 1.0 WF Manager Tools 1.0 Visual Studio 2012 Core WF Manager Tools 1.0 Visual Studio 2012 Dépendance : • Service Bus + CU 1.0 • App Fabric 1.0
  • 16.
    Pratique > WFManager en détail IIS : WorkflowMgmtPool, http et https 4 NT Services : • Workflow Manager Backend • Service Bus Message Broker • Service Bus Gateway • Windows Fabric Host Service Base de données: • Workflow databases: • WFManagementDB : Base de données de gestion de la batterie de serveurs de WFM • WFInstanceManagementDB : Magasin de gestion des instances • WFResourceManagemetDB : Magasin de gestion des ressources • Service bus databases: • SBManagementDB :Base de données de gestion de la batterie de serveurs Service Bus • SbGatewayDatabase :Base de données de passerelle Service Bus • SBMessageContainer01-n :Bases de données de conteneurs de messages
  • 17.
    Pratique > Configuration 1.Configuration par défaut ( sur la ferme) • Utilisez un compte de service différent ( svc_wf + accès DBO sur MASTER) • 3Fichiers à garder : • Config.txt • Powershell.txt • Journal.txt 2. Configuration personnalisé 3. Joindre une ferme Register-SPWorkflowService ( pour SPDesigner) IIS – WF management Site Workflow Service Proxy => Status ok
  • 18.
  • 19.
    Pratique > Custom> Custom Action & Activities SPD 2007/2010 SPD 2013 • Declarative Custom Activity « Sandbox + Farm + SPO » , No code • Code Custom Activity (On Prem) => SPD 1. Workflow Manager • Custom assembly dans : • WorkflowArtifacts • WorkflowWFWebRootbin • AllowedType.xml à copier dans les dossiers • Restart “Workflow Manager backend” 2. SharePoint • GAC/BIN • .actions4 dans TEMPLATE1033Workflow • Reset IIS 3. Client • SPD cache à supprimer (%LocalAppdata%MicrosoftWebsiteCache)
  • 20.
    Pratique > Custom> Types manquant Trusted Surface : Primitives définies par défaut (OOTB) Type Supporting Activities String String Activities Date support using DateTime and TimeSpan Date Support Activities Numeric support using Int32 and Double Numeric Type Activities Boolean Boolean Activities Guid Guid Activities ICollection, including IList Collection Activities IDictionary and KeyValuePair IDictionary DynamicValue DynamicValue Activities Exception Exception Activities Uri Uri Activities
  • 21.
    Pratique > Custom> Types manquant AllowedTypes.xml : • WFWebRootbin • WorkflowArtifacts • Multi-tenant : copie sur chaque serveur
  • 22.
    Pratique > Debug •Fiddler  • Debug Mode > Breakpoint et Console • Pour SPO pas de Debug -> History List, Remote Log, Custom Web Part Log • Event Viewer > Dossier Workflow • WFInstancesManagementDB >Debug Traces
  • 23.
    Pratique > Troubleshooting courant Register-SPWorkflowService: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information • Assembly à supprimer ( Preview -> RTM = relicat) • Microsoft.SharePoint.WorkflowServices.Activities • Microsoft.SharePoint.WorkflowServices.Activities.Design
  • 24.
    Workflow > Troubleshooting courant Erreur401 sur le WF : Etat « Suspendu » • User Profile Synchronisation à lancer • Se connecter avec un compte différent de svc_wf ou SHAREPOINTSYSTEM • Compte en Owner
  • 25.
    Workflow > Troubleshootingcourant Service bus 403 > Event viewer • Voir l’état des connexions de sortie Toolbox avec des éléments dépréciés ( GetCurrentListId ? SetField ?) • Version de Workflow manager Tool -> Web installer • Utiliser les DynamicValues (SPListItem + DynamicValue)
  • 26.
    Aller plus loin! Msdn forum : WF manager La suite détaillée sur mon blog : http://dotnet4ever.fr WF Slides et Samples BCS plus en détail
  • 27.
  • 28.
    BCS > Nouveautés Mêmemode de fonctionnement entre 2010 et 2013 Amélioration sur les listes externes SharePoint Apps et Office Apps Réception d’évènement sur les listes externes OData ( !! N’est plus présent dans SPDesigner) REST et CSOM amélioré Toujours présent , utilisation avec OFFICE Visio 2013 : lié des données externes sur les diagrammes Office > BCS office shared features Hybride : On-Prem <-> Online Level : Farm, App, .Net Assembly connector, Search Connector ( No-Code)
  • 29.
    BCS > Bigpicture
  • 30.
    BCS > BigComparaison - OnPrem Features SharePoint Foundation SharePoint Server 2013 Standard CAL SharePoint Server 2013 Enterprise CAL BCS: Alerts for External Lists No Yes Yes BCS: App Scoped External Content Types (ECTs) No Yes Yes BCS: Business Data Webparts No Yes Yes BCS: External List Yes Yes Yes BCS: OData connector No Yes Yes BCS: Profile Pages No Yes Yes BCS: Rich Client Integration No No Yes BCS: Secure Store Service Yes Yes Yes BCS: Tenant-level external data log No No Yes
  • 31.
    BCS> Big Comparaison– O365 Features Small Business Small Business Premium Midsize Business Enterprise E1 Education A2 Government G1 Enterprise E3 Education A3 Government G3 Enterprise E4 Education A4 Government G4 Enterprise K1 Government K1 Enterprise External Users BCS: Alerts for External Lists No No No No Yes Yes No Yes BCS: App Scoped External Content Types (ECTs) No No No No Yes Yes No Yes BCS: Business Data Webparts No No No No Yes Yes No Yes BCS: External List No No No No Yes Yes No Yes BCS: OData connector No No No No Yes Yes No Yes BCS: Profile Pages No No No No No No No No BCS: Rich Client Integration No No No No No No No No BCS: Secure Store Service No No No No Yes Yes No Yes BCS: Tenant- level external data log No No No No Yes Yes No Yes
  • 32.
    BCS> Big Comparaison2010 vs 2013 Business Connectivity Services Feature SharePoint 2010 SharePoint 2013 On-Premise SPO On-Prem SPO External List √ √ √ √ External Data column √ √ √ √ Connectors WCF, SQL, .Net WCF WCF, SQL, .Net, OData WCF, OData, SQL Azure Secure Store Service √ √ √ √ Profile Pages √ X √ X Business Data Web Parts √ √ √ X Rich Client Integration √ X √ X BCS connectors for Search √ X √ X InfoPath forms connected to BCS √ √ √ √ Notifications from External Systems. X X √ √ Hybrid BCS X X √ Additional CSOM APIs for BCS X X √ √ App scoped BCS models X X √ √
  • 33.
    BCS > ODATAet Apps Office Apps, SharePoint Apps : BCS est partout Hébergement selon 3 modes : • SharePoint-Hosted App • Cloud-based Apps (Provider-Hosted App & Autohosted App)
  • 34.
    BCS> Event receiver Créerdes alertes ( UI ou custom code) Créer des WF sur les External Lists External System Events feature Powershell pour gérer les notifications : • Get-SPBusinessDataCatalogEntityNoticationWeb, • Clear-SPBusinessDataCatalogEntityNotificationWeb, • Set-SPBusinessDataCatalogEntityNotificationWeb
  • 35.
    BCS >ODATA PowerShell • Get-SPODataConnectionSetting •Set-SPODataConnectionSetting, • New_SPODataConnectionSetting • Remove_SPODataConnectionSetting, • Get-SPODataConnectionSettingMetadata • Set-SPODataConnectionSettingMetadata Créer des ECT avec du ODATA ! • Auto sous VS • Pas sous SPD => WCF et exposer ses données !!! 
  • 36.
    Bcs > ODATAMapping Modèle Opération HTTP ODATA Finder Read List GET http://intranet/_api/web/lists/getByTitle(‘Tasks’)/Item s Specific Finder Read Item GET http://intranet/_api/web/lists/getByTitle(‘Tasks’)/Item s(1) Creator Create POST http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item s Updater Update PUT http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item s(2) Deleter Delete DELETE http://intranet/_api/web/lists/getByTitle(‘Tasks’)/item s(2) Association Navigator Association GET http://intranet/_vti_bin/LisdtData.svc/Customers(‘Con toso’)/ Invoices
  • 37.
    BCS > ECTArchitecture
  • 38.
    BCS >ECT App Level •Indépendante • Isolation granulaire • 1 seul fichier BDCM ( Doc lib) -> wspimport • Pas de configuration BDC Service Application Farm Level • BDC Store • Sandbox aussi
  • 39.
    BCS > LimitesBDC SA Type Scope Default Max Connections Global 100 500 Items Database 2000 25,000 Timeout Database 60 sec 600 sec Size Service 3 MB 150 MB Timeout Service 60 sec 600 sec
  • 40.
  • 41.
    Conclusion Avec les WFSet BCS on peut tout faire ! … ou presque.
  • 42.