Archivo de la categoría: BDC

Punta rápido: Números de versión de ADF BDC son tu amigo

Si usted está codificación manual ADF archivos y haciendo un montón de ciclos de prueba de importación de código, Utilice el número de versión para hacer su vida más fácil.

Detesto admitirlo, pero hasta esta semana, Siempre fui borrando el ADF y vuelva a importarlo. Esto romper mis columnas de datos de negocio y me hacen volver a alambre les. Todo innecesario.

Este fichero bajo «es obvio una vez que ves».

Ejemplo:

<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" Nombre="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Cambiar esa versión y volver a importar y la columna de datos de negocios existente utiliza la versión actualizada automáticamente con ninguna configuración adicional requerida.

</final>

Suscribirse a mi blog.

Etiquetas de Technorati:

Solución: Selector de BDC muestra sólo una columna de resultados

En mis intentos de ir proporcionando un columna de búsqueda más útil usar BDC, Golpeo una pared con el selector de BDC. Si no lo has hecho ver, el selector de BDC es similar a un selector de personas salvo que funciona con las columnas de tipo "datos de negocio".

Acceder al selector de haciendo clic en el icono de libro abierto de una columna de datos de negocios como se muestra:

imagen

La imagen de arriba muestra una columna de datos de negocio llamada "Id del documento maestro". La columna está conectada, a través de BDC, a un servicio web. El servicio web devuelve dos columnas de información: Título e identificación de documento. El propósito de negocio aquí es proporcionar una "este documento se basa en" función. Los usuarios seleccionar a un maestro"" documento y cuando guarde, un receptor de eventos copia los campos de datos meta del patrón de referenciado.

De forma predeterminada, el selector de BDC este aspecto cuando busco un documento cuyo ID = "38":

clip_image002

Es útil, pero no lo suficientemente bueno. Gente no piensa en términos de identificaciones, piensan en términos de títulos y otros meta datos. El selector le permite buscar en otras columnas (por ejemplo:. Título) pero no mostrar la lista actual de títulos que se encuentra, sólo su DocId de como se muestra a continuación:

clip_image002[1]

(La captura de pantalla no es tan grande porque yo no elegir una búsqueda que devuelve los resultados válidos, pero se puede ver si habían encontrado algunos resultados, sólo habría mostrado de DocId, no títulos).

He buscado en alta y baja para la respuesta a esto y no se pudo. Mi colega, el venerable Jonathan Bradshaw, había enfrentado y resuelto este problema. Cuando llegó a él por ayuda, me señaló en la dirección correcta.

Configurar el selector para mostrar varias columnas a través de la ShowInPicker"" propiedad en el ADF:

<Propiedad Nombre="ShowInPicker" Tipo="Systems.Boolean">verdadero</Propiedad>

Con más detalle:

  <!-- Título -->
  <TypeDescriptor TypeName="System.String" Nombre="Título" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Título</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Propiedades>
      <Propiedad Nombre="DisplayByDefault" Tipo="Systems.Boolean">verdadero</Propiedad>
      <Propiedad Nombre="ShowInPicker" Tipo="Systems.Boolean">verdadero</Propiedad>
    </Propiedades>
  </TypeDescriptor>

Al establecer esta propiedad introducir un problema menor. Tan pronto como se establece una vez, es necesario establecer para cada columna que desee mostrar. En mi caso, Selector de BDC demostrada DocId por defecto. Sin embargo, una vez que se ha agregado "ShowInPicker" a título, DocId ya no muestran. Resolví estableciendo explícitamente la propiedad ShowInPicker para ID Doc.

Aquí está el resultado:

imagen

(Voy a explicar la extraña "168 – CamlSchema.xsd" construcción en un futuro blog. En pocas palabras, es una cadena concatenada que permite una experiencia de usuario ligeramente mejor).

Claro, Después de haber escrito esta entrada de blog, Acabo de hacer una búsqueda de "ShowInPicker" y encontró numerosos éxitos, incluyendo este: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Explica el significado de esa propiedad junto con algunas otras cosas buenas de la BDC.

</final>

Suscribirse a mi blog!

Etiquetas de Technorati:

Solución a error de importación BDC ADF: “Ocurrió el siguiente error:”

Una vez más me elaborar archivos de BDC ADF a mano (por lo que yo puedo construir mi "Get off my lawn!" cred) y golpeó este error encantadora:

imagen

"Error de importación de definición de aplicación. Ocurrió el siguiente error:"

Como se puede ver, hay un error, pero … no va a decirme lo que es.

En mi caso, el problema resultó que había comenzado con un ADF funcional para un proyecto diferente que conectado a una base de datos y ejecuta una consulta contra una vista SQL. En este nuevo proyecto, Estoy llamando a un método en un servicio web. Había despojado a la materia específica de DB y mis cosas de servicio web ha añadido, pero no se pudo actualizar la <LobSystem>de atributo type. Me cambié a "WebService" y pasó felizmente a errores de importación más reciente y más emocionante, que se manejaron en el momento oportuno.

Aquí está el mal LobSystem:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "base de datos"
Versión = "1.0.0.0" Nombre = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Esto es correcto:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipo = "WebService"
Versión = "1.0.0.0" Nombre = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</final>

Etiquetas de Technorati:

BDC parece un sustituto Viable para búsquedas

ACTUALIZACIÓN: Este registro de MSDN tiene algunas observaciones interesantes de JXJ basado en su, principalmente negativo, experiencias bajando esta ruta: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Tenemos un escenario de negocio donde necesitamos vincular dos bibliotecas de documentos a través de un común "ID de documento" campo.

A menudo se utiliza una columna de búsqueda que implementa enlaces como este. Hay varias desventajas a las columnas de búsqueda, tres de los cuales se:

  1. Solamente una columna de la biblioteca de consulta de búsqueda puede vincularse.
  2. Rendimiento: La biblioteca de origen puede contener cientos de entradas. Es demasiadas entradas en la búsqueda.
  3. Búsqueda: No hay ninguna búsqueda integrada. No me refiero en el sentido de musgo de la búsqueda, Pero no hay ninguna manera de búsqueda / Filtrar por varias columnas de la biblioteca de documentos fuente y localizar el enlace que quieras.

Respaldado por el BDC, podemos utilizar un "datos del negocio" tipo de columna y proporciona una búsqueda superior e incluso permite varias columnas de datos que aparecen en vistas de lista.

He tenido algunos éxitos preliminares con este enfoque y planea escribir más sobre esto.

Si has trabajado este ángulo antes y tiene algún comentario, por favor comparta!

</final>

Etiquetas de Technorati:

Solución al Error de importación BDC: “No se pudo cargar el tipo descrito por el TypeName del TypeDescriptor …”

He estado trabajando con BDC hoy, codificación de archivos ADF con la mano y me genera unos errores. Un tal error:

Error al importar de definición de aplicación. Ocurrió el siguiente error: No se pudo cargar el tipo descrito por el TypeName del TypeDescriptor. Nombre de parámetro: typeName Error se detectó en o justo antes de la línea: 35’ y la posición: '20'.

MOSS aparece este error cuando trató de importar el archivo XML de ADF.

Investigué los Internets y encontró que yo me haga referencia al nombre de instancia LOB (desde la <LobSystemInstance>) en mi <TypeDescriptor> nodo cuando debo haber hace referencia al nombre de línea de negocio propio (De <LobSystem>).

Mal:

<TypeDescriptor TypeName="Conchango.KeyValue, Nombre de la instancia LOB" Nombre = "KeyValue">

Corregir:

<TypeDescriptor TypeName="Conchango.KeyValue, Nombre de la unidad de negocio" Nombre = "KeyValue">

Espero que este alguien guarda una o dos horas de tiempo.

</final>

Suscribirse a mi blog!

Etiquetas de Technorati:

Un error de tiempo de ejecución BDC explicado

Se ha producido un error BDC esta semana que se manifiesta en la interfaz de usuario y en la 12 registro de colmena en tiempo de ejecución.

Primero, Esto apareció en la interfaz de usuario:

No se pudo encontrar campos para insertar todos los valores de identificador para ejecutar correctamente una SpecificFinder MethodInstance con nombre … Disponer de parámetros de entrada TypeDescriptors asociados con cada identificador definido para esta entidad.

Aquí hay una captura de pantalla:

clip_image001

Yo también podría causar este mensaje que aparezca en el 12 registro de colmena en va (usando mi high-tech-don't-try-this-at-home patentado "misteriosos errores" método):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C datos de SharePoint Portal Server Business 6q4x excepción alta en BusinessDataWebPart.OnPreRender: System.InvalidOperationException: El valor del identificador ”, de tipo ”, no es válido. Valor esperado de identificador de tipo 'System.String'. en Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objeto[] subIdentifierValues, LobSystemInstance lobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entidad de entidad, Objeto[] userValues, LobSystemInstance lobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vista desiredView) en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Busqué alrededor y encontrar algunas pistas en el Foro de MSDN, pero no eran suficiente para mí entender lo que estaba haciendo mal. Estuve viendo una transmisión por Ted Pattison que mi empresa ha squirreled lejos en un servidor y llegó a darse cuenta de mi problema.

En mi ADF, Estoy conectando a una base de datos SQL como se muestra:

            <Propiedad Nombre="RdbCommandText" Tipo="System.String">
              <![CDATA[
                SELECCIONE SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      PAÍS, ADDRESS1, 2, ADDRESS3, ADDRESS4, CIUDAD, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      CONDADO DE, ESTADO, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELÉFONO, EXTENSIÓN, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG de dbo.PS_CARRIER_ID_VW con (NOLOCK)
                DONDE
                  (SETID <> 'COMPARTIR') y
                  (inferior(CARRIER_ID) >= menor(@MinId)) y
                  (inferior(CARRIER_ID) <= menor(@MaxId)) y
                  (inferior(DESCR) COMO inferior(@InputDescr))
                ]]>
            </Propiedad>

Yo fui siempre que SQL de una persona DBA y dan a entender que es un especial vista que crearon sólo para mí. La única clave que es CARRIER_ID.

Aquí está el error que introdujo:

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

En algún lugar a lo largo de la línea, Que había conseguido yo confundir sobre el significado de <Identificadores de> y DESCR aunque no es realmente un identificador. Sacó de DESCR el conjunto de identificadores y presto! Todos los que trabajaron.

Espero que esto ahorra alguien alguna pena 🙂

Etiquetas de Technorati: , , ,

BDC ADF y tu amigo, CDATA

He notado algo torpe e innecesario mano-codificación de RdbCommandText en algunos ejemplos (incluyendo la documentación de MSDN).

Quería señalar a los recién llegados a BDC que comandos se pueden envolver dentro de una etiqueta CDATA en natural"" forma. Por lo tanto, Esta construcción incómoda:

<Propiedad Nombre="RdbCommandText" Tipo="System.String">
SELECT dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement de dbo.MCRS_SETTLEMENT
DONDE (ID. &gt;= @MinId) Y (ID. &lt;= @MaxId)
</Propiedad>

puede ser mejor representado de esta manera:

<Propiedad Nombre="RdbCommandText" Tipo="System.String">
<![CDATA[
SELECT dbo.MCRS_SETTLEMENT.ID, DBO.MCRS_SETTLEMENT.Settlement de dbo.MCRS_SETTLEMENT
DONDE (ID. >= @MinId) Y (ID. <= @MaxId)
]]>
</Propiedad>

</final>

Cartilla BDC

Introducción a BDC

Ejemplo funcional: ADF de BDC que se conecta a la base de datos SQL incrustado seudónimo y contraseña

Necesitaba conectar MOSS a una base de datos SQL vía BDC. Para propósitos de prueba/POC, Quería integrar el SQL cuenta usuario id y contraseña en el ADF. A partir de Esta plantilla (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), He creado un Ada que se conecta a una determinada instancia de SQL server y registros con un id de usuario específico y una contraseña y se muestra en este fragmento de código:

  <LobSystemInstances>
    <LobSystemInstance Nombre="ClaimsInstance">
      <Propiedades>
        <Propiedad Nombre="AuthenticationMode" Tipo="System.String">PassThrough</Propiedad>
        <Propiedad Nombre="DatabaseAccessProvider" Tipo="System.String">SqlServer</Propiedad>
        <Propiedad Nombre="Origen de datos de RdbConnection" Tipo="System.String">instancia de serveractual real</Propiedad>
        <Propiedad Nombre="Catálogo inicial de RdbConnection" Tipo="System.String">catálogo inicial real</Propiedad>
        <Propiedad Nombre="RdbConnection seguridad integrada" Tipo="System.String">SSPI</Propiedad>
        <Propiedad Nombre="Agrupación de RdbConnection" Tipo="System.String">falso</Propiedad>

        <!-- Estos son los valores de clave: -->
        <Propiedad Nombre="ID de usuario de RdbConnection" Tipo="System.String">unEAL ID de usuario</Propiedad>
        <Propiedad Nombre="RdbConnection contraseña" Tipo="System.String">Contraseña actual</Propiedad>
        <Propiedad Nombre="RdbConnection Trusted_Connection" Tipo="System.String">falso</Propiedad>

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

No es una mejor práctica, pero es útil para una configuración rápida y sencilla para la prueba. Esto era sorprendentemente difícil de averiguar. Nunca encontré un ejemplo funcional con palabras clave de búsqueda:

  • ADF incrustado ID de usuario y contraseña
  • incrustar el id de usuario y contraseña en adf
  • incrustar el id de usuario y contraseña en bdc de adf
  • cartilla de bdc de SharePoint
  • SharePoint incrustar id de usuario y contraseña en adf

</final>

Suscribirse a mi blog.