Aku menyebabkan kesalahan BDC minggu ini yang terwujud pada user interface dan dalam 12 sarang log saat runtime.
Pertama, ini muncul dalam antarmuka pengguna:
Tidak dapat menemukan bidang untuk memasukkan semua nilai-nilai pengenal untuk benar melaksanakan SpecificFinder MethodInstance dengan nama … Memastikan parameter input memiliki TypeDescriptors yang terkait dengan setiap pengenal yang didefinisikan untuk entitas ini.
Berikut adalah screen shot:
Bisa juga menyebabkan pesan ini tampil di 12 sarang log akan (menggunakan high-tech-don't-try-this-at-home dipatenkan saya "kesalahan misterius" metode):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C Data bisnis SharePoint Portal Server 6q4x tinggi pengecualian di BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Nilai pengenal ”, jenis ”, tidak sah. Diharapkan nilai pengenal tipe 'System.String'. di Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objek[] subIdentifierValues, LobSystemInstance lobSystemInstance) di Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entitas entitas, Objek[] userValues, LobSystemInstance lobSystemInstance) di Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Lihat desiredView) di Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() di Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Aku mencari di sekitar dan menemukan beberapa petunjuk di MSDN forum, tetapi mereka tidak cukup bagi saya untuk memahami apa yang saya lakukan salah. Saya menyaksikan webcast oleh Sir Alex Ferguson Ted yang saya perusahaan memiliki squirreled pergi di server dan datang untuk menyadari masalah saya.
Di ADF saya, Saya menghubungkan ke SQL database seperti yang ditunjukkan:
<Properti 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, KOTA, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, NEGARA, POS, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEPON, EKSTENSI, FAKS, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG dari dbo.PS_CARRIER_ID_VW dengan (nolock)
MANA
(SETID <> 'BERBAGI') dan
(lebih rendah(CARRIER_ID) >= bawah(@MinId)) dan
(lebih rendah(CARRIER_ID) <= bawah(@MaxId)) dan
(lebih rendah(DESCR) SEPERTI lebih rendah(@InputDescr))
]]>
</Properti>
Saya diberikan SQL DBA orang dan saya diberikan untuk memahami bahwa khusus Lihat mereka diciptakan hanya untukku. Kunci unik ada adalah CARRIER_ID.
Berikut ini adalah bug yang saya diperkenalkan:
<Pengidentifikasi>
<Pengenal Nama="CARRIER_ID" TypeName="System.string" />
<Pengenal Nama="DESCR" TypeName="System.string" />
</Pengidentifikasi>
Di suatu tempat di sepanjang garis, Saya telah berhasil untuk membingungkan diriku atas makna <Pengidentifikasi> dan menambahkan DESCR bahkan meskipun tidak benar-benar sebuah identifier. Aku mengambil DESCR dari pengidentifikasi set dan presto! Semuanya bekerja.
I hope this saves someone some grief 🙂