कोई 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) 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 🙂

Technorati टैग: , , ,

2 पर विचार "कोई BDC रनटाइम त्रुटि समझाया

  1. पॉल Galvin

    पीटर, probalby आप इस अब तक हल, लेकिन मेरा अनुमान है कि इसे वापस अंत पर परिभाषा के लिए संबंधित होना होता है. शायद SQL क्षेत्र में ही सीमित है 60 घर का काम? ऐसा कुछ?

  2. पीटर Veenstra

    नमस्ते,

    मैं एक BDC के साथ एक मुद्दा मिल गया है, और मुझे आश्चर्य है कि अगर आप इस के साथ मदद कर सकते हैं?

    मैं दो identifiier फ़ील्ड का उपयोग कर रहा हूँ ( एक नंबर और एक वर्णन फ़ील्ड), जब भी वर्णों की कुल संख्या से अधिक है 60 मैं foollowing त्रुटियाँ हो रही हूँ:

    अमान्य पाठ मान

    किसी पाठ फ़ील्ड में अमान्य डेटा है. कृपया मान जाँचें और पुन: प्रयास करें.

    क्या तुम समझते हो जहाँ यह सीमा का 60 अक्षर से आता है? और इस समस्या को हल करने के लिए कैसे?

    वर्तमान में मैं वर्णन ऐसे में सीमित कर रहा हूँ एक तरीका है कि वर्णों की कुल संख्या से अधिक नहीं करता 60.

करने के लिए एक उत्तर दें छोड़ दो पीटर Veenstra उत्तर रद्द करे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *