Schritt 8 (Optional): Definieren des Menübands und der Aktionen ("Ribbon.xml")

Nachdem Sie einer anspruchsvolleren deklarativen Outlook-Lösung ein Aufgabenbereichslayout hinzugefügt haben, können Sie auch eine benutzerdefinierte Definition für die Menübanddatei hinzufügen. In der Menübanddatei werden Aktionen angegeben, die über das Menüband aufgerufen werden.

Letzte Änderung: Montag, 22. August 2011

Gilt für: SharePoint Server 2010

Für viele Aktionen befindet sich beispielsweise auf dem Menüband eine Schaltfläche, mit der der Aufgabenbereich geöffnet wird. Das Verhalten beim Öffnen des Aufgabenbereichs wäre eine Aktion. In der Menübanddatei wird das standardmäßige Menübandschema verwendet, das von allen Microsoft Office-Anwendungen verwendet wird.

Die Aktionen von Business-Konnektivitätsdienste (Business Connectivity Services) können URL-basiert oder codebasiert sein. Bei URL-basierten Aktionen wird zu einer angegebenen URL navigiert, wenn die Aktion ausgeführt wird (beispielsweise, wenn auf eine Menübandschaltfläche geklickt wird). URL-basierte Aktionen können in der Datei Ribbon.xml deklarativ definiert werden. Mit Codeaktionen wird Code ausgeführt, wenn auf eine Menübandschaltfläche geklickt wird. Codeaktionen müssen von einem Entwickler erstellt werden, bevor sie verwendet werden können.

Das Codebeispiel: AdventureWorks2008 Declarative Outlook Solution enthält das benutzerdefinierte Menübandmenü Contoso Sales Manager. Wenn Sie auf Contoso Sales Manager klicken, werden zwei Menübandschaltfläche wie folgt angezeigt:

  • Related Orders Wenn auf diese Schaltfläche geklickt wird, wird der Aufgabenbereich mit dem Auftragsverlauf angezeigt.

  • Phone Lookup Wenn auf diese Schaltfläche geklickt wird, wird ein Browserfenster mit der Seite für die MSN-Telefonnummernsuche geöffnet und nach der Telefonnummer des Kunden gesucht.

So erstellen Sie eine Menübanddatei

  1. Sie können das BCS Artifact Generator-Tool verwenden, um die Manifestdatei für den Formularbereich auf der Grundlage des BDC-Modells zu erstellen.

    Alternativ können Sie das Formularbereichmanifest wie folgt manuell erstellen.

    1. Suchen Sie die Datei Vorlage: "Ribbon.xml" im SDK, kopieren Sie die Datei, und speichern Sie sie dann im Ordner Solution Artifacts als OutlookContactRibbon.xml.

    2. Öffnen Sie die Datei OutlookContactRibbon.xml zur Bearbeitung in einem XML-Editor. Wenn Sie die XML-Datei in Visual Studio öffnen, fügen Sie das Office-Menübandschema (Office 2010-Referenz: XML-Schema für die Office Fluent-Benutzeroberfläche) an. Dadurch erhalten Sie IntelliSense-Funktionalität und können gültige Einträge erstellen.

    3. Ersetzen Sie die mit EnterX markierten Werte im XML-Code durch gültige Werte. Nachfolgend sehen Sie ein XML-Beispiel, in dem der mögliche XML-Code nach der Bearbeitung gezeigt wird.

      <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" 
                onLoad="OnLoad" loadImage="GetImage">
        <ribbon>
          <tabs>
            <tab id="tabID" label="Contoso Sales Manager" 
                 getVisible="GetVisible" tag="Solution">
              <group id="CustomerSalesGroupID" label="Customer Sales" 
                     getVisible="GetVisible" 
                     tag="Context[OutlookContactCustomer.CustomerSalesGroupID]">
                <button id="relatedOrderHeaderButton"
                            size="large"
                            label="Customer Orders"
                            onAction="OnAction"
                            image="Arrow.jpg"
                          getEnabled ="GetEnabled"
                          tag="Action[OutlookContactCustomer.RelatedOrderHeaderAction]"
                        />
              </group>
              <group id="CustomerActionsGroupID" label="Customer Actions" 
                     getVisible="GetVisible" 
                     tag="Context[OutlookContactCustomer.CustomerActionsGroupID]">
                <button id="SearchCustomerByPhoneButton"
                           size="large"
                           label="Phone Lookup"
                           onAction="OnAction"
                           image="MagGlass.png"
                         getEnabled ="GetEnabled"
                         tag="Action[OutlookContactCustomer.SearchCustomerByPhoneAction]"
                        />
              </group>
            </tab>
          </tabs>
        </ribbon>
      </customUI>
      
    4. Speichern und schließen Sie die Datei.

  2. Öffnen Sie die Datei OIR.config zur Bearbeitung. Aktualisieren Sie OIR.config, um anzugeben, welche Menübanddatei geladen werden soll. Fügen Sie dazu das RibbonFileName-Attribut wie im folgenden Beispiel gezeigt hinzu.

    <ContextDefinitionGroup 
      xsl:type="Declarative:DeclarativeContextDefinitionGroup" 
      ItemType="OutlookContact" RibbonFileName="OutlookContactRibbon.xml">
    
  3. Fügen Sie wie im folgenden Beispiel gezeigt eine ContextDefinitionGroup für die Zuordnung von Aufträgen hinzu, um anzugeben, wie externe Auftragselemente abgerufen werden sollen. Dieser Schritt ist optional und ist nur erforderlich, wenn Sie Aktionen im Rich List-Part anzeigen möchten.

    <ContextDefinitionGroup ItemType="EntityView">
      <!-- The content type has to be in the format: -->
      <!-- length_of_entity_namespace="" length_of_entity_name="" 
      length_of_view_name="" entity_namespace="" entity_name="" 
      view_name="" position_of_entity_namespace="" -->
      <ContextDefinition 
        ContentType="12 12 24 AWWSExample OrderHeader GetSalesOrderHeaderById 9" 
        xsl:type="Declarative:DeclarativeContextDefinition">
        <Entities>
          <Entity Name="OrderHeader" EntityTypeName="OrderHeader" 
                  EntityTypeNamespace="AWWSExample">
            <View Name="PrimaryEntityNameInContext" 
                  ViewName="GetSalesOrderHeaderById" 
                  Description="GetSalesOrderHeaderById" IsPrimary="true" />
          </Entity>
        </Entities>
        <Declarative:Layouts>
          <Declarative:Layout Name="Edit" LayoutFileName="EditOrderHeader">
            <Declarative:Properties>
              <Declarative:Property Name="AssociatedActionType" Value="Edit" />
            </Declarative:Properties>
          </Declarative:Layout>
        </Declarative:Layouts>
        <Declarative:Actions>
          <Declarative:CodeMethodAction MethodType="EditEntity" Name="Edit" 
                                        Caption="Edit Order" 
                                        DisplayLocations="ItemContextMenu" 
                                        DisplayOrder="2" Scope="ItemContext" />
        </Declarative:Actions>
      </ContextDefinition>
    </ContextDefinitionGroup>
    
  4. Aktualisieren Sie die Datei OIR.config, um der BCS-Clientlaufzeit die Informationen zu den gewünschten Menübandschaltflächen und den zugeordneten Aktionen für die ContextDefinition für den Kunden zu liefern. Fügen Sie den folgenden Code unter dem <Declarative:Layouts>-Tag in der ContextDefinition für den Kunden hinzu.

    <Declarative:Actions>
      <Declarative:CodeMethodAction Name ="RelatedOrderHeaderAction" 
                                    MethodType ="ShowTaskpaneLayout">
        <Declarative:Parameters>
          <Declarative:ConstantParameter Name="Para1" 
                                         Value="RelatedOrderHeader" 
                                         ValueType="System.String"/>
        </Declarative:Parameters>
      </Declarative:CodeMethodAction>
      <Declarative:UrlAction 
        Name="SearchCustomerByPhoneAction" 
        Url="http://msn.whitepages.com/search/ReversePhone?full_phone={0}">
        <Declarative:Parameters>
          <Declarative:ExpressionParameter 
            Name="Para1" 
            EntityViewInstanceReference="PrimaryEntityNameInContext" 
            Expression="Phone"/>
        </Declarative:Parameters>
      </Declarative:UrlAction>
    </Declarative:Actions>
    <Declarative:ContextEventHandlers>
      <Declarative:ContextActivated ActionName="RelatedOrderHeaderAction" />
    </Declarative:ContextEventHandlers>
    
  5. Speichern und schließen Sie die Datei.

  6. Packen Sie die Lösung, stellen Sie diese bereit, und testen Sie, ob die Lösung erwartungsgemäß funktionsfähig ist.

Sie haben nun erfolgreich eine anspruchsvollere deklarative Outlook-Lösung erstellt.