分類存檔: 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 服務返回兩列資訊: 文件識別碼 和標題. 這裡的經營宗旨是提供"此文檔基於" 功能. 使用者選擇"大師" 文檔和當他們保存, 事件接收器從引用大師複製元資料欄位.

預設情況下, BDC 選取器看起來像這樣,當我搜索文檔的 ID ="38":

clip_image002

這就是很有説明, 但還不夠好. 人們不是按 Id, 他們認為標題和/或其他中繼資料. 選擇器允許您搜索其他列 (例如:. 標題) 但不會顯示的標題它發現的實際清單, 只是他們 DocId 的如下所示:

clip_image002[1]

(螢幕擷取畫面不是那麼大,因為我沒有挑選返回任何有效的結果搜索, 但你可以看到,如果它發現了一些結果, 它只會顯示 DocId 的, 沒有標題).

我搜索的高、 低這個問題的答案和失敗. 我的同事, 尊者 Jonathan 布拉德肖, 曾面對及解決這一問題. 當我伸手向他求助, 他指出我正確的方向.

配置選擇器以顯示多個列,通過"ShowInPicker" 在 ADF 中的屬性:

<屬性 名稱="ShowInPicker" 類型="System.Boolean">真正的</屬性>

在更多的細節:

  <!-- 標題 -->
  <視覺化表示形式 TypeName="System.String" 名稱="標題" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">標題</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <屬性>
      <屬性 名稱="DisplayByDefault" 類型="System.Boolean">真正的</屬性>
      <屬性 名稱="ShowInPicker" 類型="System.Boolean">真正的</屬性>
    </屬性>
  </視覺化表示形式>

將此屬性設置引入了一個小問題. 只要你設置它一次, 你需要為每個您想要顯示的列設置. 以我為例, 預設情況下顯示 DocId BDC 選取器. 不過, 一次我添加了"ShowInPicker" 標題, DocId 不再顯示. 我通過顯式設置Doc ID的ShowInPicker屬性來解決此問題.

下面是結果:

圖像

(我會解釋的樣子很奇特的"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

我們有一個業務方案,我們需要通過一個共同的"文件識別碼 的兩個文件庫連結" 欄位.

我們經常用到這樣的實現連結查閱列. 有幾個缺點查閱列, 其中有三:

  1. 從查找查找圖書館只有一列可以連結.
  2. 性能: 源庫可能包含數百個條目. 這就是在查找中的條目太多.
  3. 搜索: 有是沒有集成的搜索. 我不是指苔蘚意義上的搜索, 但沒有任何方法來搜索 / 對源文件庫中的多個列進行篩選並找到你想要的連結.

支援的 BDC, 我們可以用"業務資料" 列的類型,它提供了一個優越的搜索和甚至允許多個列的資料顯示在清單視圖.

已經取得了一些初步的成功使用這種方法,並計畫寫有關它的詳細資訊.

如果您過之前的這個角度,並有任何意見, 請分享!

</結束>

Technorati 標籤:

BDC 導入錯誤的解決方案: “不能載入設計圖的 TypeName 所描述的類型 …”

我一直與 BDC 今天, 手工編碼 ADF 檔和生成自己的一些錯誤. 一個此類錯誤:

應用程式定義導入失敗. 出現了以下錯誤: 不能載入設計圖的 TypeName 所描述的類型. 參數名稱: typeName 錯誤遇到或只是前行: 35’ 和位置: '' 20.

MOSS 顯示此錯誤,當我試圖將 ADF XML 檔導入.

我研究了互聯網,發現我參考的 LOB 實例名稱 (從 <LobSystemInstance>) 在我 <視覺化表示形式> 時應引用了本身的 LOB 名稱節點 (從 <LobSystem>).

錯了:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB 實例名稱" 名稱 ="KeyValue">

更正:

<TypeDescriptor 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), 我創建了 ADF,連接到特定的 SQL server 實例,並使用一個特定的使用者 id 和密碼登錄和代碼片斷所示:

  <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 和密碼

</結束>

訂閱我的博客.