Compartir a través de


Fragmento de código: importación de un modelo BDC al Repositorio de metadatos

Última modificación: jueves, 13 de mayo de 2010

Hace referencia a: SharePoint Server 2010

En el siguiente ejemplo se muestra cómo importar un modelo BDC a un catálogo de conjuntos o granjas de servidores.

Requisitos previos:

  • Microsoft SharePoint Server 2010 o Microsoft SharePoint Foundation 2010.

  • Microsoft .NET Framework 3.5.

Para usar este ejemplo

  1. Inicie Visual Studio y cree un nuevo proyecto de aplicación de consola C#. Seleccione .NET Framework 3.5 cuando cree el proyecto.

  2. En el menú Ver, haga clic en Páginas de propiedades para que aparezcan las propiedades del proyecto.

  3. En la ficha Compilación, para el Destino de la plataforma, seleccione Cualquier CPU.

  4. Cierre la ventana de propiedades del proyecto.

  5. En el Explorador de soluciones, en Referencias, quite todas las referencias del proyecto excepto System y System.Core.

  6. Agregue las siguientes referencias al proyecto:

    1. Microsoft.BusinessData

    2. Microsoft.SharePoint

    3. System.Web

  7. Reemplace el código de Program.cs por el código que aparece al final de este procedimiento.

  8. Guarde el proyecto.

  9. Reemplace los valores de strModelName y strXmlFile2Import por el nombre y la ruta de acceso completa del archivo de modelo, respectivamente.

  10. Reemplace el valor de strSomeSite por la dirección URL de un sitio en la granja de servidores.

  11. Compile y ejecute el proyecto.

  12. Abra Internet Explorer y navegue a la administración central de la granja de servidores.

  13. En el explorador, haga clic en Administrar aplicaciones de servicio.

  14. Haga clic en Servicio de conectividad a datos empresariales.

    Nota

    Business Data Connectivity Service es el nombre predeterminado del servicio de BDC. Si el administrador ha asignado otro nombre al servicio de BDC, aparecerá un nombre distinto en la página web de Administración central.

    A continuación se muestra el modelo recién importado.

using System;
using System.IO;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.BusinessData.Administration;
using Microsoft.SharePoint.BusinessData.Parser;
using Microsoft.SharePoint.BusinessData.SharedService;

namespace Microsoft.SDK.Sharepoint.Samples
{
    class Program
    {
        static void Main(string[] args)
        {
            # region declarations and initializations

            // The model name is used to compose its file name 
            // and also to check hits existence in the catalog.
            string strModelName = "testBCSimport";

            // The full path to the XML model to import.
            string strXmlFile2Import = @".\" + strModelName + ".xml";

            // A site in the farm is used as a reference point 
            // to the farm.
            string strSomeSite = "http://intranet.contoso.com/";

            // The model definition file is the XML data to import.
            string strXmlData2Import;

            // An array to gather the non-critical errors encountered 
            // during the import process.
            string[] strarrNoncriticalErrors;

            // Specify what to import: {"All", "InlineProxies", 
            // "LocalizedNames", "Model", "None", "Permissions", 
            // "Properties"}.
            PackageContents packageContentsImportFlags = 
                PackageContents.All;

            // Setting to use when obtaining resources to 
            // import the model.
            string strResourcesSettingId = "";

            // If blUpdateExistingModel is true, the model definition 
            // that was already in the database is updated 
            // to contain only the external content types 
            // in the given XML. 
            // This method throws an exception if the model 
            // is not in the database. 
            // If blUpdateExistingModel is false, the model is
            // created for the first time, 
            // and this method throws an exception if the 
            // model already exists in the database. 
            // When the model is being updated, the external 
            // content types that were previously in the model 
            // are not deleted. 
            //   The caller must clean them up separately.
            bool blUpdateExistingModel = false;

            // A GUID that is used to track this import process.
            Guid guidJobId = 
                new Guid("C6E88A92-31C2-4D02-9890-5DC2ADB36EA9");

            # endregion declarations and initializations

            # region import

            try
            {
                // Get the model.
                strXmlData2Import = File.ReadAllText(strXmlFile2Import);

                // Identify the farm using a site in the farm.
                using (SPSite site = new SPSite(strSomeSite))
                {
                    // Reference the farm to host the BCS definitions.
                    using (new Microsoft.SharePoint.SPServiceContextScope(
                        SPServiceContext.GetContext(site)))
                    {
                        // Reference the BDC service.
                        BdcService service = 
                            SPFarm.Local.Services.GetValue<BdcService>
                            (String.Empty);

                        // Get the catalog of the referenced BDC service.
                        AdministrationMetadataCatalog cat = 
                            service.GetAdministrationMetadataCatalog(
                            SPServiceContext.Current);

                        // Import the XML definition.
                        Model bcsadminModel = cat.ImportPackage(
                            strXmlData2Import,
                            out strarrNoncriticalErrors,
                            packageContentsImportFlags,
                            strResourcesSettingId,
                            blUpdateExistingModel,
                            guidJobId);

                        Console.Out.NewLine = "\n\r\n\r";
                        int iNumOfNoncriticalErrors = 
                            strarrNoncriticalErrors.Length;
                        if (iNumOfNoncriticalErrors > 0)
                        {
                            Console.WriteLine("Noncritical Errors");
                            for (int iCtr = 0; 
                                iCtr < iNumOfNoncriticalErrors; 
                                iCtr++)
                            {
                                Console.WriteLine(
                                    strarrNoncriticalErrors[iCtr]);
                            }
                        }
                        Console.WriteLine(
                            "Import completed successfully");
                        // Now go to the farm's central administration, 
                        // click Manage service applications,
                        // click Business Data Connectivity 
                        // (the name of the BDC service) 
                        // and enjoy the newly imported model.
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.Read();
            }

            # endregion import
        }
    }
}

Vea también

Referencia

PackageContents

BdcService

Services

AdministrationMetadataCatalog

GetAdministrationMetadataCatalog(SPServiceContext)

ImportPackage(String, [], PackageContents, String, Boolean, Guid)

Model