Unë shkaktuar një gabim QZHB këtë javë se manifestuar veten në ndërfaqen e përdoruesit dhe në 12 hive log at runtime.
I parë, kjo u shfaq në ndërfaqen e përdoruesit:
Nuk mund të gjejnë fusha për të futur të gjitha vlerat identifikues për të ekzekutuar saktë një MethodInstance SpecificFinder me Emri … Ensure input Parameters have TypeDescriptors associated with every Identifier defined for this Entity.
Ja një e shtënë ekran:
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" metodë):
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:
<Pronë Emër="RdbCommandText" Lloj="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') dhe
(lower(CARRIER_ID) >= lower(@MinId)) dhe
(lower(CARRIER_ID) <= lower(@ MaxId)) dhe
(lower(DESCR) LIKE lower(@InputDescr))
]]>
</Pronë>
I was provided that SQL from a DBA person and I’m given to understand that it’s a i veçantë view they created just for me. The unique key there is CARRIER_ID.
Here is the bug I introduced:
<Identifiers>
<Identifier Emër="CARRIER_ID" TypeName="System.String" />
<Identifier Emër="DESCR" TypeName="System.String" />
</Identifiers>
Somewhere along the line, Kisha arritur të ngatërruar veten mbi kuptimin e <Identifiers> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Ajo ka punuar të gjithë.
I hope this saves someone some grief 🙂