Arquivo da Categoría: BDC

Consello Rápida: Números de versión BDC ADF son o seu amigo

Se vostede é un manual de codificación de ficheiros ADF e facendo unha morea de código / Importación / ciclos de probas, use the version number to make your life easier.

Eu odio admitir iso, pero ata esta semana, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

Exemplo:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BdcMetadata.XSD" Tipo="WebService" Versión="1.2.0.0" Nome="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

Cambiar esta versión e re-importación e da columna de datos de empresas existentes utiliza a versión actualizada automaticamente con ningunha configuración adicional necesaria.

</final>

Rexístrate para o meu blog.

Technorati Tags:

Solución: Picker BDC Mostra só unha columna de resultados

En miñas tentativas en curso na subministración dun columna de investigación máis útil usar BDC, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

Accede o seleccionador, premendo na icona de unha columna de datos corporativos libro aberto, como se mostra:

imaxe

The above image shows a business data column called "Master Document Id". That column is connected, vía BDC, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" función. Users select a "master" documento e cando gardar, un receptor de eventos copias campos de metadatos do mestre referenciada.

Por defecto, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

Isto é útil, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (e.g. Título) pero non vai amosar a lista actual de títulos se atopa, só a súa DocId está como se mostra aquí:

clip_image002[1]

(A pantalla non é tan grande porque eu non incorporarse unha busca que retorna todos os resultados válidos, pero podes ver que houbo algúns resultados, el só mostraría DocId de, nin títulos).

I searched high and low for the answer to this and failed. O meu compañeiro, o venerábel Jonathan Bradshaw, had faced and solved this issue. When I reached out to him for help, el me apuntou na dirección correcta.

Configure the picker to show multiple columns via the "ShowInPicker" propiedade no ADF:

<Propiedade Nome="ShowInPicker" Tipo="System.Boolean">certo</Propiedade>

En máis detalle:

  <!-- Título -->
  <TypeDescriptor TypeName="System.String" Nome="Título" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Título</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Propiedades>
      <Propiedade Nome="DisplayByDefault" Tipo="System.Boolean">certo</Propiedade>
      <Propiedade Nome="ShowInPicker" Tipo="System.Boolean">certo</Propiedade>
    </Propiedades>
  </TypeDescriptor>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. No meu caso, BDC picker showed DocId by default. Con todo, once I added "ShowInPicker" Título, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Aquí está o resultado:

imaxe

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. En resumo, é unha cadea concatenada que permite un pouco mellor experiencia do usuario).

Por suposto, escribir este blog, I just did a search for "ShowInPicker" e atopei moitos logros, incluíndo este: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</final>

Rexístrate para o meu blog!

Technorati Tags:

Solución para BDC ADF Import fallo: “Ocorreu o seguinte erro:”

Eu estaba unha vez máis a elaboración arquivos BDC ADF á man (para que eu poida construír o meu "saia do meu gramos!" Eu) e bateu esta linda erro:

imaxe

"Application definition import failed. Ocorreu o seguinte erro:"

Como se pode ver, hai un erro, pero … non me vai dicir o que é.

No meu caso, the issue turned out that I had started off with a functional ADF for a different project that connected to a database and executed a SQL query against a view. In this new project, I am calling a method on a web service. I had stripped out the DB specific stuff and added my web service stuff, pero non puido actualizar o <LobSystem>’s Type attribute. I switched it to "WebService" e eu por sorte mudouse para os erros máis recentes e máis emocionante de importación, que foron tratadas no seu tempo.

Here is the wrong LobSystem:

<LobSystem
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type="Database"
Version="1.0.0.0" Name="xyzzy"
xmlns="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

This is correct:

<LobSystem
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type="WebService"
Version="1.0.0.0" Name="xyzzy"
xmlns="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</final>

Technorati Tags:

BDC Parece un substituto viable para investigacións

Actualización: Este MSDN post ten algunhas observacións interesantes de JXJ con base na súa, sobre todo negativo, experiencias indo por este camiño: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

We have a business scenario where we need to link two documents libraries via a common "document ID" campo.

We often use a lookup column to implements links like this. There are several drawbacks to lookup columns, tres dos cales son:

  1. Only one column from the lookup lookup library can be linked.
  2. Actuación: The source library could contain hundreds of entries. That’s too many entries in the lookup.
  3. Procurar: There is no integrated search. I don’t mean in the MOSS sense of search, pero non hai ningunha forma de buscar / filtrar varias columnas dende a biblioteca do documento de orixe e atopar a ligazón que quere.

Apoiado por BDC, we can use a "business data" column type and it provides a superior search and even allows multiple columns of data to appear in list views.

Tiven algún éxito preliminar con esta visión e pretendo escribir máis sobre el.

Se xa traballou este ángulo antes e ten algún comentario, por favor, comparta!

</final>

Technorati Tags:

Solución para BDC Erro de Importación: “Non se puido cargar o tipo descrito por NomeTipo de TypeDescriptor …”

Eu estou traballando con BDC hoxe, coding ADF files by hand and generating myself some errors. One such error:

Importación de definición de aplicación fallou. Ocorreu o seguinte erro: Non se puido cargar o tipo descrito por NomeTipo de TypeDescriptor. O nome do parámetro: typeName erro se atopou en ou antes de Liña: '35’ e posición: ’20’.

Moss aparece este erro cando intento descargar o arquivo XML ADF.

Eu searched as Internets e penso que eu estaba facendo referencia ao nome da instancia LOB (do <LobSystemInstance>) o meu <TypeDescriptor> nó cando eu debería ter mencionado o nome propio LOB (a partir de <LobSystem>).

Mal:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB Nome da Instancia" Name="KeyValue">

Corrixa:

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

Espero que isto se salva alguén unha ou dúas horas de tempo.

</final>

Rexístrate para o meu blog!

Technorati Tags:

Un erro de execución BDC explicou

Eu causou un erro BDC esta semana que se manifestou sobre a interface de usuario e no 12 colmea rexistro en tempo de execución.

Primeiro, este apareceu na interface de usuario:

Non se atopou campos para introducir todos os valores identificador para realizar correctamente unha MethodInstance SpecificFinder con nome … Asegúrese de parámetros de entrada teñen TypeDescriptors asociados con cada identificador definido para esta entidade.

Aquí está unha captura de pantalla:

clip_image001

Eu podería causar esta mensaxe sexa exhibida na 12 rexistro colmea a gusto (using my patented high-tech-don’t-try-this-at-home "mysterious errors" método):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: O valor Identificador ”, de tipo ”, non é válido. Expected Identifier value of Type ‘System.String’. en Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Obxecto[] subIdentifierValues, LobSystemInstance LobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entidade entidade, Obxecto[] userValues, LobSystemInstance LobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Ver desiredView) en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Procurei ao redor e atopar algunhas pistas no MSDN foro, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison que a miña compañía ten squirreled afastado nun servidor e veu a entender o meu problema.

Na miña ADF, Estou me conectando a un banco de datos SQL como se mostra:

            <Propiedade Nome="RdbCommandText" Tipo="System.String">
              <![CDATA[
                Seleccione
                      , CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, Network_id, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      PAÍS, Endereço1, Endereço2, Endereço3, ADDRESS4, CIDADE, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      County, ESTADO, Postal, GEO_CODE, IN_CITY_LIMIT, Country_code, TELÉFONO, MEDIDA, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG
                 (nolock)
                ONDE
                  (SetId <> 'Compartir') e
                  (descargar(CARRIER_ID) >= Menor(@ MinID)) e
                  (descargar(CARRIER_ID) <= Menor(@ MaxId)) e
                  (descargar(DESCR) COMO menor(@ InputDescr))
                ]]>
            </Propiedade>

Eu estaba sempre que o SQL dunha persoa dBA e estou dado a entender que é un especial view they created just for me. The unique key there is CARRIER_ID.

Aquí é a erro eu introducir:

      <Identificadores>
        <Identificar Nome="CARRIER_ID" TypeName="System.String" />
        <Identificar Nome="DESCR" TypeName="System.String" /> 
</Identificadores>

Nalgún lugar ao longo da liña, Eu conseguira confundir-me sobre o significado de <Identificadores> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Todo funcionou.

I hope this saves someone some grief 🙂

Technorati Tags: , , ,

BDC ADF eo seu amigo, CDATA

Teño notado algúns estraña e innecesaria man codificación de RdbCommandText en algúns exemplos (incluíndo a documentación MSDN).

I wanted to point out to newcomers to BDC that commands can be wrapped inside a CDATA tag in their "natural" form. Así, esta construción estraño:

<Propiedade Nome="RdbCommandText" Tipo="System.String">
Seleccione dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement de dbo.MCRS_SETTLEMENT
ONDE (ID &gt;= @MinId) E (ID &lt;= @ MaxId)
</Propiedade>

pode ser mellor representado desta forma:

<Propiedade Nome="RdbCommandText" Tipo="System.String">
<![CDATA[
Seleccione dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.settlement de dbo.MCRS_SETTLEMENT
ONDE (ID >= @MinId) E (ID <= @ MaxId)
]]>
</Propiedade>

</final>

Exemplo BDC

Introdución á BDC

Exemplo Funcional: BDC ADF que se conecta á base de datos SQL ID de usuario e contrasinal incorporado

I needed to wire up MOSS to a SQL database via BDC. For testing/POC purposes, I wanted to embed the SQL account user id and password in the ADF. Starting with este modelo (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Creei un ADF que se conecta a unha instancia do servidor SQL particular e troncos cun determinado ID de usuario e contrasinal e mostra neste tramo:

  <LobSystemInstances>
    <LobSystemInstance Nome="ClaimsInstance">
      <Propiedades>
        <Propiedade Nome="AuthenticationMode" Tipo="System.String">PassThrough</Propiedade>
        <Propiedade Nome="DatabaseAccessProvider" Tipo="System.String">SqlServer</Propiedade>
        <Propiedade Nome="RdbConnection fonte de datos" Tipo="System.String">real do servidor  instancia real</Propiedade>
        <Propiedade Nome="RdbConnection Initial Catalog" Tipo="System.String">catálogo de inicio real</Propiedade>
        <Propiedade Nome="RdbConnection Seguridade Integrada" Tipo="System.String">SSPI</Propiedade>
        <Propiedade Nome="RdbConnection pooling" Tipo="System.String">teito</Propiedade>

        <!-- Estes son os valores de chave: -->
        <Propiedade Nome="RdbConnection ID do usuario" Tipo="System.String">unctual ID do usuario</Propiedade>
        <Propiedade Nome="RdbConnection contrasinal" Tipo="System.String">Contrasinal real</Propiedade>
        <Propiedade Nome="Trusted_Connection RdbConnection" Tipo="System.String">teito</Propiedade>

      </Propiedades>
    </LobSystemInstance>
  </LobSystemInstances>

Non é unha boa práctica, but it’s useful for a quick and simple configuration for testing. This was surprisingly difficult to figure out. I never found a functional example with search keywords:

  • ADF incorporado usuario e contrasinal
  • inserir ID de usuario e contrasinal no ADF
  • inserir ID de usuario e contrasinal no ADF BDC
  • SharePoint BDC cartilla
  • SharePoint incorporar ID de usuario e contrasinal no ADF

</final>

Rexístrate para o meu blog.