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 🙂
Pieter, probalby Anda memecahkan ini sekarang, tapi saya duga adalah bahwa itu akan terkait dengan definisi di back-end. Mungkin the SQL field itu sendiri terbatas 60 karakter? Sesuatu seperti itu?
Hai,
Aku punya masalah dengan BDC, dan aku bertanya-tanya apakah Anda dapat membantu dengan ini?
Saya menggunakan dua bidang identifiier ( sejumlah dan field deskripsi), setiap kali melebihi jumlah karakter 60 Saya mendapatkan kesalahan foollowing:
Nilai teks tidak sah
Kolom teks berisi data yang tidak sah. Silahkan periksa nilai dan coba lagi.
Apakah Anda memahami di mana ini membatasi dari 60 karakter yang berasal dari? dan bagaimana untuk memperbaiki masalah ini?
Saat ini saya membatasi deskripsi sedemikian cara yang tidak melebihi jumlah karakter 60.