分类存档: BDC

小提示: BDC ADF 的版本号是你的朋友

如果您正在手动编码 ADF 的文件,并做了大量的测试/代码/导入周期, 使用版本号来使你的生活更轻松.

我不愿承认这一点, 但直到这一周, 我总是被删去的 ADF 和重新导入它. 这会打破我业务数据列,并让我将它们重新连接. 所有不必要.

文件这下"这是明显一旦你看到它".

示例:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://BDCMetadata.xsd schemas.microsoft.com/office/2006/03/BusinessDataCatalog" 类型="Web 服务" 版本="1.2.0.0" 名称="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

更改的版本并重新导入和现有的业务数据列使用更新后的版本会自动与不需要的额外配置.

</结束>

订阅我的博客.

Technorati 标签:

解决方案: BDC 选取器显示结果只有一的列

我正在尝试提供 更多有用的查阅列,使用 BDC, 我碰了壁与 BDC 选取器. 如果你还没有看到它, BDC 机械臂是类似于一个人选取器,不同之处在于它与"业务数据"类型的列一起工作.

通过将业务数据列,如下所示的打开书本图标上单击您访问机械臂:

图像

上面的图片显示业务数据列,称为"主文档 Id". 该列被连接, 通过 BDC, 向 web 服务. Web 服务返回两列信息: 文档 ID 和标题. 这里的经营宗旨是提供"此文档基于" 功能. 用户选择"大师" 文档和当他们保存, 事件接收器将从引用主复制元数据字段.

默认情况下, BDC 机械臂看起来像这样,当我搜索文档的 ID ="38":

clip_image002

这是很有帮助, 但还不够好. 人们不是按 Id, 他们认为标题和/或其他元数据. 选择器允许您搜索其他列 (例如:. 标题) 但不会显示实际的找到它的标题列表, 只是他们 DocId 的如下所示:

clip_image002[1]

(拍摄的画面不是如此之大的因为我没拿返回任何有效的结果的搜索, 但是你可以看到,如果它发现了几个结果, 它只会显示 DocId 的, 没有标题).

我搜索的高、 低这个问题的答案和失败. 我的同事, 高龄 乔纳森 · 布拉德肖, 曾面对及解决这一问题. 当我伸手向他求助, 他指出,我朝着正确的方向.

配置选择器以显示多个列通过"ShowInPicker" 在 ADF 中的属性:

<属性 名称="ShowInPicker" 类型="System.Boolean">true</属性>

详细:

  <!-- 标题 -->
  <设计图 TypeName="System.String" 名称="标题" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">标题</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <属性>
      <属性 名称="DisplayByDefault" 类型="System.Boolean">true</属性>
      <属性 名称="ShowInPicker" 类型="System.Boolean">true</属性>
    </属性>
  </设计图>

将此属性设置引入了一个小问题. 只要你设置它一次, 你需要为每个您想要显示的列设置. 以我为例, 默认情况下显示 DocId BDC 选取器. 不过, 我有一次添加"ShowInPicker" 标题, DocId 不再显示. 我的解决办法是通过显式将 ShowInPicker 属性设置为 Doc ID.

下面是结果:

图像

(我会解释,样子很奇特的"168 – CamlSchema.xsd" 在以后的博客文章建设. 在短, 它是一个字符串,它允许稍有更好的用户体验).

答案是肯定的, 写了这篇博客, 我只是做了"ShowInPicker 搜索" 发现无数点击数, 包括这一: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. 它说明了该属性以及一些其他好的 BDC 东西的意义.

</结束>

订阅我的博客!

Technorati 标签:

BDC ADF 导入失败的解决方案: “出现了以下错误:”

我再一次由专人手工 BDC ADF 文件 (所以,我可以建立我 "我的草坪下车!" 信用证) 打了这个可爱的错误:

图像

"应用程序定义导入失败. 出现了以下错误:"

如您所见, 有错误, 但 … 它不会告诉我它是什么.

以我为例, 问题原来我已经开始了与一个不同的项目,它连接到数据库并执行对视图的 SQL 查询功能 ADF. 在这个新项目, 我号召一个 web 服务方法. 去掉了 DB 的具体东西,加上我的 web 服务东西, 但是,更新失败 <LobSystem>类型属性. 转向了"web 服务" 和我愉快地搬到更新、 更令人兴奋的导入错误, 这是在适当的时候处理.

这里是错误 LobSystem:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
类型 ="数据库"
版本 ="1.0.0.0" 名称 ="xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

这是正确的:

<LobSystem
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
类型 ="web 服务"
版本 ="1.0.0.0" 名称 ="xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</结束>

Technorati 标签:

查找 BDC 似乎可行的替代

更新: 此 MSDN 张贴了一些有趣的评论,从基于他的 JXJ, 主要负, 走这条道路的经验: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

我们有一个业务方案,我们需要通过一个共同的"文档 ID 的两个文档库链接" 字段.

我们经常用到这样的实现链接查阅列. 有几个缺点查阅列, 3 项是:

  1. 从查找查找图书馆只有一列可以链接.
  2. 性能: 源库可能包含数百个条目. 这就是在查找中的条目太多.
  3. 搜索: 有是没有集成的搜索. 我不是指苔藓意义上的搜索, 但有没有方法来搜索 / 对源文档库中的多个列进行筛选并找到你想要的链接.

BDC 后盾, 我们可以使用"业务数据" 列的类型,它提供了一个优越的搜索和甚至允许多个列的数据显示在列表视图.

已经取得了一些初步成功使用这种方法,并计划编写有关它的详细信息.

如果您曾经工作过的前的这个角度,并有任何意见, 请分享!

</结束>

Technorati 标签:

BDC 导入错误的解决方案: “不能加载设计图的 TypeName 所描述的类型 …”

我一直与 BDC 今日 (星期三), 手工编码 ADF 文件和生成自己的一些错误. 一个此类错误:

应用程序定义导入失败. 出现了以下错误: 不能加载设计图的 TypeName 所描述的类型. 参数名称: typeName 错误时遇到或只是前行: 35’ 和位置: '' 20.

MOSS 显示此错误,当我想要导入的 ADF XML 文件.

互联网的研究,并发现我被引用的 LOB 实例名称 (从 <LobSystemInstance>) 在我 <设计图> 当我要引用的 LOB 名称本身的节点 (从 <LobSystem>).

错了:

<设计图 TypeName="Conchango.KeyValue, LOB 实例名称" 名称 ="KeyValue">

更正:

<设计图 TypeName="Conchango.KeyValue, LOB 名称" 名称 ="KeyValue">

希望这一保存人一两个小时的时间.

</结束>

订阅我的博客!

Technorati 标签:

解释一个 BDC 运行时错误

我引起表现在用户界面上,并在一个 BDC 错误本周 12 配置单元日志 在运行时.

第一次, 这似乎在用户界面中:

找不到要插入的所有标识符值,正确执行,使用名称 SpecificFinder MethodInstance 字段 … 确保输入的参数将与为此实体定义每个标识符关联的 TypeDescriptors.

这里是一个屏幕快照:

clip_image001

我也可能导致该消息出现在 12 在配置单元日志将 (使用我的专利的 high-tech-don't-try-this-at-home "神秘错误" 方法):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0在 BusinessDataWebPart.OnPreRender x0B8C SharePoint 门户服务器业务数据 6q4x 高异常: System.InvalidOperationException: 标识符值 ”, 类型的 ”, 是无效的. 预期的标识符值的类型 'System.String'. 在 Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(对象[] subIdentifierValues, LobSystemInstance lobSystemInstance) 在 Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(实体的实体, 对象[] userValues, LobSystemInstance lobSystemInstance) 在 Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(查看 desiredView) 在 Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() 在 Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

我到处寻找,发现了一些线索 MSDN 论坛, 但是他们并没有足以让我明白自己在做什么错. 我看过网络的广播 泰德帕蒂森 那我 公司 在服务器和来实现我的问题上存了.

在我的 ADF, 我连接到 SQL 数据库,如图所示:

            <属性 名称="RdbCommandText" 类型="System.String">
              <![CDATA[
                选择 SETID, CARRIER_ID, EFFDT, 描述, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      国家, 地址 1, 地址 2, 地址 3, ADDRESS4, 城市, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      县, 状态, 邮政, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, 电话, 扩展, 传真, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG 从 dbo.PS_CARRIER_ID_VW 与 (nolock)
                在哪里
                  (SETID <> 份额) 和
                  (较低(CARRIER_ID) >= 低(@MinId)) 和
                  (较低(CARRIER_ID) <= 低(@MaxId)) 和
                  (较低(描述) 喜欢低(@InputDescr))
                ]]>
            </属性>

我提供了该 SQL 从一个 DBA 人,据我所了解,它是 特别 他们只是为我创建视图. 有唯一的键是 CARRIER_ID.

这里是我介绍的 bug:

      <标识符>
        <标识符 名称="CARRIER_ID" TypeName="System.String" />
        <标识符 名称="描述" TypeName="System.String" /> 
</标识符>

某处沿线, 我曾设法混淆自己的意思 <标识符> 添加描述,即使它不是实际上的标识符. 我从标识符设置,就可以了描述! 它所有的工作.

我希望这可以为某人节省一些痛苦🙂

Technorati 标签: , , ,

BDC ADF 和你的朋友, CDATA

我注意到有些尴尬和不必要的手-编码 RdbCommandText 在一些例子中的 (包括 MSDN 文档).

我想要指出到 BDC 的命令可以被包装在 CDATA 标记他们的"自然的新人" 窗体. 所以, 这尴尬的建设:

<属性 名称="RdbCommandText" 类型="System.String">
选择 dbo。MCRS_SETTLEMENT.id, dbo。MCRS_SETTLEMENT.settlement 从 dbo。MCRS_SETTLEMENT
在哪里 (id &gt;@MinId =) 和 (id &这是;= @MaxId)
</属性>

可以更好地表示这种方式:

<属性 名称="RdbCommandText" 类型="System.String">
<![CDATA[
选择 dbo。MCRS_SETTLEMENT.id, dbo。MCRS_SETTLEMENT.settlement 从 dbo。MCRS_SETTLEMENT
在哪里 (id >@MinId =) 和 (id <@MaxId =)
]]>
</属性>

</结束>

BDC 底漆

BDC 简介

功能示例: 连接到 SQL 数据库与嵌入的用户 id 和密码的 BDC ADF

我需要到 SQL 数据库通过 BDC 接通苔藓. 为测试/POC 目的, 我想要在 ADF 中嵌入的 SQL 帐户用户 id 和密码. 从开始 此模板 (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), 创建连接到特定的 SQL server 实例,并使用特定的用户 id 和密码登录 ADF 和代码片断所示:

  <LobSystemInstances>
    <LobSystemInstance 名称="ClaimsInstance">
      <属性>
        <属性 名称="AuthenticationMode" 类型="System.String">直通</属性>
        <属性 名称="DatabaseAccessProvider" 类型="System.String">SqlServer</属性>
        <属性 名称="RdbConnection 数据源" 类型="System.String">实际的 serveractual 实例</属性>
        <属性 名称="RdbConnection 初始目录" 类型="System.String">实际的初始目录</属性>
        <属性 名称="RdbConnection 集成安全性" 类型="System.String">SSPI</属性>
        <属性 名称="RdbConnection 池" 类型="System.String">false</属性>

        <!-- 这些都是关键的值: -->
        <属性 名称="RdbConnection 用户 ID" 类型="System.String">暗访的用户 ID</属性>
        <属性 名称="RdbConnection 密码" 类型="System.String">实际的密码</属性>
        <属性 名称="RdbConnection Trusted_Connection" 类型="System.String">false</属性>

      </属性>
    </LobSystemInstance>
  </LobSystemInstances>

它不是一种最佳做法, 但它是有用的快速和简单的配置来测试. 这是出奇地难以弄清楚. 我从来没有发现一个带有搜索关键字的功能示例:

  • adf 嵌入的用户 id 和密码
  • 在 adf 中嵌入的用户 id 和密码
  • 在 adf bdc 中嵌入的用户 id 和密码
  • sharepoint bdc 底漆
  • sharepoint 在 adf 中嵌入的用户 id 和密码

</结束>

订阅我的博客.