Saya disebabkan satu BDC ralat minggu ini yang memperlihatkan dirinya pada antara muka pengguna dan di dalam 12 log masuk sarang pada masa berjalan.
Pertama, ini muncul dalam antara muka pengguna:
Tidak dapat mencari medan untuk masukkan semua nilai pengecam melaksanakan dengan betul SpecificFinder MethodInstance satu dengan nama … Memastikan input parameter mempunyai TypeDescriptors yang berkaitan dengan setiap pengecam yang ditakrifkan untuk entiti ini.
Berikut adalah pukulan skrin:
Saya juga boleh menyebabkan mesej ini untuk hadir di dalam 12 sarang log pada akan (menggunakan high-tech-don't-try-this-at-home dipatenkan saya "kesilapan misteri" kaedah):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C Data perniagaan pelayan SharePoint Portal 6q4x tinggi terkecuali dalam BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Nilai pengenalpastian ”, jenis ”, tidak sah. Dijangka nilai pengenalpastian jenis 'System.String'. pada Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objek[] subIdentifierValues, LobSystemInstance lobSystemInstance) pada Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entiti-entiti, Objek[] userValues, LobSystemInstance lobSystemInstance) pada Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Pandangan desiredView) pada Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() pada Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Saya mencari sekitar dan mendapati beberapa petunjuk yang MSDN forum, tetapi mereka tidak cukup bagi saya untuk memahami apa yang saya lakukan salah. Saya menyaksikan ucapan oleh Ted Pattison yang saya Syarikat telah squirreled pada pelayan yang datang ke menyedari masalah saya.
Dalam saya ADF, Saya sedang menyambung ke SQL pangkalan data seperti yang ditunjukkan:
<Harta Nama="RdbCommandText" Jenis="System.String">
<![CDATA[
PILIH SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
NEGARA, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, BANDAR, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, NEGERI, POS, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, SAMBUNGAN, PERKHIDMATAN FAKS, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG dari dbo.PS_CARRIER_ID_VW dengan (nolock)
DI MANA
(SETID <> 'SAHAM') dan
(lebih rendah(CARRIER_ID) >= lebih rendah(@MinId)) dan
(lebih rendah(CARRIER_ID) <= lebih rendah(@ MaxId)) dan
(lebih rendah(DESCR) SUKA lebih rendah(@InputDescr))
]]>
</Harta>
(I) adalah dibekalkan SQL itu daripada orang DBA dan aku diberi untuk memahami bahawa ia adalah satu khas pandangan mereka dicipta hanya untuk saya. Kekunci unik tiada adalah CARRIER_ID.
Inilah bug saya diperkenalkan:
<Pengenalan>
<Pengenalpastian Nama="CARRIER_ID" TypeName="System.String" />
<Pengenalpastian Nama="DESCR" TypeName="System.String" />
</Pengenalan>
Tempat di sepanjang garisan, Saya telah berjaya mengelirukan diri sendiri ke atas makna <Pengenalan> dan ditambah DESCR walaupun ia tidak benar-benar sebuah label. Saya mengambil DESCR keluar daripada set pengenalan dan presto! Ia bekerja.
Saya harap ini dapat menyelamatkan kesedihan seseorang 🙂