Archives mensuelles: Novembre 2007

MOSS raconte moi mon nom de colonne est réservé ou en cours d'utilisation … Mais ce n'est pas

MISE À JOUR 12/04/07: Voir Cette KB Microsoft (http://support.microsoft.com/kb/923589) Pour plus d'informations.

En fait, Il s'avère que c'est, mais tricksy MOSS devait rendre difficile.

Mon client a fait un travail de développement sur son site MOSS au cours du week-end. C'est un peu un fouillis quant à ce qu'il faisait en fait, mais le résultat final est la suivante:

  • Il tente d'ajouter une colonne de site appelée « quantité" et réponses MOSS: "Le nom de la colonne que vous avez entré est déjà en cours d'utilisation ou réservés. Choisissez un autre nom."
  • Il tente d'ajouter à un autre environnement et qui fonctionne. Donc, « Quantité" n'est pas un nom réservé.
  • Il essaie de trouver une colonne de site existante, appelée « quantité" dans cette collection de sites. Il ne le trouve pas.

J'ai fait quelques recherche, et même une certaine codification, ciré philosophique et finit par trouver qu'une colonne appelée quantité a fait, En fait, Il existe. C'est dans le » _Hidden" Groupe. C'est pourquoi, Nous n'avons trouvé via l'interface utilisateur de SharePoint.

Comment a-t-elle reçu là? Je ne sais pas, mais j'ai une théorie (ou comme ma femme s'appelle, « blah blah blah »). Quelque part le long de la ligne, un fabuleux modèle quarante a été ajouté et probablement activé sur un site à la collection de sites. Il a été ensuite mis hors tension (ou le site supprimé). La colonne de site, Cependant, est resté mais en les » _Hidden" Groupe. Si quelqu'un sait mieux, s'il vous plaît faites le moi savoir par l'intermédiaire Messagerie ou par la poste dans les commentaires.

SharePoint, disait la vérité. C'est à peine utile de préciser que ce message n'est pas aussi utile qu'elle pourrait être. Il serait agréable de voir cette fourche message dans deux messages différents dans le futur: 1) Dire que le nom de colonne est réservé ou il n'est pas. 2) Si elle n'est pas réservée, afficher le site, ou au moins le groupe, où le nom de colonne est déjà utilisé.

</fin>

OM présentent les données Via une liste personnalisée (ou, Encore un autre données OM Displayor [comme YACC, mais différents])

Aujourd'hui, J'ai passé quelques heures à traquer la cause derrière le message "le nom de la colonne que vous avez saisi est déjà utilisé ou réservés. Choisissez un autre nom."

La colonne en question pourrait être créée, supprimé et recréé dans un autre environnement, alors je savais que ce n'était pas un nom réservé. Cependant, Je ne pouvais pas simplement trouver la colonne n'importe où par l'intermédiaire de l'interface utilisateur SharePoint standard à n'importe quel site dans la collection de sites.

J'ai posté à Forums MSDN ici et l'indomptable Andrew Woodward me dirigé dans la direction des données sous-jacentes du modèle objet.

Je suis allé à CodePlex pour trouver des outils qui m'aiderait à scruter les données sous-jacentes des OM et m'aider à localiser le problème.

J'ai essayé plusieurs outils et ils étaient très cool et intéressant, mais en fin de compte, l'interface utilisateur n'était pas assez bon pour mon but. Je ne critique pas eux par tous les moyens, mais clairement les outilleurs n'avais mon problème à l'esprit quand ils ont créé leur interface utilisateur :). La plupart des gens semblent investir passablement de temps et d'efforts dans la création de poste de travail / applications clientes qui offrent des vues de l'arbre, Cliquez sur les menus contextuels, etc.. Ils sont gentils et tous les, mais il y a beaucoup de travail pour créer une expérience utilisateur top-of-the-line qui est aussi très flexible.

J'ai vraiment besoin d'une réponse à ce problème. Il m'est apparu que si je pouvais obtenir toutes les colonnes de site dans la collection de sites dans une liste personnalisée, Je pouvais filtrer, trier et créer des vues qui pourrait m'aider à trouver cette colonne soi-disant existante (laquelle il l'a fait, BTW). J'ai avancé et fait qui et une heure ou deux plus tard, toutes les colonnes de mon site avaient chargé dans une liste personnalisée avec regroupement, tri, etc.. J'ai trouvé ma réponse cinq minutes plus tard.

Si je prends avec succès dans le monde entier, Je pense que j'ai le décret, que tous les fournisseurs d'outils SharePoint doivent envisager sérieusement de surfaçage leurs données de modèle d'objet dans une liste personnalisée. De cette façon, J'ai le pouvoir pour rechercher un chemin que je veux (contraint, Bien sûr, par les fonctionnalités standard de sharepoint).

Action de personnalisée pour le flux de travail SharePoint Designer — Observation sur <FieldBind Designer Type =”StringBuilder” … />

Juste une observation rapide qu'il y a une différence très importante entre ces deux définitions:

<FieldBind Field = "InParam1" DesignerType = "StringBuilder" ID = "2" Text = « Paramètre d'entrée # 1 » />

par rapport à:

<FieldBind Field = "InParam1" ID = "2" Text = « Paramètre d'entrée # 1 » />

La première montre comme ça dans le SPD:

image

alors qu'il le montre ce dernier comme ceci:

image

Je ne sais pas comment ces utiles captures d'écran sont mais je mis dans l'effort pour les faire de sorte que vous devez les voir 🙂

L'observation est la suivante: StringBuilder vous permet de créer une chaîne de (de toute évidence) en mélangeant des littéraux de chaîne et les données de flux de travail (via le « ajouter Lookup" bouton dans le coin inférieur gauche). Lorsque vous utilisez le bouton Ajouter Lookup, elle insère un jeton sous la forme"[%jeton %]". Lorsque SharePoint appelle l'action personnalisée, (Code c# dans mon cas), SharePoint passe le jeton lui-même, pas la valeur du jeton. Si vous utilisez le type de concepteur par défaut (le second type), SharePoint étend le jeton et passe le jeton de la valeur réelle de votre action.

StringBuilder = BAD, par défaut le type de concepteur = bonne.

Bien sûr, Ce n'est pas ce que j'ai vraiment. N'essayez et passez un paramètre à votre action personnalisée lorsque le concepteur tapez = StringBuilder. Utilisez le type de concepteur par défaut et la chaîne un StringBuilder pour elle dès le départ si vous avez besoin pour construire des chaînes complexes dans votre flux de travail (qui est d'ailleurs exactement ce qu'on fait pour créer un objet dynamique pour l'action de Courriel, mais c'est un sujet pour une autre entrée de blog, har har).

<fin />

Activation de flux de travail prématuré — Une Solution Non médicaux

MISE À JOUR: Voir cette discussion MSDN, surtout la dernière entrée: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. Il décrit une condition qui peut court-circuiter tout cela. En bref, Il peut être aussi simple que de faire au moins un des champs obligatoires.

J'ai une bibliothèque de document qui prend en charge les types de contenu de huit.

J'ai un flux de travail SharePoint Designer qui veut calculer et attribuer une date de rappel"" en soustrayant simplement 30 jours d'une autre colonne, « date d'échéance ». Cela se produit uniquement pour l'un des types de contenu, « Assurance ». L'objectif de l'entreprise est de produire un indicateur de performance clé qui affiche deux catégories de documents d'assurance: « sur le point d'expirer" et "a expiré." (Vous pouvez lire plus sur ce genre de KPI et plus importante forage ici).

J'ai configuré le flux de travail au feu lorsqu'un nouvel élément est créé et lorsqu'un élément est modifié. L'idée est que lorsqu'un document d'assurance est téléchargé, Nous calculons une date de mise en garde »" basé sur la date d'expiration. Une paire de vues travailler dans le cadre d'une liste de KPI pour mettre en évidence ces conditions lorsque les utilisateurs a frappé leur page d'accueil.

Cette stratégie ne fonctionne pas lorsque je télécharger un document.

J'ai télécharger le document et je suis présenté à l'écran de saisie de données meta. À ce point, Je suis déjà dans le pétrin. SharePoint a déjà, prématurément, de mon point de vue, tiré du flux de travail. Je n'ai pas eu la chance de choisir le type de contenu correct, ni attribuer une date d'échéance. En même temps, le flux de travail ne se déclenche pas lorsque j'ai touché le bouton soumettre en ce moment. Il y a une logique intégrée qui « croit" qui d'abord soumettre fait partie de la « créer" événement. Si … mon workflow a tiré et lorsqu'il est exécuté, Il a été adopté des valeurs par défaut de données meta.

La contourner meilleur à ma connaissance est d'insérer une "pause jusqu'en" activité du workflow. J'ai la pause de flux de travail pour 1 minute. Alors que c'est une pause, Sélectionner le type de contenu correct, Entrez les données méta et soumettre. La pause se termine et le flux de travail procède au besoin. (Notez que dans mon environnement, activités de flux de travail du minuteur du SPD ne fonctionnent pas out of the box. Vous pouvez avoir le même ennui. Voir ici Pour plus de détails).

Je n'aime pas "retard magique" solution de contournement. Que se passe-t-il si l'utilisateur télécharge un document et le téléphone sonne et la conversation qui s'ensuivie survit à la pause? Je peux faire la pause plus longue, mais je reste ne l'aime.

J'ai écrit à ce sujet sur les forums MSDN ici: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

Apprêt de fondamentaux de sécurité SharePoint / Éviter les pièges

MISE À JOUR 12/18/07: Voir l'article de Paul Liebrand pour certaines conséquences techniques de supprimer ou de modifier les noms de groupe par défaut (voir son commentaire ci-dessous ainsi).

Vue d'ensemble:

Sécurité de SharePoint est facile à configurer et à gérer. Cependant, Il s'est avéré difficile pour les nouveaux administrateurs à vraiment envelopper les mains autour d'elle. Non seulement cela, J'ai vu certains administrateurs de parvenir à une compréhension parfaite lundi seulement pour avoir perdu en vendredi parce qu'ils n'ont pas à faire n'importe quelle configuration dans l'intervalle. (J'avoue avoir ce problème moi-même). Cette entrée de blog, j'espère que fournit une amorce de sécurité SharePoint utile et est orientée vers des meilleures pratiques de configuration de sécurité.

Remarque importante:

Cette description est issue hors de la zone de sécurité de SharePoint. Mon expérience personnelle est orienté autour de MOSS donc il peut y avoir des trucs spécifiques MOSS ici, mais je crois que c'est exact pour WSS. J'espère que quelqu'un voyant toute erreur ou omission sera signaler dans les commentaires ou Ecrivez-moi. Je vais faire des corrections post hâte.

Principes de base:

Aux fins de cette vue d'ensemble, Il y a quatre aspects fondamentaux de la sécurité: utilisateurs/groupes, objets sécurisables, héritage et niveaux d'autorisation.

Utilisateurs et groupes break down to:

  • Utilisateurs individuels: Tiré d'active directory ou créés directement dans SharePoint.
  • Groupes: Directement mappé d'active directory ou créé dans SharePoint. Les groupes sont une collection d'utilisateurs. Les groupes sont mondiaux dans une collection de sites. Ils sont jamais "liés" pour un objet sécurisable spécifique.

Objets sécurisables pause au moins:

  • Sites
  • Bibliothèques de documents
  • Éléments individuels dans les listes et les bibliothèques de documents
  • Dossiers
  • Divers paramètres de BDC.

Il autres objets sécurisables, mais vous obtenez l'image.

Niveaux d'autorisation: Un faisceau de granulaire / droits d'accès de bas niveau qui incluent des choses comme créer/lire/effacer les entrées dans les listes.

Héritage: Par défaut des entités héritent des paramètres de sécurité de leur objet conteneur. Sous-sites héritent de l'autorisation de leur parent. Bibliothèques de documents héritent de leur site. Ainsi de suite, etc..

Les utilisateurs et les groupes se rapportent à des objets sécurisables via les niveaux d'autorisation et d'héritage.

Règles de sécurité les plus importantes à comprendre, Jamais 🙂 :

  1. Les groupes sont tout simplement des collections d'utilisateurs.
  2. Les groupes sont globales au sein d'une collection de sites (i.e. Il n'y a rien de tel qu'un groupe défini à un niveau de site).
  3. Nom du groupe ne pas résister, groupes ne, dans et d'eux-mêmes, avoir un niveau particulier de sécurité.
  4. Les groupes ont la sécurité dans le contexte d'un objet sécurisable spécifique.
  5. Vous peut attribuer des niveaux d'autorisation différents pour le même groupe pour chaque objet sécurisable.
  6. Stratégies d'application Web l'emporte sur tout cela (voir ci-dessous).

Les administrateurs de sécurité perdus dans une mer de listes d'utilisateurs et de groupes peuvent toujours compter sur ces axiomes de gérer et de comprendre leur configuration de la sécurité.

Pièges:

  • Noms de groupe impliquent faussement la permission: Out of the box, SharePoint définit un ensemble de groupes dont les noms impliquent un niveau inhérent de sécurité. Considérons le groupe « Contributeur ». Un peu familier avec sécurité SharePoint peut bien regarder ce nom et supposer que n'importe quel membre de ce groupe peut "contribuer" à n'importe quel site/liste/bibliothèque dans le portail. C'est peut-être vrai mais pas parce que le nom du groupe se trouve être « contributeur ». Ceci n'est vrai out of the box parce que le groupe a bénéficié d'un niveau d'autorisation qui leur permet d'ajouter/modifier/supprimer des contenus à la racine du site. Par héritage, les contributeurs »" groupe peut également ajouter/modifier/supprimer contenu à chaque sous-site. On peut "casser" la chaîne d'héritage et le changement du niveau d'autorisation d'un sous-site que les membres de la soi-disant « contributeur" groupe ne peuvent pas contribuer à tous les, mais seulement lire (par exemple). Ce ne serait pas une bonne idée, de toute évidence, car il serait très confuse.
  • Les groupes ne sont pas définis à un niveau de site. Il est facile de confondre par l'interface utilisateur. Microsoft fournit un lien pratique vers gestion utilisateur/groupe par l'intermédiaire "de personnes et de groupes de chaque site" lien. Il est facile de croire que quand je suis au site "xyzzy" et j'ai créer un groupe par le biais personnes de xyzzy et groupes lien que je viens de créer un groupe qui existe seulement à xyzzy. Ce n'est pas le cas. J'ai effectivement créé un groupe pour la collecte de l'ensemble du site.
  • Appartenance à des groupes ne varie pas par site (i.e. C'est le même partout où que le groupe est utilisé): Considérons le groupe propriétaire »" et deux sites, « HR" et « Logistique ». Il serait normal de penser que deux personnes différentes détiendrait ces sites — un propriétaire de HR et propriétaire d'une logistique. L'interface utilisateur, il est facile pour un administrateur de sécurité à altérer ce scénario. Si je ne savais pas mieux, Je pourrais accéder les personnes et les groupes liens via le site RH, Sélectionnez les propriétaires"" groupe et ajouter mon propriétaire HR à ce groupe. Un mois plus tard, Logistique est en ligne. J'ai accéder des personnes et des groupes depuis le site de logistique, ajouter pull up les propriétaires"" Groupe. Je vois le propriétaire HR là et lui enlever, pensant que je suis lui retirer propriétaires sur le site de logistique. En fait, Je suis lui retirer le groupe global des propriétaires. Hilarité s'ensuit.
  • Négliger de nom basé sur le rôle spécifique des groupes: Les approbateurs"" groupe est un parfait exemple. Ce qui peut les membres de cette approbation de groupe? Où est-ce qu'ils peuvent approuver il? Ai-je vraiment envie département logistique personnes pour pouvoir approuver des documents RH? Bien sûr que non. Toujours nommer des groupes fondées sur leur rôle au sein de l'Organisation. Cela permettra de réduire le risque que le groupe est assigné un niveau d'autorisation inappropriés pour un objet sécurisable particulier. Nommer des groupes fondées sur leur rôle. Dans le scénario précédent de HR/logistique, Je devrais avoir créé deux nouveaux groupes: « Les propriétaires des ressources humaines" « les propriétaires de logistique et" et attribuer des niveaux d'autorisation raisonnable pour chacun et le montant minimal requis pour les utilisateurs de faire leur travail.

Autres références utiles:

Si vous avez fait il ce bien:

S'il vous plaît laissez-moi savoir votre opinion via les commentaires ou à m'envoyer un email. Si vous connaissez d'autres bonnes références, Veuillez faire de même!

Tags Technorati:

Facile et rapide: Créer un composant WebPart Affichage de données (DVWP)

Il y a une foule de renseignements très sur le WSS 3.0 Composant WebPart Affichage de données (DVWP) sur le web à partir de plusieurs sources. Cependant, J'ai trouvé qu'il est étonnamment difficile de trouver des informations sur cette première étape très basique. Voici un autre article dans le "rapide et facile" série pour y répondre.

Suivez ces étapes pour créer un composant WebPart Affichage de données (DVWP). Elles reposent sur un « annonces" composant WebPart, mais s'applique à la plupart des listes.

  1. Créer un composant WebPart annonces et l'ajouter à un site.
  2. Ouvrez le site dans SharePoint Designer.
  3. Ouvrez default.aspx du site.
  4. Sélectionnez le composant WebPart annonces et faites un clic droit.
  5. Dans le menu contextuel, Sélectionnez "convertir à XSLAffichage de données de T ».

SharePoint Designer vous informe que ce site est maintenant personnalisé de sa définition du site. Ce n'est pas forcément mauvais, mais il y a des conséquences importantes sur (performance, mise à niveau, d'autres) qui sont au-delà de la portée de ce petit "rapide et facile" entrée. Pour obtenir plus d'informations sur ce sujet, Je vous recommande les deux livres ici ainsi que votre recherche Internet favori.

Confirmer que vous l'avez fait correctement:

  1. Fermer et rouvrir le navigateur web (pour éviter les re-posting accidentellement l'original « ajouter un nouveau composant WebPart »).
  2. Sélectionnez la flèche de la partie web menu déroulant et choisissez "modifier partage Web Part" dans le menu.
  3. Le panneau d'outil s'ouvre vers la droite.
  4. Le groupe a changé de ses options set habituelles à cette:
image

“Impossible d'obtenir la propriété colonne de liste schéma de la liste SharePoint” — Description/travail-solutions de rechange

Cette semaine, Nous avons enfin reproduit un problème qui avait été signalé par un utilisateur distant: Quand elle a essayé d'exporter le contenu d'une liste vers excel, choses semblent commencer à travailler, mais alors Excel pop-up serait une erreur: « Impossible d'obtenir la propriété colonne de liste schéma dans la liste SharePoint ». Elle courait Bureau 2003, Windows XP et la connexion à MOSS.

J'ai cherché les Internets et vu quelques spéculations mais rien 100% définitif. C'est pourquoi, ce poste.

Le problème: Exporter une vue pour excel qui contient une date (date = le type de données de la colonne).

Ce qui a fonctionné pour nous: Convertir la date à « une seule ligne de texte ». Puis, la reconvertir en une date.

Qui a résolu. C'était agréable de voir que la conversion a travaillé, en fait. Il était assez nerveux que convertir les choses de cette façon échouerait, mais il n'a pas.

Ce bug a jeté une ombre immense sur le type de données date dans l'esprit du client, donc nous allons être chercher une réponse définitive de Microsoft et j'espère que je vais poster et mise à jour ici dans le prochain court laps de temps avec leurs informations de réponse et le correctif officielles.

Autres références:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<fin>

S'abonner à mon blog.

Tags Technorati: ,

Simple et rapide: Envoyer un email avec lien hypertexte incorporé de flux de travail SharePoint Designer

Une fois ou deux fois par mois, quelqu'un publie une question forum: « Comment je comportent des liens hypertexte à une URL qui est cliquable dans un courriel de SharePoint Designer?"

Présenté sans autres commentaires: (bien, en fait, il y a d'autres commentaires après l'image):

image

Les Becky Isserman suit avec une explication utile sur la façon d'intégrer un lien vers un élément dans le Courriel: http://www.sharepointblogs.com/mosslover/archive/2007/11/20/addition-to-paul-galvin-s-post-about-sending-an-e-mail-with-hyperlinks-in-spd.aspx

Nouvelle version: Extensions de flux de travail SharePoint Designer (fonctions de manipulation de chaîne)

MISE À JOUR: Voir ici pour mes pensées sur la commercialisation de ce projet: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

J'ai été occupé à travailler sur mon projet Codeplex qui est actuellement axé sur la prestation de chaîne extensions de manipulation de flux de travail créé via SharePoint Designer.

Voir ici pour plus de détails:

Accueil du projet: http://www.codeplex.com/spdwfextensions

Communiqué: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Version 1.0 inclut les nouvelles fonctionnalités suivantes:

Fonction Description (Si pas identique.Fonction nette)
Num-entrées() Renvoie les numéros "entrées" dans une chaîne comme un délimiteur spécifié.

Par exemple: Num-entrées en une chaîne « un,b,c" avec délimiteur »," = 3.

Entrée() Renvoie le nième jeton dans une chaîne comme un délimiteur spécifié.
Longueur String.Length
Remplacer() String.Replace()
Contient() String.Contains()
Renvoie le mot « vrai" ou le mot « faux ».
Sous-chaîne(début) String.Substring(début)
Sous-chaîne(début,longueur) String.Substring(début,longueur)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Renvoie le mot « vrai" ou le mot « faux ».
EndsWith() String.EndsWith()
Renvoie le mot « vrai" ou le mot « faux ».

Une erreur d'exécution BDC a expliqué

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:

clip_image001

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 🙂

Tags Technorati: , , ,