Action Class
Represents an action in the Business Data Catalog.
Inheritance Hierarchy
System.Object
Microsoft.Office.Server.ApplicationRegistry.Administration.MetadataObject
Microsoft.Office.Server.ApplicationRegistry.Administration.AccessControlledMetadataObject
Microsoft.Office.Server.ApplicationRegistry.Administration.Action
Namespace: Microsoft.Office.Server.ApplicationRegistry.Administration
Assembly: Microsoft.SharePoint.Portal (in Microsoft.SharePoint.Portal.dll)
Syntax
'Declaration
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public Class Action _
Inherits AccessControlledMetadataObject
'Usage
Dim instance As Action
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public class Action : AccessControlledMetadataObject
Remarks
Entities can have actions in the Business Data Catalog. Actions bridge the gap between Microsoft Office SharePoint Server 2007 and a native application user interface by providing a link to the back-end data source. You can use Business Data actions to build applications with write-back scenarios, such as a Customer Profile view that allows a user to update profile information directly in SAP. Actions are implemented as links, so you can also use actions to perform simple actions such as to send an e-mail message or open a customer’s home page.
Actions travel everywhere with an entity. That is, after you define an action for an entity, the action shows up everywhere you display that entity—be it in a Business Data Web Part or in a Business Data column.
Actions can take parameters. The ActionParameter object defines the parameters the action accepts.
Schema
Child |
Type |
Occurs |
Default |
Limits / Accepted Values |
Description |
---|---|---|---|---|---|
Position |
Attribute (bdc:ActionPosition) |
1..1 |
Min.: 1 |
||
IsOpenedInNewWindow |
Attribute (Boolean) |
0..1 |
false |
If true, the action opens in a new browser window. |
|
Url |
Attribute (String) |
1..1 |
Min. length: 1 Max. length: 2080 |
URL to go to when the action is clicked. The URL string is a .NET Framework format string. Each format specifier (e.g., {0}) corresponds to an action parameter. |
|
ImageUrl |
Attribute (String) |
0..1 |
Min. length: 0 Max length: 2080 Should min. be 1 for consistency? |
Absolute or relative path to the action's icon image. The icon image should be 16x16 pixels. |
|
ActionParameters |
Element |
0..1 |
No max. ActionParameters elements per action enforced |
Container element for ActionParameter. |
Examples
The following code example adds an action and updates the ProductModel entity.
Prerequisites
Ensure a Shared Service Provider is already created.
Create an LobSystemInstance object and set connection parameters, as shown in How to: Create an LobSystem Using the Administration Object Model.
Create the ProductModel entity as shown in How to: Create an Entity Using the Administration Object Model
Create a Finder method as shown in How to: Create a Method and Filters Using the Administration Object Model
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
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();
UpdateEntity();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void UpdateEntity()
{
LobSystemInstance mySysInstance = null;
LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
foreach (LobSystemInstance sysInstance in sysInsCollection)
{
if (sysInstance.Name == "AdventureWorksSampleFromCode")
{
mySysInstance = sysInstance;
break;
}
}
IList<Entity> entityCollection = new List<Entity>(mySysInstance.LobSystem.Entities);
Entity e = entityCollection[0];
Action pmaction = e.Actions.Create("Search on MSN", true, 1, true, "https://www.msn.com?q={0}", null);
pmaction.ActionParameters.Create("Name", true, 0);
Console.WriteLine("Added an action and updated the entity successfully.");
}
}
}
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
Reference
Microsoft.Office.Server.ApplicationRegistry.Administration Namespace