Jsem způsobil chybu BDC tento týden, která se projevila na uživatelské rozhraní a 12 protokol úl za běhu.
První, To se objevil v uživatelském rozhraní:
Nelze najít pole pro vložení všech hodnot identifikátorů ke správnému spuštění instance SpecificFinder MethodInstance s názvem … Zkontrolujte, zda že mají vstupní parametry přidruženy všem identifikátorům definovaným pro tuto entitu popisovač TypeDescriptor ke.
Zde je screen shot:
Také by mohla způsobit této zprávy se objeví v 12 protokol úl se (použití můj patentovaný high-tech-don't-try-this-at-home "záhadné chyby" Metoda):
11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0x0B8C SharePoint Portal Server obchodních dat 6q4x vysoké výjimka v BusinessDataWebPart.OnPreRender: Výjimka: Hodnota identifikátoru ”, typu ”, je neplatný. Očekávaná hodnota identifikátoru typu "System.String.". na Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objekt[] subIdentifierValues, Vlastnost LobSystemInstance instanci lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entita entity, Objekt[] userValues, Vlastnost LobSystemInstance instanci lobSystemInstance) na Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Zobrazit desiredView) na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() na Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Hledal jsem a našel nějaký zájemce v MSDN Fórum, ale nebylo dost pro mě pochopit, co dělám špatně. Sledoval jsem vysílání od Ted Pattison to moje Společnost se schovávaly na serveru a přišli realizovat můj problém.
V mém ADF, Připojení k databázi SQL uvedené:
<Vlastnost Jméno="RdbCommandText" Typ="System.String"> <![CDATA[ VYBERTE ID SADY, CARRIER_ID, EFFDT, POPIS, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD, ZEMĚ, ADDRESS1, ADRESA2, ADDRESS3, ADDRESS4, MĚSTO, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3, OKRES, STÁT, POŠTOVNÍ, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFON, PRODLOUŽENÍ, FAXU, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR, INTERLINK_DLL, TMS_EXCLUDE_FLG od dbo.PS_CARRIER_ID_VW s (NOLOCK) KDE (ID SADY <> "PODÍL") a (nižší(CARRIER_ID) >= nižší(@MinId)) a (nižší(CARRIER_ID) <= nižší(@MaxId)) a (nižší(POPIS) JAKO spodní(@InputDescr)) ]]> </Vlastnost>
Byl poskytnut toto SQL z DBA osoby a dal mi pochopit, že jde speciální pohled, který si vytvořili jen pro mě. Jedinečný klíč tam je CARRIER_ID.
Tady je chyba, kterou jsem představil:
<Identifikátory> <Identifikátor Jméno="CARRIER_ID" TypeName="System.String" /> <Identifikátor Jméno="POPIS" TypeName="System.String" />
</Identifikátory>
Někde podél trati, Se podařilo zmást sám s významem <Identifikátory> a přidat popis, i když to není ve skutečnosti identifikátor. Vzal jsem si popis sada identifikátory a presto! To všechno fungovalo.
I hope this saves someone some grief 🙂
Pieter, jste dvacetimegabajtovém vyřešil tím, že nyní, ale můj odhad je, že to bude souviset s definice na back-end. Možná je omezená na samotné pole SQL 60 znaků? Něco takového?
Ahoj,
Já mám problém se záložní řadič domény, a zajímalo by mě, jestli můžete pomoci s tímto?
Jsem pomocí dvou identifiier polí ( číslo a popis pole), Pokud celkový počet znaků překračuje 60 Dostávám chyby foollowing:
Textová hodnota
Textové pole obsahuje neplatná data. Zkontrolujte hodnotu a opakujte akci.
Rozumíš, kde tento limit 60 znaky pochází z? a jak vyřešit tento problém?
V současné době jsem omezení popis takovým způsobem, že se nepřekročí celkový počet znaků 60.