Ich verursachte einen BDC-Fehler diese Woche, die sich in der Benutzeroberfläche und in manifestiert der 12 Bienenkorb-Protokoll Laufzeit.
Erste, Dieses erschien in der Benutzeroberfläche:
Felder zum Einfügen aller Bezeichnerwerte zum ordnungsgemäßen Ausführen einer ' SpecificFinder ' MethodInstance mit Namen konnte nicht gefunden werden. … Sicherzustellen Sie, dass die Eingabeparameter TypeDescriptors jeder für diese Entität definierten Bezeichner zugeordnet haben.
Hier ist ein Screenshot:
Ich könnte auch dazu führen, diese Meldung angezeigt, in der 12 Bienenkorb Protokoll wird (mit Hilfe meiner patentierten high-tech-don't-try-this-at-home "geheimnisvolle Störungen" Methode):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server-Geschäftsdaten 6q4x hohe Ausnahme in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Den ID-Wert ”, Typ ”, ist ungültig. ID-Wert vom Typ 'System.String' erwartet. bei Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, LobSystemInstance lobSystemInstance) bei Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Einheit Einheit, Objekt[] userValues, LobSystemInstance lobSystemInstance) bei Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Ansicht desiredView) bei Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() bei Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Ich suchte und fand einige führt in die MSDN-forum, aber sie waren nicht genug für mich zu verstehen, was ich tat, falsch. Ich sah einen Webcast von Ted Pattison dass meine Firma hat entfernt auf einem Server und kam zu meinem Problem erkennen gespeichert..
In meinem ADF, Ich bin mit einer SQL-Datenbank verbinden, wie gezeigt:
<Eigenschaft Name="RdbCommandText" Typ="System.String">
<![CDATA[
WÄHLEN SIE SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
LAND, ADRESSE1, ADRESSE2, ADDRESS3, ADDRESS4, STADT, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
GRAFSCHAFT, ZUSTAND, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, ERWEITERUNG, TELEFAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG aus dbo.PS_CARRIER_ID_VW mit (NOLOCK)
WO
(SETID <> "AKTIE") und
(niedrigere(CARRIER_ID) >= untere(@MinId)) und
(niedrigere(CARRIER_ID) <= untere(@ MaxId)) und
(niedrigere(DESCR) WIE niedriger(@InputDescr))
]]>
</Eigenschaft>
Ich wurde zur Verfügung gestellt, dass SQL DBA Person und ich bin da zu verstehen, dass es eine Spezial die sie nur für mich erstellt. Der eindeutige Schlüssel dort ist CARRIER_ID.
Hier ist der Fehler, den ich eingeführt:
<Bezeichner>
<Bezeichner Name="CARRIER_ID" TypeName="System.String" />
<Bezeichner Name="DESCR" TypeName="System.String" />
</Bezeichner>
Irgendwo entlang der Linie, Ich hatte es geschafft, mich über die Bedeutung des verwechseln <Bezeichner> und DESCR hinzugefügt, auch wenn es nicht tatsächlich einen Bezeichner. Ich nahm DESCR aus dem Bezeichner Satz und presto! Das alles funktioniert.
Ich hoffe, das spart einige Trauer jemand 🙂