Share via


Procédure pas à pas : utilisation de composants de code réutilisables BCS dans une solution déclarative

Vous pouvez étendre davantage une solution Outlook déclarative intermédiaire en affichant des actions code, des parties de données externes personnalisées et en utilisant des gestionnaires de Ruban personnalisés. SDK SharePoint 2010 comprend l’Exemple de code : composants réutilisables de la solution Outlook déclarative AdventureWorks2008.

Dernière modification : jeudi 2 septembre 2010

S’applique à : SharePoint Server 2010

Cet exemple définit un gestionnaire de Ruban personnalisé, une parties de données externes personnalisée et une action de code. Pour la procédure permettant de créer ces composants de code, voir la section Création et utilisation de composants de code réutilisables dans une solution Outlook déclarative plus loin dans cette rubrique. La première partie de cette rubrique explique comment référencer et utiliser des composants de code existants dans une solution Outlook déclarative intermédiaire. La seconde partie indique comment créer et utiliser les composants de code réutilisables dans une solution Outlook déclarative intermédiaire.

Important

Avant d’empaqueter la solution, vous devez copier les assemblys Microsoft .NET Framework qui définissent ces composants de code dans le dossier Solution Artifacts de la solution déclarative.

En un clin d’œil : utilisation de composants de code existants dans une solution Outlook déclarative intermédiaire

Utilisation d’une action de code personnalisée

Dans le fichier OIR.config, vous pouvez utiliser une action de code personnalisée comme illustré dans l’exemple suivant.

<Declarative:CodeMethodAction Name ="CreateTaskAction" MethodType ="Custom" 
  MethodName="NewCustomVisitTask" 
  QualifiedTypeName="ContosoCustomer.CustomCodeAction, ContosoCustomer, 
  Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
  <Declarative:Parameters>
    <Declarative:ConstantParameter Name="Para1" 
                                   Value="EditRelatedOrderHeader" 
                                   ValueType="System.String"/>
  </Declarative:Parameters>
</Declarative:CodeMethodAction>

Utilisation d’une partie de données externes personnalisée dans une mise en page

Dans le fichier de mise en page, vous pouvez faire référence à une partie de données externes personnalisée comme indiqué dans le code suivant.

<?xml version="1.0" encoding="utf-8" ?>
<Container ContainerType="Stack" 
  xmlns="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout" 
  xmlns:loc="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Localization">
  <CustomProperties />
  <Children>
    <OBPart DataSourceName="PrimaryEntityNameInContext" PartType="Custom" 
            Text="Related Order" FillParent="true" 
            QualifiedTypeName="ContosoCustomer.CustomOBPart, ContosoCustomer, 
            Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
      <CustomProperties />
    </OBPart>
  </Children>
</Container>

Utilisation d’un gestionnaire de Ruban personnalisé

Dans le fichier OIR.config, spécifiez le gestionnaire de Ruban personnalisé comme indiqué dans le code suivant.

<SolutionSettings SolutionId="ContosoSalesManager" 
                  SolutionDisplayName="Contoso Sales Manager" 
                  SolutionVersion="1.0.0.0" 
                  xsl:type="Declarative:DeclarativeSolutionSettings" 
                  CustomRibbonManager="ContosoCustomer.CustomRibbonManager, 
                  ContosoCustomer, Version=1.0.0.0, Culture=neutral, 
                  PublicKeyToken=e355b6f7ef818b12"/>

Création et utilisation de composants de code réutilisables dans une solution Outlook déclarative

Cette section contient les étapes qui permettent de créer et d’utiliser des composants de code réutilisables, à savoir une action de code personnalisée, une partie de données externe personnalisée et un gestionnaire de Ruban personnalisé. Pour créer la solution dans cette procédure pas à pas, vous devez au préalable suivre les étapes de la Procédure pas à pas : Création d’une solution Outlook déclarative intermédiaire afin de créer les artefacts de solution que vous modifierez dans cette procédure pas à pas.

Les extraits de code utilisés dans cette procédure pas à pas sont les suivants :

Éléments prérequis

Pour créer, générer et déployer la solution

  1. Créez un projet de bibliothèque de classes C# dans Visual Studio 2010, puis nommez-le ContosoCustomer.

  2. Ajoutez les références suivantes à votre projet :

    • Microsoft.Office.Interop.Outlook

    • Office

    • System.Windows.Forms

  3. Ajoutez les assemblys suivants spécifiques à Microsoft Business Connectivity Services (BCS) à partir du dossier d’installation d’Office (le chemin d’accès est généralement C:\Program Files\Microsoft Office\Office14\, mais peut être différent dans votre environnement) :

    • Microsoft.BusinessData.dll

    • Microsoft.Office.BusinessApplications.Runtime.dll

    • Microsoft.Office.BusinessApplications.RuntimeUi.dll

  4. Ajoutez un nouveau fichier de classe à votre projet et nommez-le CustomCodeAction.cs.

  5. Remplacez le code dans CustomCodeAction.cs par le code se trouvant dans Extrait de code : action de code personnalisée.

  6. Ajoutez un nouveau fichier de classe à votre projet et nommez-le CustomRibbonManager.cs.

  7. Remplacez le code dans CustomRibbonManager.cs par le code se trouvant dans Extrait de code : gestionnaire de Ruban personnalisé.

  8. Ajoutez un nouveau contrôle utilisateur à votre projet et nommez-le CustomOBPart.cs.

  9. Affichez le code du fichier CustomOBPart.cs et remplacez son contenu par le code du premier exemple indiqué dans Extrait de code : Partie de données externes personnalisée.

  10. Remplacez le code de CustomOBPart.Designer.cs par le code du second exemple indiqué dans Extrait de code : Partie de données externes personnalisée.

  11. Signez la solution.

    Dans les propriétés du projet, sous l’onglet Signature, sélectionnez Signer l’assembly, puis créez un fichier de clé. Vous pouvez choisir les nom et mot de passe de fichier de clé de votre choix.

  12. Générez la solution.

    Cette opération génère l’assembly dans le dossier bin\Debug (ou bin\Release) du dossier du projet.

  13. Copiez l’assembly dans le dossier des artefacts de solution. L’assembly a été généré lorsque vous avez généré la solution à l’étape précédente.

  14. Ouvrez le fichier OIR.config à partir du dossier des artefacts de solution et ajoutez le XML d’action de code personnalisée suivant avant la balise de fin ContextDefinition de OutlookContactCustomer.

    Vous devez disposer d’un dossier d’artefacts de solution après avoir suivi les étapes de la Procédure pas à pas : Création d’une solution Outlook déclarative intermédiaire.

    <Declarative:CodeMethodAction Name ="EditRelatedOrderHeaderAction" 
                                  MethodType ="ShowTaskpaneLayout">
      <Declarative:Parameters>
        <Declarative:ConstantParameter Name="Para1" 
                                       Value="EditRelatedOrderHeader" 
                                       ValueType="System.String"/>
      </Declarative:Parameters>
    </Declarative:CodeMethodAction>
    <Declarative:CodeMethodAction 
      Name ="CreateTaskAction" MethodType ="Custom" 
      MethodName="NewCustomVisitTask" 
      QualifiedTypeName="ContosoCustomer.CustomCodeAction, ContosoCustomer, 
      Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
    </Declarative:CodeMethodAction>
    

    Modifiez le XML d’action de code personnalisée. Dans l’élément CodeMethodAction, remplacez la valeur de l’attribut QualifiedTypeName par le nom d’assembly complet du type CustomCodeAction de l’assembly généré lorsque vous avez généré la solution lors d’une étape précédente.

  15. Ouvrez Ribbon.xml à partir du dossier des artefacts de solution et ajoutez la définition de bouton de Ruban et d’onglet suivante pour CreateTaskAction dans l’élément tabs.

    <tab idMso="TabContact">
      <group id="ContosoCustomerSalesGroupID"
             label="Contoso Customer Sales" getVisible="GetVisible" tag="Context[OutlookContactCustomer.ContosoCustomerSalesGroupID]">
        <button id="NewCustomerVisitTaskButton"
                     size="large"
                     label="New Customer Visit Task"
                     onAction="OnAction"
                     image="TaskItem.bmp"
                     getEnabled ="GetEnabled"
                     tag="Action[OutlookContactCustomer.CreateTaskAction]"
                      />
      </group>
    </tab>
    
  16. Dans Ribbon.xml, ajoutez la définition de bouton de Ruban suivante pour EditRelatedOrderHeaderAction dans le groupe ContosoCustomerSalesGroupID de l’onglet ContosoSalesSolutionTabID.

    <button id="EditRelatedOrderHeaderButton"
            size="large"
            label="Edit Customer Orders"
            onAction="OnAction"
            image="ArrowGreen.jpg"
            getEnabled ="GetEnabled"
            tag="Action[OutlookContactCustomer.EditRelatedOrderHeaderAction]"
    />
    
  17. Ajoutez l’attribut CustomRibbonManager à l’élément SolutionSettings dans le fichier OIR.config comme indiqué dans l’exemple de code XML suivant.

    <SolutionSettings 
      SolutionId="ContosoSalesManager"
      SolutionDisplayName="Contoso Sales Manager"
      SolutionVersion="1.0.0.0"
      xsl:type="Declarative:DeclarativeSolutionSettings"
      CustomRibbonManager="ContosoCustomer.CustomRibbonManager, ContosoCustomer, 
      Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12"/>
    
  18. Remplacez la valeur de l’attribut CustomRibbonManager par le nom d’assembly complet du type CustomRibbonManager de l’assembly généré lorsque vous avez généré la solution lors d’une étape précédente.

  19. Créez un fichier nommé EditRelatedOrderHeader.xml dans le dossier des artefacts de solution et ajoutez-y l’exemple XML de partie de données externes personnalisée suivant. Ensuite, enregistrez le fichier dans le dossier des artefacts de solution.

    <?xml version="1.0" encoding="utf-8" ?>
    <Container ContainerType="Stack"
      xmlns="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout"
      xmlns:loc="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Localization">
      <CustomProperties />
      <Children>
        <OBPart DataSourceName="PrimaryEntityNameInContext" PartType="Custom"
                Text="Related Order" FillParent="true"
                QualifiedTypeName="ContosoCustomer.CustomOBPart, ContosoCustomer, 
                Version=1.0.0.0, Culture=neutral, PublicKeyToken=e355b6f7ef818b12">
          <CustomProperties />
        </OBPart>
      </Children>
    </Container>
    
  20. Modifiez le fichier EditRelatedOrderHeader.xml. Dans l’élément OBPart, remplacez la valeur de l’attribut QualifiedTypeName par le nom d’assembly complet du type CustomOBPart de l’assembly généré lorsque vous avez généré la solution lors d’une étape précédente.

  21. Ajoutez la mise en page au fichier OIR.config. Dans le fichier OIR.config, ajoutez le code suivant dans l’élément Layouts avant la balise de fin ContextDefinition de OutlookContactCustomer.

    <Declarative:Layout Name="EditRelatedOrderHeader" 
                        LayoutFileName="EditRelatedOrderHeader">
    </Declarative:Layout>
    
  22. Empaquetez votre solution, puis déployez-la.

    1. Démarrez l’outil d’empaquetage de solution BCS (éventuellement en anglais).

    2. Fournissez un nom et une version pour votre solution, puis sélectionnez Outlook Intermediate Declarative Solution pour le type de solution.

    3. Sélectionnez le dossier des artefacts de solution pour Source Folder Path.

    4. Créez un dossier sur votre ordinateur local et sélectionnez-le pour Output Folder Path.

    5. Cliquez sur Package pour empaqueter la solution.

    6. Cliquez sur Deploy pour déployer la solution.

Notes

Les exemples XML mentionnés précédemment contiennent déjà le nom d’assembly complet des classes CustomCodeAction, CustomRibbonManager et CustomOBPart pour les valeurs XML CodeMethodAction, CustomRibbonManager et OBPart, respectivement. Toutefois, vous devez mettre à jour les valeurs des noms d’assembly complet, car la valeur PublicKeyToken sera différente lorsque vous aurez signé l’assembly de cette solution. En outre, si vous avez utilisé un nom d’espace de noms ou des noms de classe différents, les noms d’assembly complet seront différents et devront être mis à jour.