Я выклікала BDC памылку на гэтым тыдні, што выявілася ў карыстацкім інтэрфейсе і ў 12 вулей часопіса падчас выканання.
Першы, Гэта з'явілася ў інтэрфейсе карыстальніка:
Не атрымалася знайсці палёў ўставіць ўсе значэння ідэнтыфікатара правільна выканаць SpecificFinder MethodInstance з імем … Пераканайцеся, уведзеных параметраў TypeDescriptors, звязаны з кожнай ідэнтыфікатар, вызначаны для дадзенага аб'екта.
Вось здымак экрана:
Я мог бы таксама Дадзенае паведамленне з'яўляецца ў 12 вулей часопіс па жаданні (using my patented high-tech-don’t-try-this-at-home "mysterious errors" метад):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Значэнне ідэнтыфікатара ”, Тыпу ”, з'яўляецца несапраўдным. Expected Identifier value of Type ‘System.String’. на Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Аб'ект[] subIdentifierValues, LobSystemInstance LobSystemInstance) на Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity асобы, Аб'ект[] userValues, LobSystemInstance LobSystemInstance) на Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Паглядзець desiredView) на Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() на Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Я шукаў вакол і знайшоў некаторыя драты ў MSDN форум, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Тэд Паттисон што мая кампанія squirreled была далёка на сервер і зразумеў, мая праблема.
На мой ADF, Я падключэннем да базы дадзеных SQL, як паказана:
<Уласнасць Імя="RdbCommandText" Тып="System.String">
<![CDATA[
ВЫБАР
, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, Network_id, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
КРАІНЫ, ADDRESS1, ADDRESS2, Address3, Адрас 4, ГОРАД, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
Акругах, ДЗЯРЖАЎНЫ, ПАШТОВЫ, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, ТЭЛЕФОН, Распаўсюджванне, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG
(NOLOCK)
ДЗЕ
(SETID <> "Доля") і
(знізіць(CARRIER_ID) >= Ніжняя(@ MiniD)) і
(знізіць(CARRIER_ID) <= Ніжняя(@ MaxId)) і
(знізіць(DESCR) Падобныя ніжэйшых(@ InputDescr))
]]>
</Уласнасць>
Я быў пры ўмове, што ад SQL DBA чалавек, і я даў зразумець, што гэта спецыяльны view they created just for me. The unique key there is CARRIER_ID.
Вось я прадставіў памылцы:
<Ідэнтыфікатары>
<Ідэнтыфікатар Імя="CARRIER_ID" TypeName="System.String" />
<Ідэнтыфікатар Імя="DESCR" TypeName="System.String" />
</Ідэнтыфікатары>
Дзе-то ўздоўж лініі, Мне ўдалося заблытаць сябе над сэнсам <Ідэнтыфікатары> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Усё гэта працавала.
I hope this saves someone some grief 🙂