archivi mensili: Novembre 2007

MOSS dice a Me My nome della colonna è riservato o durante l'uso … Ma non è

AGGIORNAMENTO 12/04/07: Vedere questo Microsoft KB (http://support.microsoft.com/kb/923589) per informazioni correlate.

In realtà, si scopre che è, ma tricksy MOSS era di rendere difficile.

Il mio cliente fa un lavoro di sviluppo sul suo sito MOSS durante il fine settimana. È un po' un miscuglio per quanto riguarda quello che ha fatto effettivamente, ma il risultato finale è questo:

  • Tenta di aggiungere una colonna del sito denominata "quantità" e le relative risposte MOSS: "Il nome di colonna immesso è già in uso o riservato. Scegliere un altro nome."
  • Egli tenta di aggiungerlo a un altro ambiente e che funziona. Pertanto, "Quantità" non è un nome riservato.
  • Egli cerca di trovare una colonna esistente sito denominata "quantità" in tale raccolta siti. Non riesco a trovarlo.

Ho fatto alcuni ricerca, e anche qualche codifica, cerato filosofico e finalmente trovato che ha fatto una colonna denominata quantità, Infatti, Esistono. Era in hidden" gruppo. Da qui, noi non potremmo trovare tramite l'interfaccia utente di SharePoint.

Come è arrivato lì? Non lo so, ma io ho una teoria (o come mia moglie la chiamerei, "bla bla bla"). Da qualche parte lungo la linea, un favoloso modello quaranta è stato aggiunto e probabilmente attivato presso un sito nella raccolta siti. Esso quindi è stato disattivato (o il sito rimosso). La colonna del sito, Tuttavia, rimase ma nella "_Hidden" gruppo. Se qualcuno conosce meglio, per favore fatemi sapere tramite Posta elettronica o post nei commenti.

SharePoint stava dicendo la verità. È quasi la pena di sottolineare che tale messaggio non è disponibile come potrebbe essere. Sarebbe bello vedere quella forchetta messaggio in due messaggi diversi in futuro: 1) Dire che il nome della colonna è riservato, o non è. 2) Se non si è riservato, Visualizza il sito, o almeno il gruppo, dove è già utilizzato il nome della colonna.

</fine>

OM presentano i dati tramite un elenco personalizzato (o, Ancora un altro OM dati Displayor [come YACC, ma diverso])

Oggi, Ho trascorso una manciata di ore rintracciare la causa principale dietro il messaggio "il nome di colonna immesso è già in uso o riservato. Scegliere un altro nome."

La colonna in questione potrebbe essere creata, eliminato e ricreato in un altro ambiente, quindi sapevo che non era un nome riservato. Tuttavia, Semplicemente non riuscivo a trovare la colonna ovunque tramite l'interfaccia utente di SharePoint standard a qualsiasi sito nella raccolta siti.

Inviato a Forum MSDN qui e l'indomito Andrew Woodward mi ha segnalato in direzione di dati di modello dell'oggetto sottostante.

Sono andato a CodePlex per trovare alcuni strumenti che mi aiuterebbe a scrutare i dati sottostanti OM e mi aiuta a individuare i problemi.

Ho provato diversi strumenti ed erano molto fresco e interessante, ma alla fine, l'interfaccia utente non era abbastanza buono per il mio scopo. Io non sto criticando con qualsiasi mezzo, ma chiaramente i costruttori di utensili non ha avuto il mio problema in mente quando hanno creato la loro interfaccia utente :). La maggior parte delle persone sembrano essere investire una discreta quantità di tempo e fatica nella creazione di workstation / applicazioni client che offrono una vista ad albero, destro del mouse su menu di scelta rapida e così via. Queste sono belle e tutte le, ma è un sacco di lavoro per creare un'esperienza utente top-of-the-line che è anche molto flessibile.

Ho davvero bisogno di una risposta a questo problema. Mi venne in mente che se potessi avere tutte le colonne del sito nella raccolta siti in un elenco personalizzato, Potuto filtrare, ordinare e creare visualizzazioni che possa aiutarmi a trovare questa colonna presumibilmente esistente (che ha fatto, BTW). Sono andato avanti e ha fatto che e un'ora o due più tardi, avevano tutte le colonne del mio sito caricato in un elenco personalizzato con raggruppamento, ordinamento e così via. Cinque minuti più tardi trovato la mia risposta.

Se e quando prendo con successo il mondo, Penso che sarà decreto che tutti i fornitori di strumenti di SharePoint devono prendere seriamente in considerazione i dati del modello di oggetto in un elenco personalizzato di affioramento. in questo modo, Ho il potere per cercare qualsiasi modo voglio (vincolata, Naturalmente, di funzionalità standard di sharepoint).

SharePoint Designer del flusso di lavoro azione personalizzata — Osservazione delle <FieldBind Designer Type =”StringBuilder” … />

Solo un'osservazione rapida che c'è una differenza molto importante tra queste due definizioni:

<Campo FieldBind = "InParam1" DesignerType = "StringBuilder" ID = "2" Testo = "Parametri di Input # 1" />

contro:

<Campo FieldBind = "InParam1" ID = "2" Testo = "Parametri di Input # 1" />

La prima mostra come questo in SPD:

immagine

mentre la mostra di quest'ultima come questo:

immagine

Non sono sicuro di quanto siano utili queste schermate, ma mi impegno a farle in modo che tu debba vederle 🙂

L'osservazione è questo: StringBuilder consente di generare una stringa (ovviamente) mescolando insieme le stringhe letterali e dati di flusso di lavoro (tramite il "Add Lookup" pulsante in basso a sinistra). Quando si utilizza il pulsante Aggiungi ricerca, inserisce un token in forma"[%token %]". Quando SharePoint richiama l'azione personalizzata, (Codice c# nel mio caso), SharePoint passa il token stesso, non il valore del token. Se si utilizza il tipo predefinito di progettazione (il secondo tipo), SharePoint si espande il token e passa il valore effettivo del token a vostra azione.

StringBuilder = cattivo, tipo di finestra di progettazione di default = buono.

Naturalmente, che è non quello che voglio dire davvero. Basta non cercare di passare un parametro per l'azione personalizzata quando la finestra di progettazione digitare = StringBuilder. Utilizzare il tipo di progettazione predefinita e catena un StringBuilder ad esso davanti se è necessario costruire stringhe complesse nel vostro flusso di lavoro (che per inciso è esattamente ciò che si fa per creare un oggetto dinamico per l'azione di e-mail, ma questo è un argomento per un altro blog, har har).

<fine />

Attivazione del flusso di lavoro precoce — Una soluzione Non-medici

AGGIORNAMENTO: Vedi questa discussione di MSDN, soprattutto l'ultima voce: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. Esso descrive una condizione che potrebbe provocare un cortocircuito tutto questo. In breve, può essere semplice come fare almeno uno dei campi obbligatori.

Io sono una raccolta di documenti che supporta otto tipi di contenuto.

Ho un flusso di lavoro SharePoint Designer che vuole calcolare e assegnare una data promemoria"" sottraendo semplicemente 30 giorni da un'altra colonna, "data di scadenza". Questo dovrebbe accadere solo per uno dei tipi di contenuto, "Assicurazione". L'obiettivo aziendale è quello di produrre un indicatore KPI che mostra due categorie di documenti assicurativi: "sta per scadere" e "scaduto." (Potete leggere di più su questo genere di KPI e più sostanziale drill-down qui).

Ho configurato il flusso di lavoro quando viene creato un nuovo elemento e quando viene modificato un elemento fuoco. L'idea è che quando viene caricato un documento assicurativo, Calcoliamo una data di avviso"" base alla data di scadenza. Un paio di visite di lavoro in relazione a un elenco di KPI per evidenziare queste condizioni quando gli utenti hanno colpito la loro home page.

Questa strategia non funziona quando carica un documento.

Caricare il documento e sono presentati con la schermata di immissione dati meta. A questo punto, Sono già nei guai. SharePoint ha già, prematuramente dalla mia prospettiva, licenziato il flusso di lavoro. Io non ho avuto la possibilità di scegliere il tipo di contenuto corretto né assegnare una data di scadenza. Allo stesso tempo, il flusso di lavoro non viene generato quando premo il pulsante di invio in questo momento. C'è una logica incorporata che "ritiene" che presentare prima fa parte della "crea" evento. Così … ha licenziato il mio flusso di lavoro e quando è eseguita, passò i valori predefiniti meta dati.

Il work-around migliori che conosco è per inserire una pausa"fino al" attività del flusso di lavoro. Ho la pausa del flusso di lavoro per 1 minuto. Mentre esso è la pausa, Selezionare il corretto tipo di contenuto, inserire i meta dati e presentare. La pausa viene completata e il flusso di lavoro procede secondo le necessità. (Notare che nel mio ambiente, attività relative ai timer del flusso di lavoro da SPD non funzionano fuori dalla scatola. Si può avere lo stesso problema. Vedere qui per maggiori dettagli).

Non mi piace "magia ritardo" nei dintorni di lavoro. Cosa succede se l'utente carica un documento e il telefono squilla e la conseguente conversazione dura più a lungo la pausa? Posso fare la pausa più lunga, ma io ancora non piace.

Scritto su questo sul forum di MSDN: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1

SharePoint Security Fundamentals Primer / Evitare i trabocchetti comuni

AGGIORNAMENTO 12/18/07: Vedere l'articolo di Paul Liebrand per alcune conseguenze tecniche di rimuovere o modificare i nomi di gruppo predefinito (vedere pure suo commento qui sotto).

Panoramica:

Protezione di SharePoint è facile da configurare e gestire. Tuttavia, ha dimostrato di essere difficile per alcuni amministratori prima volta davvero avvolgere le mani intorno ad esso. Non solo che, Ho visto alcuni amministratori di giungere ad una comprensione perfetta il lunedì solo per avere perso di venerdì perché non avevano alcuna configurazione nel frattempo. (Ammetto di avere questo problema io). Questo Blog speriamo che fornisce un utile primer di protezione di SharePoint e punti verso alcune procedure ottimali di configurazione.

Nota importante:

Questa descrizione si basa su out of the box di protezione di SharePoint. La mia esperienza personale è orientato intorno a MOSS, così ci possono essere alcune cose specifiche MOSS qui, ma credo che è preciso per WSS. Spero che chiunque vedendo eventuali errori o omissioni che verrà segnalare nei commenti o email me. Farò le correzioni fretta post.

Fondamenti:

Ai fini di questa panoramica, ci sono quattro aspetti fondamentali per la sicurezza: utenti/gruppi, oggetti a protezione diretta, ereditarietà e livelli di autorizzazione.

Utenti e gruppi break down to:

  • Singoli utenti: Tirato da active directory o creato direttamente in SharePoint.
  • Gruppi: Mappata direttamente da active directory o creati in SharePoint. I gruppi sono un insieme di utenti. I gruppi sono globali in una raccolta siti. Non sono mai "legati" per un oggetto a protezione diretta specifico.

Oggetti a protezione diretta rottura verso il basso per almeno:

  • Siti
  • Raccolte documenti
  • Singoli elementi in elenchi e raccolte documenti
  • Cartelle
  • Varie impostazioni BDC.

Ci altri oggetti a protezione diretta, ma si ottiene l'immagine.

Livelli di autorizzazione: Un fascio di granulare / diritti di accesso a basso livello che includono tali cose come creare, leggere o eliminare voci negli elenchi.

Ereditarietà: Per impostazione predefinita le entità ereditano le impostazioni di protezione dal loro oggetto contenente. Siti secondari ereditano l'autorizzazione dai propri genitori. Raccolte documenti ereditano dal loro sito. E così via.

Gli utenti e i gruppi si riferiscono agli oggetti a protezione diretta tramite livelli di autorizzazione e l'eredità.

Norme di sicurezza più importanti per capire, mai :

  1. I gruppi sono semplicemente raccolte degli utenti.
  2. I gruppi sono globali all'interno di una raccolta siti (vale a dire. non non c'è nessuna tale cosa come un gruppo definito a livello di sito).
  3. Nome del gruppo non sopportare, gruppi non, in e di se stessi, avere un livello specifico di sicurezza.
  4. Gruppi hanno sicurezza nel contesto di uno specifico oggetto a protezione diretta.
  5. È possibile assegnare livelli di autorizzazione diversi per lo stesso gruppo per ogni oggetto a protezione diretta.
  6. Criteri di applicazione Web vincente tutto questo (vedi sotto).

Gli amministratori della protezione ha perduti in un mare di annunci gruppo e utente possono sempre contare su questi assiomi per gestire e capire la loro configurazione di sicurezza.

Trabocchetti comuni:

  • I nomi dei gruppi falsamente implica l'autorizzazione: Out of the box, SharePoint definisce un insieme di gruppi i cui nomi implicano un livello intrinseco di sicurezza. Si consideri il gruppo di "Collaboratore". Uno sconosciuto con protezione di SharePoint può ben guardare quel nome e si supponga che ogni membro del gruppo può "contribuire" a qualsiasi sito/elenco/libreria nel portale. Questo può essere vero, ma non perché il nome del gruppo sembra essere "collaboratore". Questo è vero, fuori dalla scatola solo perché il gruppo è stato fornito un livello di autorizzazione che permette loro di aggiungere/modificare/eliminare contenuto nel sito radice. Tramite l'ereditarietà, i contribuenti"" gruppo può anche aggiungere/modificare/eliminare contenuto in ogni sub-sito. Uno può "spezzare" la catena di ereditarietà e cambia il livello di autorizzazione di un sito secondario tali che i membri del cosiddetto "contributore" gruppo non può contribuire a tutti, ma solo leggere (per esempio). Questo non sarebbe una buona idea, ovviamente, poiché sarebbe molto confusa.
  • Gruppi non definiti a livello di sito. È facile essere confusi dall'interfaccia utente. Microsoft fornisce un comodo collegamento a gestione utente/gruppo via "utenti e gruppi di ogni sito" link. È facile credere che quando io sono al sito "xyzzy" e creare un gruppo attraverso persone di xyzzy e gruppi di link che ho appena creato un gruppo che esiste solo a xyzzy. Che non è il caso. In realtà ho creato un gruppo per l'intera raccolta siti.
  • Appartenenza a gruppi non variano da sito (vale a dire. è lo stesso ovunque che il gruppo viene utilizzato): Si consideri il gruppo "proprietario" e due siti, "HR" e "Logistica". Sarebbe normale pensare che due individui separati sarebbero proprio quei siti — un proprietario di HR e un proprietario di logistica. L'interfaccia utente rende facile per un amministratore di sicurezza di maltrattare questo scenario. Se non ti conoscessi bene, Potrei accedere a persone e gruppi di link tramite il sito HR, selezionare i proprietari"" gruppo e aggiungere il mio proprietario di HR a tale gruppo. Un mese più tardi, Logistica arriva sulla linea. Accedere a persone e gruppi dal sito logistica, Aggiungi pull-up i proprietari"" gruppo. Vedo il proprietario HR c'e rimuovere il suo, pensando che lei sto rimuovendo dai proprietari con il sito di logistica. Infatti, Io la rimuovo dal gruppo globale proprietari. Segue ilarità.
  • Mancanza di nome ai gruppi basati sul ruolo specifico: Responsabili dell'approvazione"" il gruppo è un perfetto esempio. Che cosa può membri di approvare questo gruppo? Dove essi possano approvarlo? Voglio davvero dipartimento di logistica di persone di essere in grado di approvare i documenti HR? Certo che no. Sempre un nome ai gruppi in base al loro ruolo all'interno dell'organizzazione. Questo ridurrà il rischio che il gruppo viene assegnato un livello di autorizzazione non corretti per un determinato oggetto a protezione diretta. Gruppi di nome basati sul loro ruolo previsto. Nello scenario precedente HR/logistica, Io dovrei aver creato due nuovi gruppi: "HR proprietari" e i proprietari di logistica"" e assegnare livelli di autorizzazione sensata per ciascuno e l'importo minimo richiesto per gli utenti di fare il loro lavoro.

Altri riferimenti utili:

Se hai fatto questo lontano:

Per favore fatemi sapere cosa ne pensate attraverso i commenti o email me. Se conoscete altre buone referenze, si prega di fare lo stesso!

Technorati Tags:

Facile e veloce: Creare una Web Part visualizzazione dati (DVWP)

C'è una ricchezza di grandi informazioni su WSS 3.0 Web Part visualizzazione dati (DVWP) sul web da diverse fonti. Tuttavia, Mi è sembrato di essere sorprendentemente difficile trovare informazioni su questo primo fondamentale passo. Ecco un altro articolo nel "rapido e facile" serie per affrontarlo.

Segui questi passaggi per creare una web part Visualizzazione dati (DVWP). Sono basati su un "annunci" parte Web, ma si applicano alla maggior parte delle liste.

  1. Creare una web part di annunci e aggiungerlo a un sito.
  2. Aprire il sito in SharePoint Designer.
  3. Aprire default. aspx del sito.
  4. Selezionare la web part Annunci e fare clic destro.
  5. Dal menu contestuale, selezionare "convertire a XSLVisualizzazione dati T".

SharePoint Designer ti avvisa che questo sito è ora personalizzato dalla sua definizione di sito. Che non è necessariamente un male, ma vi sono importanti implicazioni (prestazioni, aggiornamento, gli altri) che sono oltre la portata di questo piccolo "veloce e facile" entrata. Per ottenere ulteriori informazioni su questo argomento, Mi raccomando entrambi i libri qui così come la ricerca Internet preferita.

Confermare che l'hai fatto correttamente:

  1. Chiudere e riaprire il browser web (per evitare accidentalmente ri-postando una nuova web part originale "add").
  2. Selezionare la freccia della web part a discesa e scegliere "modifica condivisa Web Part" dal menu.
  3. Il pannello degli strumenti si apre a destra.
  4. Il pannello è cambiato da sue solite opzioni set a questo:
immagine

“Non è possibile ottenere la proprietà elenco schema colonna nell'elenco di SharePoint” — descrizione/work-around

Questa settimana, abbiamo finalmente riprodotto un problema che era stato riferito da un utente remoto: Quando ha cercato di esportare il contenuto di un elenco di eccellere, le cose sembrano iniziare a lavorare, ma poi Excel sarebbe pop up un errore: "Non può ottenere la proprietà di colonna di elenco dello schema dall'elenco SharePoint". Lei era in esecuzione office 2003, Windows XP e la connessione a MOSS.

Ho cercato il Internets e ho visto alcune speculazioni ma niente 100% definitivo. Da qui, Questo post.

Il problema: Esportare una vista per excel che contiene una data (data = il tipo di dati della colonna).

Che cosa ha funzionato per noi: Convertire la data in "una sola riga di testo". Poi, convertire una data.

Che risolto. E ' stato bello vedere che la conversione lavorato, in realtà. E ' stato piuttosto nervoso che trasformando le cose in questo modo non, ma non ha.

Questo bug ha gettato un'ombra enorme sopra il tipo di dati date nella mente del cliente, così stiamo andando a essere alla ricerca di una risposta definitiva da Microsoft e speriamo che io post e aggiornare qui nel prossimo periodo breve di tempo con le loro informazioni di risposta e hotfix ufficiale.

Altri riferimenti:

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

<fine>

Iscriviti al mio blog.

Technorati Tags: ,

Semplice e veloce: Inviare una mail con collegamento ipertestuale incorporato dal flusso di lavoro SharePoint Designer

Una o due volte al mese, qualcuno invia una domanda forum: "Come io includere collegamenti ipertestuali a URL che sono cliccabili da una email di SharePoint Designer?"

Presentato senza ulteriori commenti: (bene, in realtà c'è ulteriore commento dopo l'immagine):

immagine

Becky Isserman segue con una spiegazione utile su come incorporare un collegamento a un elemento nell'email: 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

Nuova release: Estensioni del flusso di lavoro di SharePoint Designer (funzioni di manipolazione stringa)

AGGIORNAMENTO: Vedi qui i miei pensieri sulla commercializzazione di questo progetto: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

I've been impegnato a lavorare sul mio progetto Codeplex che attualmente è focalizzata sulla fornitura di stringa estensioni di manipolazione ai flussi di lavoro creati tramite SharePoint Designer.

Vedi qui per i dettagli:

Casa di progetto: http://www.codeplex.com/spdwfextensions

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

Versione 1.0 include le seguenti nuove funzionalità:

Funzione Descrizione (Se non lo stesso come.Funzione netto)
Num-entries() Restituisce il numero "voci" in una stringa secondo un delimitatore specificato.

Per esempio: Num-voci in una stringa "un,b,c" con delimitatore"," = 3.

Voce() Restituisce il token n-esimo di una stringa secondo un delimitatore specificato.
Lunghezza String. length
Sostituire() Replace()
Contiene() Contains()
Restituisce la parola "true" o la parola "false".
Sottostringa(Start) Substring(Start)
Sottostringa(Start,lunghezza) Substring(Start,lunghezza)
ToUpper() ToUpper()
ToLower() ToLower()
StartsWith() String. StartsWith()
Restituisce la parola "true" o la parola "false".
EndsWith() String. EndsWith()
Restituisce la parola "true" o la parola "false".

Un errore di runtime BDC spiegato

Mi ha causato un errore di BDC questa settimana che si è manifestata nell'interfaccia utente e nella 12 registro dell'alveare in fase di esecuzione.

Primo, Questa apparve nell'interfaccia utente:

Non riusciva a trovare campi per inserire tutti i valori dell'identificatore per eseguire correttamente una SpecificFinder MethodInstance con nome … Controllare che i parametri di input includano TypeDescriptor associati a ogni identificatore definito per questa entità.

Ecco una schermata:

clip_image001

Potuto anche causare questo messaggio a comparire nella 12 registro dell'alveare a sarà (usando il mio high-tech-don't-try-this-at-home brevettato "misteriosi Errori" Metodo.):

11/14/2007 09:24:41.27 w3wp.exe (0x080C) 0x0B8C dati di SharePoint Portal Server Business 6q4x alta eccezione in BusinessDataWebPart.OnPreRender: System. InvalidOperationException: Il valore dell'identificatore ”, di tipo ”, non è valido. Valore previsto identificatore di tipo 'System. String'. a Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Oggetto[] subIdentifierValues, LobSystemInstance lobSystemInstance) a Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Entità di entità, Oggetto[] userValues, LobSystemInstance lobSystemInstance) a Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Vista desiredView) a Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() a Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Ho cercato in giro e trovato qualche porta nella Forum MSDN, ma non erano abbastanza per me per capire quello che stavo facendo sbagliato. Ho guardato un webcast di Ted Pattison che il mio azienda ha squirreled lontano su un server ed è venuto a realizzare il mio problema.

Nel mio ADF, Connettersi a un database SQL come illustrato:

            <Proprietà Nome="RdbCommandText" Tipo="System. String">
              <![CDATA[
                SELEZIONARE SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      PAESE, INDIRIZZO1, INDIRIZZO2, INDIRIZZO3, INDIRIZZO4, CITTÀ, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      CONTEA DI, STATO, POSTALE, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, TELEFONO, ESTENSIONE, FAX, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG da dbo.PS_CARRIER_ID_VW con (NOLOCK)
                DOVE
                  (SETID <> 'PARTI') e
                  (inferiore(CARRIER_ID) >= bassa(@MinId)) e
                  (inferiore(CARRIER_ID) <= bassa(@ MaxId)) e
                  (inferiore(DESCR) COME inferiore(@InputDescr))
                ]]>
            </Proprietà>

Mi è stato fornito che SQL da una persona DBA e sono fatto capire che è un speciale vista che hanno creato solo per me. La chiave univoca c'è CARRIER_ID.

Ecco il bug che introdotto:

      <Identificatori>
        <Identificatore Nome="CARRIER_ID" TypeName="System. String" />
        <Identificatore Nome="DESCR" TypeName="System. String" /> 
</Identificatori>

Da qualche parte lungo la linea, Ero riuscito a confondere me stesso sopra il significato del <Identificatori> e aggiunto DESCR, anche se non è in realtà un identificatore. Ho preso DESCR fuori il set di identificatori e presto! E tutto ha funzionato.

Spero che questo salvi qualcuno un po 'di dolore 🙂

Technorati Tags: , , ,