நான் பயனர் இடைமுகம் மற்றும் தன்னை வெளிப்படுத்தி என்று இந்த வாரம் ஒரு BDC பிழை 12 hive log at runtime.
முதல், இந்த பயனர் இடைமுகம் தோன்றினார்:
அனைத்து அடையாளங்காட்டி கலாச்சாரம் நுழைக்க துறைகள் சரியாக பெயர் ஒரு 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(காட்சி desiredView) Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance மணிக்கு() Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties மணிக்கு()
நான் சுற்றி தேடிய மற்றும் சில தடங்கள் காணப்படவில்லை எம்எஸ்டிஎன் மன்றம், but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by டெட் பாட்டிசன் என் நிறுவனம் ஒரு சர்வரில் விட்டு squirreled என் பிரச்சனை உணர வந்தது.
என் ADF உள்ள, காட்டப்பட்டது நான் ஒரு SQL தரவுத்தள இணைக்கும்:
<சொத்து பெயர்="RdbCommandText" மாதிரி="System.String">
<![CDATA[
SELECT
, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
COUNTRY, முகவரி 1, முகவரி 2, ADDRESS3, ADDRESS4, நகரம், NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
COUNTY, மாநிலம, தபால் அலுவலகம் சார்ந்த, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, தொலைபேசி, விரிவாக்கம், தொலைநகல், 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.
I hope this saves someone some grief 🙂