Compartilhar via


MethodInstance

Um objeto MethodInstance MethodInstance descreve como usar um método via um determinado conjunto de valores usar como padrão e um tipo instância método, que é um Business Data Catalog de semântica. Um objeto MethodInstance MethodInstance é uma referência a um método, além de valores usar como padrão para os parâmetros. Um objeto MethodInstance MethodInstance pode ser executado, enquanto um objeto do método não pode ser executado. Um método único pode ter múltiplo método instâncias, com cada objeto MethodInstance MethodInstance sendo uma combinação de assinatura de método e um conjunto de valores usar como padrão. Você pode usar instâncias método para executar o mesmo método com valores diferentes usar como padrão.

Método instâncias são especialmente úteis para serviços da Web complexos. Se um método retorna múltiplo ou aninhados complexo estruturas, a MethodInstance metadados podem especificar quais as estruturas ou parte de estrutura para retornar para o cliente. Para completamente definir um objeto MethodInstance MethodInstance, opcionalmente, você pode definir um elemento TypeDescriptor TypeDescriptor along with o return parameter em XML. A seguir é um exemplo.

<MethodInstance name="bla" Type="Finder" ReturnParametername="foo" ReturnTypeDescriptorname="baz" ReturnTypeDescriptorLevel="5">

O atributo ReturnTypeDescriptorName é opcional. Se não for especificado, o Business Data Catalog assumirá a raiz TypeDescriptor do Return elemento parâmetro. O atributo ReturnTypeDescriptorLevel também é opcional. Se ele não for especificado e houver mais de uma maneira semelhante nomeado tipo descritores an é acionada. Se houver mais de uma maneira semelhante nomeado descritores tipo de mesmo nível (que é raro), o primeiro será adotado. Essa flexibilidade é importante, pois permite a reutilização de um objeto WebMethod WebMethod em múltiplo maneiras. Considere um WebMethod que retorna coleções de clientes, e cada cliente contém uma coleção de endereços. Três Business Data Catalog MethodInstance objetos MethodInstance usam este WebMethod: um localizador do cliente, um SpecificFinder ao cliente e uma associação CustomerToAddress (retorna endereços de um cliente). No modelo de MethodInstance MethodInstance, o autor metadados deve definir apenas a parte do Return parâmetro que seja de relevância, permitindo um usuário para especificar o TypeDescriptor dentro de Return parâmetro.

As associações são derivado classes de classes MethodInstance MethodInstance e a associação formato definição também opcionalmente leva em valores ReturnTypeDescriptor ReturnTypeDescriptor.

<Association name="CustomerToAddresses" AssociationMethodEntityname="Customer" AssociationMethodname="GetCustomerByID" AssociationMethodReturnParametername="Customer" AssociationMethodReturnTypeDescriptorname="CustomerAddresses" AssociationMethodReturnTypeDescriptorLevel="1">
      <SourceEntity name="Customer" />
      <DestinationEntity name="Address" />
    </Association>

Finalmente, o modelo objeto para MethodInstance também fornece um acessador ReturnTypeDescriptor ReturnTypeDescriptor/propriedade. Como o modelo objeto funciona com objeto referências, existe o ReturnParameter é implicitamente parte o ReturnTypeDescriptor e não mais necessidade para especificar um ReturnParameter ao usar o modelo objeto.

Determinadas instâncias método tem finalidades especiais que genérico habilitar clientes.

Localizadores e SpecificFinders

Um Finder é um método especial que retorna instâncias entidade. Um SpecificFinder retorna exatamente uma instância entidade. Finder métodos são métodos estáticos e não têm uma chave como um parâmetro de entrada. SpecificFinder SpecificFinder também são métodos estáticos, mas elas terão uma chave (identificação) explicitamente.

Entidades que podem ser acessadas somente por associação devem ter zero localizadores. Outras entidades devem ter um Finder localizador método que retorna múltiplo instâncias e um SpecificFinder SpecificFinder método que retorna uma instância única, fornecida um ID.

De exemplo, para a entidade do cliente, o Finder localizador talvez SELECT * FROM Customers e o SpecificFinder SpecificFinder método talvez SELECT * FROM Customers WHERE CustomerID = id.

Se você não definir métodos Finder Finder, a entidade não poderá ser usada em uma Business dados Lista de Web Part; Se você não definir os métodos SpecificFinder SpecificFinder, que entidade Não é possível possuem ações nele, não pode ser pesquisado ou indexados e não podem ser usados em qualquer um dos recursos do Business dados, exceto a Web Part de Lista relacionados.

Para qualificar para um Finder, o correspondente método deve aceitar parâmetros filtráveis como entrada e retornar conjuntos de registros, onde cada registro deve conter a chave de instância de entidade que ela representa. Para qualificar como um SpecificFinder, o correspondente método deve levar a chave instância entidade como um da entrada parâmetros e deverá retornar campos, da qual um dos campos é a chave.

A seguir é um exemplo levemente mais complexo de um Finder localizador que tem parâmetros filtráveis.

SELECT ProductID, Name, ProductNumber, ListPrice FROM Product WHERE (ProductID &gt;= @MinProductID) AND (ProductID &lt;= @MaxProductID) AND (Name LIKE @Name) AND ProductNumber LIKE @ProductNumber)

Finder SpecificFinder SpecificFinder e não precisar retornar os mesmos campos. Você pode ter situações onde o SpecificFinder SpecificFinder método retorna mais campos do que o Finder localizador. No entanto, eles dois devem retornar os identificadores definidos nas entidades.

Um Finder e um SpecificFinder SpecificFinder método devem ter exatamente um correspondente método instância.

Um SpecificFinder método SpecificFinder desempenha uma função importante no Enterprise Search e indexação. Rastrear um Business Data Catalog tem duas fases:

  • Enumeração identificação: busca entidade todas as identificações de instância.

  • Buscar detalhe: buscar os detalhes de cada instância entidade.

Um IDEnumerator, descrito mais adiante neste tópico, retorna as identificações e o SpecificFinder SpecificFinder método retorna os detalhes de cada instância entidade.

.

Um view é uma coleção de campos para uma entidade. A exibição de uma entidade contém os campos retornados por um dos seus objetos MethodInstance MethodInstance como Finder e SpecificFinder. Um ViewAccessor é outro método especial que retorna uma exibição non-Default, that is, um conjunto diferente de campos do aplicativo de empresa. ViewAccessor ViewAccessor instância que usam uma chave (identificação) implicitamente; são Ou seja, você não fornecer a chave. O Business Data Catalog fornece a chave automaticamente.

Entidades tem zero ou mais métodos ViewAccessor ViewAccessor.

Dica

Pesquisar Empresa rastreie somente o SpecificFinder SpecificFinder exibição da entidade.

Embora Finder e SpecificFinder SpecificFinder métodos podem ter apenas uma instância método, os métodos ViewAccessor ViewAccessor podem ter um ou mais instâncias método. Essa flexibilidade é útil quando o mesmo método retorna múltiplo estruturas, cada uma das quais faz backup uma exibição. Em sistemas such as SAP, existem APIs (por exemplo, BAPI_CUSTOMER_GETDETAIL2) que retornam múltiplo coleções de relacionado campos para o usuário. O Customer GetDetails API, de exemplo, pode retornar uma estrutura que contêm dados financeiros, uma estrutura que contém dados do endereço e assim por diante.

Dica

Dados do Business recursos such as Business Data Web Parts e lista os modos de exibição entidade suporte.

IDEnumerator

Rastrear um Business Data Catalog tem duas fases:

  • Enumeração identificação: busca entidade todas as identificações de instância.

  • Buscar detalhe: buscar os detalhes de cada instância entidade.

Um IDEnumerator IDEnumerator método retorna a lista de IDs (exclusivo chaves) para cada entidade que deve ser pesquisável e os metadados SpecificFinder SpecificFinder objeto retorna os detalhes de cada instância entidade. Isso permite indexação das entidades cujas identificações de IDEnumerator IDEnumerator método retorna.

Dica

Se você precisar rastrear incremental, em seguida, você deve também certificar-se que um dos campos de retorno no IdEnumerator para a entidade representa o tempo que de instância entidade (ou linha na terminologia banco de dados) foi atualizada pela última vez na linha - do - aplicativo empresa (LOB).Em seguida, você deve definir a propriedade __BdcLastModifiedTimestamp da entidade com o nome de TypeDescriptor na valor de retorno do __BdcLastModifiedTimestamp que representa a última data modificada.TypeDescriptorIDEnumerator

Entidades tem zero ou método um IDEnumerator IDEnumerator. IDEnumerator IDEnumerator não estão limitados para retornar uma lista de identificações. Se eles retornarem outros campos no parâmetro de retorno, o Business Data Catalog ignora-los durante a rastrear.

O filtro LastIdSeen LastIdSeen permite reunir para métodos IDEnumerator IDEnumerator. Para serviços da Web e outros aplicativos back-end nonstreaming, use o filtro LastIdSeen LastIdSeen no seu IDEnumerator IDEnumerator método para melhorar desempenho, da seguinte maneira.

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

AccessChecker

Um AccessChecker é um método que retorna os direitos um usuário tem em um ou mais instâncias entidade. Um direito pode ser um único bit ou uma coleção de bits. Os direitos, uma vez determinados, podem ser usados por aplicativos cliente Business dados via o Entity.CheckAccess método ENTITY.CheckAccess. Por exemplo, considere a possibilidade uma compilação usuário um personalizado Web Part em de Business Data Catalog que exibe criar, editar e Delete Actions para um EntityInstance. Agora, definindo um AccessChecker, o usuário poderia chamar Entity.CheckAccess e, em seguida, condicionalmente habilitar um ou mais das ações dependendo quais direitos são retornados. Para obter amostras AccessChecker AccessChecker, consulte Exemplos AccessChecker.

Entidades tem zero ou método um AccessChecker AccessChecker por entidade.

GenericInvoker

Um GenericInvoker é um método que você pode invocar no aplicativo LOB back-end que não é um dos métodos descritos anteriormente. Exemplo, você pode usar um método GenericInvoker GenericInvoker para executar um método no aplicativo back-end para editar uma entidade ou a atualização de Preço Unitário na tabela de produtos.

Entidades tem zero ou mais métodos GenericInvoker GenericInvoker.

GenericInvoker GenericInvoker são extremamente úteis se você estiver escrevendo um personalizado Web Part que deve invocar lógica em um sistema back-end, porque o Business Data Catalog cuida de autenticação, autorização e outros requisitos de segurança.

Dica

Dados do Business recursos, como Business Data Web Parts e listas não faça usa métodos GenericInvoker GenericInvoker.No entanto, o modelo objeto e o suporte esquema XML esse tipo de método instância.

Escalar

Um Scalar é um método que retorna um valor único que você pode invocar no aplicativo LOB back-end. Exemplo, você pode usar um método escalares Scalar para get o total de vendas feitas Data a partir de aplicativo back-end.

Entidades tem zero ou mais métodos escalares Scalar.

Exemplo

<MethodInstances>
            <MethodInstance Type="SpecificFinder" ReturnParametername="LineItem" ReturnTypeDescriptorname="LineItem" ReturnTypeDescriptorLevel="0" name="FindLineItemInstance" />
</MethodInstances>

Esquema

Filho Tipo Ocorre Padrão Limites/aceitos valores Descrição

Type

Atributo ( bdc:MethodInstanceType)

1..1

Localizador

SpecificFinder

.

GenericInvoker

IdEnumerator

Escalar

AccessChecker

Finder: O método retorna um conjunto de instâncias entidade filtro critérios fornecidos.

SpecificFinder: O método retorna uma única entidade instâncias fornecidas um conjunto de identificadores.

ViewAccessor: O método retorna uma nova exibição (conjunto de campos) fornecida uma instância entidade.

IdEnumerator: O método retorna entidade identificadores instância. Usado o protocolo pesquisa Business Data Catalog de duas fases. Primeiro é IdEnumerator chamado; Em seguida, para cada instância, FindSpecific é chamado para recuperar detalhes.

GenericInvoker: qualquer método

ReturnParameterName

Atributo ( String)

1..1

O nome do Parameter do método que o Business Data Catalog trata como o parâmetro de retorno quando este MethodInstance é executado.

ReturnTypeDescriptorName

Atributo ( String)

0..1

O nome do TypeDescriptor no parâmetro de retorno que o Business Data Catalog trata como a estrutura de retorno quando este MethodInstance é executado. O atributo ReturnTypeDescriptorName é opcional. Se não for especificado, o Business Data Catalog assumirá a raiz TypeDescriptor do ReturnParameter.

ReturnTypeDescriptorLevel

Atributo ( Int32)

0..1

O nível do ReturnTypeDescriptor no parâmetro de retorno. O atributo ReturnTypeDescriptorLevel também é opcional. Se ele não for especificado e houver mais de uma maneira semelhante nomeado TypeDescriptor, uma exceção é acionada. Se houver mais de uma maneira semelhante nomeado TypeDescriptor de mesmo nível (que é raro), o primeiro será adotado.

Consulte também

Outros recursos

Exemplo SQL Server 2000 AdventureWorks
Como a: Get Started with usando o modelo de objeto em tempo de execução
Como a: Get Started with usando o modelo de objeto de administração
Catálogo de dados Business FAQ:
Catálogo de dados de negócios: Glossário
Trimmer de segurança Catálogo de dados comerciais
Exemplos AccessChecker