Eu causou un erro BDC esta semana que se manifestou sobre a interface de usuario e no 12 colmea rexistro en tempo de execución.
Primeiro, este apareceu na interface de usuario:
Non se atopou campos para introducir todos os valores identificador para realizar correctamente unha MethodInstance SpecificFinder con nome … Asegúrese de parámetros de entrada teñen TypeDescriptors asociados con cada identificador definido para esta entidade.
Aquí está unha captura de pantalla:
Eu podería causar esta mensaxe sexa exhibida na 12 rexistro colmea a gusto (using my patented high-tech-don’t-try-this-at-home "mysterious errors" método):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C SharePoint Portal Server Business Data 6q4x High Exception in BusinessDataWebPart.OnPreRender: System.InvalidOperationException: O valor Identificador ”, de tipo ”, non é válido. Expected Identifier value of Type ‘System.String’. en Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Obxecto[] subIdentifierValues, LobSystemInstance LobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entidade entidade, Obxecto[] userValues, LobSystemInstance LobSystemInstance) en Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Ver desiredView) en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() en Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
Procurei ao redor e atopar algunhas pistas no MSDN foro, but they weren’t enough for me to understand what I was doing wrong. I watched a webcast by Ted Pattison que a miña compañía ten squirreled afastado nun servidor e veu a entender o meu problema.
Na miña ADF, Estou me conectando a un banco de datos SQL como se mostra:
<Propiedade Nome="RdbCommandText" Tipo="System.String">
<![CDATA[
Seleccione
, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, Network_id, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
PAÍS, Endereço1, Endereço2, Endereço3, ADDRESS4, CIDADE, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
County, ESTADO, Postal, GEO_CODE, IN_CITY_LIMIT, Country_code, TELÉFONO, MEDIDA, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
INTERLINK_DLL, TMS_EXCLUDE_FLG
(nolock)
ONDE
(SetId <> 'Compartir') e
(descargar(CARRIER_ID) >= Menor(@ MinID)) e
(descargar(CARRIER_ID) <= Menor(@ MaxId)) e
(descargar(DESCR) COMO menor(@ InputDescr))
]]>
</Propiedade>
Eu estaba sempre que o SQL dunha persoa dBA e estou dado a entender que é un especial view they created just for me. The unique key there is CARRIER_ID.
Aquí é a erro eu introducir:
<Identificadores>
<Identificar Nome="CARRIER_ID" TypeName="System.String" />
<Identificar Nome="DESCR" TypeName="System.String" />
</Identificadores>
Nalgún lugar ao longo da liña, Eu conseguira confundir-me sobre o significado de <Identificadores> and added DESCR even though it’s not actually an identifier. I took DESCR out of the identifiers set and presto! Todo funcionou.
I hope this saves someone some grief 🙂