Oplossing voor probleem: “FileNotFoundException” Met mijn functie ontvanger.

Ik was bezig met een functie vorige week dat sommige ontvangers gebeurtenis aan een specifieke lijst exemplaar toevoegen zou. (Ik geblogd een beetje over die lijst ontvanger hier).

Via de opdrachtregel, Mij konden installeren de functie met geen fout (maar zie hieronder voor de verborgen fout). Toen ik probeerde om het implementeren van de functie op de site, MOSS klaagde over een "FileNotFoundException" fout. Deze blog entry beschrijft hoe ik heb het opgelost.

Dit is de fout die MOSS me in de webbrowser liet:

Functie ' b2cb42e3-4f0a-4380-sequence-1ef9cd526f20’ kan niet worden geïnstalleerd omdat het laden van gebeurtenis ontvanger montage "xyzzyFeatureReceiver_0" is mislukt: System.io.FileNotFoundException: Kan niet laden bestand of vergadering ' xyzzyFeatureReceiver_0’ of één van zijn gebiedsdelen. Het systeem kan het opgegeven bestand niet vinden.
Bestandsnaam: ' xyzzyFeatureReceiver_0’
op System.Reflection.Assembly.nLoad(AssemblyName bestandsnaam, Tekenreeks codeBase, Bewijs assemblySecurity, Vergadering locationHint, StackCrawlMark& stackMark, Booleaanse throwOnFileNotFound, Booleaanse forIntrospection)
op System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Bewijs assemblySecurity, StackCrawlMark& stackMark, Booleaanse forIntrospection)
op System.Reflection.Assembly.InternalLoad(String assemblyString, Bewijs assemblySecurity, StackCrawlMark& stackMark, Booleaanse forIntrospection)
op System.Reflection.Assembly.Load(String assemblyString)
op Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Vergadering bindende logboekregistratie is ingeschakeld OFF.
Vergadering bind mislukking logboekregistratie inschakelen, instellen van de registerwaarde [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Aan 1.
Opmerking: Er is enige prestatiessanctie die zijn gekoppeld aan de assemblage bind mislukking logboekregistratie.
Deze functie uitschakelen, de registerwaarde verwijderen [HKLMSoftwareMicrosoftFusion!EnableLog].

Oplossen van problemen met Windows SharePoint Services.

Ik weet hoe te het opzettelijk veroorzaken die fout: de vergadering niet installeren in de GAC. Maar, het was in de GAC. Ik installatie normaal van assembly's in de GAC door ze te slepen in de c:\windowsassembly map met behulp van windows verkenner. Ik heb nooit gevoeld 100% comfortabel dat te doen want ik heb altijd gedacht dat gacutil bestond voor een reden … dus ik dat probeerde. Het maakte geen verschil.

Ik zocht de Internets en vond dit bericht: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

De poster is er gebeurd met de dezelfde wortel bits van code gebruiken (uit het boek binnen WSS uit deze lijst) dus dat een hoopvol teken was. Echter, de suggestie van het verfraaien van de vergadering met een [vergadering: ] richtlijn zinvol niet voor mij. Ik probeerde het toch en ik had gelijk. Het maakte geen verschil.

Dan merkte ik dat mijn klassendefinitie niet openbaar was. Ik maakte het publiek en dat maakte geen verschil.

Volgende, Ik ging naar het probleem van de "vergadering bind mislukking log inschakelen" (naar aanleiding van de nuttige en nauwkeurige instructies geboden) en dit is waar de dingen begonnen om interessante. Dit logboek toont me dat de runtime overal op die server voor mijn vergadering zoeken is. Het lijkt zelfs zoeken naar het in mijn medicijnkastje. Maar … het zal niet zoeken naar het in de GAC.

Ik zette mijn winter jas en de Internets opnieuw gaan zoeken en vinden dat iemand dit probleem te heeft. De lange discussie in dat bericht peters uit in het niets en ik kan niet het vinden van een oplossing.

Ik verplaatst mijn vergadering naar een van de plaatsen die het logboek beweert het op zoek en ik een beetje meer vooruitgang. Ik ben beloond met een nieuwe fout in de browser wanneer ik probeer om de functie te activeren:

Functie ontvanger object het maken van vergadering "xyzzyFeatureReceiver_0" is mislukt, type "Conchango.xyzzyFeatureReceiver" voor de functie b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Waarde kan niet null.
Parameternaam: type
op System.Activator.CreateInstance(Type type, Boolean nonPublic)
op System.Activator.CreateInstance(Type type)
op Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Oplossen van problemen met Windows SharePoint Services.

Tijd voor een laatste reis naar de Internets!

Deze keer ik erachter, voorspelbaar genoeg, dat MOSS deze fout problemen omdat de assemblage zich niet in de GAC.

Ik wil te krijgen iets positief uit dit en probeer te voelen een beetje trots op dat ik heb gemaakt de Vluchteling van assemblages MSIL, maar het werkt niet. Ik ben gewoon geïrriteerd. Ik vind mezelf mompelen "kip of het ei" onder mijn adem.

Tot slot besluit ik om punt. Ik maak een geheel nieuw project en kopieer/plak de code van de incredible-cloaked-from-the-GAC-assembly niet-werkende project over aan dit nieuwe project. (Ik zoek een build vlag met de naam iets als "verbergen van vergadering bindend als geïnstalleerd in de GAC" maar kan niet vinden).

Ik installeer de functie en het activeren en … het werkt! Dus, na al dat, Ik moest eigenlijk ' opnieuw opstarten’ mijn project. Dit is een andere reden waarom ik computers haat.

Ik leerde iets nuttigs hieruit. Ik had het installeren van functies met behulp van de opdrachtregel stsadm hele dag lang en met behulp van de "-kracht" optie uit gewoonte. Voor sommige reden, Ik heb geen gebruik de - force optie toen ik het nieuwe project installeerde. Deze keer, Ik deed eigenlijk, echt vergeten vergadering van dit nieuwe project kopiëren naar de GAC. Als een resultaat, Ik kreeg die "-FielNotFoundException" fout. Deze keer, Ik heb het uit stsadm, niet toen ik probeerde om de functie via de webbrowser te activeren. Dus, -kracht speelt eigenlijk twee rollen. Hiermee kunt u een bestaande functie opnieuw te installeren. Ook kunt u een buggy voorziening die door het onderdrukken van de fout werkt niet tijdens runtime te installeren. Het zegt waarschijnlijk zo veel in de help van ergens, maar ik merkte nooit het.

</einde>

Zondag grappig: Boven 10 Manieren om te ergeren je vrouw

  1. Broccoli kopen wanneer u weet er is al meer dan genoeg in de koelkast.
  2. Ga voor een run. Koel af. Schoon kussensloop opstijgen en vervangen met T-shirt. Bedek met schoon kussensloop.
  3. Tijdens het rijden, vragen als we de verkeerde weg naar beneden van een one-way street moeten gaan.
  4. Voor 15 jaar, elke zondag die je vrouw suggereert gaan aan een museum, uitdrukkelijke verrassing dat musea open op zondag zijn.
  5. Voor 15 jaar, af en toe ga naar de lokale boekwinkel suggereren op zondag. Verbazen dat ze niet open op zondag zijn (Heel hartelijk bedankt Blue wetten!).
  6. Gebruik 20 punten om te doen een 3 punt beurt.
  7. Op een koele val begin van de middag, lopen in de kamer en de a/c inschakelen. Klagen dat het is koud. Wanneer de vrouw zegt, "vervolgens waarom did u zwenking die op, Dom" en voor zwenking op vandoor opstaat, Pak de warme plek had ze op de Bank. Bonuspunten als ze niet u beseffen deed het pas veel later.
  8. Open te stellen een blikje van heerlijke wit witte tonijn en eten rechtstreeks uit de kan, in bed, ‘s nachts.
  9. Gaan naar de keuken terwijl vrouw is eten diner, Open de besteklade en gebruiksvoorwerpen duwen rond tot vrouw schreeuwt, "wat u zoekt!"
  10. Bij ontvangst van nieuwe visitekaartjes, plaats ze in het geheim rondom het huis: Onder het bed, in kussenslopen, binnen koffie cups, in haar tas, in jas zakken, auto handschoen compartimenten, de pantry — overal kunt u denken aan.
  11. Schrijven van blogberichten over uw vrouw.
  12. Word wakker.
  13. Als wandelen door de straten van New York City, worden op de waarschuwing voor "krokant" objecten op de grond. Rekening houdend met uw vrouw speciale angsten, bereiken neer als om te Kies een omhoog omhoog en vragen, "hmm, Ik vraag me af wat dat is?" (Worden bereid voor vrouw aan lichaam slam u alsof ze een agent van de geheime dienst de President te beschermen tegen een sluipschutter of u vindt jezelf op je rug op de stoep te leggen).
  14. Tweemaal rondrijden op een parkeerplaats op zoek naar ruimte. Je weet dat je hebt echt raken pay vuil wanneer uw zoon in de achterbank schreeuwt, "Oh geen! Hij doet het weer!"
  15. Schrijven "top 10" lijsten die niet hebben 10 items.

===

Bonus vrouw grap:

Twee mannelijke collega's gaan uit naar de lunch. Een van hen vertelt de andere, "Ik laat los een pijnlijk Freudiaanse verspreking de andere nacht."

"Een Freudiaanse verspreking? Wat is dat?"

"Nou, Toen we klaar met eten, de serveerster kwam door en vroeg hoe wij graag onze maaltijden. Ik betekende zeggen, ' Ik hield de kipfilet’ maar in plaats daarvan gezegd 'Ik hield van uw borsten'. Ik was zo beschaamd."

"Ah," zijn mede-werker antwoordde:. "Ik had het zelfde ding gebeurt aan me dit weekend met mijn vrouw. Wij zaten te eten ontbijt die ik bedoeld om te vragen haar om door te geven van de boter, maar in plaats daarvan ik schreeuwde tegen haar, ' Je verpest mijn leven!’"

</einde>

Technorati Tags:

Gebeurtenis-ID 1023: “Windows laden niet extensible teller DLL MSSCNTRS”

UPDATE (04/08/08): Ik schijn te hebben dit probleem opgelost. Vanaf de opdrachtregel, Ik liep "c:\windowssystem32lodctr/r" als per een post over InstallShield lijkt problemen en die te hebben het opgelost voor mij.

Ik heb gemerkt dat de laatste tijd, mijn bureaublad/server fan wordt nooit uitgeschakeld. Ik weet dat het gebruikt om uit te schakelen. Ik nam een moment om te controleren het uit gemerkt dat het een VMware proces liep een consistente 20% gebruik op een van de CPU's. Ik controleerde het gebeurtenislogboek en zag deze fouten in het toepassingslogboek gebeurt tientallen keren per minuut:

Windows laden niet extensible teller DLL UGatherer, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.

Windows laden niet extensible teller DLL UGTHRSVC, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.

Windows laden niet extensible teller DLL MSSCNTRS, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.

Als ik in de details van een van deze berichten boren, Krijg ik dit:

Bron: Perflib

Type: Fout

Categorie: Geen

Gebeurtenis-ID 1023

Ik deed wat onderzoek en er was een indicatie zou een toestemming probleem wat betreft de toegang naar de DLL's in kwestie. Ik speelde rond met dat spul maar kan geen invloed op dingen op een positieve manier dus ik gaf op die.

VMware had geweest treiteraar mij over het uitvoeren van een update voor geruime tijd, dus ik noteerde de versie die ik had geïnstalleerd (blijkbaar bouwen"1.0.1 29996") en deed de update. Dit me een upgrade naar v1.04. Helaas, het did niet positiebepaling naar de kwestie.

Ik kan stoppen met het krankzinnig aantal berichten naar mijn toepassingslogboek te gaan als ik een dienst genaamd "VMware Authorization Service" afsluiten. Hiermee voorkomt u dat mij met behulp van de VMware-software, dus … niet deze een grote optie.

De gastheer-besturingssysteem is Windows XP 64 bits.

Ik denk niet dat dit altijd is gebeurd, maar ik weet niet een bepaalde gebeurtenis die zou hebben geleid tot het.

Dit is waarom ik computers haat.

</einde>

Technorati Tags:

Snelle & Gemakkelijk: Naam van geüploade bestand met behulp van SharePoint-objectmodel Via een Event Receiver

UPDATE: Dit werkt maar er zijn belangrijke beperkingen die worden beschreven in de commentaren. Dit kan nog steeds nuttig in sommige doen zijn.

UPDATE 2: In mijn huidige project, gebruikers uploaden altijd documenten. Als een resultaat, Ik lopen niet in een probleem waar MS Word wordt uitgevoerd en denkt dat het bestand werd gewijzigd op het. Ik heb lopen in een probleem, "het bestand is bewerkt door iemand anders" en dit opgelost via een eenvoudige semafoor type vlag. Gebruikers moeten een meta data-veld wijzigen van de standaardwaarde naar iets anders. De itemupdated() ontvanger zoekt naar een geldige waarde er voordat u eigenlijk de naam wijzigen en sindsdien, Ik heb niet had ieder problematiek. Jouw snelheid kan variëren.

Ik heb een vereiste van de client de naam van de bestanden naar een bepaalde documentbibliotheek om te voldoen aan een bepaalde naamgevingsconventie wijzigen. De API voorziet niet in een "hernoemen()" methode. In plaats daarvan, We gebruiken "MoveTo(…)". Hier is een minimale beetje van code om dit te bereiken:

 openbare overschrijven VOID ItemToegevoegd (ItemAdded)(SPItemEventProperties eigenschappen)
        {
            SPFile f = eigenschappen.ListItem.File;

            f.moveTo(Eigenschappen.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.update();

        }

De alleen lastig bit is de "Eigenschappen. ListItem.ParentList.RootFolder.Url". De VerplaatsenNaar() methode vereist een URL. Die puree tekenreeks punten mij naar de root-map van mijn huidige documentbibliotheek. Dit kan ik om te voorkomen dat een harde codering in mijn gebeurtenis ontvanger.

Dit is een meer nuttige versie die het zelfde ding doet, maar de naam van het bestand wordt toegewezen aan "Titel":

 openbare overschrijven VOID ItemToegevoegd (ItemAdded)(SPItemEventProperties eigenschappen)
        {
            DisableEventFiring();

            // De titel van dit item toewijzen aan de naam van het bestand zelf.
 // OPMERKING: Deze toewijzing moet plaatsvinden voordat we het bestand zelf wijzigen.
 // Update aanroepen() lijkt op de SPFile om de eigenschappen in ongeldig te maken
 // sommige zin.  Updates voor "titel" totdat dat wijzigen is mislukt (en update() oproep)
 // voor de verandering werden verplaatst naar de bestandsnaam.
            Eigenschappen.ListItem["Titel"] = Eigenschappen.ListItem.File.Name;

            Eigenschappen.ListItem.Update();

            SPFile f = eigenschappen.ListItem.File;

            // Krijgen de extensie van het bestand.  Wij moeten dat later.
 tekenreeks spfileExt = Nieuw FileInfo(f.name).Extensie;

            // Hernoem het bestand naar het item in de lijst-ID en de extensie gebruiken om te houden
 // dat deel van het intact.
            f.moveTo(Eigenschappen.ListItem.ParentList.RootFolder.Url +
                "/" + Eigenschappen.ListItem["ID"] + spfileExt);

            // Plegen de verhuizing.
            f.update();

            EnableEventFiring();
        }

Forumdiscussie: Beste praktijken Compliance in niet-triviale MOSS-omgeving afdwingen

Een collega, "Mark", een potentieel interessante nieuwsgroep discussie zich te concentreren op "tot vaststelling van uitstekende SharePoint Governance vanaf het begin heeft opgestart" voor een 35,000 gebruikersomgeving.

De discussie is hier: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop op over en bij te dragen!

</einde>

URL van de aangepaste actie niet wordt weergegeven als voor nieuwe functie

Ik ben nog steeds in de gewoonte van crafting mijn functie XML-bestanden met de hand, want het is allemaal heel nieuw voor mij. Ik wil niet te vertrouwen op een front-end-instrument dat is spul, die ik begrijp niet (zei hij toen hij schreef een blog entry met behulp van een tool die hij niet begrijpt).

Vandaag, Mij watertje trying voor een aangepaste actie toevoegen aan de site-instellingen, maar het gewoon niet zou opdagen. Ik kon installeren van de functie en zie het in de functies van de site, maar toen ik geactiveerd het (zonder fouten) het niet zou gewoon opdagen op het drop-down menu.

Ik eindelijk besefte dat ik het verkeerd gespeld "SharePoint" in het locatiekenmerk van de <CustomAction> knooppunt. Dit is het slechte elements.xml bestand:

<?XML Versie="1.0" codering="UTF-8" ?>
<Elementen xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolbar"
 Groeps-id="SiteActions"
 Locatie="Microsoft.Sharepoint.StandardMenu"
 Volgorde="100"
 Titel="Hallo!"
 Beschrijving="Aangepaste menu actie toegevoegd via een functie."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL="http://www.Xyzzy.com"/>

  </CustomAction>
</Elementen>

Goede:

<?XML Versie="1.0" codering="UTF-8" ?>
<Elementen xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolBar"
 Groeps-id="SiteActions"
 Locatie="Microsoft.SharePoint.StandardMenu"
 Volgorde="100"
 Titel="Hallo!"
 Beschrijving="Aangepaste menu actie toegevoegd via een functie."
    >
    <UrlAction URL="http://www.Xyzzy.com"/>
  </CustomAction>
</Elementen>

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

Ik neem troost in het feit dat sommige dag in de toekomst, Mij zal zitten kundig voor zeggen met overtuiging, "back in the day, Ik had om te lopen drie mijlen heuvel in de sneeuw (Barefoot!) om de implementatie van een aangepaste functie aan MOSS. U jonge geitjes, u weet niet hoe gemakkelijk heb je het! Stapt uit mijn gazon!"

Kan niet wachten.

</einde>

Technorati Tags: ,

Blog Stats

Ik dacht dat sommige mensen misschien geïnteresseerd in mijn blog statistieken. U kunt mij als een benchmark om te vergelijken uw eigen.

I 'm running mijn blog op windows live spaces. Ze verzamelen statistieken voor me en ik weet niet een manier om te controleren of. Het is goed als het gaat, maar het is vrij beperkt in dat ik niet veel werkelijke analyse met het. Ik zou graag, bijvoorbeeld, om te kunnen genereren een aanbieding van mijn meest vaak kan hit berichten maar ik dat niet zonder een onbetaalbaar handproces. Als iemand beter weet, Gelieve te vertellen me.

Live spaces status vertel me: totaal aantal treffers voor de dag, totaal aantal treffers voor de week en totaal hits sinds dag nul. Het vertelt me ook wat mensen deden om naar mijn blog (bijvoorbeeld. Google, MSDN forum link, etc).

In sommige opzichten, een 'hit" is duidelijk. Als je deze zin nu leest, u hebt bijna zeker geregistreerd als een enkele hit.

RSS is een beetje verwarrend. Aan de ene kant, Ik zie individuele RSS hits hele dag lang. Maar, Ik zie ook RSS "sweeps". Een sweep is als ik zie 20 of 30 RSS hits allemaal binnen een tweede venster één of twee. Ik neem aan dat dit zijn geautomatiseerde dingen zoals google inchecken op mijn site, misschien andere mensen browsers … Ik weet het niet. Ze zijn zeker een soort geautomatiseerd proces. Ik kan niet zeggen, echter, Hoeveel van mijn totale hits zijn geautomatiseerd en hoeveel hebben een werkelijke mens aan de andere kant. Ik denk dat ten minste 100 hits per dag worden geautomatiseerd.

Naar de getallen!

Schreef ik mijn eerste blog entry op 27 juli, 2007.

Ik heb ongeveer geschreven 60 blogberichten sindsdien, meer dan 50 die direct betrekking hebben op SharePoint.

Ik begon om bij te houden van mijn hits in een werkblad op een dagelijkse basis aan het einde van September.

Maandelijkse begint:

Eerste week van: Totaal aantal treffers
Oktober 1,234
November 2,162
December 3,071
Januari 2008 4,253

Totaal per maand

Maand Totaal aantal treffers
Oktober 6,620
November 11,110
December 13,138

Hoge Water merken

Type Totaal aantal treffers
Beste dag 958
Beste Week 4,253
Totaal aantal treffers sinds dag nul 42,438

Ik ben geïnteresseerd in andere’ stats. Als u zorg te delen jouwe in de commentaren, Gelieve te doen!

</einde>

Technorati Tags:

Zondag ochtend grappig: “Ja, Ja, Ja. Bla, bla, bla.”

Ongeveer zes jaar geleden, mijn vier-jaar-oude zoon en ik waren naar boven kijken naar een Discovery channel "haai aanvallen" speciale (misschien dit één). Hij was erg jong op het punt en ik was altijd bang wat hij op een show als deze zouden kunnen zien en hoe hij zou kunnen nemen het. Ik had geen zin hem te ontwikkelen, bijvoorbeeld, elke speciale angsten van het water of blab iets ongepast aan zijn vrienden en eventueel veroorzaken zijn baby vriend netwerk te komen crashen omlaag.

Ontdekking behandelt dit soort onderwerpen zeer goed. Het is niet over het maken van een angst voor iets, maar eerder om te tonen hoe ongebruikelijk is voor haaien aan te vallen van mensen.

Dus, We kijken het en er is dit een bijzonder eng aanslag met een klein meisje. Zoals Discovery is het opbouwen van het drama van de aanval, mijn zoon (die is altijd geweest uiterst springerig toch), wordt steeds zeer opgewonden. Ik sommige geluiden over hoe ongebruikelijk is voor haaien aan te vallen van mensen te maken, en hoe slecht het arme meisje moet voelen. Ik probeer uit te leggen dat mensen uit deze gebeurtenissen herstellen en sterker voor het geworden. Echter, Ik had verkeerd geïnterpreteerd zijn opwinding. Hij was niet bezorgd over het meisje helemaal. In plaats daarvan, terwijl zijn handen klappen, Hij vertelt me, "De haaien love it! Het is geweldig. Het is prachtig. Zijn een droom!"

Ik dacht dat dit was hilarisch, maar ook zeer verontrustende. Aan de ene kant, Ik was blij — zelfs een beetje trots — dat hij sterke empathisch gevoelens hebben kon, Kruis-soorten hoewel ze kunnen zijn. Als mensen, We moeten onze "empathisch spieren ontwikkelen" zo spreken of zult u beëindigen omhoog als deze kerel 🙂 On the other hand, Hij voelde Kruis-soorten empathie naar een soort die strijdig met zijn eigen gedrag was exposeren. Ik was echt worstelen met dit, wanneer de verteller het woord "paradigma gebruikt". Mijn zoon opgepikt op dat en vroeg me wat dat betekende.

Dat is niet zo'n een makkelijk woord om te beschrijven aan een vier jaar oude, maar ik gaf het een poging. Als ik denk aan het woord "paradigma", Thomas Kuhn is nooit ver van mijn gedachten. Ik lees De structuur van Scientific Revolutions terug op Lafayette en voor beter of voor slechter, het woord "paradigma" is zwanger met extra betekenis voor mij. (Soort als het woord "contact" na het horen van een stem van de film telefoon vertellen me waar ik kon zien die film [Ik dacht dat het boek was beter]; Ik zeg altijd tegen mezelf, "CONTACT!" Wanneer ik ziet of hoort iemand zeggen "contact").

Hoe dan ook, Ik probeer uit te leggen aan hem een Kuhnian definitie, dat is het "een historische beweging van het denken" en dat er een "manier van denken met een aantal ingebouwde aannames die moeilijk te ontsnappen voor mensen die op dat moment." Natuurlijk, u kan niet praten als een vier - jarige, dus ik probeer te achtereenvolgens definiëren voor kleinere stukken en gevoel eerder trots op mezelf als ik doen. (Ik heb net wist dat iemand buiten college zou schelen dat ik had gelezen Kuhn!).

Ik ben gewoon opwarming van de aarde aan de taak wanneer hij me onderbreekt. Zwaaien van zijn hand in mijn algemene richting en nooit houdend zijn ogen een andere wrede haai aanval af, Hij zegt enkel, "Ja, Ja, Ja. Bla, bla, bla.".

So much for that 🙂

Op dat moment, Heb ik besloten weg te lopen, retorisch spreken, achterover leunen, en genieten van het kijken van haaien vallen mensen met mijn zoon.

</einde>

Technorati Tags:

Schakelaar weergave weergave op basis van gebruikers-ID In een InfoPath-formulier

We hadden een ontwikkelde een InfoPath-formulier met meerdere weergaven ter ondersteuning van een nieuwe huren / op-boarding proces. Wanneer de onderneming huurt een nieuwe persoon, de IT-afdeling en andere groepen nodig om actie te ondernemen (payroll instellen, toegang tot geschikte toepassingen inschakelen, Zoek een bureau, etc). We gebruiken op een formulier maar een andere weergave van het formulier voor elk van deze functies.

Bij dit bedrijf, de meeste van de mensen die betrokken zijn in het bedrijfsproces zijn IT-savvy, Zo wanneer zij het formulier openen, hun standaardweergave is een "menu" bekijken met knoppen die hen rechtstreeks naar hun specifieke functie. Echter, we nodig hadden om de dingen te vereenvoudigen voor de nieuwe huur directe manager. Deze persoon moet niet zien dat een van de IT-gerelateerd spul. Eigenlijk, ze moet slechts één weergave van het formulier zien en zelfs niet hebben een optie om te zien de andere weergaven.

In ons geval, dat directe manager van-account is direct gekoppeld aan het formulier hoffelijkheid van een Contactpersonen kiezen (die ik altijd wil noemen een "mensen picker" voor sommige reden).

De stappen zijn als volgt:

1. In de ontwerpmodus, Ga naar extra-> Formulieropties-> Openen en opslaan.

2. Selecteer "regels".

3. Maak een nieuwe regel waarvan actie is "schakelen als u wilt bekijken" en wiens toestand maakt gebruik van de gebruikersnaam() functie.

Gebruikersnaam() Deze eigenschap retourneert de eenvoudige"" gebruikersnaam zonder het domein. Als ik mij aanmeld in SharePoint met referenties "domainpagalvin", Gebruikersnaam() geeft als resultaat "pagalvin".

De contactpersonen kiezen biedt drie stukjes informatie voor een contactpersoon. De "AccountID" gedeelte is vooral handig voor dit scenario. Het enige ding dat dit zelfs een klein beetje maakt van uitdaging is dat de contactpersonen kiezen (in mijn omgeving toch) Deze eigenschap retourneert het domein en de gebruikersnaam ID, zoals in "domainpagalvin". Dit belet ons een voorwaarde rechttoe-rechtaan gelijkheid sinds AccountID ("domainpagalvin") nooit zal gelijk zijn aan gebruikersnaam() ("pagalvin").

We kunnen krijgen rond dit met behulp van de "bevat" exploitant: AccountID bevat gebruikersnaam().

We kunnen nemen het verder en pre-pend een hardcoded domein voor de gebruikersnaam() functie om onze gelijkheid controleren en elimineert het risico van te verkeerd stellig op de exploitant bevat.

We zouden moeten echt zoals automatisch naar een andere weergave voor andere gebruikers op basis van hun lidmaatschap van een beveiligingsgroep AD. Bijvoorbeeld, Wanneer een lid van de "het Analytics" groep opent het formulier, automatisch overschakelen naar de weergave IT Analytics. We had geen tijd om het te implementeren, maar mijn eerste gedachte is het creëren van een webservice die een methode als "IsMemberOfActiveDirectorySecurityGroup hadden", de gebruikersnaam doorgeven() en terug te keren terug waar of onwaar. Ieder doet zijn ieder andere, meer slim idee? Is er een SharePoint functie die we gebruik kunnen maken van InfoPath om die bepaling te maken?

</einde>

Technorati Tags:

Per ongeluk Code toe te voegen aan een InfoPath-formulier; Opzettelijk verwijderen

Bij het werken met knoppen op een formulier, we toevoegen vaak regels. U openen de regels-editor vanuit de eigenschappen van de knop.

Wanneer het klikken snel rond, het is gemakkelijk om per ongeluk klikt u op "Formuliercode bewerken" in plaats van "regels …".

De eerste keer dat ik deed dit, Ik geannuleerd uit de code-editor. Echter, Toen ik probeerde het formulier wilt publiceren een beetje tijd later, het vereiste dat ik als een "door een beheerder goedgekeurde formuliersjabloon publiceren (geavanceerde)". Ik eigenlijk niet programmeren en ik absoluut niet wil gaan door middel van een onnodige goedkeuringsproces. Ik was in een beetje paniek op de moment wegens tijdgebrek. Om voorbij het te krijgen, Ik gewoon hersteld van een vorige back-up en bleef. Ik had onlangs gezien sommige blog posts over mensen die in de vorm van XML naar tweak dingen en ik was bang dat ik zou moeten doen iets dergelijks.

Vandaag, Ik deed het weer. Deze keer, Ik had een beetje meer tijd op mijn handen en gevonden dat u dit gemakkelijk ongedaan kunt maken.

Ga naar:

Hulpprogramma's-> Formulieropties-> Programmering: "Code verwijderen"

Het krijgt niet veel gemakkelijker dan die.

</einde>

Technorati Tags: ,