Løsningen på problemet: “FileNotFoundException” Med min funksjonen-mottaker.

Jeg jobbet på en funksjon forrige uke som ville legge noen hendelsesmottakere til en bestemt liste. (Jeg blogged litt om her som liste-mottaker).

Ved hjelp av kommandolinjen, Jeg kunne installere funksjonen uten feil (Men se nedenfor for skjulte feil). Når jeg forsøkt å distribuere funksjonen på nettstedet, MOSS klaget over en "FileNotFoundException" feil. Dette blogginnlegget beskriver hvordan jeg løste det.

Dette er feilen som MOSS viste meg i web-leseren:

Funksjonen ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ kunne ikke installeres fordi innlasting av hendelsen mottaker montering "xyzzyFeatureReceiver_0" mislyktes: System.io.FileNotFoundException: Kunne ikke laste fil eller montering ' xyzzyFeatureReceiver_0’ eller en av dens avhengigheter. Systemet finner ikke den angitte filen.
Filnavn: ' xyzzyFeatureReceiver_0’
ved System.Reflection.Assembly.nLoad(AssemblyName filnavn, Streng kodebase, Bevis assemblySecurity, Montering locationHint, StackCrawlMark& stackMark, Boolsk throwOnFileNotFound, Boolsk forIntrospection)
ved System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Bevis assemblySecurity, StackCrawlMark& stackMark, Boolsk forIntrospection)
ved System.Reflection.Assembly.InternalLoad(Streng assemblyString, Bevis assemblySecurity, StackCrawlMark& stackMark, Boolsk forIntrospection)
ved System.Reflection.Assembly.Load(Streng assemblyString)
ved Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
ADV: Montering binding: Sporlogging er slått av.
Hvis du vil aktivere logging av mislykket samlingsbinding, Angi registerverdien [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) til 1.
Note: Det er noen innvirkning på ytelsen med logging av mislykket samlingsbinding.
Hvis du vil deaktivere denne funksjonen, fjerne registerverdien [HKLMSoftwareMicrosoftFusion!EnableLog].

Feilsøke problemer med Windows SharePoint Services.

Jeg vite hvor å bevisst føre til denne feilen: ikke installere samlingen i GAC. men, Det var i GAC. Jeg installere normalt samlinger i GAC ved å dra dem inn i c:\windowsassembly-mappen i windows Utforsker. Jeg har aldri følt 100% komfortabel med det fordi jeg har alltid trodd at gacutil eksisterte for en grunn … så jeg forsøkt det. Den fremstilt nei differansen.

Jeg søkte Internets og fant dette innlegget: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakaten skjedd å bruke den samme rot-bit av koden (fra boken I WSS fra denne listen) så det var et tegn på håp. Men, forslag fra dekorere samlingen med en [Montering: ] direktivet fornuftig ikke for meg. Jeg forsøkt den likevel og jeg hadde rett. Den fremstilt nei differansen.

Så la jeg merke til at min klassedefinisjonen ikke var offentlig. Jeg gjorde det offentlig og som gjorde ingen forskjell.

Neste, Jeg dro til problemer med å aktivere "samlingen binde feil loggen" (etter nyttig og korrekt instruksjonene gitt) og dette er hvor ting begynte å bli interessant. Loggen viser meg at kjøretiden søker overalt på serveren for min samling. Det ser ut til å være søker etter den i min medisinskapet. men … det vil ikke søke etter den i GAC.

Jeg satte på min vinterjakke og lete Internets igjen og finne at noen hadde dette problemet også. Lengre diskusjon i dette oppslaget peters av til ingenting og jeg kan ikke finne en løsning.

Jeg flytter min samling i et av stedene loggen hevder den søker og jeg gjør litt mer fremgang. Jeg er belønnet med en ny feil i nettleseren når jeg prøver å aktivere funksjonen:

Kan ikke opprette funksjonen mottaker objekt fra samlingen "xyzzyFeatureReceiver_0", Skriv inn "Conchango.xyzzyFeatureReceiver" for funksjonen b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Verdien kan ikke være null.
Parameternavn: type
ved System.Activator.CreateInstance(Type-typen, Boolsk ulovlig utnytter konfidensiell)
ved System.Activator.CreateInstance(Type-typen)
ved Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Feilsøke problemer med Windows SharePoint Services.

Tid for en siste tur til Internets!

Denne gangen jeg finne ut, predictably nok, at MOSS problemer denne feilen fordi samlingen ikke er i GAC.

Jeg ønsker å få noe positivt ut av dette og prøve å føle litt stolte av at jeg har opprettet den Jaget av MSIL-samlinger, men det virker ikke. Jeg er bare ren irritert. Jeg finner meg selv mumler "høna eller egget" under min pusten.

Jeg endelig bestemmer å punt. Jeg opprette et helt nytt prosjekt og lime inn koden fra incredible-cloaked-from-the-GAC-assembly ikke fungerer prosjektet over dette nye prosjektet. (Jeg ser etter en bygge flagg som heter noe sånt som "Skjul fra samlingen binding hvis installert i GAC" men ikke kan finne en).

Jeg installere funksjonen og aktivere den og … det fungerer! Så, etter alle som, Jeg måtte utgangspunktet ' gjenstarte’ mitt prosjekt. Dette er en annen grunn til at jeg hater datamaskiner.

Jeg lærte noe nyttig fra dette. Jeg hadde vært å installere funksjoner ved hjelp av stsadm-kommandolinjen hele dagen og brukt den "-force" alternativ for vane. For noen grunn, Jeg brukte ikke-tvang når jeg installerte det nye prosjektet. denne gangen, Jeg gjorde faktisk, virkelig glemme kopiere dette nye prosjektet samlingen i GAC. Som et resultat, Jeg mottatt "FielNotFoundException" feil. denne gangen, Jeg fikk den fra stsadm, ikke når jeg forsøkt å aktivere funksjonen via nettleseren. Så, -Force faktisk spiller to roller. Det tillater deg å re-installere en eksisterende funksjon. Det også lar deg installere en buggy funksjon som ikke fungerer under kjøring ved å undertrykke feilen. Står sannsynligvis så mye hjelp et sted, men jeg lagt merke til aldri det.

</slutten>

Technorati Merkelapper: ,

Søndag Funny: Toppen 10 Måter å irritere din kone

  1. Kjøpe brokkoli når du vet det er allerede mer enn nok i kjøleskap.
  2. Ta en joggetur. Kjøle. Ta av ren putetrekk og erstatte med t-skjorte. Dekk med ren putetrekk.
  3. Når du kjører, Spør hvis vi skulle gå galt ned enveiskjøring.
  4. For 15 år, hver søndag du kone foreslår skal et museum, uttrykker overraskelse at museer er åpne på helgens.
  5. For 15 år, stundom foreslå å gå til den lokale bokhandel på søndag. Uttrykke overraskelse at de ikke er åpne på søndager (tusen takk Blå lover!).
  6. Bruk 20 poeng for å gjøre en 3 Velg tur.
  7. På et kjølig tidlig høst ettermiddag, gå inn i rommet og slå på a/c. Klager over at det er kaldt. Når kone sier, "hvorfor du ta det, dum" og får å slå det av, ta varme stedet hun hadde på sofaen. Bonuspoeng hvis hun ikke innser du gjorde det før mye senere.
  8. Åpne opp en kan tunfisk deilig hvite albacore og spise den rett fra kan, i seng, på natten.
  9. Gå inn på kjøkkenet mens kone er å spise middag, Åpne opp bestikk skuffen og trykk kasseroller til kone skrikene, "det du leter etter!"
  10. På mottak av nye visittkort, hemmelighet plassere dem rundt huset: Under sengen, i tilfeller av pute, i kaffekopper, i henne vesken, i belegge lommer, bil hanske seksjoner, pantry — alt kan du tenke på.
  11. Skrive bloggoppføringer om din kone.
  12. våkne.
  13. Når vandre gatene i New York City, være på varsling for "crusty" objekter på bakken. Å holde i tankene din kone spesielle frykt, nå å plukke opp og spørre, "hmm, Jeg lurer på hva det vil si?" (Vær forberedt på kone kroppen slam du som om hun er en secret service agent beskytte President fra en snikskytter eller du vil finne deg selv ligge på ryggen på fortauet).
  14. Kjøre to ganger rundt en parkeringsplass på jakt etter plass. Du vet du har virkelig truffet betale skitt når din sønn i baksetet roper, "Oh no! Han gjør det på nytt!"
  15. Skrive "topp 10" lister som ikke har 10 elementer.

===

Bonus kone spøk:

To mannlige kolleger gå ut til lunsj. En av dem forteller den andre, "Jeg fortelle løs en pinlig Freudian slip den andre natten."

"En Freudian slip? hva er det?"

"Vel, Når vi er ferdig å spise, Servitrisen kom og spurte hvordan vi likte våre måltider. Jeg mente si, ' Jeg elsket kyllingbryst’ men i stedet jeg sa "Jeg elsket brystene". Jeg var så flau."

"Ah," hans kollega svarte. "Jeg hadde det samme skje med meg denne helgen med min kone. Vi spiste frokost jeg mente å be henne om å pass på smør, men i stedet jeg screamed på henne, ' Du ødelagt mitt liv!’"

</slutten>

Technorati Merkelapper:

Hendelses-ID 1023: “Windows kan ikke laste inn utvidbare teller-DLL for MSSCNTRS”

OPPDATERINGEN (04/08/08): Jeg synes å ha løst problemet. Fra kommandolinjen, Jeg kjørte "c:\windowssystem32lodctr /R" i henhold til en oppføring som snakker om InstallShield ser problemer og som ut til å ha løst den for meg.

Jeg har lagt merke til som det siste, min desktop/server fan aldri slås av. Jeg vet det pleide å slå av. Jeg tok en stund å sjekke det ut merket at det en VMware prosess kjører en konsistent 20% Bruk en av CPU. Jeg sjekket hendelsesloggen og så disse feilene i programloggen skjer dusinvis av ganger i minuttet:

Windows kan ikke laste inn utvidbare teller-DLL for UGatherer, det første DWORD i data-avsnittet er Windows-feilkode.

Windows kan ikke laste inn utvidbare teller-DLL for UGTHRSVC, det første DWORD i data-avsnittet er Windows-feilkode.

Windows kan ikke laste inn utvidbare teller-DLL for MSSCNTRS, det første DWORD i data-avsnittet er Windows-feilkode.

Hvis jeg bore inn detaljene for en av disse meldingene, Jeg får dette:

Kilde: Perflib

Type: Feil

Kategori: Ingen

Hendelses-ID 1023

Jeg gjorde noen undersøkelser og det var noen indikasjon på det kan være en tillatelsesproblem i form av tilgang til DLL-filene i. Jeg spilte rundt med det der, men kan ikke påvirke ting på en positiv måte så jeg ga opp på det.

VMware hadde vært mas meg om hvordan du utfører en oppdatering for en stund, så jeg jotted ned versjonen hadde jeg installert (Angivelig bygge"1.0.1 29996") og gjorde oppdateringen. Dette oppgradert meg til v1.04. Dessverre, den løste ikke problemet.

Jeg kan stoppe vanvittig antall meldinger skal min programloggen hvis jeg nedlegge en service benevnt "VMware godkjenning Service". Dette hindrer meg i ved hjelp av VMware-programvare, slik … ikke slik et flott alternativ.

Vertsoperativsystemet er Windows XP 64 bit.

Jeg tror ikke dette alltid har skjedd, men jeg kan ikke huske en bestemt hendelse som kunne ha ført til det.

Dette er grunnen til at jeg hater datamaskiner.

</slutten>

Technorati Merkelapper:

Rask & Enkel: Gi nytt navn til opplastede filen ved hjelp av SharePoint-objektmodellen Via en hendelse-mottaker

OPPDATERINGEN: Dette fungerer, men det er betydelige begrensninger som er beskrevet i kommentarer. Dette kan være nyttig i noen cirumstances.

OPPDATERINGEN 2: I min nåværende prosjekt, brukere alltid laste opp dokumenter. Som et resultat, Jeg kjøre ikke inn i et problem der MS Word kjører og tenker at filen ble endret på den. Jeg gjorde kjøre inn et problem, "filen ble endret av noen andre" og løste dette via en enkel semafor typen flagg. Brukernes nød å endre meta datafelt fra standardverdien til noe annet. Itemupdated() mottakeren ser etter en gyldig verdi før du faktisk gjennomfører navneendringen og siden da, Jeg har ikke hatt noen problemer. Ditt kjørelengde kan variere.

Jeg har en klient krav om å endre navn på filer lastet opp til et bestemt dokumentbibliotek til å samsvare med en bestemt navnekonvensjon. APIEN gir ikke en "navneendring()" metoden. I stedet, Vi bruker "Flytt(…)". Her er litt minimal av kode for å oppnå dette:

 offentlig overstyre ugyldige ItemAdded(SPItemEventProperties Egenskaper)
        {
            SPFile f = egenskaper.ListItem.File;

            f.MoveTo(Egenskaper.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Det bare vanskelig bit er egenskapene. ListItem.ParentList.RootFolder.Url". MoveTo() metoden krever en URL. Som Moses opp peker meg til rotmappen av dokumentbiblioteket for gjeldende. Dette tillater meg å unngå noen harde koding i min hendelsesmottaker.

Dette er en mer nyttig versjon som gjør samme, men tilordner navnet på filen til "Tittel":

 offentlig overstyre ugyldige ItemAdded(SPItemEventProperties Egenskaper)
        {
            DisableEventFiring();

            // Tilordne tittelen på dette elementet til navnet på selve filen.
 // NOTE: Tildelingen må finne sted før vi endre selve filen.
 // Ringer oppdateringen() på SPFile synes å oppheve egenskapene i
 // noen følelse.  Oppdateringer til "tittel" mislyktes til som endrer (og oppdatere() kalle)
 // ble flyttet foran endringen i filnavnet.
            Egenskaper.ListItem["Tittel"] = Egenskaper.ListItem.File.Name;

            Egenskaper.ListItem.Update();

            SPFile f = egenskaper.ListItem.File;

            // Få forlengelse av filen.  Vi trenger som senere.
 streng spfileExt = nye FileInfo(f.name).Filtypen;

            // Endre filnavnet til den listeelement-ID, og bruk filtypen til å holde
 // som del av den intakt.
            f.MoveTo(Egenskaper.ListItem.ParentList.RootFolder.Url +
                "/" + Egenskaper.ListItem["ID"] + spfileExt);

            // Forplikte farten.
            f.Update();

            EnableEventFiring();
        }

Forum diskusjon: Aktivering av beste praksis samsvar i ikke-triviell MOSS-miljø

Fellow, "Mark", har startet opp en potensielt interessant nyhetsgruppe diskusjon fokus på "å etablere utmerket SharePoint-styring fra starten" for en 35,000 brukermiljø.

Diskusjonen er her: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop på over og bidra!

</slutten>

Egendefinert URL-adresse for handling vil ikke vise for ny funksjon

Jeg er fortsatt i for vane å lage min funksjonen XML-filer for hånd siden det er alt nytt for meg. Jeg ønsker ikke å stole på et front-end verktøy som gjør ting jeg ikke forstår (sa han som han skrev en bloggoppføring ved hjelp av et verktøy som han ikke forstår).

I dag, Jeg prøvde å legge til en egendefinert handling til siden Innstillinger, men det bare ikke ville vise. Jeg kunne installere funksjonen og se den i området tilbyr, men når jeg aktivert det (uten feil) det ikke ville bare viser på miste-ned meny.

Jeg har omsider innsett at jeg feilstavet "SharePoint" i plassering-attributtet for den <CustomAction> noden. Dette er filen dårlig elements.xml:

<?XML versjon="1.0" koding="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 GroupId="SiteActions"
 Plassering="Microsoft.SharePoint.StandardMenu"
 Sekvens="100"
 Tittel="hallo!"
 Beskrivelse="Egendefinert meny handling lagt til via en funksjon."
 ImageUrl="_layouts/Images/menuprofile.gif">

    <URL-handlingspolicyen URL-adresse="http://www.xyzzy.com"/>

  </CustomAction>
</Elementer>

bra:

<?XML versjon="1.0" koding="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 GroupId="SiteActions"
 Plassering="Microsoft.SharePoint.StandardMenu"
 Sekvens="100"
 Tittel="hallo!"
 Beskrivelse="Egendefinert meny handling lagt til via en funksjon."
    >
    <URL-handlingspolicyen URL-adresse="http://www.xyzzy.com"/>
  </CustomAction>
</Elementer>

That one took me a good two hours to figure out 🙂

Jeg ta solace i faktum at en dag i fremtiden, Jeg vil kunne si med overbevisning, "tilbake i dag, Jeg måtte gå tre miles opp bakken i snøen (Barefoot!) for å distribuere en egendefinert funksjon til MOSS. Du barna, du vet ikke hvor enkelt du har! Få min plen!"

Kan ikke vente.

</slutten>

Technorati Merkelapper: ,

Blog Stats

Jeg trodde noen mennesker kan være interessert i bloggen min statistikk. Du kan bruke min som en målestokk for å sammenligne dine egne.

Jeg kjører min blogg på windows live spaces. De samle statistikk for meg og jeg vet ikke noen måte å kontrollere at. Det er bra så langt som det går, men det er ganske begrenset i at jeg ikke mye faktiske analyse med det.. Jeg ville elske, for eksempel, Hvis du vil generere en liste over min mest ofte kan ikke traff innlegg, men jeg gjøre det uten en uoverkommelige manuell prosess. Hvis noen vet bedre, behage fortelle meg.

Live spaces statusen fortelle meg: Totalt antall treff for dagen, Totalt antall treff for uken og totalt treff siden dag null. Det også forteller meg hva folk gjorde til min blogg (f.eks. Google, Kobling for MSDN-forumet, osv.).

I noen måter, en "hit" er åpenbart. Hvis du leser denne setninga akkurat nå, du har nesten helt sikkert registrert som en enkelt hit.

RSS er litt forvirrende. På den ene siden, Jeg ser enkelte RSS treff hele dagen. men, Jeg også se RSS "Scanner". En fei er når jeg ser 20 eller 30 RSS-treff innen ett eller to enda et vindu. Jeg antar dette er automatiserte ting som google med nettstedet mitt, kanskje andre personers nettlesere … er ikke sikker. De er definitivt en slags automatisert prosess. Jeg kan ikke fortelle, men, hvor mange av mine totale treff er automatisert og hvor mange har et faktisk menneske på den andre siden. Jeg vil gjette minst 100 treff per dag er automatisert..

På til tall!

Jeg skrev min første bloggpost på 27 juli, 2007.

Jeg har skrevet ca 60 bloggoppføringer siden da, mer enn 50 som er direkte knyttet til SharePoint.

Jeg begynte å holde oversikt over av mine hits i et regneark på en daglig basis på slutten av September.

Månedlig starter:

Første uke av: Totalt antall treff
Oktober 1,234
November 2,162
Desember 3,071
Januar 2008 4,253

Totalt etter måned

Måned Totalt antall treff
Oktober 6,620
November 11,110
Desember 13,138

High vann merker

Type Totalt antall treff
Beste dag 958
Beste uke 4,253
Totalt antall treff siden dag null 42,438

Jeg er interessert i andre’ statistikk. Hvis du vil dele dine i kommentarfeltet, kan du gjøre!

</slutten>

Technorati Merkelapper:

Søndag morgen-morsom: “ja, ja, ja. Blah, blah, blah.”

Om seks år siden, min fire år gamle sønn og jeg var oppe ser en Discovery channel «hai angrep" spesielle (muligens denne ettall). Han var svært ung på punktet, og jeg var alltid bekymret for hva han kan se på et show som dette og hvordan han kan ta det. Jeg ønsket ikke å utvikle, for eksempel, noen spesielle fears i vannet eller BLAB noe upassende til sine venner og skape sin baby venn nettverket kommer styrter ned.

Discovery håndterer slike emner godt. Det handler ikke om å opprette en frykt for noe, men heller å vise hvordan det er for hai å angripe mennesker.

Så, Vi ser det og det er en spesielt skremmende angrepet involverer en liten jente. Som Discovery bygger drama av angrepet, min sønn (Hvem har alltid vært veldig nervøs allikevel), blir veldig spent. Jeg gjør noen lyder om hvordan det er for hai å angripe mennesker, og hvor ille den stakkars jenta må føle. Jeg prøver å forklare at folk komme seg fra disse hendelsene og bli sterkere for det.. Men, Jeg hadde feiltolket sin begeistring. Han var ikke bekymret om jenta på alle. I stedet, mens klappet hendene, Han forteller meg, "Hai elsker det! Det er veldig bra. Det er fantastisk. Dens en drøm!"

Jeg trodde dette var morsom, men også svært urovekkende. På den ene siden, Jeg var glad — med litt stolte — han kunne ha sterke empathic følelser, Cross-species selv om de kan være. Som mennesker, Vi må utvikle våre "empatiske muskler" så snakker eller du vil ende opp som Denne fyren 🙂 On the other hand, han følte cross-species empati mot en art som viste atferd fiendtlig til sin egen. Jeg var virkelig sliter med dette når fortelleren brukte ordet "paradigm". Min sønn plukket opp på den og spurte meg hva det betydde.

Det er ikke slik en enkel ord å beskrive en fire år gammel, men jeg ga det en prøve. Når jeg tenker på ordet "paradigm", Thomas Kuhn er aldri langt fra mine tanker. Jeg leste Strukturen i vitenskapelige revolusjoner tilbake på Lafayette og for bedre eller verre, ordet "paradigme" er gravid med ekstra mening for meg. (Slags liker ordet "kontakt" etter å ha hørt en film Telefontale fortelle meg hvor jeg kunne se filmen [Jeg mente at boken var bedre]; Jeg si alltid til meg selv, "KONTAKT!" Når jeg ser eller hører noen si "kontakt").

Allikevel, Jeg prøver å forklare ham en Kuhnian-definisjon, at det er "en historisk bevegelse trodde" og at det er en "måte å tenke med en rekke innebygde forutsetninger som er vanskelig å flykte for folk som bor på den tiden." selvfølgelig, Du kan ikke snakke som med en fire år gamle, så jeg prøver å stadig definere det mindre stykker og følelsen ganske stolt av meg selv gjøre. (Jeg bare visste at noen utenfor college ville vare at jeg hadde lest Kuhn!).

Jeg varmer akkurat aktiviteten når han avbryter meg. Vinke hånden i min retning og aldri ta øynene av et brutalt hai angrep, Han sier bare, "Ja, ja, ja. Blah, blah, blah.".

So much for that 🙂

På dette punktet, Jeg bestemte meg å kjøre bort, retorisk tale, sitte, og liker å se haier angripe mennesker med sønnen min.

</slutten>

Technorati Merkelapper:

Bytt visning basert på bruker-ID i et InfoPath-skjema

Vi hadde en utviklet et InfoPath-skjema med flere visninger til å støtte nye leie / på-boarding prosess. Når firmaet ansetter en ny person, IT-avdelingen og andre grupper må handle (Definer lønn, Aktiver tilgang til aktuelle programmer, Finn et skrivebord, osv.). Vi bruker på skjemaet, men en annen visning av skjemaet for hver av disse funksjonene.

På dette selskapet, de fleste av involverte i forretningsprosessen er IT-kyndige, så når de åpner skjemaet, deres standardvisningen er en "meny" Vis med knapper som henvise dem til deres spesifikke funksjon. Men, vi trengte å forenkle ting for den nye leie direkte manager. Denne personen bør ikke se noen av IT-relaterte ting. faktisk, hun bør ser bare én visning av skjemaet og ikke har et alternativ for å se de andre visningene.

I vårt tilfelle, som direkte administratorens konto er direkte knyttet til skjemaet høflighet av en Kontakt velgeren (som jeg alltid ønsker å kalle en "people picker" for noen grunn).

Trinnene er som følger:

1. I utformingsmodus, gå til verktøy-> Alternativer for skjema-> Åpne og lagre.

2. Velg "regler".

3. Opprette en ny regel som er «bytte for å se" og hvis tilstanden benytter brukernavn() funksjonen.

Brukernavn() Returnerer enkle"" brukernavn uten domene. Hvis jeg logger inn på SharePoint med legitimasjon "domainpagalvin", Brukernavn() Returnerer "pagalvin".

Kontakt velgeren gir tre biter av kontaktinformasjon. "AccountID" delen er mest nyttig for dette scenariet. Det eneste som gjør dette enda litt av utfordringen er at kontakt velgeren (i mine omgivelser allikevel) Returnerer IDen domene og brukernavn, som "domainpagalvin". Dette hindrer oss fra å gjøre en rett fram likestilling tilstand siden AccountID ("domainpagalvin") vil aldri lik brukernavn() ("pagalvin").

Vi kan få rundt dette ved hjelp av "inneholder" operatør: AccountID inneholder brukernavn().

Vi kan ta det videre og pre-pend en hardkodet domenenavn foran brukernavnet() funksjonen for å få våre likestilling sjekk og eliminere risikoen for feil på den inneholder.

Vi måtte virkelig som automatisk bytter visning for andre brukere basert på deres annonse sikkerhetsgruppemedlemskapet. For eksempel, Når et medlem av "det Analytics" gruppen får tilgang til skjemaet, automatisk Bytt til visningen IT Analytics. Vi hadde ikke tid å implementere det, men min første tanke er å lage en webtjeneste som ville ha en metode som "IsMemberOfActiveDirectorySecurityGroup", gi det brukernavnet() og returnere tilbake sann eller USANN. Har noen andre, flere Smart idé? Er det noen SharePoint-funksjonen kan vi utnytte fra InfoPath til gjør at besluttsomhet?

</slutten>

Technorati Merkelapper:

Tilfeldigvis å legge til kode i et InfoPath-skjema; Bevisst fjerne den

Når du arbeider med knapper i et skjema, vi ofte legge til regler. Du åpner redigeringsprogrammet for regler fra egenskapene for knappen.

Når du klikker rundt raskt, Det er lett å tilfeldigvis klikke på "Rediger skjemakode" i stedet for "regler …".

Første gang jeg gjorde dette, Jeg avmeldt av koderedigering. Men, Når jeg forsøkt å publisere skjemaet litt senere, Det kreves at jeg publisere som en administratorgodkjent mal" (Avansert)". Jeg gjorde faktisk ikke noen programmering og jeg absolutt ønsker ikke å gå gjennom en unødvendig godkjenningsprosess. Jeg var i litt panikk da på grunn av tidsbegrensninger. Å komme forbi det, Jeg bare gjenopprettet en tidligere sikkerhetskopi og fortsatte. Jeg hadde nylig sett noen blogginnlegg om folk går til skjemaets XML å finpusse ting og jeg var redd jeg måtte gjøre noe lignende.

I dag, Jeg gjorde det igjen. denne gangen, Jeg hadde litt mer tid på hendene mine og fant at du enkelt kan angre dette.

gå til:

Verktøy-> Alternativer for skjema-> Programmering: "Fjern kode"

Det blir ikke mye enklere enn det.

</slutten>

Technorati Merkelapper: ,