मैं एक BDC त्रुटि इस हफ्ते कि ही उपयोगकर्ता इंटरफ़ेस पर और में प्रकट हुई 12 हाइव लॉग रनटाइम पर.
प्रथम, यह उपयोगकर्ता इंटरफ़ेस में दिखाई दिया:
सभी पहचानकर्ता सही ढंग से एक SpecificFinder MethodInstance नाम के साथ निष्पादित करने के लिए मान सम्मिलित करने के लिए फ़ील्ड्स नहीं मिल सकता है … इस एंटिटी के लिए परिभाषित किया गया हर पहचानकर्ता के साथ जुड़े TypeDescriptors इनपुट पैरामीटर है सुनिश्चित करें.
यहाँ एक स्क्रीन शॉट है:
मैं भी इस संदेश में प्रकट करने के लिए कारण सकता है 12 हाइव लॉग में होगा (मेरी पेटेंट high-tech-don't-try-this-at-home का उपयोग कर "रहस्यमय त्रुटियाँ" विधि):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint पोर्टल सर्वर व्यवसाय डेटा 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 फोरम, लेकिन वे मुझे समझ में मैं क्या कर रहा था करने के लिए पर्याप्त नहीं थे गलत. मैं ने एक webcast देख चुके टेड 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))
]]>
</संपत्ति>
मैं प्रदान की थी एक DBA व्यक्ति से उस SQL और मैं समझता हूँ कि यह है करने के लिए दिया जाता रहा हूँ एक विशेष वे सिर्फ मेरे लिए बनाया गया दृश्य. अद्वितीय कुंजी वहाँ CARRIER_ID है.
यहाँ बग मैं शुरू की है:
<पहचानकर्ता>
<पहचानकर्ता नाम="CARRIER_ID" TypeName="System.String" />
<पहचानकर्ता नाम="DESCR" TypeName="System.String" />
</पहचानकर्ता>
कहीं रेखा के साथ, मैं अपने आप को के अर्थ से अधिक भ्रमित करने में कामयाब था <पहचानकर्ता> और DESCR कहा कि भले ही यह एक पहचानकर्ता है वास्तव में नहीं है. मैं DESCR पहचानकर्ता सेट और हाथ की सफ़ाई से बाहर ले लिया! यह सब काम किया.
I hope this saves someone some grief 🙂