Ես առաջացրել BDC սխալ Այս շաբաթ, որ դրսեւորվեց է ինտերֆեյսի եւ 12 hive log at runtime.
Առաջին, Այս հայտնվել է ինտերֆեյսի:
Հնարավոր չէ գտնել fields բովանդակության բոլոր նույնացուցիչ արժեքների ճիշտ կատարել մի SpecificFinder MethodInstance հետ: Անուն … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.
Ահա մի էկրան կրակոց:
I could also cause this message to appear in the 12 hive log at will (using my patented high-tech-don’t-try-this-at-home "mysterious errors" մեթոդ):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: The Identifier value ”, of Type ”, is invalid. Expected Identifier value of Type ‘System.String’. at Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Object[] subIdentifierValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entity entity, Object[] userValues, LobSystemInstance lobSystemInstance) at Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(View desiredView) at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() at Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
I searched around and found some leads in the MSDN forum, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison that my company has squirreled away on a server and came to realize my problem.
In my ADF, I’m connecting to a SQL database as shown:
<Սեփականություն Անուն="RdbCommandText" Տիպ="System.String">
<![CDATA[
SELECT
SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
COUNTRY, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, CITY, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, STATE, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, PHONE, EXTENSION, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG
FROM
dbo.PS_CARRIER_ID_VW WITH (nolock)
WHERE
(SETID <> 'SHARE') իսկ
(lower(CARRIER_ID) >= lower(@MinId)) իսկ
(lower(CARRIER_ID) <= lower(@ MaxId)) իսկ
(lower(DESCR) LIKE lower(@InputDescr))
]]>
</Սեփականություն>
I was provided that SQL from a DBA person and I’m given to understand that it’s a հատուկ view they created just for me. The unique key there is CARRIER_ID.
Here is the bug I introduced:
<Identifiers>
<Identifier Անուն="CARRIER_ID" TypeName="System.String" />
<Identifier Անուն="DESCR" TypeName="System.String" />
</Identifiers>
Տեղ երկայնքով գծում, I had managed to confuse myself over the meaning of <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! It all worked.
Հուսով եմ, որ սա ինչ -որ մեկին վիշտ կփրկի