คลังเก็บหมวดหมู่: BDC

คำแนะนำด่วน: หมายเลขรุ่น BDC ADF เป็นเพื่อน

ถ้าคุณกำลังมือรหัส ADF แฟ้มและทำมากรหัส/นำเข้า/ทดสอบวงจร, ใช้หมายเลขรุ่นเพื่อให้ชีวิตของคุณง่ายขึ้น.

ฉันเกลียดการยอมรับมัน, แต่จน ถึง สัปดาห์นี้, ฉันจะลบ ADF และใหม่นำเข้า. นี้จะแบ่งคอลัมน์ข้อมูลธุรกิจของฉัน และให้ฉันอีกสายได้. ไม่จำเป็นทั้งหมด.

ไฟล์นี้ภายใต้ "ก็ชัดเจนเมื่อคุณเห็นมัน".

ตัวอย่าง:

<LobSystem
xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-อินสแตนซ์" xsi:ตั้งแบบแผน="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" ชนิด="WebService" เวอร์ชัน="1.2.0.0" ชื่อ="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

เปลี่ยนแปลงที่เวอร์ชันและนำเข้าอีกครั้ง และคอลัมน์ข้อมูลธุรกิจที่มีอยู่ใช้รุ่นที่ปรับปรุงโดยอัตโนมัติไม่กำหนดค่าเพิ่มเติมที่จำเป็น.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

แท็กของ Technorati:

โซลูชั่น: ตัว BDC แสดงคอลัมน์เดียวของผลลัพธ์

ในความพยายามของฉันในที่ให้การ คอลัมน์ค้นหาประโยชน์ใช้ BDC, ฉันตีผนังกับตัว BDC. ถ้าคุณยังไม่ได้ ดู, ตัว BDC จะคล้ายกับตัวเป็นคนแต่ทำงานกับคอลัมน์ชนิด "ข้อมูลธุรกิจ".

คุณเข้าถึงตัวเลือก โดยคลิกที่ไอคอนเปิดจองของคอลัมน์ที่แสดงข้อมูลทางธุรกิจ:

รูปภาพ

ภาพข้างบนแสดงคอลัมน์ข้อมูลธุรกิจเรียกว่า "รหัสเอกสารหลัก". คอลัมน์ที่มีการเชื่อมต่อ, ผ่าน BDC, บริการเว็บ. บริการเว็บการส่งกลับค่าคอลัมน์สองคอลัมน์ของข้อมูล: รหัสเอกสารและชื่อเรื่อง. วัตถุประสงค์ทางธุรกิจที่นี่จะให้เป็น "เอกสารนี้อยู่" ฟังก์ชัน. ผู้ใช้เลือก "หลัก" เอกสารและเวลาที่บันทึก, รับเหตุการณ์การคัดลอกเขตข้อมูลเมตาจากหลักอ้างอิง.

โดยค่าเริ่มต้น, ตัว BDC มีลักษณะเช่นนี้เมื่อฉันค้นหาเอกสารที่มี ID = "38":

clip_image002

ที่เป็นประโยชน์, แต่ไม่ได้ดีพอ. คนไม่คิดว่า ในรหัส, พวกเขาคิดว่า ในแง่ของชื่อ/ ข้อมูลเมตาอื่น ๆ. ตัวเลือกช่วยให้คุณสามารถค้นหาคอลัมน์อื่น ๆ (เช่น. ชื่อเรื่อง) แต่จะไม่แสดงรายชื่อจะพบจริง, เพียงการ DocId ของแสดงที่นี่:

clip_image002[1]

(หน้าจอไม่ดีเนื่องจากผมไม่ได้รับการค้นหาที่ส่งกลับผลลัพธ์ที่ถูกต้องใด ๆ, แต่คุณสามารถเห็นว่าถ้ามันได้พบผลบาง, มันจะมีรายการของ DocId, ไม่ชื่อ).

ฉันค้นหาคำตอบนี้สูงและต่ำ และล้มเหลว. เพื่อนร่วมงานของฉัน, ใบมินท์ โยนาธาน Bradshaw, ต้องเผชิญ และแก้ไขปัญหานี้. เมื่อผมถึงออกเขาขอความช่วยเหลือ, เขาชี้ให้ผมในทิศทางที่ถูก.

กำหนดค่าตัวเลือกเพื่อแสดงคอลัมน์หลายคอลัมน์ผ่าน "ShowInPicker" แห่ง ADF:

<คุณสมบัติ ชื่อ="ShowInPicker" ชนิด="System.Boolean">จริง</คุณสมบัติ>

รายละเอียดเพิ่มเติม:

  <!-- ชื่อเรื่อง -->
  <TypeDescriptor TypeName="System.String" ชื่อ="ชื่อเรื่อง" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">ชื่อเรื่อง</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <คุณสมบัติ>
      <คุณสมบัติ ชื่อ="DisplayByDefault" ชนิด="System.Boolean">จริง</คุณสมบัติ>
      <คุณสมบัติ ชื่อ="ShowInPicker" ชนิด="System.Boolean">จริง</คุณสมบัติ>
    </คุณสมบัติ>
  </TypeDescriptor>

การตั้งค่าคุณสมบัตินี้แนะนำมีปัญหาเล็กน้อย. ทันทีที่คุณตั้งค่าครั้งเดียว, คุณต้องการสำหรับทุกคอลัมน์ที่คุณต้องการแสดง. ในกรณีของฉัน, ตัว BDC แสดง DocId โดยค่าเริ่มต้น. อย่างไรก็ตาม, เมื่อเพิ่ม "ShowInPicker" กับชื่อเรื่อง, DocId ไม่แสดง. ผมแก้ไขที่ โดยตั้งค่าคุณสมบัติ ShowInPicker สำหรับรหัสเอกสารอย่างชัดเจน.

นี่คือผลลัพธ์:

รูปภาพ

(ผมจะอธิบาย odd-looking "168 – CamlSchema.xsd" ก่อสร้างในการโพสต์บล็อกในอนาคต. ในระยะสั้น, มันคือสายต่อที่อนุญาตสำหรับผู้ใช้ดีขึ้นเล็กน้อย).

แน่นอน, มีเขียนรายการบล็อกนี้, เพียงทำการค้นหา "ShowInPicker" และพบว่าปริมาณการใช้มากมาย, รวมทั้งนี้: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. ได้อธิบายความหมายของคุณสมบัติกับสิ่งบางอย่างอื่น ๆ ดี BDC.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน!

แท็กของ Technorati:

แก้ไขความล้มเหลวในการนำเข้า BDC ADF: “เกิดข้อผิดพลาดต่อไปนี้:”

ฉันมีอีกงานหัตถกรรม BDC ADF แฟ้มด้วยมือ (เพื่อให้ฉันสามารถสร้างค่าของฉัน "ไปสนามหญ้าของฉัน!" ข้อมูลประจำตัว) และข้อผิดพลาดนี้น่าตี:

รูปภาพ

"นำเข้าคำนิยามของแอพลิเคชันล้ม. เกิดข้อผิดพลาดต่อไปนี้:"

เช่นที่คุณเห็น, มีข้อผิดพลาด, แต่ … มันจะไม่ไปบอกมันคืออะไร.

ในกรณีของฉัน, ปัญหาเปิดออกมาว่า ผมได้เริ่มปิดกับ ADF ที่ทำงานในโครงการอื่นที่เชื่อมต่อกับฐานข้อมูล และดำเนินการแบบสอบถาม SQL สำหรับมุมมอง. ในโครงการนี้ใหม่, ฉันกำลังเรียกวิธีบริการเว็บ. ฉันได้ปล้นออกสิ่งเฉพาะ DB และเพิ่มสิ่งบริการเว็บของฉัน, แต่ไม่สามารถปรับปรุงการ <LobSystem>ของแอททริบิวต์ประเภท. ฉันสลับ "webservice ที่อยู่" และฉันอย่างมีความสุขในข้อผิดพลาดในการนำเข้าใหม่ และน่าตื่นเต้นมาก, ที่ถูกจัดการในครบกำหนดหลักสูตร.

นี่คือ LobSystem ผิด:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/XMLSchema-อินสแตนซ์
xsi:ตั้งแบบแผน =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-อินสแตนซ์
xsi:ตั้งแบบแผน =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
ชนิด = "WebService"
รุ่น = "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. ค้นหา: มีการค้นหาไม่รวม. ผมไม่ได้หมายถึงในแง่ MOSS ที่ค้นหา, แต่มีวิธีการค้นหา / กรองบนคอลัมน์หลายคอลัมน์จากแหล่ง และการเชื่อมโยงที่คุณต้องการค้นหา.

โดย BDC, เราสามารถใช้เป็น "ข้อมูลธุรกิจ" ชนิดคอลัมน์และช่วยให้การค้นหาที่เหนือกว่า และแม้ช่วยให้หลายคอลัมน์ของข้อมูลจะปรากฏในมุมมองรายการ.

ฉันได้มีความสำเร็จบางอย่างเบื้องต้น ด้วยวิธีนี้ และจะเขียนเลย.

ถ้าคุณทำมุมนี้ก่อน และมีข้อคิดเห็น, กรุณาแบ่งปัน!

</สิ้นสุด>

แท็กของ Technorati:

แก้ไขข้อผิดพลาดการนำเข้า BDC: “ไม่สามารถโหลดชนิด โดย TypeName ของ TypeDescriptor …”

ฉันได้ทำงานกับ BDC วันนี้, รหัสแฟ้ม ADF ด้วยมือและการสร้างตัวเองมีข้อผิดพลาด. ข้อผิดพลาดดังกล่าวหนึ่ง:

นำเข้าข้อกำหนดโปรแกรมประยุกต์ล้มเหลว. เกิดข้อผิดพลาดต่อไปนี้: ไม่สามารถโหลดชนิด โดย TypeName ของ TypeDescriptor. ชื่อพารามิเตอร์: typeName ข้อผิดพลาดเกิดขึ้นใน หรือ ก่อนรายการ: ' 35’ และตำแหน่ง: '20'.

มอแสดงข้อผิดพลาดนี้เมื่อพยายามที่จะนำเข้าแฟ้ม ADF XML.

ฉัน Internets ทำวิจัย และพบว่า ฉันถูกอ้างชื่ออินสแตนซ์ LOB (จากการ <LobSystemInstance>) ในของฉัน <TypeDescriptor> โหนเมื่อฉันควรได้อ้างอิงชื่อ LOB ตัวเอง (จาก <LobSystem>).

ไม่ถูกต้อง:

<TypeDescriptor TypeName="Conchango.KeyValue, ชื่ออินสแตนซ์ LOB" ชื่อ = "KeyValue">

ถูกต้อง:

<TypeDescriptor TypeName="Conchango.KeyValue, ชื่อ LOB" ชื่อ = "KeyValue">

หวังว่า นี้ช่วยคนหนึ่งชั่วโมงหรือสองครั้ง.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน!

แท็กของ Technorati:

ข้อผิดพลาดรันไทม์ BDC ที่อธิบาย

ผมเกิดผิดพลาด BDC สัปดาห์นี้ที่ประจักษ์เอง บนอินเทอร์เฟซผู้ใช้ และในการ 12 บันทึกกลุ่ม ขณะใช้งานจริง.

แรก, นี้ปรากฏในส่วนติดต่อผู้ใช้:

ไม่พบฟิลด์เพื่อแทรกค่าตัวระบุทั้งหมดดำเนิน SpecificFinder MethodInstance ชื่ออย่างถูกต้อง … ตรวจสอบมิเตอร์คป้อนเกี่ยวข้องกับแต่ละรหัสที่กำหนดสำหรับเอนทิตีนี้.

นี่เป็นภาพหน้าจอ:

clip_image001

ฉันสามารถทำให้ข้อความนี้ปรากฏในการ 12 กลุ่มล็อกที่จะ (ใช้ high-tech-don't-try-this-at-home ของฉันจดสิทธิบัตร "ลึกลับผิด" วิธีการ):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C ข้อมูล SharePoint Portal Server ธุรกิจ 6q4x สูงยกเว้นใน BusinessDataWebPart.OnPreRender: 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, แต่พวกเขาไม่เพียงพอที่จะเข้าใจสิ่งที่ฉันได้ทำผิด. เฝ้าดูเว็บคาสต์โดย Ted Pattison ที่ของฉัน บริษัท มี squirreled เก็บบนเซิร์ฟเวอร์และมาตระหนักถึงปัญหาของฉัน.

ใน ADF ของฉัน, ฉันกำลังเชื่อมต่อกับฐานข้อมูล SQL แสดง:

            <คุณสมบัติ ชื่อ="RdbCommandText" ชนิด="System.String">
              <![CDATA[
                เลือก SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      ประเทศ, ADDRESS1, ADDRESS2, ADDRESS3, 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)) และ
                  (ต่ำกว่า(DESCR) ชอบล่าง(@InputDescr))
                ]]>
            </คุณสมบัติ>

ผมให้ที่ SQL จากบุคคลรวม และฉันให้เข้าใจว่า เป็นการ พิเศษ มุมมองที่พวกเขาสร้างขึ้นสำหรับฉัน. คีย์เฉพาะมีอยู่ CARRIER_ID.

นี่คือปัญหาที่ผมแนะนำ:

      <ตัวบ่งชี้>
        <รหัส ชื่อ="CARRIER_ID" TypeName="System.String" />
        <รหัส ชื่อ="DESCR" TypeName="System.String" /> 
</ตัวบ่งชี้>

บางแห่งตามแนว, ฉันได้จัดการสับสนตัวเองมากกว่าความหมายของ <ตัวบ่งชี้> และเพิ่ม DESCR แม้ว่าจะไม่เป็นจริงรหัส. ผมเอา DESCR รหัสชุดและ presto! มันทั้งหมดที่ทำงาน.

I hope this saves someone some grief 🙂

แท็กของ Technorati: , , ,

BDC ADF และเพื่อนของคุณ, CDATA

เคยสังเกตบางกระอักกระอ่วน และไม่จำเป็นมือรหัสของ RdbCommandText ในบางตัวอย่าง (รวมถึงเอกสารประกอบของ MSDN).

ผมต้องการชี้ให้เห็นการ newcomers เพื่อ BDC ที่สามารถห่อคำสั่งภายในแท็ก CDATA ในตน "ธรรมชาติ" แบบฟอร์มการ. ดังนั้น, สิ่งก่อสร้างนี้กระอักกระอ่วน:

<คุณสมบัติ ชื่อ="RdbCommandText" ชนิด="System.String">
เลือก dboMCRS_SETTLEMENT.id, dboMCRS_SETTLEMENT.settlement จาก dboMCRS_SETTLEMENT
ซึ่ง (รหัส &gt;= @ MinId) และ (รหัส &lt;= @MaxId)
</คุณสมบัติ>

สามารถจะดีกว่าแสดงลักษณะนี้:

<คุณสมบัติ ชื่อ="RdbCommandText" ชนิด="System.String">
<![CDATA[
เลือก dboMCRS_SETTLEMENT.id, dboMCRS_SETTLEMENT.settlement จาก dboMCRS_SETTLEMENT
ซึ่ง (รหัส >= @ MinId) และ (รหัส <= @MaxId)
]]>
</คุณสมบัติ>

</สิ้นสุด>

รองพื้น BDC

วิดีโอแนะนำการ BDC

ตัวอย่างการทำงาน: ADF BDC ที่เชื่อมต่อกับฐานข้อมูล SQL ด้วยการฝังตัวการผู้ใช้ id และรหัสผ่าน

ฉันต้องสายค่ามอไปยังฐานข้อมูล SQL ผ่าน BDC. สำหรับการ ทดสอบ/POC, ผมต้องการฝังรหัส SQL บัญชีผู้ใช้และรหัสผ่านในแบบ ADF. เริ่มต้นด้วย แม่แบบนี้ (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), สร้าง ADF ที่เชื่อมต่อกับอินสแตนซ์ของเซิร์ฟเวอร์ SQL การเฉพาะการล็อก ด้วยรหัสเฉพาะผู้ใช้และรหัสผ่าน และแสดงในส่วนย่อยของโค้ดนี้:

  <LobSystemInstances>
    <LobSystemInstance ชื่อ="ClaimsInstance">
      <คุณสมบัติ>
        <คุณสมบัติ ชื่อ="AuthenticationMode" ชนิด="System.String">ทรู</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="DatabaseAccessProvider" ชนิด="System.String">สแตนซ์</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="แหล่งข้อมูล RdbConnection" ชนิด="System.String">อินสแตนซ์ของ serveractual จริง</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="แค็ตตาล็อกเริ่มต้น RdbConnection" ชนิด="System.String">แค็ตตาล็อกเริ่มต้นจริง</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="RdbConnection ความปลอดภัยแบบรวม" ชนิด="System.String">SSPI</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="RdbConnection ร่วมกัน" ชนิด="System.String">เท็จ</คุณสมบัติ>

        <!-- เหล่านี้เป็นค่าสำคัญ: -->
        <คุณสมบัติ ชื่อ="ผู้ RdbConnection" ชนิด="System.String">การctual ID ผู้ใช้</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="รหัสผ่าน RdbConnection" ชนิด="System.String">รหัสผ่านจริง</คุณสมบัติ>
        <คุณสมบัติ ชื่อ="RdbConnection Trusted_Connection" ชนิด="System.String">เท็จ</คุณสมบัติ>

      </คุณสมบัติ>
    </LobSystemInstance>
  </LobSystemInstances>

จึงไม่ควร, แต่เป็นประโยชน์สำหรับการกำหนดค่าอย่างง่าย และรวดเร็วสำหรับการทดสอบ. นี้ไม่น่าแปลกใจที่ยากที่จะคิดออก. ไม่เคยพบตัวอย่างทำงาน ด้วยการค้นหาคำสำคัญ:

  • adf ฝัง userid และรหัสผ่าน
  • ฝังรหัสผู้ใช้และรหัสผ่านใน adf
  • ฝังรหัสผู้ใช้และรหัสผ่านใน adf bdc
  • รองพื้น bdc sharepoint
  • sharepoint ฝังรหัสผู้ใช้และรหัสผ่านใน adf

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.