Jeg fikk en BDC-feil denne uken som viste seg på brukergrensesnitt og i den 12 strukturen Logg under kjøring.
Første, Dette dukket opp i brukergrensesnittet:
Finner ikke felt for innsetting av alle identifikatorverdiene for riktig kjøring av SpecificFinder MethodInstance med navnet … Kontroller at inndataparametere har TypeDescriptors knyttet til alle identifikatorer som er definert for denne enheten.
Her er et skjermbilde:
Jeg kan også føre denne meldingen skal vises i den 12 strukturen loggen vil (bruke min patentert high-tech-don't-try-this-at-home "mystisk feil" metoden):
11/14/2007 09:24:41.27 W3WP.exe (0x080C) 0x0B8C SharePoint Portal Server forretningsdata 6q4x høy unntak i BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Identifier-verdien ”, typen ”, er ugyldig. Forventet identifikatorverdi av typen System.String. ved Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) ved Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Enhet enhet, Objekt[] userValues, LobSystemInstance lobSystemInstance) ved Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vis desiredView) ved Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() ved Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Jeg søkte rundt og fant noen avledningene i det MSDN-forumet, men de var ikke nok for meg å forstå hva jeg gjorde galt. Jeg så en webcast av Ted Pattison som min selskapet har vet på en server og kom til å forstå mitt problem.
I min ADF, Jeg kobler til en SQL-database som vist:
<Egenskapen navn="RdbCommandText" Type="System.String">
<![CDATA[
VELG SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
LAND, ADDRESS1, ADRESSE2, ADDRESS3, ADDRESS4, BYEN, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
FYLKE, TILSTAND, POST, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, UTVIDELSE, FAKS, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG fra dbo.PS_CARRIER_ID_VW med (NOLOCK)
HVOR
(SETID <> "DEL") og
(lavere(CARRIER_ID) >= lavere(@MinId)) og
(lavere(CARRIER_ID) <= lavere(@MaxId)) og
(lavere(DESCR) SOM lavere(@InputDescr))
]]>
</Egenskapen>
Jeg var gitt at SQL fra en DBA person og jeg får til å forstå at det er en spesielle Vis de opprettet bare for meg. Unik nøkkel det er CARRIER_ID.
Her er feilen jeg introdusert:
<Identifikatorer>
<Identifikator navn="CARRIER_ID" TypeName="System.String" />
<Identifikator navn="DESCR" TypeName="System.String" />
</Identifikatorer>
Et sted langs linjen, Jeg hadde klart å forvirre meg selv over betydningen av <Identifikatorer> og lagt DESCR selv om det ikke er egentlig en identifikator. Jeg tok DESCR identifikatorer sett og vips! Det hele virket.
Jeg håper dette sparer noen sorg 🙂