Exportar (0) Imprimir
Expandir todo

Tutorial: Usar componentes de código reutilizables de BCS en una solución declarativa

SharePoint 2010

Puede extender una solución declarativa intermedia de Outlook aún más mediante la presentación de datos externos personalizados, acciones de código y mediante el uso de administradores de la cinta de opciones personalizada. El SDK de SharePoint 2010 incluye el Ejemplo de código: componentes reutilizables de la solución declarativa de Outlook AdventureWorks2008.

Última modificación: jueves, 02 de septiembre de 2010

Hace referencia a: SharePoint Server 2010

En este ejemplo se definen un administrador de cinta de opciones personalizada, un parte de datos externos personalizado y una acción de código. Para conocer los pasos necesarios para crear estos componentes de código, vea la sección Crear y utilizar componentes de código reutilizable en una solución declarativa de Outlook más adelante. En la primera parte de este tema se explica cómo hacer referencia a componentes del código existente y cómo utilizarlos en una solución declarativa intermedia de Outlook. En la segunda parte se describen los pasos para crear y usar los componentes de código reutilizables en una solución declarativa intermedia de Outlook.

Nota importante Importante

Antes de empaquetar la solución, debe copiar los ensamblados de Microsoft .NET Framework que definen estos componentes de código en la carpeta Solution Artifacts para la solución declarativa.

Usar una acción de código personalizado

En el archivo OIR.config, puede usar una acción de código personalizado, tal como se muestra en el siguiente ejemplo.

<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>

Usar una partición de datos externos personalizada en un diseño

En el archivo de diseño, puede hacer referencia a una partición de datos externos personalizada, tal como se muestra en el siguiente código.

<?xml version="1.0" encoding="utf-8" ?>
<Container ContainerType="Stack" 
  xmlns="http://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout" 
  xmlns:loc="http://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>

Usar un Administrador de cinta de opciones personalizada

En el archivo OIR.config, especifique el Administrador de cinta de opciones personalizada tal como se muestra en el siguiente código.

<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"/>

En este tema se detallan los pasos necesarios para crear componentes de código reutilizables, por ejemplo, una acción de código personalizada, una partición de datos externos personalizada y un administrador de cinta de opciones personalizada. Para crear la solución en este tutorial, primero debe crear los artefactos de la solución que se modificarán. Para ello, siga los pasos descritos en Tutorial: Creación de una solución declarativa intermedia de Outlook.

Los fragmentos de código usados en este tutorial son los siguientes:

Requisitos previos

Para crear, compilar e implementar la solución

  1. Cree un proyecto de biblioteca de clases en C# en Visual Studio 2010 y, a continuación, denomínelo ContosoCustomer.

  2. Agregue las siguientes referencias a su proyecto:

    • Microsoft.Office.Interop.Outlook

    • Office

    • System.Windows.Forms

  3. Agregue los siguientes ensamblados específicos de Servicios de conectividad empresarial (BCS) de Microsoft desde la carpeta de instalación de Office (la ruta generalmente es C:\Program Files\Microsoft Office\Office14\, pero es posible que sea diferente en su entorno):

    • Microsoft.BusinessData.dll

    • Microsoft.Office.BusinessApplications.Runtime.dll

    • Microsoft.Office.BusinessApplications.RuntimeUi.dll

  4. Agregue un nuevo archivo de clase al proyecto y denomínelo CustomCodeAction.cs.

  5. Reemplace el código en CustomCodeAction.cs por el código de Fragmento de código: acción de código personalizada.

  6. Agregue un nuevo archivo de clase al proyecto y denomínelo CustomRibbonManager.cs.

  7. Reemplace el código en CustomRibbonManager.cs por el código desde Fragmento de código: administrador de la cinta de opciones personalizada.

  8. Agregue un nuevo control de usuario al proyecto y denomínelo CustomOBPart.cs.

  9. Vea el código del archivo CustomOBPart.cs y reemplace el contenido por el código del primer ejemplo en Fragmento de código: Parte de datos externos personalizada.

  10. Reemplace el código de CustomOBPart.Designer.cs por el código del segundo ejemplo en Fragmento de código: Parte de datos externos personalizada.

  11. Firme la solución.

    En las propiedades del proyecto, en la ficha Firma, seleccione Firmar el ensamblado y, a continuación, cree un archivo de claves. Puede elegir cualquier nombre y contraseña para el archivo de claves.

  12. Compile la solución.

    Esto genera el ensamblado en la carpeta bin\Debug (o bin\Release) en la carpeta del proyecto.

  13. Copie el ensamblado en la carpeta de artefactos de la solución. En ensamblado se generó cuando se creó la solución en el paso anterior.

  14. Abra el archivo OIR.config desde la carpeta de artefactos de la solución y agregue el siguiente archivo XML de acción de código personalizado antes de la etiqueta final ContextDefinition de OutlookContactCustomer.

    Debe tener una carpeta de artefactos de la solución después de seguir los pasos descritos en Tutorial: Creación de una solución declarativa intermedia de Outlook.

    <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>
    
    

    Edite el archivo XML de acción de código personalizado. En el elemento CodeMethodAction, reemplace el valor del atributo QualifiedTypeName por el nombre calificado del ensamblado del tipo CustomCodeAction del ensamblado generado cuando se creó la solución en un paso anterior.

  15. Abra Ribbon.xml desde la carpeta de artefactos de la solución y agregue la siguiente etiqueta y definición del botón de la cinta para CreateTaskAction dentro del elemento 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. En Ribbon.xml, agregue la siguiente definición del botón de la cinta para EditRelatedOrderHeaderAction dentro del grupo ContosoCustomerSalesGroupID de la etiqueta ContosoSalesSolutionTabID.

    <button id="EditRelatedOrderHeaderButton"
            size="large"
            label="Edit Customer Orders"
            onAction="OnAction"
            image="ArrowGreen.jpg"
            getEnabled ="GetEnabled"
            tag="Action[OutlookContactCustomer.EditRelatedOrderHeaderAction]"
    />
    
  17. Agregue el atributo CustomRibbonManager al elemento SolutionSettings en el archivo OIR.config como se muestra en el siguiente ejemplo XML.

    <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. Reemplace el valor del atributo CustomRibbonManager por el nombre calificado del ensamblado del tipo CustomRibbonManager del ensamblado generado cuando se creó la solución en un paso anterior.

  19. Cree un archivo denominado EditRelatedOrderHeader.xml en la carpeta de artefactos de la solución y agréguele el siguiente ejemplo XML del elemento de datos externos personalizado. A continuación, guarde el archivo en la carpeta de artefactos de la solución.

    <?xml version="1.0" encoding="utf-8" ?>
    <Container ContainerType="Stack"
      xmlns="http://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout"
      xmlns:loc="http://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. Edite el archivo EditRelatedOrderHeader.xml. En el elemento OBPart, reemplace el valor del atributo QualifiedTypeName por el nombre calificado del ensamblado del tipo CustomOBPart del ensamblado generado cuando se creó la solución en un paso anterior.

  21. Agregue el diseño en el archivo OIR.config. En el archivo OIR.config, agregue lo siguiente dentro del elemento Layouts antes de la etiqueta final ContextDefinition de OutlookContactCustomer.

    <Declarative:Layout Name="EditRelatedOrderHeader" 
                        LayoutFileName="EditRelatedOrderHeader">
    </Declarative:Layout>
    
  22. Empaquete la solución y, a continuación, impleméntela.

    1. Inicie la Herramienta de empaquetado de soluciones de BCS.

    2. Proporcione un nombre y una versión para la solución y seleccione Solución declarativa intermedia de Outlook para el tipo de solución.

    3. Seleccione la carpeta de artefactos de la solución como la Ruta a la carpeta de origen.

    4. Cree una carpeta en el equipo local y selecciónela como la Ruta a la carpeta de salida.

    5. Haga clic en Empaquetar para empaquetar la solución.

    6. Haga clic en Implementar para implementar la solución.

Nota Nota

Los ejemplos XML mencionados anteriormente ya tienen el nombre completo del ensamblado de las clases CustomCodeAction, CustomRibbonManager y CustomOBPart para los valores XML CodeMethodAction, CustomRibbonManager y OBPart, respectivamente. Sin embargo, tiene que actualizar los valores de nombre completo del ensamblado, ya que el valor PublicKeyToken será diferente después de firmar el ensamblado de esta solución. Además, si usó un nombre de espacio de nombres o nombres de clases diferentes, los nombres completos del ensamblado pueden variar y deben actualizarse.

Mostrar:
© 2014 Microsoft