Compartilhar via


FilterDescriptor De classe

Os filtros são a maneira fundamental na qual o Business Data Catalog captura entrada usuário (ou sistema) e plumbs-la por meio para a invocação do back-end API. FilterDescriptors descrever onde uma série complexa de parâmetros, um valor filtro deve ser inserido. Isso é conseguido 'indicação' de TypeDescriptors que representa parâmetros complexos de uma definição do método para sinalizador onde a inserção deve acontecer. É importante para detalhes que o back-end deve fornecer a funcionalidade de filtragem; o FilterDescriptors forma simplesmente um mecanismo para superfície isso para o usuário final. Objetos FilterDescriptor pertencem (contidos) dentro do método objetos. Eles são chamados subseqüentemente por objetos TypeDescriptor.

Espaço para nome Microsoft.Office.Server.ApplicationRegistry.Administration
Conjunto de Módulos (Assembly) Microsoft.SharePoint.Portal (em microsoft.sharepoint.portal.dll)

A sintaxe

<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel:=True)> _
<SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel:=True)> _
Public Class FilterDescriptor
    Inherits AccessControlledMetadataObject

Dim instance As FilterDescriptor
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel=true)] 
[SharePointPermissionAttribute(SecurityAction.Demand, ObjectModel=true)] 
public class FilterDescriptor : AccessControlledMetadataObject

Comentários

Os usuários podem desejar para recuperar as instâncias de uma entidade que correspondam aos alguns critérios.De exemplo, um usuário pode desejar para exibir os clientes cujos nomes começam com "A" ou os pedidos feitos por um determinado cliente.O API usado para recuperar clientes requer que este entrada do usuário ser passado como o terceiro parâmetro Seqüência de caracteres na chamada.O autor metadados criará um FilterDescriptor de um tipo de caractere curinga, e depois raiz da marca o terceiro parâmetro TypeDescriptor com esse recém-criadas FilterDescriptor.Muitos tais FilterDescriptors podem ser associado com um único .Users Method (API), em seguida, escolher o filtro desejar em tempo de execução, especificar um valor para ele e o Business Data Catalog passa que valor do filtro para o método back-end, inseri-la para a localidade exatamente onde o back-end espera dele, que faz com que ele, em seguida, retorna apenas as linhas o usuário quer ver.

Dica

FilterDescriptor é um objeto metadados enquanto os filtros são executar-objetos tempo.FilterDescriptor FilterDescriptor descrevem o disponível filtros em um método.

Filtering Patterns

Linha - de - sistemas empresa (LOB) fornecem vários mecanismos filtragem.O Business Data Catalog comum resumos padrões para que ele pode fornecer aos usuários com a mesma filtragem semântica, regardless of o fonte de dados.O Business Data Catalog suporta o seguinte filtros e filtragem padrões:

  • Wildcard filtro limites As instâncias retornadas aos onde campo field like value, onde valor pode conter o caractere curinga asterisco (*).Os usuários podem usar esse tipo filtro para apresentar mais amigável filtros such as "começa com" e "contém".

  • Comparison filtro limites As instâncias retornadas para essas onde the condition is met. SQL dá suporte a ele com o WHERE WHERE cláusula.

  • Limitar filtro limites de número de ocorrências retornadas ao nLimit .SQL oferece suporte a ele com a cláusula SELECT TOP SELECT TOP.Usando um filtro limite, você pode evitar longos aguarda, pontos negativos tempo e também usuários evitar de emissão incorreto consultas que solicitação grandes quantidades de dados.

  • UserContext UserContext limites de ocorrências pela atual contexto do usuário.Este filtro informa a Business Data Catalog para anexar o atual domínio ome do usuário Microsoft Windows para chamar o método.

  • Username limites de Ocorrências por um nome único usuário Sign-on (SSO).Este filtro informa a Business Data Catalog para transmitir Nome de usuário a partir de SSO como parte de um parâmetro para chamar o método.

  • Password Works com o filtro Username Nome de usuário.Este filtro informa a Business Data Catalog para transmitir a senha do SSO como parte de um parâmetro para chamar o método.

    Dica

    A definição método back-end deve suporte os filtros.Só então pode, em um contextual maneira, use filtros para refletir no aplicativo de front-end a funcionalidade que está disponível na back-end.Os metadados simplesmente declara que filtros oferece suporte a um método.

  • UserProfile USERPROFILE um tipo simples filtro você pode especificar no FilterDescriptor FilterDescriptor definição.Para usar este filtro, declare um filtro do tipo "USERPROFILE" e adicionar um System.String System.String propriedade com o nome "UserProfilePropertyName", cujo valor é o nome de uma propriedade User Profile.O Business Data Catalog será aspecto até o atual perfil do usuário, ler o valor da propriedade com este nome e inserir que através para a invocação do back-end.

  • SSOTicket faz o Business Data Catalog para transmitir o tíquete de SSO do SSO como parte de um parâmetro para chamar o método.

  • LastIdSeen LastIdSeen reunir para IDEnumerator enumeração membros.Para serviços da Web e outros aplicativos back-end não-fluxo contínuo, você deve usar o filtro LastIdSeen no seu membro IDEnumerator para melhorar desempenho, como mostra o seguinte exemplo:

    SELECT TOP 100 Id FROM Customers WHERE Id>=@LastIdSeen
    ORDER BY Id
    

Usuário filtros como caractere curinga e intervalo declarar quais usuários entradas podem substituir e filtros sistema, como UserContext e UserProfile permitem o Business Data Catalog para definir valores such as token usuário de forma segura.

Importante

Se um autor metadados cria incorreto metadados que utiliza um nome usuário como um filtro User-controllable e confidencial retorna pessoais dados, um usuário podem ver dados do outro usuário.  Para evitar isso, use UserContextFilter para transmitir no nome do usuário para chamar o método.

O repositório metadados determinar qual filtra o sistema oferece suporte a consulta Clientes e processar seu usuário interfaces de acordo.

A seguir é as propriedades que aceita o objeto FilterDescriptor FilterDescriptor para banco de dados e serviço da Web sistemas.

Propriedade

Tipo

Necessários

Valor padrão

Limites/aceitos valores

Comentários

UsedForDisambiguation

System.Boolean

Não

false

True

FALSO

Se true verdadeiro, este filtro é usado no selecionador de dados empresa para gerar a lista das possíveis correspondências.

CaseSensitive

System.Boolean

Não

false

True

FALSO

Se true, Business Data Web Parts e selecionador de dados Business informam o usuário Este filtro é com diferenciação de maiúsculas e minúsculas.

IsDefault

System.Boolean

Não

false

True

FALSO

Se true verdadeiro, este filtro é selecionada Por padrão no selecionador de Business Data.

Exemplo

O seguinte exemplo de código mostra como criar um método, completo com instâncias método, filtro descritores, valores usar como padrão e TypeDescriptors para a entidade ProductModel no banco de dados de AdventureWorks2000.

Prerequisites

Project References

Adicione o seguinte referências do projeto no seu projeto código do aplicativo console antes execução neste exemplo:

  • 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();
            CreateFinderMethod();
            Console.WriteLine("Press any key to exit...");
            Console.Read();
        }
        static void SetupBDC()
        {
            SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
        }
        static void CreateFinderMethod()
        {

            LobSystemInstance mySysInstance = null;
            LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
            foreach (LobSystemInstance sysInstance in sysInsCollection)
            {
                if (sysInstance.Name == "AdventureWorksSampleFromCode")
                {
                    mySysInstance = sysInstance;
                    break;
                }
            }
            EntityCollection entityColl = mySysInstance.LobSystem.Entities;
            foreach (Entity entity in entityColl)
            {
                if (entity.Name == "ProductModel")
                {
                    Method meth = entity.Methods.Create("GetProductModels", true, true);
                    meth.Properties.Add("RdbCommandText", "SELECT ProductModelID, Name, CatalogDescription FROM ProductModel WHERE Name LIKE @Name");
                    meth.Properties.Add("RdbCommandType", System.Data.CommandType.Text);
                    FilterDescriptor fd = meth.FilterDescriptors.Create("Name", true, "Microsoft.Office.Server.ApplicationRegistry.Runtime.WildcardFilter");
                    Parameter p1 = meth.Parameters.Create("@Name", true, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.DirectionType.In, "Microsoft.Office.Server.ApplicationRegistry.Infrastructure.DotNetTypeReflector");
                    TypeDescriptor td1 = p1.CreateRootTypeDescriptor("Name", true, "System.String", null, fd, false);
                    Parameter p2 = meth.Parameters.Create("ProductModels", true, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.DirectionType.Return, "Microsoft.Office.Server.ApplicationRegistry.Infrastructure.DotNetTypeReflector");
                    IList<Identifier> ids = new List<Identifier>(entity.Identifiers);
                    Identifier id = ids[0];
                    TypeDescriptor td2 = p2.CreateRootTypeDescriptor("ProductModelDataReader", true, "System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", null, null, true);
                    TypeDescriptor td21 = td2.ChildTypeDescriptors.Create("ProductModelDataRecord", true, "System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", null, null, false);
                    TypeDescriptor td210 = td21.ChildTypeDescriptors.Create("ProductModelID", true, "System.Int32", id, null, false);
                    TypeDescriptor td211 = td21.ChildTypeDescriptors.Create("Name", true, "System.String", null, null, false);
                    TypeDescriptor td212 = td21.ChildTypeDescriptors.Create("CatalogDescription", true, "System.String", null, null, false);
                    MethodInstance methInst1 = meth.MethodInstances.Create("ProductModelFinder", true, td2, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.MethodInstanceType.Finder);
                    MethodInstance methInst2 = meth.MethodInstances.Create("ProductModelSpecificFinder", true, td2, Microsoft.Office.Server.ApplicationRegistry.MetadataModel.MethodInstanceType.SpecificFinder);
                    IList<MethodInstance> methInstCollection = new List<MethodInstance>(entity.MethodInstances);
                    td1.SetDefaultValue(methInstCollection[0].Id, "%");
                    td1.SetDefaultValue(methInstCollection[1].Id, "%");
                    Console.WriteLine("Created the finder method successfully.");
                    break;
                }
            }
        }
    }
}

Hierarquia de herança

System.Object
   Microsoft.Office.Server.ApplicationRegistry.Administration.MetadataObject
     Microsoft.Office.Server.ApplicationRegistry.Administration.AccessControlledMetadataObject
      Microsoft.Office.Server.ApplicationRegistry.Administration.FilterDescriptor

Segmento de segurança

Qualquer público estático ( compartilhadas Na Visual Basic) os membros desse tipo são segmento seguro. Os membros de instância não são garantia ser segmento seguro.

Consulte também

Referência

FilterDescriptor Membros
Microsoft.Office.Server.ApplicationRegistry.Administration De espaço para nome