Ik veroorzaakt een BDC fout deze week die manifesteerde zich al op de user interface en in de 12 component log tijdens runtime.
Eerste, Dit bleek in de gebruikersinterface:
Konden niet vondst velden om in te voegen van alle de id-waarden voor het correct uitvoeren van een SpecificFinder MethodInstance met de naam … Zorgen voor dat invoerparameters hebben TypeDescriptors die is gekoppeld aan elke id gedefinieerd voor deze entiteit.
Hier is een screenshot:
Ik kan ook dit bericht moet worden weergegeven de 12 component logboek tijdens zal (met behulp van mijn gepatenteerde high-tech-don't-try-this-at-home "mysterieuze fouten" methode):
11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0Hoge uitzondering van SharePoint Portal Server zakelijke gegevens van x0B8C 6q4x in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: De id-waarde ”, van Type ”, is ongeldig. Verwachte id-waarde van het Type 'System.String'. op Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) op Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entiteit entiteit, Object[] userValues, LobSystemInstance lobSystemInstance) op Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Weergave desiredView) op Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() op Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Ik zocht rond en vond enkele leidt in de MSDN forum, maar zij waren niet genoeg voor mij om te begrijpen wat ik aan het doen was verkeerd. Ik zag een webcast door Ted Pattison dat mijn bedrijf zit probeert te sluizen weg op een server en kwam om te beseffen mijn probleem.
In mijn ADF, Ik ben verbinden met een SQL-database zoals:
<Eigenschap Naam="RdbCommandText" Type="System.String">
<![CDATA[
SELECTEER SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
LAND, ADRES1, ADRES2, ADDRESS3, ADDRESS4, STAD, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, STAAT, POST, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFOON, UITBREIDING, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG van dbo.PS_CARRIER_ID_VW met (NOLOCK)
WAAR
(SETID <> 'DELEN') en
(lagere(CARRIER_ID) >= lager(@MinId)) en
(lagere(CARRIER_ID) <= lager(@MaxId)) en
(lagere(DESCR) ALS lagere(@InputDescr))
]]>
</Eigenschap>
Ik werd verstrekt dat SQL van een DBA persoon en ik ben gegeven om te begrijpen dat er een speciale weergave die ze alleen voor mij gemaakt. De unieke sleutel er is CARRIER_ID.
Hier is de bug die ik heb ingevoerd:
<Id 's>
<Id Naam="CARRIER_ID" TypeName="System.String" />
<Id Naam="DESCR" TypeName="System.String" />
</Id 's>
Ergens langs de lijn, Ik had in geslaagd om mezelf te verwarren over de betekenis van <Id 's> en DESCR toegevoegd, zelfs al is het niet daadwerkelijk een id. Ik nam DESCR uit de id's set en presto! Het allemaal werkte.
I hope this saves someone some grief 🙂