Løsning på problemet: “FileNotFoundException” Med min funktion modtager.

Jeg arbejdede på en funktion i sidste uge, som vil tilføje nogle hændelsesmodtagere til en bestemt liste forekomst. (Jeg blogges lidt om at listen modtager her).

Ved hjælp af kommandolinjen, Jeg kunne installere funktionen med ingen fejl (Men se nedenfor for de skjulte fejl). Da jeg prøvede at installere funktionen på webstedet, MOSS klagede over en "FileNotFoundException" fejl. Dette blogindlæg beskriver, hvordan jeg løst det.

Indeværende er den fejl, at MOSS viste mig i webbrowseren:

Funktionen ' b2cb42e3-4f0a-4380-Hanss-1ef9cd526f20’ kunne ikke installeres, fordi indlæsning af begivenhed receiver forsamling "xyzzyFeatureReceiver_0" mislykkedes: System.IO.FileNotFoundException: Kunne ikke indlæse filen eller assemblyen ' xyzzyFeatureReceiver_0’ eller en af dens afhængigheder. Systemet kan ikke finde den angivne fil.
Filnavn: ' xyzzyFeatureReceiver_0’
på System.Reflection.Assembly.nLoad(AssemblyName filnavn, Streng codeBase, Beviser assemblySecurity, Assemblyen locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
på System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Beviser assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
på System.Reflection.Assembly.InternalLoad(Strengen assemblyString, Beviser assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
på System.Reflection.Assembly.Load(Strengen assemblyString)
på Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Forsamling bindende logføring er slået fra.
Du aktiverer forsamling binder fiasko logføring, indstille registreringsdatabaseværdien [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) til 1.
Bemærk: Der er nogle ydeevne sanktion tilknyttet forsamling binder fiasko logføring.
Slå denne funktion fra, ophæve den indskrive værdi [HKLMSoftwareMicrosoftFusion!EnableLog].

Fejlfinding af problemer med Windows SharePoint Services.

Jeg ved, hvordan man bevidst forårsage denne fejl: ikke installere assemblyen i GAC. Men, Det var i GAC. Jeg installere normalt forsamlinger i GAC ved at trække dem til c:\windowsassembly mappe ved hjælp af windows Stifinder. Jeg har aldrig følt 100% komfortable gør, fordi jeg altid troet, at gacutil eksisteret en grund … så jeg prøvede at. Det gjorde ingen forskel.

Jeg søgte Internets og fandt dette indlæg: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakaten tilfældigvis skal bruge den samme rod bit kode (fra bogens inde WSS fra denne liste) så det var et lovende tegn. Dog, forslaget om udsmykning forsamling med et [forsamling: ] direktiv giver ikke mening for mig. Jeg prøvede det alligevel og jeg havde ret. Det gjorde ingen forskel.

Så jeg bemærket, at min klassedefinitionen ikke var offentlige. Jeg gjorde det offentlige og det gjorde ingen forskel.

Næste, Jeg gik til besværet med at aktivere "forsamling binder fejl log" (på grundlag af nyttige og præcise instruktioner) og dette er, hvor ting begyndte at blive interessant. Denne log viser mig, at runtime søger overalt på den pågældende server til min samling. Det synes selv at være at søge efter det i mit medicinskabet. Men … det vil ikke søge efter det i GAC.

Jeg sætter på min vinterjakke og gå søger Internets igen og finde, at nogen har haft dette problem også. Den langvarige diskussion i denne udstationering peters off i noget og jeg kan ikke finde en løsning.

Jeg flytter min samling til et af de steder log hævder det søger og jeg komme lidt videre. Jeg er belønnet med en ny fejl i browseren, når jeg forsøger at aktivere funktionen:

Det mislykkedes at oprette funktion modtager objektet fra forsamlingen "xyzzyFeatureReceiver_0", Skriv "Conchango.xyzzyFeatureReceiver" for funktionen b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Værdi må ikke være null.
Parameternavnet: type
på System.Activator.CreateInstance(Type type, Boolean nonPublic)
på System.Activator.CreateInstance(Type type)
på Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Fejlfinding af problemer med Windows SharePoint Services.

Tid til en sidste tur til Internets!

Denne gang jeg finde ud af, forudsigeligt nok, at MOSS spørgsmål denne fejl, fordi assemblyen ikke er i GAC.

Jeg ønsker at få noget positivt ud af det og forsøge at være lidt stolt, at jeg har lavet den Diffus MSIL forsamlinger, men det er ikke i orden. Jeg er bare plain irriteret. Jeg befinder mig mumler "hønen eller ægget" under min ånde.

Jeg endelig beslutter at punt. Jeg oprette et helt nyt projekt og copy/paste koden fra incredible-cloaked-from-the-GAC-assembly ikke-arbejdende projektet over dette nye projekt. (Jeg søger en bygge flag kaldes noget som "Skjul fra assemblyen bindende, hvis installeret i GAC" men kan ikke finde en).

Jeg installere funktionen og aktivere den og … det virker! Så, efter alle, Jeg måtte dybest set ' genstarte’ mit projekt. Dette er en anden grund til hvorfor jeg hader computere.

Jeg har lære noget nyttigt fra dette. Jeg havde installation af funktioner ved hjælp af kommandolinjen stsadm hele dagen lang og brugt den "-kraft" indstilling ud af vane. For anden grund, Jeg ikke bruger - kraft valgmulighed da jeg installerede det nye projekt. Denne gang, Jeg gjorde faktisk, virkelig Glem at kopiere dette nye projekt assembly til GAC. Som et resultat, Jeg fik denne "FielNotFoundException" fejl. Denne gang, Jeg fik det fra stsadm, ikke, når jeg prøvede at aktivere funktionen via en webbrowser. Så, -kraft faktisk spiller to roller. Gør det muligt at re-installere en eksisterende funktion. Det giver også mulighed for at installere en buggy funktion, der ikke kan arbejde på kørselstidspunktet ved at undertrykke fejlen. Det siger nok så meget i hjælp til et eller andet sted, men jeg lagt mærke aldrig til det.

</slutningen>

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

  1. Købe broccoli, når du ved der er allerede mere end nok i køleskabet.
  2. Gå efter en løbetur. Køle af. Tage ren pudebetræk og erstatte med T-shirt. Dække med ren pudebetræk.
  3. Når du kører, Spørg, hvis vi skal gå den forkerte vej ned ad en ensrettet gade.
  4. For 15 år, hver søndag at du hustru foreslår at gå til et museum, udtrykke overraskelse at museer er åben på søndag.
  5. For 15 år, lejlighedsvis foreslå at gå til den lokale boghandel på søndag. Udtrykke overraskelse at de ikke er åben på søndag (Mange tak Blå love!).
  6. Brug 20 punkter til at gøre en 3 punkt tur.
  7. På en cool tidligt efterår eftermiddag, gå ind i stuen og drej på a/c. Klager over, at det er koldt. Når kone siger, "hvorfor du Tænd for at, fjollet" og får at slukke den, Grab varm stedet hun havde på sofaen. Bonuspoint hvis hun ikke indse du gjorde det først langt senere.
  8. Åbne en dåse lækker hvid hvid tun og spiser det lige fra kan, i sengen, Om natten.
  9. Gå ind i køkkenet, mens kone spiser middag, åbne bestik skuffe og skubbe redskaber indtil kone skrig, "hvad du leder efter!"
  10. Ved modtagelse af nye visitkort, hemmeligt placere dem rundt omkring huset: Under sengen, i pudebetræk, inde kaffekopper, i hendes pung, i pelsen lommer, bil handske rum, spisekammer — hvor som helst kan du tænke på.
  11. Skrive blogindlæg om din kone.
  12. Vågn op.
  13. Når du går på gaderne i New York City, være på vagt for "sprøde" objekter på jorden. Holde for øje, din kones særlige frygt, nå som om at samle en op op og spørge, "hmm, Jeg spekulerer på, hvad det er?" (Vær forberedt for kone til kroppen smække dig som om hun er en secret service agent beskytte præsident fra en snigskytte eller du vil finde dig selv om på ryggen på fortovet).
  14. Kører to gange rundt en parkeringsplads, søger plads. Du ved, du har virkelig ramt pay dirt, når din søn i bagsædet råber, "Åh ingen! Han gør det igen!"
  15. Skrive "top 10" lister, der ikke har 10 elementer.

===

Bonus kone joke:

To mandlige kollegaer gå til frokost. En af dem fortæller den anden, "Jeg slippe løs en pinlig freudiansk slip anden aftenen."

"En freudiansk slip? Hvad er det?"

"Godt, Når vi færdig med at spise, Servitricen kom forbi og spurgte hvor vi kunne lide vores måltider. Jeg mente sige, «Jeg elskede kyllingebryst’ men i stedet jeg sagde 'Jeg elskede dine bryster'. Jeg var så flov."

"Ah," hans medarbejder svarede. "Jeg havde det samme ske for mig denne weekend med min kone. Vi spiste morgenmad, jeg mente at bede hende om at passere smørret, men i stedet jeg skreg på hende, ' Du ødelagde mit liv!’"

</slutningen>

Technorati Tags:

Hændelses-ID 1023: “Windows kan ikke indlæse tæller-DLL MSSCNTRS”

OPDATERING (04/08/08): Jeg synes at have løst dette problem. Fra kommandolinjen, Jeg kørte "c:\windowssystem32lodctr /R" som pr. en post taler om InstallShield synes problemer og at at have løst det for mig.

Jeg har bemærket, at det seneste, min desktop/server fan slukkes aldrig. Jeg ved, det bruges til at slukke for. Jeg tog et øjeblik til at tjekke det ud har bemærket, at den en VMware processen kørte en konsekvent 20% udnyttelse på en af CPUS. Jeg tjekkede event log og så disse fejl i programlogfilen sker snesevis af gange i minuttet:

Windows kan ikke indlæse tæller-DLL UGatherer, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Windows kan ikke indlæse tæller-DLL UGTHRSVC, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Windows kan ikke indlæse tæller-DLL MSSCNTRS, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Hvis jeg detaljeadgang detaljerne i en af disse meddelelser, Jeg får dette:

Kilde: Perflib

Type: Fejl

Kategori: Ingen

Hændelses-ID 1023

Jeg gjorde nogle forskning og der var nogle indikation det kunne være en tilladelse problem med hensyn til adgang til de pågældende dll. Jeg spillede rundt med at ting men kunne ikke påvirke tingene på en positiv måde, så jeg gav på det.

VMware havde indstævne mig om at udføre en opdatering for helt nogle gang, så jeg papirsider ned versionen havde jeg installeret (tilsyneladende bygge"1.0.1 29996") og gjorde opdateringen. Dette opgraderet mig til v1.04. Desværre, det ikke løse problemet.

Jeg kan stoppe den vanvittige antal meddelelser vil min programlogfilen, hvis jeg lukker ned en service benævnt "VMware tilladelse Service". Dette forhindrer mig i at bruge VMware software, så … ikke sådan en stor mulighed.

Vært operativsystemet er Windows XP 64 bit.

Jeg tror ikke, det altid er sket, men husker jeg ikke nogen bestemt begivenhed, der måske har ført til det.

Det er derfor, jeg hader computere.

</slutningen>

Technorati Tags:

Hurtig & Let: Omdøbe overførte fil ved hjælp af SharePoint-objektmodellen Via en hændelse Receiver

OPDATERING: Dette virker, men der er væsentlige begrænsninger, der er beskrevet i kommentarerne. Dette kan stadig være nyttigt i nogle omstaendighederne.

OPDATERING 2: I min aktuelle projekt, brugerne overføre altid dokumenter. Som et resultat, Jeg løbe ikke ind i et problem, hvor MS Word kører og mener, at filen blev omdøbt på det. Jeg løbe ind i et problem, "filen blev ændret af en anden" og løst dette via en simpel semaphore type flag. Brugernes savn hen til ændre en meta datafelt fra standardværdien til noget andet. Af itemupdated() modtageren ser til en gyldig værdi der før du faktisk udfører omdøbe og siden da, Jeg har ikke haft nogen problemer. Din kilometertal kan variere.

Jeg har en klient kravet om at ændre navnet på filer uploades til et bestemt dokumentbibliotek i overensstemmelse med en bestemt navngivningskonvention. API indeholder ikke et "Omdøb()" metode. I stedet, Vi bruger "MoveTo(…)". Her er en minimal smule kode til at opnå dette:

 offentlige tilsidesætte void ItemAdded(SPItemEventProperties egenskaber)
        {
            SPFile f = egenskaber.ListItem.File;

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

        }

Den kun tricky bit er "egenskaber. ListItem.ParentList.RootFolder.Url". MoveTo() metoden kræver en URL. Der mosede op streng point mig til rodmappen på mit aktuelle dokumentbibliotek. Dette tillader mig at undgå hårde kodning i min begivenhed modtager.

Dette er en mere nyttige version, der gør de samme ting, men tildeler navnet på filen til "Titel":

 offentlige tilsidesætte void ItemAdded(SPItemEventProperties egenskaber)
        {
            DisableEventFiring();

            // Tildele titlen på denne post til navnet på selve filen.
 // NOTE: Denne opgave skal finde sted, før vi ændrer selve filen.
 // Kræver opdatering() på SPFile synes at afkræfte egenskaber i
 // nogle følelse.  Opdateringer til "titel" mislykkedes indtil der ændrer (og opdatering() opkald)
 // blev flyttet foran ændringen til filnavnet.
            egenskaber.ListItem["Titel"] = egenskaber.ListItem.File.Name;

            egenskaber.ListItem.Update();

            SPFile f = egenskaber.ListItem.File;

            // Få en udvidelse af fil.  Vi har brug for det senere.
 streng spfileExt = nye FileInfo(f.Name).Udvidelse;

            // Omdøb filen til listeelementets ID og bruge fil forlængelsen at holde
 // del af det intakt.
            f.MoveTo(egenskaber.ListItem.ParentList.RootFolder.Url +
                "/" + egenskaber.ListItem["ID"] + spfileExt);

            // Begå farten.
            f.Update();

            EnableEventFiring();
        }

Forum diskussion: Håndhæve bedste praksis overholdelse i ikke-trivielle MOSS miljø

En fyr, "Mark", har startet op en potentielt interessant nyhedsgruppe diskussion med fokus på "etablering af fremragende SharePoint styring fra starten" for en 35,000 brugermiljø.

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

Pop på over og bidrage!

</slutningen>

Brugerdefineret handling URL vil ikke vise for nye funktion

Jeg er stadig i vane med crafting min funktion XML-filer i hånden, da det er alle helt nyt for mig. Jeg ønsker ikke at stole på en front-end-værktøj at gør ting jeg ikke forstår (Han sagde, da han skrev en blog-indtastning ved hjælp af et værktøj, han ikke forstår).

I dag, Jeg forsøgte at tilføje en brugerdefineret handling til webstedsindstillingerne men det bare ikke ville dukke op. Jeg kunne installere funktionen og se det i site funktioner, men når jeg aktiveret det (uden fejl) Det ville ikke blot dukke op på drop-down menuen.

Jeg endelig indså, at jeg stavet "SharePoint" i attributten placering af den <CustomAction> node. Dette er den dårlige elements.xml fil:

<?XML version="1.0" kodning="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolbar"
 GroupId="SiteActions"
 Placering="Microsoft.Sharepoint.StandardMenu"
 Sekvens="100"
 Titel="Hej!"
 Beskrivelse="Brugerdefinerede menu handling tilføjet via en funktion."
 ImageUrl="_layouts/images/menuprofile.gif">

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

  </CustomAction>
</Elementer>

God:

<?XML version="1.0" kodning="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolBar"
 GroupId="SiteActions"
 Placering="Microsoft.SharePoint.StandardMenu"
 Sekvens="100"
 Titel="Hej!"
 Beskrivelse="Brugerdefinerede menu handling tilføjet via en funktion."
    >
    <UrlAction URL-adresse="http://www.xyzzy.com"/>
  </CustomAction>
</Elementer>

Den ene tog mig godt to timer på at finde ud af 🙂

Jeg tager trøst i faktum, at nogle dage i fremtiden, Jeg vil være i stand til at sige med overbevisning, "tilbage i dag, Jeg måtte gå tre km op ad bakke i sneen (barfodet!) for at installere en brugerdefineret funktion til MOSS. Du børn, du ved ikke, hvor nemt du har det! Stå af min græsplæne!"

Kan ikke vente.

</slutningen>

Technorati Tags: ,

Blog statistik

Jeg troede nogle folk kunne være interesseret i min blog statistik. Du kan bruge mine som benchmark for at sammenligne dit eget.

Jeg kører min blog på windows live spaces. De indsamler statistik for mig og jeg kender ikke nogen måde at kontrollere. Det er godt, så vidt det går, men det er temmelig begrænset i at jeg ikke kan gøre meget faktiske analyse med det. Jeg ville elske, for eksempel, for at være i stand til at generere en liste over min mest hyppigt kan ikke hit indlæg, men jeg gøre det uden en uoverkommelig manuel proces. Hvis nogen ved bedre, behage afgøre mig.

Live spaces status fortælle mig: samlede besøgstal for dagen, samlede besøgstal for i alt hits siden dag nul. Sig ligeledes fortæller mig hvad folk gjorde for at komme til min blog (strømsparetilstand. Google, MSDN forum link, osv).

På nogle måder, et "hit" er indlysende. Hvis du læser denne sætning lige nu, du har næsten helt sikkert registreret som et enkelt hit.

RSS er en smule forvirrende. På den ene side, Jeg kan se enkelte RSS hits hele dagen lang. Men, Jeg kan også se RSS "sweeps". En sweep er når jeg ser 20 eller 30 RSS-hits alle inden for et andet vindue med én eller to. Jeg formoder, disse er automatiseret ting som google tjekker ind på min hjemmeside, måske andre folks browsere … Ikke sikker. De er helt sikkert en form for automatiseret proces. Jeg kan ikke fortælle, dog, hvor mange af mine samlede hits er automatiserede og hvor mange har en faktiske menneskelige på anden siden. Jeg vil gætte på mindst 100 hits per dag er automatiserede.

På numrene!

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

Jeg har skrevet omkring 60 blogindlæg siden da, mere end 50 som direkte vedrøre SharePoint.

Jeg begyndte at holde styr på mine hits i et regneark på en daglig basis i slutningen af September.

Månedlige starter:

Første uge af: Samlede Hits
Oktober 1,234
November 2,162
December 3,071
Januar 2008 4,253

Total pr. måned

Måned Samlede Hits
Oktober 6,620
November 11,110
December 13,138

Høj vand mærker

Type Samlede Hits
Bedste dag 958
Bedste uge 4,253
Samlede Hits siden dag nul 42,438

Jeg er interesseret i andre’ statistik. Hvis du holder af at dele dine i kommentarerne, Undlad venligst at!

</slutningen>

Technorati Tags:

Søndag formiddag Funny: “Ja, Ja, Ja. Blah, blah, bla.”

Om seks år siden, min fire-årige søn og jeg var ovenpå ser en Discovery channel "hajangreb" særlige (eventuelt denne ene). Han var meget unge på punktet, og jeg var altid bekymret for, hvad han kunne se på et show som dette og hvordan han kan tage det. Jeg ville ikke have ham til at udvikle, for eksempel, enhver særlige frygt af vand eller blab noget upassende til sine venner og muligvis forårsage hans baby ven netværk at kom brasende ned.

Discovery håndterer disse former for emner meget godt. Det handler ikke om at skabe en frygt for noget, men snarere at vise, hvordan usædvanligt for hajer til at angribe mennesker.

Så, Vi ser det og der er denne ene især skræmmende angreb med en lille pige. Som Discovery er ved at opbygge drama af angrebet, min søn (der har altid været meget nervøs alligevel), bliver meget ophidset. Jeg gør nogle lyde om, hvor usædvanligt det er for hajer til at angribe folk, og hvor slemt det stakkels pige skal føle sig. Jeg prøver at forklare at folk inddrive fra disse begivenheder og blive stærkere for det. Dog, Jeg havde misforstået hans begejstring. Han var ikke bekymret om pigen overhovedet. I stedet, mens klappe hans hænder, Han fortæller mig, "Hajer elsker det! Det er fantastisk. Det er vidunderligt. Dens en drøm!"

Jeg troede det var hylende morsomme, men også meget foruroligende. På den ene side, Jeg var glad for — selv lidt stolt — at han kunne have stærke empatiske følelser, Cross-arter skønt de kan være. Som mennesker, Vi skal udvikle vores "empatisk muskler" så taler eller du vil ende op som denne fyr 🙂 On the other hand, Han var følelse cross-arter empati mod en art, der udviser adfærd skadelig for hans egen. Jeg virkelig kæmper med dette når fortælleren brugte ordet "paradigme". Min søn samlet op på det og spurgte hvad det betød.

Det er ikke sådan en nem ord at beskrive en fire år gammel, men jeg gav det en chance. Når jeg tænker på ordet "paradigme", Thomas Kuhn er aldrig langt fra mine tanker. Jeg læste Strukturen af videnskabelige revolutioner tilbage på Lafayette og for bedre eller værre, ordet "paradigme" er gravid med ekstra mening for mig. (Lidt ligesom ordet "kontakt" efter at have hørt en film Telefonstemme fortælle mig hvor jeg kunne se at filmen [Jeg syntes bogen var bedre]; Jeg siger altid til mig selv, "KONTAKT!" Når jeg ser eller hører nogen sige "kontakt").

Alligevel, Jeg prøver at forklare ham et kuhnske definition, at det er "en historisk bevægelse af tanke" og at det er en "måde at tænke med en række indbyggede antagelser, som er svære at slippe for mennesker, der lever på tidspunktet." Selvfølgelig, Du kan ikke tale som med en fire - årig, så jeg forsøger at successivt definere det i mindre stykker og følelse temmelig stolt af mig selv, som jeg gør det.. (Jeg har lige vidste at nogen uden for kollegiet ville sørge for at jeg havde læst Kuhn!).

Jeg bare opvarmning til opgaven, når han afbryder mig. Vinker hans hånd i min generelle retning og aldrig tage hans øjne off en anden brutal haj angreb, Han siger bare, "ja, Ja, Ja. Blah, blah, blah.".

So much for that 🙂

På det tidspunkt, Jeg besluttede at løbe væk, retorisk tale, Læn dig tilbage, og nyde at se hajer angribe mennesker med min søn.

</slutningen>

Technorati Tags:

Skifte visning visning baseret på bruger-ID i en InfoPath-formular

Vi havde en udviklede en InfoPath-formular med flere visninger til at støtte en ny leje / på boarding proces. Når virksomheden ansætter en ny person, IT-afdelingen og andre grupper skal handle (nedsat løn, Aktiver adgang til passende programmer, Find skrivebord, osv). Vi bruger på form, men en anden opfattelse af formen for hver af disse funktioner.

På dette selskab, de fleste af de mennesker, der er involveret i forretningsprocessen er IT-kyndige, så når de får adgang til formen, deres standard se på er en "menu" Se med knapper, der direkte dem til deres specifikke funktion. Dog, Vi havde brug at forenkle tingene for nye leje direkte manager. Denne person skal ikke se nogen af IT-relaterede ting. Faktisk, hun skal kunne se bare én visning af formularen og ikke selv har mulighed for at se de andre visninger.

I vores tilfælde, der direkte konto er direkte bundet til formularen høflighed af en Kontakt selector (som jeg altid ønsker at kalde en "mennesker picker" for anden grund).

Trinene er som følger:

1. I designtilstand, gå til værktøjer-> Formularindstillinger-> Åbne og gemme.

2. Vælg "regler".

3. Oprette en ny regel, hvis indsats er "skifte for at se" og hvis tilstand udnytter brugernavnet() funktion.

userName() Returnerer "simpelt" brugernavnet uden domænet. Hvis jeg logger på SharePoint med legitimationsoplysninger "domainpagalvin", userName() Returnerer "pagalvin".

Den kontakt selector giver tre bits af oplysninger for en kontaktperson. "AccountID" del er mest nyttige i dette scenarie. Det eneste, der gør det endda en lille smule af udfordring er, at den kontakt selector (i mit miljø alligevel) Returnerer det domæne og bruger-ID, som i "domainpagalvin". Dette forhindrer os i at gøre en straight-forward ligestilling tilstand siden AccountID ("domainpagalvin") vil aldrig være lig med brugernavnet() ("pagalvin").

Vi kan komme uden om dette ved hjælp af "indeholder" operatør: AccountID indeholder brugernavnet().

Vi kan tage det længere og pre-pend en hard-coded domæne foran brugernavnet() funktion til at få vores ligestilling check og fjerne risikoen for en falsk positiv på den indeholder operatør.

Vi havde virkelig gerne automatisk skifte visning for andre brugere baseret på deres annonce sikkerhedsgruppemedlemskab. For eksempel, Når et medlem af "det Analytics" Gruppen får adgang til formen, automatisk skifte til visningen IT Analytics. Vi har ikke haft tid til at gennemføre det, men min første tanke er at oprette en web-tjeneste, der ville have en metode, som "IsMemberOfActiveDirectorySecurityGroup", pass det Brugernavn() og vende tilbage sandt eller falsk. Er der nogen der har nogen andre, mere klog idé? Er der nogen SharePoint funktion vi kan udnytte fra InfoPath til at træffe denne afgørelse?

</slutningen>

Technorati Tags:

Ved et uheld føje kode til en InfoPath-formular; Bevidst at fjerne det.

Når du arbejder med knapper på en formular, vi tilføje ofte regler. Du få adgang til reglerne editor fra egenskaber for knappen.

Når du klikker rundt hurtigt, Det er nemt at ved et uheld klikker på "Rediger Form Code" i stedet for "regler …".

Første gang jeg gjorde det, Jeg Afmeldt ud af Kodeeditor. Dog, da jeg prøvede at udgive formularen lidt mens senere, det krævede at jeg udgive som en administratorgodkendt skabelon" (Avanceret)". Jeg gjorde faktisk ikke nogen programmering og jeg absolut ønsker ikke at gå gennem en unødvendig godkendelsesproces. Jeg var i lidt af panik på tidspunktet på grund af tidnød. At komme forbi det, Jeg simpelthen gendannet en tidligere sikkerhedskopi og fortsatte. Jeg havde for nylig set nogle blogindlæg om folk går ind i formularens XML til tweak ting og jeg var bange for jeg ville have til at gøre noget lignende.

I dag, Jeg gjorde det igen. Denne gang, Jeg havde lidt mere tid på mine hænder og fundet, at du nemt kan fortryde det.

Gå til:

Værktøjer-> Formularindstillinger-> Programmering: "Fjern kode"

Det får ikke meget nemmere end at.

</slutningen>

Technorati Tags: ,