02
May
2016

Extern data i SharePoint Online

I den här bloggposten kommer vi presentera ett exempel på hur man kan göra data från en Azure SQL Server databas tillgängligt att arbeta med i SharePoint Online genom att skapa upp en Business Connectivity Service, extern innehållstyp och en extern lista.

Fördelen med exemplet är att man med endast konfigurering kan koppla en databas från Azure till SharePoint Online och genom SharePoint Online kan uppdatera databasen (beroende på vilka operationer vi väljer att lägga till i externa innehållstypen). Det här är en av få vägar att på ett enkelt sätt kunna få in externt data utan att på egen hand behöva genomföra någon kodning. Nackdelen med exemplet är att den externa datan inte blir sökbar i SharePoint Online. Nedanstående exempel går att finna på msdn med skillnaden att de där också skapar upp en databas i Azure SQL Server och att jag inte fick det att fungera förrän jag lagt till en brandväggsregel i Azure SQL Server databasen.

Skapa Business Connectivity Service genom att i SharePoint Admin Center välja bcs och sedan ”Manage connections to online services”.
AddBcs2

Klicka på “Add”. Ange ett namn för kopplingen och service adressen, vilket är adressen till SQLServern i Azure.
AddBcs011

Skapa Secure Store Service ID genom att klicka på Secure Store i SharePoint Admin Center och sedan välja ”New”.
AddSecureStoreID

Fyll i “Application ID”, “Display Name”, “Contact E-Mail”. Notera att ”Application ID” inte kan ändras när det väl har skapats.
AddSecureStoreID01

Lägg till de fält som behöver användas för att accessa data i ”Target Application”. Som default är fälten ”Windows User Name” och ”Windows Password” tillagt med fälttyperna ”User Name” och ”Password” kopplade till sig och där ”Password” är maskerat. Man kan välja att lägga till andra fält också om man behöver.
AddSecureStoreID02

Lägg till ”administrators” och ”members” av ”Target Application”.
AddSecureStoreID03

Klicka ok. Du kommer nu tillbaka till ”Secure Store Service” sidan.

Nu när vi har skapat upp ”Target Application” behöver vi sätta ”credentials” som Secure Store använder för att hämta data från Azure SQL databasen. Välj den ”application” som du nyss skapat och klicka ”Set Credentials”. Använd samma användarnamn och lösenord som det användarnamn och lösenord som användes när din Azure SQL Database skapades upp.
SetCredSecureStoreApp1

Nu behöver vi ändra vilka “credentials” som ska användas för vår bcs. Vi angav tidigare ”User´s Identity”. Nu ska vi ändra det till ”Credentials stored in SharePoint”. Klicka på bcs i SharePoint Admin och välj ”Manage Connections to online servers” och välj det namn som du angav för din bcs koppling. Klicka på ”Properties” i menyn.
BcsProp

Ändra till ”Use Credentials Stored in SharePoint”. Ange det ”Secure Store Application ID” som du angav när du skapade upp din ”Target Application” i Secure Store.
BcsProp01

I SharePoint Admin klicka på bcs och sedan ”Manage BDC Models and External Content Types”.
AddExtCont

Välj ”Set Metadata Store Permissions” och välj användare. Minst en användare måste ha full behörighet.
BdcMetaDataStorPerm

Nu ska vi skapa upp vår externa innehållstyp i SharePoint Designer. Öppna upp SharePoint Designer och välj din SharePoint Online site. Klicka på ”External Content Types” i vänstermenyn och välj ”External Content Type” i menyn högst upp enligt bilden nedan.
AddExtContSPDesigner

Ge din innehållstyp ett namn och klicka sedan på ”Discover external datasources and define operations.”
AddExtContSPDesigner01

Klicka på ”Add connection” knappen.
AddExtContSPDesigner02

Ange adressen till din Azure SQL Server databas och namnet på din Azure SQL databas. Välj ”Connect with Impersonated Custom Identity”.
AddExtContSPDesigner03

När du klickar ok kommer du få upp en inloggningsruta. Där anger du det användarnamn och det lösenord som du angivit för att nå Azure SQL Databasen.

I ”Data Source Explorer” har vi nu fått upp vår databas. Öppna upp ”Tables” och högerklicka på den tabell som du vill göra CRUD operationer på. Välj vilken/vilka operationer du vill kunna göra mot tabellen.
AddExtContSPDesigner04

I det här exemplet har jag valt att skapa upp alla operationer och när de är färdigskapade kommer vi få upp nedanstående fönster. Klicka ”Next”.
AddExtContSPDesigner05

I ”Parameters Configuration” fönstret kan vi få upp felmeddelande och varningar. I nedanstående exempel har vi fått upp en varning. För att få bort den varningen behöver vi klicka i ”Show in Picker”. Klicka sedan ”Next”.
AddExtContSPDesigner06

I fönstret som nu öppnats ska vi lägga till ett filter så vi klickar ”Add Filter Parameter”. Vi använder oss av CustomerID för att ange en begräsning av 2000 objekt. För att ange begränsningen klickar vi på ”Click to add” bredvid ”Filter”.
AddExtContSPDesigner07

Vi sätter ”Filter Type” till ”Limit” och klickar ”OK”.
AddExtContSPDesigner08

Nu sätter vi ”Default value” till 2000 och klickar sedan ”Finnish”.
AddExtContSPDesigner09

Klicka på spara knappen för att spara din externa innehållstyp till din SharePoint Online site. Nu när vi går tillbaka till SharePoint Admin Center och väljer bcs och ”Manage BDC Models and External Content Types kommer vi se vår koppling där. Klicka på drop down menyn och välj ”Set Permissions”.
AddExtContSPDesigner10

Sök efter ”All Users” och lägg till både ”All Users (Windows)” och ”All Users (Membership)”. Ge båda ”Execute” och ”Selectable in Clients” behörigheter.
SetExtContPerm

Innan vi kan skapa upp vår externa lista i vår SharePoint Online site måste vi också skapa upp en brandväggsregel till vår databas i Azure, så att Azure accepterar SharePoint att nå vår databas. Vi behöver ange en Start IP och Slut IP. Eftersom IP-adresserna i SharePoint Online är dynamiska behöver vi ange nedanstående Start och Slut IP.
AzureFirewallRule1

Nu kan vi gå till ”Site Contents” på vår SharePoint Online site och välja ”add an app”. Lägg till en extern lista och välj den externa innehållstyp som vi skapat upp.
AddExtList

Ge listan ett namn och klicka skapa. Du borde nu kunna se dina externa objekt och beroende vilka operationer du lagt till editera, ta bort och lägga till objekt i listan.
Solution1Result