ApplicationRegistry Class (Microsoft.Office.Server.ApplicationRegistry.Administration)
Provides access to all of the line-of-business (LOB) systems and LOB system instances registered in the Business Data Catalog. This is the top-level object in the Business Data Catalog's object model. It is the entry point for you to create, read, update and delete all the metadata objects including LobSystem, Entity and Method. The ApplicationRegistry object has its own ACL and a user should at least have the Edit right on it to create a new LobSystem.

Namespace: Microsoft.Office.Server.ApplicationRegistry.Administration
Assembly: Microsoft.SharePoint.Portal (in microsoft.sharepoint.portal.dll)
Syntax

Visual Basic (Declaration)
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel:=True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel:=True)> _
Public Class ApplicationRegistry
    Inherits IndividuallySecurableMetadataObject
Visual Basic (Usage)
Dim instance As ApplicationRegistry
C#
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel=true)] 
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel=true)] 
public class ApplicationRegistry : IndividuallySecurableMetadataObject
Remarks

The Business Data Catalog is implemented as an Office SharePoint Server 2007 shared service and is shared across a Shared Resource Provider. Therefore, before you can use the ApplicationRegistry object, you need to specify the Shared Resource Provider associated with the Business Data Catalog.

The first code snippet below shows how to set the default Shared Resource Provider in your local server farm for use with the Business Data Catalog. After you specify the Shared Resource Provider, you can use the ApplicationRegistry object to work with the Business Data Catalog.

The second code snippet shows how to create an LobSystem instance and LobSystemInstance object in the Business Data Catalog.

Example

The following code example shows you how to create an LobSystem instance and set connection parameters.

Prerequisites

  • Ensure a Shared Service Provider is already created.

  • Replace the constant value EnterYourSSPNameHere in the code with the name of your Shared Resource Provider.

Project References

Add the following Project References in your console application code project before running this sample:

  • Microsoft.SharePoint

  • Microsoft.SharePoint.Portal

  • Microsoft.Office.Server

C#
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;

namespace Microsoft.SDK.SharePointServer.Samples
{
    class GetStartedAndCreateSystem
    {
        const string yourSSPName ="EnterYourSSPNameHere";

        static void Main(string[] args)
        {
            SetupBDC();
            CreateLobSystemAndInstance();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        static void CreateLobSystemAndInstance()
        {
            LobSystem system = ApplicationRegistry.Instance.LobSystems.Create("AdventureWorksSampleFromCode", true, "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbSystemUtility", "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbConnectionManager", "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbEntityInstance");

            LobSystemInstance sysInstance = system.LobSystemInstances.Create("AdventureWorksSampleFromCode", true);

            sysInstance.Properties.Add("AuthenticationMode", (Int32)Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode.PassThrough);

            sysInstance.Properties.Add("DatabaseAccessProvider", (Int32)Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider.SqlServer);

            sysInstance.Properties.Add("RdbConnection Data Source", "YourAdvWorks2000ServerNameHere");

            sysInstance.Properties.Add("RdbConnection Initial Catalog", "AdventureWorks2000");

            sysInstance.Properties.Add("RdbConnection Integrated Security", "SSPI");

            sysInstance.Properties.Add("RdbConnection Pooling", "false");

            sysInstance.Properties.Add("WildCardCharacter", "%");

            sysInstance.Update();
            Console.WriteLine("Created a system instance successfully.");
        }
    }
}
Inheritance Hierarchy

System.Object
   Microsoft.Office.Server.ApplicationRegistry.Administration.MetadataObject
     Microsoft.Office.Server.ApplicationRegistry.Administration.AccessControlledMetadataObject
       Microsoft.Office.Server.ApplicationRegistry.Administration.IndividuallySecurableMetadataObject
        Microsoft.Office.Server.ApplicationRegistry.Administration.ApplicationRegistry
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Tags :


Community Content

Ron Lewandowski
How to add a LobSystem and Instance while importing a Applicationdefinition whith WSS 3.0

Add the following Project References to your project:

  • Microsoft.SharePoint
  • Microsoft.SharePoint.Portal
  • Microsoft.Office.Server
     

Tell the System which Shared Service Provider to use:

  SqlSessionProvider.Instance().SetSharedResourceProviderToUse(SharedServiceProviderName);

 

Load Application Definition File (BDC) into a stream:

  FileStream xmlStream = new FileStream("C:/MYLOB.xml", FileMode.Open, FileAccess.Read);
ParseContext parseContext = new ParseContext();
   

 

Import the Package:

  ApplicationRegistry.Instance.ImportPackage(xmlStream, parseContext, PackageContents.Model | PackageContents.Properties | PackageContents.Permissions | PackageContents.LocalizedNames);

 

Tags :

elena.n
Correct LobSystemInstance property types

The sample code provided is incorrectly converts DatabaseAccessProvider property to Int32:
The statement
sysInstance.Properties.Add("DatabaseAccessProvider", (Int32)Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider.SqlServer);
should be
sysInstance.Properties.Add("DatabaseAccessProvider", Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider.SqlServer);

When parameter is passed as integer, we get "The requested Database Access Provider is not supported" exception from the DbAccessProviderObjectFactory.

Tags :

Page view tracker