ผมเกิดผิดพลาด BDC สัปดาห์นี้ที่ประจักษ์เอง บนอินเทอร์เฟซผู้ใช้ และในการ 12 บันทึกกลุ่ม ขณะใช้งานจริง.
แรก, นี้ปรากฏในส่วนติดต่อผู้ใช้:
ไม่พบฟิลด์เพื่อแทรกค่าตัวระบุทั้งหมดดำเนิน SpecificFinder MethodInstance ชื่ออย่างถูกต้อง … ตรวจสอบมิเตอร์คป้อนเกี่ยวข้องกับแต่ละรหัสที่กำหนดสำหรับเอนทิตีนี้.
นี่เป็นภาพหน้าจอ:
ฉันสามารถทำให้ข้อความนี้ปรากฏในการ 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 🙂