J'a provoqué une erreur BDC cette semaine qui se manifeste sur l'interface utilisateur et en le 12 journal de la ruche lors de l'exécution.
Première, Cela apparaît dans l'interface utilisateur:
Impossible de trouver les champs à insérer toutes les valeurs d'identificateur pour exécuter correctement une SpecificFinder MethodInstance avec nom … S'assurer que les paramètres d'entrée comportent des TypeDescriptors associés à chaque identificateur défini pour cette entité.
Voici une capture d'écran:
Je pourrais également provoquer ce message d'apparaître dans la 12 journal de la ruche à sera (à l'aide de mon high-tech-don't-try-this-at-home breveté « erreurs mystérieuses" méthode):
11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C données de SharePoint Portal Server Business 6q4x haute Exception dans BusinessDataWebPart.OnPreRender: System.InvalidOperationException: La valeur de l'identificateur ”, de Type ”, n'est pas valide. Valeur de l'identificateur attendu de Type « System.String ». à Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Objet[] subIdentifierValues, LobSystemInstance lobSystemInstance) à Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entité de l'entité, Objet[] userValues, LobSystemInstance lobSystemInstance) à Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vue desiredView) à Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() à Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()
J'ai cherché et trouvé quelques pistes dans la Forum MSDN, mais ils n'étaient pas assez pour me faire comprendre ce que je faisais mal. J'ai regardé un webcast par Ted Pattison que mon société a aperçut de loin sur un serveur et est venu se rendre compte de mon problème.
Dans mon fichier ADF, Je me connecte à une base de données SQL comme indiqué:
<Propriété Nom="RdbCommandText" Type="System.String"> <![CDATA[ SÉLECTIONNEZ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD, PAYS, ADRESSE1, ADRESSE2, ADDRESS3, ADDRESS4, VILLE, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3, COMTÉ DE, ÉTAT, POSTAL, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TÉLÉPHONE, EXTENSION, TÉLÉCOPIEUR, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR, INTERLINK_DLL, TMS_EXCLUDE_FLG de dbo.PS_CARRIER_ID_VW avec (NOLOCK) OÙ (SETID <> « ACTION ») et (plus bas(CARRIER_ID) >= plus faible(@MinId)) et (plus bas(CARRIER_ID) <= plus faible(@ MaxId)) et (plus bas(DESCR) COMME plus bas(@InputDescr)) ]]> </Propriété>
J'ai obtenu que SQL d'une personne DBA et je me donne à comprendre que c'est un spécial ils ont créé juste pour moi. La clé unique il est CARRIER_ID.
Voici le bug, j'ai présenté:
<Identificateurs> <Identificateur de Nom="CARRIER_ID" TypeName="System.String" /> <Identificateur de Nom="DESCR" TypeName="System.String" />
</Identificateurs>
Quelque part le long de la ligne, J'avais réussi à me confondre au sens de <Identificateurs> et ajouté DESCR, même si ce n'est pas réellement un identificateur. J'ai pris DESCR hors de l'ensemble des identifiants et hop! Tout cela a fonctionné.
J'espère que cela sauve quelqu'un quelque chagrin 🙂
Pieter, vous probalby cela résolu maintenant, mais je pense qu'il serait lié à la définition sur le back-end. Peut-être le champ SQL elle-même est limité à 60 les caractères? Quelque chose de semblable?
Salut,
J'ai un problème avec un BDC, et je me demande si vous pouvez aider cette?
Je suis en utilisant deux champs identifiier ( un certain nombre et un champ de description), chaque fois que le nombre total de caractères dépasse 60 J'obtiens des erreurs de foollowing:
Valeur de texte non valide
Un champ de texte contient des données non valides. Veuillez vérifier la valeur et essayez à nouveau.
Comprenez-vous où cette limite de 60 personnages vient de? et comment résoudre ce problème?
Actuellement je suis limiter la description de telle manière que ne dépasse pas le nombre total de caractères 60.