CHUVASH.eu

CHunky Universe of Vigourous Astonishing SHarepoint :)

Tag Archives: inparametrar

Flaggor i powershellfunktioner

Har länge letat efter möjligheten att skriva funktioner med egna flaggor på ett enkelt sätt. “Flaggor” (flags) är namngivna parametrar. Följande kommando har flaggor: -Identity, -WebApplication och -GACDeployment.

Install-SPSolution -Identity contoso.portal.wsp -WebApplication http://contoso -GACDeployment

Låt oss titta på ett gammalt exempel:

function hello($firstname, $lastname) {
   Write "Hello $firstname $lastname"
}

Men är det inte jobbigt sedan att komma ihåg i vilken ordning parametrar kom. Tänk om någon skriver fel. Lösningen är flaggor. Det roliga är att du behöver inte göra så mycket mer, du som använder en funktion. Skriv:

hello -firstname Gregor -lastname Samsa

Så inparametrar omvandlas automatiskt till flaggor. Bara byt $-tecknet mot bindestreck. Sedan kan du skriva i vilken ordning som helst:

hello -lastname Samsa -firstname Gregor

En ytterligare häftig grej att booliska flaggor:

function helloInColor($firstname, $lastname, [switch]$red = $false, [switch]$green = $false) {
   $greeting = "Hello, $firstname $lastname"
   if($red) {
      Write-Host -ForegroundColor Red $greeting
   }
   if($green) {
      Write-Host -ForegroundColor Green $greeting
   }
}

Den switchen gör att du inte behöver stoppa in $false eller $true explicit (helloInColor -green $true), utan det räcker med helloInColor -green.

Nu kan du kombinera dina inparametrar hur mycket du vill:

helloInColor -firstname Gregor -lastname Samsa -green
helloInColor -green -firstname Gregor
...

defaultvärde på parametern i powershellfunktioner

Läser ett intressant inlägg om deployskript i powershell. Har upptäckt att man kan stoppa in ett defaultvärde i funktionens parameter. Så i stället för

function hello($name) {
  Write-Host $name
}

Kan man köra:

function hello($name = "Gregor") {
  Write-Host $name
}

Mycket smidigt.

Polymorfi och javascript

En skräckscenario: du använder två javascript-bibliotek. Men de har var sin funktion som har samma namn. Det spelar även ingen roll om antalet inparametrar är olika. Så det blir samma sak som myfunc(param1, param2) och myfunc(param1). Grejen är att funktionen som laddas sist är den som kommer köras. Katastrof! Men det finns lösningar. Börja läsa här om hur man kan simulera polymorfi i javascript på about.com.

Säg vi har en funktion som heter MoveToDate(strdate, ctxid) den ingår i init.debug.js (som används av Sharepoint kalenderwebpart). Sedan har vi något annat javascript-bibliotek som också har MoveToDate(param).

Låt oss göra det polymorfiskt. Här är koden:

<script type="text/javascript" 
       src="/_layouts/yourproject/jquery.min.js">
</script>
<script type="text/javascript">  
$(document).ready(function() {
      MoveToDate = function(dt, ctxid) {
        if(ctxid != undefined) {
            ULSA13:;
 	           CoreInvoke('_MoveToDate', dt, ctxid);
         }
        else {
        //Do what other MoveToDate(param) should have done
        }
    };
  });
</script>

Så, svårt är det inte. Det måste dock definieras allra sist, det är därför det körs i jquery-funktionen ready. window.onload funkar inte riktigt.

Вула Чăвашла

VulaCV - Чăвашла вулаттаракан сайт

Discovering SharePoint

And going crazy doing it

Bram de Jager - Architect, Speaker, Author

Microsoft 365, SharePoint and Azure

SharePoint Dragons

Nikander & Margriet on SharePoint

Cameron Dwyer

Office 365, SharePoint, Azure, OnePlace Solutions & Life's Other Little Wonders

paul.tavares

Me and My doings!

Share SharePoint Points !

By Mohit Vashishtha

Jimmy Janlén "Den Scrummande Konsulten"

Erfarenheter, synpunkter och raljerande om Scrum från Jimmy Janlén

Aryan Nava

DevOps, Cloud and Blockchain Consultant

SPJoel

SharePoint for everyone

SharePointRyan

Ryan Dennis is a SharePoint Solution Architect with a passion for SharePoint and PowerShell

SharePoint 2020

The Vision for a Future of Clarity

Aharoni in Unicode

Treacle tarts for great justice

... And All That JS

JavaScript, Web Apps and SharePoint

blksthl

Mostly what I know about SharePoint - CommunicoCuspis

SharePointDiver

SharePoint på ren svenska