Jag orsakat en BDC fel denna vecka som visat sig på användargränssnittet och i den 12 bikupa Stock vid körning.
Första, Detta visades i användargränssnittet:
Kunde inte hitta fält för att infoga alla identifierare värdena för att korrekt utföra en SpecificFinder MethodInstance med namn … Kontrollera att indataparametrarna har typbeskrivare (TypeDescriptor) associerade med varje identifierare som definierats för denna entitet.
Här är en skärmdump:
Jag kan också orsaka detta meddelande att visas i den 12 bikupa stock på kommer (använder min patenterade high-tech-don't-try-this-at-home "mystiska fel" metoden):
11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x hög undantag i BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Identifierarvärde ”, av typ ”, är ogiltig. Förväntade identifierarvärde av typen System.String. på Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) på Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Enhet enhet, Objekt[] userValues, LobSystemInstance lobSystemInstance) på Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Visa desiredView) på Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() på Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Jag sökte runt och hittade några leads i den MSDN-forumet för, men de var inte nog för mig att förstå vad jag gjorde fel. Jag såg en webbsändning av Ted Pattison som min företaget har squirreled bort på en server och kom att inse mitt problem.
I min ADF, Jag ansluter till en SQL databas som visas:
<Egenskapen Namn="RdbCommandText" Typ="System.String">
<![CDATA[
VÄLJ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
LAND, ADRESS1, ADRESS2, ADDRESS3, ADDRESS4, STADEN, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, STATLIGA, POST-, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG från dbo.PS_CARRIER_ID_VW med (nolock)
DÄR
(SETID <> "DELA") och
(lägre(CARRIER_ID) >= lägre(@MinId)) och
(lägre(CARRIER_ID) <= lägre(@ MaxId)) och
(lägre(DESCR) SOM lägre(@InputDescr))
]]>
</Egenskapen>
Jag lämnades det SQL från en DBA person och jag får att förstå att det är en särskilda Visa de skapade bara för mig. Den unika nyckeln det är CARRIER_ID.
Här är felet jag infört:
<Kännetecken>
<Identifierare Namn="CARRIER_ID" TypeName="System.String" />
<Identifierare Namn="DESCR" TypeName="System.String" />
</Kännetecken>
Någonstans längs linjen, Jag hade lyckats förväxla mig själv över menande av <Kännetecken> och lagt till DESCR även om det inte är faktiskt en identifierare. Jag tog DESCR ur den identifierare set och presto! Det hela fungerade.
I hope this saves someone some grief 🙂