Category Archives: BDC

Dica rápida: Números de versão do ADF de BDC são seu amigo

Se você estiver codificação manual ADF arquivos e fazendo um monte de ciclos de teste de importação de código, Use o número de versão para facilitar a sua vida.

Eu odeio admitir isso, mas até esta semana, Eu estava sempre apagar o ADF e importando novamente. Isso iria quebrar minhas colunas de dados de negócios e fazer-me re-conectá-los. Todos os desnecessários.

Este arquivo sob "é óbvio, uma vez que você vê-lo".

Exemplo:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BdcMetadata" Tipo="WebService" Versão="1.2.0.0" Nome="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Alterar essa versão e a reimportação e a coluna de dados de negócios existente usa a versão atualizada automaticamente sem qualquer configuração adicional necessária.

</fim>

Subscreva ao meu blog.

Technorati Tags:

Solução: Selecionador de BDC mostra apenas uma coluna de resultados

Em minhas tentativas em curso para fornecer uma coluna de pesquisa mais útil usando BDC, Eu bati uma parede com o selecionador de BDC. Se você não vê-lo, o seletor de BDC é semelhante a um seletor de pessoas exceto que funciona com colunas do tipo "dados de negócios".

Você acessar o seletor de clicando no ícone do livro aberto de uma coluna de dados de negócios como mostrado:

imagem

A imagem acima mostra uma coluna de dados de negócio chamada "Id do documento mestre". Essa coluna é conectada, via BDC, para um serviço da web. O serviço da web retorna duas colunas de informações: Título e ID do documento. A finalidade do negócio aqui é fornecer um "este documento baseia-se na" função. Os usuários selecionam um mestre"" documento e quando eles salvar, um receptor de eventos copia campos de meta dados do mestre referenciado.

Por padrão, o seletor de BDC fica assim quando eu procurar um documento cujo ID = "38":

clip_image002

Isso é útil, Mas não é bom o suficiente. As pessoas não pensam em termos de IDs, Eles pensam em termos de títulos e/ou outros dados de meta. O seletor permite que você pesquise em outras colunas (EG. Título) Mas não vai mostrar a lista real de títulos que encontrei, apenas seu DocId é como mostrado aqui:

clip_image002[1]

(O tiro de tela não é tão grande, porque eu não escolhi uma busca que retorna qualquer resultado válido, Mas você pode ver que se tinha encontrado alguns resultados, Ele só teria mostrado do DocId, títulos não).

Procurei a resposta a esta de alta e baixa e falhou. Meu colega, o Venerável Jonathan Bradshaw, tinha enfrentado e resolvido esse problema. Quando entrei em contato com ele para ajuda, Ele me apontou na direção certa.

Configurar o seletor de para mostrar várias colunas através do "ShowInPicker" Propriedade no ADF:

<Propriedade Nome="ShowInPicker" Tipo="System. Boolean">verdadeiro</Propriedade>

Em mais detalhes:

  <!-- Título -->
  <TypeDescriptor TypeName="System." Nome="Título" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Título</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Propriedades>
      <Propriedade Nome="DisplayByDefault" Tipo="System. Boolean">verdadeiro</Propriedade>
      <Propriedade Nome="ShowInPicker" Tipo="System. Boolean">verdadeiro</Propriedade>
    </Propriedades>
  </TypeDescriptor>

Configuração esta propriedade apresenta um problema menor. Tão logo você configurá-lo uma vez, Você precisa configurá-lo para cada coluna que você deseja mostrar. No meu caso, Selecionador de BDC mostrou DocId por padrão. No entanto, uma vez eu adicionei "ShowInPicker" a título, DocId não será mais exibido. Eu resolvi isso explicitamente definindo a propriedade ShowInPicker para Doc ID.

Aqui está o resultado:

imagem

(Vou explicar o estranho-olhando "168 – CamlSchema.xsd" construção em um post futuro. Em suma, é uma seqüência de caracteres concatenada que permite uma experiência de usuário um pouco melhor).

É claro, ter escrito esta entrada de blog, Fiz uma busca por "ShowInPicker" e encontraram numerosos sucessos, inclusive este: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Explica o significado dessa propriedade juntamente com outras BDC coisas boas.

</fim>

Subscreva ao meu blog!

Technorati Tags:

Solução para falha de importação de BDC ADF: “Ocorreu o seguinte erro:”

Foi mais uma vez criando arquivos ADF BDC à mão (para que eu possa construir minha "Saia meu gramado!" cred) e acertar esse erro lindo:

imagem

"Importação de definição de aplicativo falha. Ocorreu o seguinte erro:"

Como você pode ver, há um erro, mas … não vai me dizer o que é.

No meu caso, a questão acabou por que eu tinha começou com um ADF funcional para um projeto diferente que conectado a um banco de dados e executada uma consulta SQL contra um modo de exibição. Neste novo projeto, Eu estou chamando um método em um serviço da web. Eu tinha despojado o material específico do DB e acrescentou minhas coisas de serviço web, mas não conseguiu actualizar o <LobSystem>do tipo atributo. Eu mudei isso para "WebService" e eu Felizmente passei para erros de importação mais recente e mais emocionante, que foram manipulados em breve.

Aqui está o LobSystem errado:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "banco de dados"
Versão = "1.0.0.0" Nome = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Isso é correto:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "WebService"
Versão = "1.0.0.0" Nome = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</fim>

Technorati Tags:

BDC parece um substituto viável para pesquisas

ATUALIZAÇÃO: Esta postagem MSDN tem algumas observações interessantes de JXJ com base em seu, principalmente negativas, experiências indo por este caminho: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Temos um cenário de negócios onde precisamos ligar duas bibliotecas de documentos por meio de um comum "ID do documento" campo.

Muitas vezes usamos uma coluna de pesquisa que implementa ligações assim. Existem várias desvantagens para colunas de pesquisa, três dos quais são:

  1. Apenas uma coluna da biblioteca de pesquisa de pesquisa pode ser vinculada.
  2. Desempenho: A biblioteca de fonte pode conter centenas de entradas. Isso é demais entradas no lookup.
  3. Pesquisa: Não há nenhuma pesquisa integrada. Não digo no sentido da busca MOSS, mas não há nenhuma maneira para pesquisar / Filtrar em várias colunas da biblioteca de documentos fonte e localize o link desejado.

Respaldo da BDC, podemos usar um "dados de negócios" tipo de coluna fornece uma pesquisa superior e ainda permite que várias colunas de dados para aparecer em modos de exibição lista.

Eu tive algum sucesso com essa abordagem preliminar e planeja escrever mais sobre isso.

Se você trabalhou este ângulo antes e tiver quaisquer comentários, por favor, compartilhe!

</fim>

Technorati Tags:

Solução para erro de importação BDC: “Não foi possível carregar o tipo descrito pelo TypeName de TypeDescriptor …”

Eu tenho trabalhado com BDC hoje, codificação de arquivos ADF com a mão e eu mesmo gerar alguns erros. Um tal erro:

Importação de definição de aplicativo falhada. Ocorreu o seguinte erro: Não foi possível carregar o tipo descrito pelo TypeName de TypeDescriptor. Nome do parâmetro: typeName erro ocorreu em ou antes de linha: 35’ e a posição: '20'.

MOSS exibido este erro ao tentar importar o arquivo XML do ADF.

Eu pesquisei a internete e encontrei que eu estava referenciando o nome de instância LOB (do <LobSystemInstance>) no meu <TypeDescriptor> nó quando eu deveria ter referenciado o próprio nome LOB (De <LobSystem>).

Errado:

<TypeDescriptor TypeName="Conchango.KeyValue, Nome da instância do LOB" Nome = "KeyValue">

Corrigir:

<TypeDescriptor TypeName="Conchango.KeyValue, Nome de LOB" Nome = "KeyValue">

Espero que este alguém salva uma ou duas horas do tempo.

</fim>

Subscreva ao meu blog!

Technorati Tags:

Um erro de execução BDC explicado

Eu causou um erro BDC nesta semana que se manifestou na interface do usuário e no 12 log de colméia em tempo de execução.

Primeira, isso apareceu na interface do usuário:

Não foi possível localizar campos para inserir todos os valores de identificador para executar corretamente uma SpecificFinder MethodInstance com nome … Certifique-se de que parâmetros de entrada tem TypeDescriptors associado com cada identificador definido para esta entidade.

Aqui está uma captura de tela:

clip_image001

Eu também poderia causar essa mensagem apareça no 12 log de colméia será (usando meu high-tech-don't-try-this-at-home patenteado "erros misteriosos" Método):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C dados de negócio do SharePoint Portal Server 6q4x alta exceção em BusinessDataWebPart.OnPreRender: System. InvalidOperationException: O valor do identificador ”, do tipo ”, é inválido. Valor de identificador esperado do tipo 'System. String'. em Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objeto[] subIdentifierValues, LobSystemInstance lobSystemInstance) em Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entidade de entidade, Objeto[] userValues, LobSystemInstance lobSystemInstance) em Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vista desiredView) em Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() em Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Eu procurei e encontrei algumas pistas na Fórum do MSDN, Mas eles não foram suficientes para eu entender o que estava fazendo errado. Eu assisti um webcast por Ted Pattison que meu companhia tem extra disponível em um servidor e veio a perceber o meu problema.

No meu ADF, Estou conectando a um banco de dados SQL como mostrado:

            <Propriedade Nome="RdbCommandText" Tipo="System.">
              <![CDATA[
                SELECIONE SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      PAÍS, ADDRESS1, ENDEREÇO2, 3, ADDRESS4, CIDADE, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      CONDADO DE, ESTADO, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFONE, EXTENSÃO, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG de dbo.PS_CARRIER_ID_VW com (NOLOCK)
                ONDE
                  (SETID <> 'COMPARTILHAMENTO') and
                  (baixa(CARRIER_ID) >= baixa(@MinId)) and
                  (baixa(CARRIER_ID) <= baixa(@MaxId)) and
                  (baixa(DESCR) COMO baixa(@InputDescr))
                ]]>
            </Propriedade>

Eu estava desde o SQL de uma pessoa DBA e eu sou dado a entender que é um especiais vista que eles criaram só para mim. A chave exclusiva lá é CARRIER_ID.

Aqui é o inseto que apresentei:

      <Identificadores de>
        <Identificador de Nome="CARRIER_ID" TypeName="System." />
        <Identificador de Nome="DESCR" TypeName="System." /> 
</Identificadores de>

Em algum lugar ao longo da linha, Eu tinha conseguido confundir-me sobre o significado de <Identificadores de> e acrescentou DESCR, mesmo que não é na verdade um identificador. Eu tirei DESCR o conjunto de identificadores e presto! Deu tudo.

Espero que isso poupe alguma dor de alguém 🙂

Technorati Tags: , , ,

BDC ADF e seu amigo, CDATA

Tenho notado um estranho e desnecessário mão-codificação de RdbCommandText em alguns exemplos (incluindo documentação do MSDN).

Eu queria salientar aos recém-chegados para BDC que comandos podem ser empacotados dentro de uma tag CDATA no seu natural"" formulário. Assim, Esta construção estranha:

<Propriedade Nome="RdbCommandText" Tipo="System.">
SELECT dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement de dbo.MCRS_SETTLEMENT
ONDE (ID &gt;= @MinId) E (ID &lt;= @MaxId)
</Propriedade>

pode ser melhor representado desta forma:

<Propriedade Nome="RdbCommandText" Tipo="System.">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement de dbo.MCRS_SETTLEMENT
ONDE (ID >= @MinId) E (ID <= @MaxId)
]]>
</Propriedade>

</fim>

BDC Primer

Introdução à BDC

Exemplo funcional: BDC ADF que se conecta ao banco de dados SQL com incorporado usuário id e senha

Eu precisava para conectar a um banco de dados SQL via BDC MOSS. Para fins de teste/POC, Eu queria incorporar o SQL conta usuário id e senha no ADF. Começando com Este modelo (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Eu criei um ADF que se conecta a uma instância específica do SQL server e registra com um id de usuário específico e senha e mostrado neste trecho:

  <LobSystemInstances>
    <LobSystemInstance Nome="ClaimsInstance">
      <Propriedades>
        <Propriedade Nome="AuthenticationMode" Tipo="System.">PassThrough</Propriedade>
        <Propriedade Nome="DatabaseAccessProvider" Tipo="System.">SqlServer</Propriedade>
        <Propriedade Nome="Fonte de dados RdbConnection" Tipo="System.">instância de serveractual real</Propriedade>
        <Propriedade Nome="Catálogo de RdbConnection inicial" Tipo="System.">catálogo inicial real</Propriedade>
        <Propriedade Nome="RdbConnection integrado de segurança" Tipo="System.">SSPI</Propriedade>
        <Propriedade Nome="RdbConnection pool" Tipo="System.">falso</Propriedade>

        <!-- Estes são os valores chaves: -->
        <Propriedade Nome="ID de usuário RdbConnection" Tipo="System.">umaReal ID de usuário</Propriedade>
        <Propriedade Nome="Senha RdbConnection" Tipo="System.">real senha</Propriedade>
        <Propriedade Nome="RdbConnection Trusted_Connection" Tipo="System.">falso</Propriedade>

      </Propriedades>
    </LobSystemInstance>
  </LobSystemInstances>

Não é uma prática recomendada, Mas é útil para uma configuração rápida e simples para testes. Isso foi surpreendentemente difícil de descobrir. Eu nunca encontrei um exemplo funcional com Pesquisar palavras-chave:

  • ADF incorporado a ID de usuário e senha
  • incorporar a id de usuário e senha no adf
  • incorporar a id de usuário e senha no adf bdc
  • cartilha de bdc do SharePoint
  • SharePoint incorporar a id de usuário e senha no adf

</fim>

Subscreva ao meu blog.