SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Extracting and Loading SharePoint Data
in SQL Server Integration Services
Kevin Idzi
Summary: The SharePoint List Source and Destination Sample available on Codeplex
provides an optimized solution with an easy-to-use interface for getting data out of or
into a SharePoint list. The sample also includes an API for accomplishing these tasks
efficiently outside of SQL Server Integration Services.
This article introduces the SharePoint List Source and Destination adapters,
demonstrates their use in an SSIS package, and documents their features and options.
Category:Quick Step-by-Step
Applies to:SQL Server 2005, 2008, 2008 R2, and 2012
Source:White paper (link to source content)
E-book publication date: November 2012
Copyright © 2012 by Microsoft Corporation
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any
means without the written permission of the publisher.
Microsoft and the trademarks listed at
http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the
Microsoft group of companies. All other marks are property of their respective owners.
The example companies, organizations, products, domain names, email addresses, logos, people, places, and events
depicted herein are fictitious. No association with any real company, organization, product, domain name, email
address, logo, person, place, or event is intended or should be inferred.
This book expresses the author’s views and opinions. The information contained in this book is provided without any
express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors
will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
Contents
Introduction..........................................................................................................................................4
Features of the SharePoint List Source and Destination.........................................................................4
Preparing to Use the SharePoint List Source and Destination.................................................................4
Prepare your SharePoint list for testing. ................................................................................................8
Extracting Data from SharePoint by Using the SharePoint List Source....................................................9
Writing Data to SharePoint by Using the SharePoint List Destination...................................................14
Working with SharePoint Data in the Data Flow ..................................................................................17
Setting Properties by Using SSIS Expressions during Runtime...............................................................19
Using SharePointUtility.dll Outside of Integration Services ..................................................................20
Conclusion...........................................................................................................................................24
Introduction
Integration Services package developers often ask about the best way to get data out of or into a
SharePoint list. The SharePoint List Source and Destination Sample available on the Microsoft SQL
Server Community Samples: Integration Services page on Codeplex provides an optimized solution with
an easy-to-use interface. The sample also includes an API for accomplishing these tasks efficiently
outside of Integration Services.
There a few different ways to extract or load SharePoint data:
• Use the SharePoint APIs to add or remove items one by one.
• Use the SharePoint Batch API to generate XML and submit the XML.
• Use the Lists Web service, which uses the same XML as the Batch API.
Calling the Web service is a powerful way to transfer data to or from SharePoint, whether or not you
have extensive rights in your SharePoint environment, because it does not alter the SharePoint server
itself in any way.The Web service also uses the Batch XML structure, which provides better
performance than the server APIs for extracting or loading data.
Features of the SharePoint List Source and Destination
The SharePoint List source and destination use public SharePoint Web services and have several
features that enhance their performance and their ease of use:
• Only the fields that you want are returned from SharePoint.
• Large lists are not transferred all at once. They are paged in batches, with a configurable batch
size.
• Column type information from SharePoint is used for mapping to Integration Services data
types
• CAML queries can be added to the query to filter the rows to be returned.
• Update and Delete operations from an Integration Services package are simple.
• Important custom properties of the source and destination can be set by using Integration
Services expressions.
• Supports SQL Server 2005, 2008, 2008 R2, and later.
• Supports x64 and x86 Processors (choose the appropriate installer package)
Preparing to Use the SharePoint List Source and Destination
To prepare to use the SharePoint List source and destination:
1. Download the appropriate installer package from the Codeplex site: Microsoft SQL Server
Community Samples: Integration Services - Release: SharePoint List Source and Destination.
2. Run the installer package. Select Complete Install to have the installer install connectors for every
version of SSIS currently on the target machine.
Figure 1. Pages of the Setup utility.
3. Add the source and destination to the Toolbox:
a. Open Business Intelligence Development Studio or Visual Studio.
b. Create a new Integration Services project, or open an existing one.
Figure 2. Creating a new Integration Services project.
c. On the Tools menu, select Choose Toolbox Items.
Figure 3. The Choose Toolbox Items option on the Tools menu.
d. On the SSIS Data Flow Items tab of the Choose Toolbox Items dialog box, select the SharePoint List
Source and the SharePoint List Destination by checking the boxes. Then click OK.
Figure 4. The SSIS Data Flow Items tab of the Choose Toolbox Items dialog box
e. If you find that the source and destination have been added to the General list in the toolbox, drag
the source to the Data Flow Sources list, and drag the destination to the Data Flow Destinations list.
Figure 5. Moving the source and destination to the appropriate categories in the Toolbox.
Prepare your SharePoint list for testing.
Create List and Data:
Name: Test SharePoint List
Columns:
• SomeOtherColumn (Type = Single Line of Text, 255 Chars)
• Number Data (Type = Number)
• Date Data (Type = Date & Time, Format = Date & Time)
• YesNo Data (Type = Yes/No)
• Choice Data (Type = Choice, Options: First, Second, Third, Default=First)
Figure 6.1. A sample SharePoint list.
Create a Standard View:
Name: Test View
Columns: All from standard view, remove the Number Data and YesNo Data columns.
Filter: Show items when YesNo Data column is equal to Yes
Figure 6.2. A sample SharePoint view showing the data.
Extracting Data from SharePoint by Using the SharePoint List Source
Add the SharePoint Connection
The SharePoint adapters use a Connection Manager to allow SharePoint lists to be accessed in
different ways. By default, the credentials of the process that runs the SSIS Package will be used.
Using Custom credentials can be set for the development environment by updating the editor shown
below
NOTE: SSIS will NOT save the password for use outside of the designer. Read the following article for
some methods to securely store the password for executing your package:
http://support.microsoft.com/kb/918760
Figure 7.1. Sample showing the right-click menu from the SSIS Connection Manager
Figure 7.2. Sample showing the list of Connections
Figure 7.3. Sample showing the Connection Manager Editor
Figure 7.4. Sample showing the newly added SharePoint credential.
Add Components to SSIS Data Flow
Here is the visual representation of the SharePoint List source after you add it to the data flow of an
Integration Services package.
Figure 8. The SharePoint List source in the data flow.
Setting the Properties of the SharePoint List Source
You can configure the following custom properties of the SharePoint List source in the Advanced
Editor.
Figure 9.1. Select the Connection Manager created in previous step.
Figure 9.2. The custom properties of the SharePoint List source displayed in the Advanced Editor.
BatchSize
The SharePoint List source retrieves items from SharePoint in batches.Try 1,000 items at a time as a
starting point – this should work well with a typical 15-column SharePoint list. You can vary this
number based on the number of columns that you want to retrieve and the width of the columns.
If you only request a few small columns, then you can increase this number for better performance.If
you request a lot of columns, or wide columns, then you may need to reduce the batch size.
Determining the best batch size may require some trial and error. Keep in mind that SharePoint builds
and sends its response in XML format. If the XML response is too large, an exception with an
uninformative message will be raised.
If you have problems with the batch size, set the batch size to match the paging size used for the
SharePoint list view before you try a larger number. If your results include text fields of widely varying
lengths, decide whether it’s necessary to include those columns.
CamlQuery
You can use a CAML query to filter the data returned by the server. You can create a dynamic CAML
query by using an Integration Services expression to set this property. This can be key to making truly
incremental loading packages by loading only items created after a particular date/time, for example.
IncludeFolders
By default, folders that are found in a list are not returned. However, you can change this setting.
IsRecursive
By default, only the list items at the top level are returned. If the list contains folders that contain other
items, you can change this setting to load both the items in the top-level folder, and the items in all
child folders.
SharePointCulture
Used to format the dates and numeric values when SharePoint is installed using an international
culture.
SiteListName
The name of the SharePoint list, as seen on the SharePoint page.
SiteListViewName
The name of the SharePoint list view from which you want to retrieve data. You can use a list view to
pre-filter rows and eliminate the need to add dynamic CAML queries to your package. This does NOT
affect columns, only data.
If you do not specify a list view name, then the default list view is used. The default list view is the one
that appears first in the View dropdown list, which may not show all of the items in the list. Leaving
this option blank is the same as entering the default list view, which is typically All Items if the default
has not been changed.
Figure 9.3. Selecting the Test View in a SharePoint list.
SiteURL
The URL for the primary site on which the list is found. Do not include any other subfolders or list
paths, or the location of an .asmx file.
Selecting Columns
Selecting Columns by Using the Column Mappings Page
After you configure the custom properties for the SharePoint List source, go to the Column Mappings
page of the Advanced Editor to select the columns from the list that you want to include in the data
flow. To improve the performance of the extraction from SharePoint, select Ignore for any columns
that you don’t need in your data flow.
Selecting Columns by Using the Input and Output Properties Page
When you remove columns by using the Column Mappings page, the columns contain no data, but
they still consume space in the buffers of data that pass through the data flow. To remove unwanted
columns completely and optimize the use of memory for buffers, remove the columns from the Output
Columns list on the Input and Output Propertiespage.
When a list is initially synched, SharePoint may have the column multiple times (note “Title” is found
three times below for the Link Titles). Remove any extraneous fields.
New columns can be added by clicking ‘Refresh’. Any removed or modifications to existing columns
should remain even if refreshed.
Figure 10. The list of columns on the Column Mappings page of the Advanced Editor and Input and
Output Properties Tab.
Writing Data to SharePoint by Using the SharePoint List Destination
Here is the visual representation of the SharePoint List destination after you add it to the data flow of
an Integration Services package.
Drop a SharePoint List Destination component from the toolbox onto the Dataflow. Connect a line
from the Source to the Destination control before entering properties.
Figure 11. The SharePoint List destination in the data flow.
Setting the Properties of the SharePoint List Destination
You can configure the following custom properties of the SharePoint List destination in the Advanced
Editor.
If using the same connection manager, select it as with the Source Component.
Figure 12.1. The custom properties of the SharePoint List destination displayed in the Advanced Editor.
BatchSize
Since updates or deletes add to the size of the XML message, you have to use a smaller batch size for
updates and deletes than for retrieving list items. Try 200 updates at a time as a starting point, and
adjust this value as necessary.
BatchType
The SharePoint List destination can create, update or delete rows of data.
• Create a Row (Modification Batch Type). A row is created on the server when you select this
batch typeand do not specify an ID value (NULL) for a given row of data. Any columns that are
not included receive the default values/empty on the server.
• Update a Row (Modification Batch Type). A row is updated on the server when you select this
batch typeand specify the SharePoint ID of an existing row. Only the columns contained in the
data flow are modified. If you specify this batch type, but the data flow does not contain any
updated rows, an error is raised.
• Delete a Row (Deletion Batch Type). A row is deleted on the server when you select this batch
typeand specify the SharePoint ID of an existing row. If you specify this batch type, but the
data flow does not contain any deleted rows, an error is raised.
SharePointCulture
Used to format the dates and numeric values when SharePoint is installed using an international
culture.
SiteListName
This property behaves the same as the property of the same name for the SharePoint List source.
SiteListViewName
This property behaves the same as the property of the same name for the SharePoint List source. If a
row being modified or deleted is present in the view, then the action will not occur and will cause the
dataflow to raise an error.
SiteURL
This property behaves the same as the property of the same name for the SharePoint List source.
Selecting Input Columns
After you configure the custom properties for the SharePoint List destination, go to the
InputColumnspage of the Advanced Editor to select the columns from the data flow that you want to
load into SharePoint. Any columns that exist on the server but not in the data flow will be ignored
during the loading of data.
You may need to click “Refresh” at the bottom of this tab to load in the target columns.
Only Editable columns will be available from SharePoint for mapping.
Figure 12.2. Showing before and after clicking “Refresh” button to load in the column mappings.
Working with SharePoint Data in the Data Flow
Looking Up Values in a SharePoint List
If you have to look up a value in a SharePoint list, you can use the Lookup transformation in your data
flow, and use the SharePoint List source to load the lookup table. You may have to add a Derived
Column transformation or a Script component that splits data in the lookup column on the ";#"
delimiter to separate the ID value from the description.
If you are replacing values in your data with the values that you look up in the list, then loading the
changed data back into SharePoint, you only have to include the ID from the lookup column.
SharePoint ignores the description if you include it.
Understanding the Data Types of Columns
The data types of columns that are loaded by the SharePoint List source are derived from columns in
the SharePoint list.
SharePoint supplies NULL values when data has not been entered and a column does not have a
default value. When a new column is added to a list, all existing rows contain NULL in that column by
default. The logic of your package has to recognize the possibility of NULL values.
Previewing Data
You can easily preview the data in your data flow by adding a Data Viewer.
Figure 13. Configuring a Data Viewer to preview data.
To preview data by adding a Data Viewer to the data flow:
1. Double-click on the path (that is, the connecting arrow) between the two components at the point in
the data flow where you want to view the data.
2. In the Data Flow Path Editor, select Data Viewers, then click Add.
3. In the Configure Data Viewer dialog box, select Grid, then click OK to close the dialog box. Click OK
again to close the Data Flow Path Editor.
When you run the package, you will see a grid that shows the current state of the data as it flows from
the source to the destination. This can help you to ensure that you have correctly configured the
properties of the components and the logic of the package.
Setting Properties by Using SSIS Expressions during Runtime
You can set many of the custom properties of the SharePoint List source and destination by using
Integration Services expressions. Keep in mind that, in the data flow, you have to create these
expressions on the containing Data Flow task, and not on the individual data flow component.
Figure 14. Using expressions to set the properties of the SharePoint List source and destination.
You can use expressions to set the following properties of the SharePoint List source:
• SharePointCulture
• SiteUrl
• SiteListName
• SiteListViewName
• CamlQuery
You can use expressions to set the following properties of the SharePoint List destination:
• SharePointCulture
• SiteUrl
• SiteListName
• SiteListViewName
There are several ways to set an expression that offer considerable flexibility to the package developer:
• You can use a package variable to set an expression. The expression can take its value from a
package variable, which might also contain an expression. This expression can construct CAML
dynamically, or contain the results of a query sent to the SharePoint site by an Execute SQL
task.
• You can use a package configuration to set an expression. Configurations simplify deployment
by extracting values that you may want to change from the package into a separate file or
storage location.
Using SharePointUtility.dll Outside of Integration Services
The SharePoint List source and destination install and use an assembly (SharePointUtility.dll) of utility
functions which can also be used outside of Integration Services for accessing SharePoint Lists.
Figure 15. The methods of the ListServiceUtility class in the SharePointUtility.dll assembly.
Code for the below is stored in the Test Project, available on Codeplex. For the below samples, the
following constants are shared. Every Method can take a Credential to use for connections as an
override. By default, the current credentials are used.
''' <summary>
''' Folder where files will be loaded from for testing
''' </summary>
''' <remarks></remarks>
Private testLocalFolderWithFiles As String = "C:sourceCode"
''' <summary>
''' SharePoint list which has at least one element used for testing
''' </summary>
''' <remarks></remarks>
Private testSitePath As String = "http://TESTSERVER"
Private testSiteListName As String = "Some Crazy List"
Private testSiteListViewName As String = "Other View"
Private testSiteDocumentLibraryName As String = "Documents"
Private testSiteListSurveyName As String = "Test Survey"
CreateFolders
The unique data this takes is a list of folder names to create.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath + "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteListName
Dim folderList As String() = {"test2", "teast"}
Dim actual As XElement
actual = ListServiceUtility.CreateFolders(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, folde
rList)
Assert.IsTrue(actual.Elements.Count <> 0, "# of items from sharepoint should not be empty.")
If ((From item In actual...<action> Where item.Value = "Failure").Count() = 0) Then
Assert.Fail("Did not receive an expected error updating the id on sharepoint.")
End If
DeleteListItems
This method takes a list of IDs to remove. Other methods can be chained to get specific IDs.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath + "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteListName
Dim fields = From f In ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing) _
Where f.IsHidden = False _
Select f.Name
Dim dataForDelete = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing,
fields, <Query/>, False, 50)
Dim deleteIds = New List(Of String)
deleteIds.Add(dataForDelete(dataForDelete.Count - 1)("ID"))
ListServiceUtility.DeleteListItems(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, deleteIds)
GetFields
This method returns all of the columns from the SharePoint list into a dictionary using a Column object.
The Choices are also returned for the fields which have a domain of multiple possible entries.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteListName
Dim listName As String = TEST_LIST_NAME
Dim actual As List(Of ColumnData)
actual = ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, listName, Nothing)
Assert.IsTrue(actual.Count <> 0, "# of items from sharepoint should not be empty.")
If ((From fld In actual Where fld.Name = "Id").Count() = 1) Then
Assert.Fail("ID Field Column has not been found.")
End If
Dim column = (From a In actual Where a.Name = "ID").Single()
Assert.AreEqual(column.IsHidden, False)
Assert.AreEqual(column.IsReadOnly, True)
Assert.AreEqual(column.MaxLength, 25)
GetListItemData
This gets the data for the SharePoint list. This returns data into a list of dictionaries (Key/Value). Note
that the CAML code and fields are passed in, this allows the server to filter out fields not needed or
perform server side filtering to reduce the query time.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteListName
Dim listName As String = TEST_LIST_NAME
Dim fieldNames As IEnumerable(Of String) = New List(Of String)(New String() {"Id"})
Dim isRecursive As Boolean = False
Dim pagingSize As Short = 50
Dim actual As IEnumerable(Of Dictionary(Of String, String))
actual = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, listName, Nothing, fieldName
s, <Query/>, isRecursive, pagingSize)
Assert.IsTrue(actual.Count <> 0, "# of items from sharepoint should not be empty.")
If (actual(0).ContainsKey("Id")) Then
Assert.Fail("ID Field Column has not been found.")
End If
RemoveFiles
This method can be used to remove files from Document Libraries. The file name list can be any
enumerable List or string Array.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteDocumentLibraryName
' First we need to upload the files
UploadFilesTest()
' Now remove them.
Dim fullPathList = New List(Of String)(System.IO.Directory.GetFiles(testLocalFolderWithFiles))
Dim fileNameList = From f In fullPathList _
Select System.IO.Path.GetFileName(f)
Dim removeResults = ListServiceUtility.RemoveFiles(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothi
ng, fileNameList.ToArray())
If ((From item In removeResults...<action> Where item.Value = "Failure").Count() > 0) Then
Assert.Fail("Updating the title on sharepoint failed.")
End If
Assert.IsTrue(removeResults.Elements.Count <> 0, "# of items from sharepoint should not be empty.
")
UpdateListItems
Lists can be updated, however the key (ID) must be a field in the dictionary of values. If that is present,
then SharePoint will update. If the value does NOT match a target row of SharePoint, then it will error.
If the field is not present or null, then the row will automatically be added by SharePoint.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteListName
Dim fields = From f In ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing) _
Where f.IsHidden = False _
Select f.Name
Dim data = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, fields, <
Query/>, False, 50)
data(0)("Title") = "Updated title: " + New Random().Next().ToString()
Dim updateOutput = ListServiceUtility.UpdateListItems(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, d
ata, 2)
If ((From item In updateOutput...<action> Where item.Value = "Failure").Count() > 0) Then
Assert.Fail("Updating the title on SharePoint failed.")
End If
Assert.IsTrue(updateOutput.Elements.Count <> 0, "# of items from sharepoint should not be empty.")
UploadFiles
Files can be easily added to document libraries using this method and a list of locally accessible files.
Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx")
Dim TEST_LIST_NAME As String = testSiteDocumentLibraryName
Dim fullPathList = New List(Of String)(System.IO.Directory.GetFiles(testLocalFolderWithFiles))
Dim uploadResults = ListServiceUtility.UploadFiles(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, fullPathList)
If ((From result In uploadResults Where result.Value = False).Count() > 0) Then
Assert.Fail("Uploads to SharePoint had a failure.")
End If
Assert.IsTrue(uploadResults.Count <> 0, "# of items from SharePoint should not be empty.")
The ListServiceUtility class in the SharePointUtility.dll assembly has the following features:
• Although the methods of the ListServiceUtility class require parameter values, the parameters
do not use GUID values and do not expose SharePoint XML.
• When you request list data, the methods of the class return rows with a dictionary for the
columns and values. When you update rows, you have to provide a list of dictionaries in return,
where the names in the dictionary are column names.
• When you work with the methods of the ListServiceUtility class, you never see the ows_
prefix, and spaces are converted from their XML representation (_x0020_) to a space
character.
• Files can be uploaded and removed easily. The methods also support SharePoint on a port
other than port 80. (Older versions of Windows only support port 80 for WebDAV).
• XML results are reformatted for update operations. If an error occurs during the update, a
different XML structure that contains a description is returned, as in the following examples:
Normal result of an update
<result ID=”1” >
<action>Success</action>
<row [attributes are columns, and their values]></row>
</result>
Result of an update after an error
<result ID=”1” >
<action>Failure</action>
<errorCode>0x81020015</errorCode>
<errorDescription>The changes requested conflict with those made by another
client.</errorDescription>
<row [attributes are columns, and their values]></row>
</result>
Conclusion
The SharePoint List Source and Destination Sample makes it easy to get data out of or into a
SharePoint list from an Integration Services package. The sample also includes a utility library that
simplifies working with SharePoint lists outside of Integration Services.
If you have feedback or questions about these components, please visit the Codeplex site
athttp://www.codeplex.com/SQLSrvIntegrationSrv.

Más contenido relacionado

La actualidad más candente

Integrating SharePoint with Exchange-2013
Integrating SharePoint with Exchange-2013Integrating SharePoint with Exchange-2013
Integrating SharePoint with Exchange-2013Randy Williams
 
SSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSalim M Bhonhariya
 
Configure Intranet and Team Sites with SharePoint Server 2013
Configure Intranet and Team Sites with SharePoint Server 2013Configure Intranet and Team Sites with SharePoint Server 2013
Configure Intranet and Team Sites with SharePoint Server 2013Vinh Nguyen
 
SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010Michael Noel
 
Share point 2013 installation step by step
Share point 2013 installation step by stepShare point 2013 installation step by step
Share point 2013 installation step by stepprasslides
 
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...mahdi ahmadi
 
SQL SERVER 2008 R2 CTP
SQL SERVER 2008 R2 CTPSQL SERVER 2008 R2 CTP
SQL SERVER 2008 R2 CTPGovind S Yadav
 
Introducing Microsoft SQL Server 2012
Introducing Microsoft SQL Server 2012Introducing Microsoft SQL Server 2012
Introducing Microsoft SQL Server 2012Intergen
 
Eugene Rosenfeld: SharePoint Custom Field Types
Eugene Rosenfeld: SharePoint Custom Field TypesEugene Rosenfeld: SharePoint Custom Field Types
Eugene Rosenfeld: SharePoint Custom Field TypesSharePoint Saturday NY
 
Sql server 2008 r2 performance and scale
Sql server 2008 r2 performance and scaleSql server 2008 r2 performance and scale
Sql server 2008 r2 performance and scaleKlaudiia Jacome
 
Athena java dev guide
Athena java dev guideAthena java dev guide
Athena java dev guidedvdung
 
NZSPC 2013 - Upgrading to SharePoint 2013
NZSPC 2013 - Upgrading to SharePoint 2013NZSPC 2013 - Upgrading to SharePoint 2013
NZSPC 2013 - Upgrading to SharePoint 2013Michael Noel
 
( 5 ) Office 2007 Create A Business Data Catolog
( 5 ) Office 2007   Create A Business Data Catolog( 5 ) Office 2007   Create A Business Data Catolog
( 5 ) Office 2007 Create A Business Data CatologLiquidHub
 
Whats New Sql Server 2008 R2 Cw
Whats New Sql Server 2008 R2 CwWhats New Sql Server 2008 R2 Cw
Whats New Sql Server 2008 R2 CwEduardo Castro
 
Rational Publishing Engine and Rational System Architect
Rational Publishing Engine and Rational System ArchitectRational Publishing Engine and Rational System Architect
Rational Publishing Engine and Rational System ArchitectGEBS Reporting
 
SQL Server Reporting Services 2008
SQL Server Reporting Services 2008SQL Server Reporting Services 2008
SQL Server Reporting Services 2008VishalJharwade
 

La actualidad más candente (20)

Integrating SharePoint with Exchange-2013
Integrating SharePoint with Exchange-2013Integrating SharePoint with Exchange-2013
Integrating SharePoint with Exchange-2013
 
SSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory Credentials
 
Olap
OlapOlap
Olap
 
Configure Intranet and Team Sites with SharePoint Server 2013
Configure Intranet and Team Sites with SharePoint Server 2013Configure Intranet and Team Sites with SharePoint Server 2013
Configure Intranet and Team Sites with SharePoint Server 2013
 
SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010
 
Share point 2013 installation step by step
Share point 2013 installation step by stepShare point 2013 installation step by step
Share point 2013 installation step by step
 
Sharepoint Online
Sharepoint OnlineSharepoint Online
Sharepoint Online
 
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...
Oracle restful api & data live charting by Oracle Apex - داشبورد آنلاین (داده...
 
SQL SERVER 2008 R2 CTP
SQL SERVER 2008 R2 CTPSQL SERVER 2008 R2 CTP
SQL SERVER 2008 R2 CTP
 
REPORT ON (1)
REPORT ON (1)REPORT ON (1)
REPORT ON (1)
 
Introducing Microsoft SQL Server 2012
Introducing Microsoft SQL Server 2012Introducing Microsoft SQL Server 2012
Introducing Microsoft SQL Server 2012
 
Eugene Rosenfeld: SharePoint Custom Field Types
Eugene Rosenfeld: SharePoint Custom Field TypesEugene Rosenfeld: SharePoint Custom Field Types
Eugene Rosenfeld: SharePoint Custom Field Types
 
Sql server 2008 r2 performance and scale
Sql server 2008 r2 performance and scaleSql server 2008 r2 performance and scale
Sql server 2008 r2 performance and scale
 
Athena java dev guide
Athena java dev guideAthena java dev guide
Athena java dev guide
 
Integrating SSRS with SharePoint
Integrating SSRS with SharePointIntegrating SSRS with SharePoint
Integrating SSRS with SharePoint
 
NZSPC 2013 - Upgrading to SharePoint 2013
NZSPC 2013 - Upgrading to SharePoint 2013NZSPC 2013 - Upgrading to SharePoint 2013
NZSPC 2013 - Upgrading to SharePoint 2013
 
( 5 ) Office 2007 Create A Business Data Catolog
( 5 ) Office 2007   Create A Business Data Catolog( 5 ) Office 2007   Create A Business Data Catolog
( 5 ) Office 2007 Create A Business Data Catolog
 
Whats New Sql Server 2008 R2 Cw
Whats New Sql Server 2008 R2 CwWhats New Sql Server 2008 R2 Cw
Whats New Sql Server 2008 R2 Cw
 
Rational Publishing Engine and Rational System Architect
Rational Publishing Engine and Rational System ArchitectRational Publishing Engine and Rational System Architect
Rational Publishing Engine and Rational System Architect
 
SQL Server Reporting Services 2008
SQL Server Reporting Services 2008SQL Server Reporting Services 2008
SQL Server Reporting Services 2008
 

Destacado

Integration Services Presentation V2
Integration Services Presentation V2Integration Services Presentation V2
Integration Services Presentation V2Catherine Eibner
 
SQL Server 2008 R2 - Developing Rich Reporting Solutions Presentation
SQL Server 2008 R2 - Developing Rich Reporting Solutions PresentationSQL Server 2008 R2 - Developing Rich Reporting Solutions Presentation
SQL Server 2008 R2 - Developing Rich Reporting Solutions PresentationMicrosoft Private Cloud
 
SQL Server Integration Services Tips & Tricks
SQL Server Integration Services Tips & TricksSQL Server Integration Services Tips & Tricks
SQL Server Integration Services Tips & TricksGuillermo Caicedo
 
Agnes's SSIS Project Documentation
Agnes's SSIS Project DocumentationAgnes's SSIS Project Documentation
Agnes's SSIS Project Documentationagnestetter
 
Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2Eduardo Castro
 
SQL Server Integration Services
SQL Server Integration ServicesSQL Server Integration Services
SQL Server Integration ServicesRobert MacLean
 
Introduction to Microsoft SQL Server 2008 R2 Integration Services
Introduction to Microsoft SQL Server 2008 R2 Integration ServicesIntroduction to Microsoft SQL Server 2008 R2 Integration Services
Introduction to Microsoft SQL Server 2008 R2 Integration ServicesQuang Nguyễn Bá
 

Destacado (9)

Integration Services Presentation V2
Integration Services Presentation V2Integration Services Presentation V2
Integration Services Presentation V2
 
SQL Server 2008 R2 - Developing Rich Reporting Solutions Presentation
SQL Server 2008 R2 - Developing Rich Reporting Solutions PresentationSQL Server 2008 R2 - Developing Rich Reporting Solutions Presentation
SQL Server 2008 R2 - Developing Rich Reporting Solutions Presentation
 
SQL Server Integration Services Tips & Tricks
SQL Server Integration Services Tips & TricksSQL Server Integration Services Tips & Tricks
SQL Server Integration Services Tips & Tricks
 
Agnes's SSIS Project Documentation
Agnes's SSIS Project DocumentationAgnes's SSIS Project Documentation
Agnes's SSIS Project Documentation
 
Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2Introduction to microsoft sql server 2008 r2
Introduction to microsoft sql server 2008 r2
 
SQL Server Integration Services
SQL Server Integration ServicesSQL Server Integration Services
SQL Server Integration Services
 
Ssis 2008
Ssis 2008Ssis 2008
Ssis 2008
 
Introduction to Microsoft SQL Server 2008 R2 Integration Services
Introduction to Microsoft SQL Server 2008 R2 Integration ServicesIntroduction to Microsoft SQL Server 2008 R2 Integration Services
Introduction to Microsoft SQL Server 2008 R2 Integration Services
 
What's new in SQL Server Integration Services 2012?
What's new in SQL Server Integration Services 2012?What's new in SQL Server Integration Services 2012?
What's new in SQL Server Integration Services 2012?
 

Similar a Elsd sql server_integration_services

Share point ssis adapters 2011
Share point ssis adapters 2011Share point ssis adapters 2011
Share point ssis adapters 2011Krishna Na
 
SharePoint: SAP Integration & Synchronization via NetWeaver & OData
SharePoint: SAP Integration & Synchronization via NetWeaver & ODataSharePoint: SAP Integration & Synchronization via NetWeaver & OData
SharePoint: SAP Integration & Synchronization via NetWeaver & ODataLayer2
 
SSRS 2008 R2
SSRS 2008 R2SSRS 2008 R2
SSRS 2008 R2tomerl
 
bi-publisher.pptx
bi-publisher.pptxbi-publisher.pptx
bi-publisher.pptxkjkombrink
 
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...Ivan Sanders
 
Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluIvan Sanders
 
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndPractical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndIvan Sanders
 
SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewRob Windsor
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015Ryan Schouten
 
Oracle application express
Oracle application expressOracle application express
Oracle application expressAbhinaw Kumar
 
Share point answer the question
Share point answer the questionShare point answer the question
Share point answer the questionthan sare
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express pptAbhinaw Kumar
 
BI Publisher Data model design document
BI Publisher Data model design documentBI Publisher Data model design document
BI Publisher Data model design documentadivasoft
 
BI Publisher 11g : Data Model Design document
BI Publisher 11g : Data Model Design documentBI Publisher 11g : Data Model Design document
BI Publisher 11g : Data Model Design documentadivasoft
 
Agile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingAgile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingDanielson Samuel
 
Advanced SharePoint Server Concepts
Advanced SharePoint Server ConceptsAdvanced SharePoint Server Concepts
Advanced SharePoint Server ConceptsLearning SharePoint
 
SharePoint Intelligence Introduction To Share Point Designer Workflows
SharePoint Intelligence Introduction To Share Point Designer WorkflowsSharePoint Intelligence Introduction To Share Point Designer Workflows
SharePoint Intelligence Introduction To Share Point Designer WorkflowsIvan Sanders
 
Basics of SharePoint
Basics of SharePointBasics of SharePoint
Basics of SharePointsamirsangli
 
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...Chirag Patel
 

Similar a Elsd sql server_integration_services (20)

Share point ssis adapters 2011
Share point ssis adapters 2011Share point ssis adapters 2011
Share point ssis adapters 2011
 
SharePoint: SAP Integration & Synchronization via NetWeaver & OData
SharePoint: SAP Integration & Synchronization via NetWeaver & ODataSharePoint: SAP Integration & Synchronization via NetWeaver & OData
SharePoint: SAP Integration & Synchronization via NetWeaver & OData
 
SSRS 2008 R2
SSRS 2008 R2SSRS 2008 R2
SSRS 2008 R2
 
bi-publisher.pptx
bi-publisher.pptxbi-publisher.pptx
bi-publisher.pptx
 
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...
SharePoint Saturday Los Angeles 2011 SharePoint 2010 as The Business Intellig...
 
Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - Honolulu
 
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki FinalndPractical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
Practical Business Intelligence in SharePoint 2013 - Helsinki Finalnd
 
SharePoint 2010 Application Development Overview
SharePoint 2010 Application Development OverviewSharePoint 2010 Application Development Overview
SharePoint 2010 Application Development Overview
 
Share point 2010 overview
Share point 2010 overviewShare point 2010 overview
Share point 2010 overview
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015
 
Oracle application express
Oracle application expressOracle application express
Oracle application express
 
Share point answer the question
Share point answer the questionShare point answer the question
Share point answer the question
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
 
BI Publisher Data model design document
BI Publisher Data model design documentBI Publisher Data model design document
BI Publisher Data model design document
 
BI Publisher 11g : Data Model Design document
BI Publisher 11g : Data Model Design documentBI Publisher 11g : Data Model Design document
BI Publisher 11g : Data Model Design document
 
Agile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingAgile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS Reporting
 
Advanced SharePoint Server Concepts
Advanced SharePoint Server ConceptsAdvanced SharePoint Server Concepts
Advanced SharePoint Server Concepts
 
SharePoint Intelligence Introduction To Share Point Designer Workflows
SharePoint Intelligence Introduction To Share Point Designer WorkflowsSharePoint Intelligence Introduction To Share Point Designer Workflows
SharePoint Intelligence Introduction To Share Point Designer Workflows
 
Basics of SharePoint
Basics of SharePointBasics of SharePoint
Basics of SharePoint
 
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...
SharePoint Saturday Madrid 2016 - SharePoint Upgrade or Migration, or is it b...
 

Más de Steve Xu

Windows azure sql_database_tutorials
Windows azure sql_database_tutorialsWindows azure sql_database_tutorials
Windows azure sql_database_tutorialsSteve Xu
 
Uwams cloud enable-windows_store_apps_java_script
Uwams cloud enable-windows_store_apps_java_scriptUwams cloud enable-windows_store_apps_java_script
Uwams cloud enable-windows_store_apps_java_scriptSteve Xu
 
Transact sql data definition language - ddl- reference
Transact sql data definition language - ddl- referenceTransact sql data definition language - ddl- reference
Transact sql data definition language - ddl- referenceSteve Xu
 
The entity framework 4.0 and asp.net web forms getting started
The entity framework 4.0 and asp.net web forms   getting startedThe entity framework 4.0 and asp.net web forms   getting started
The entity framework 4.0 and asp.net web forms getting startedSteve Xu
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Steve Xu
 
Tcpip fund
Tcpip fundTcpip fund
Tcpip fundSteve Xu
 
Sql server community_fa_qs_manual
Sql server community_fa_qs_manualSql server community_fa_qs_manual
Sql server community_fa_qs_manualSteve Xu
 
Sql server distributed replay
Sql server distributed replaySql server distributed replay
Sql server distributed replaySteve Xu
 
Sql server 2012 tutorials writing transact-sql statements
Sql server 2012 tutorials   writing transact-sql statementsSql server 2012 tutorials   writing transact-sql statements
Sql server 2012 tutorials writing transact-sql statementsSteve Xu
 
Sql server 2012 tutorials reporting services
Sql server 2012 tutorials   reporting servicesSql server 2012 tutorials   reporting services
Sql server 2012 tutorials reporting servicesSteve Xu
 
Share point server for business intelligence
Share point server for business intelligenceShare point server for business intelligence
Share point server for business intelligenceSteve Xu
 
Prism for windows runtime
Prism for windows runtimePrism for windows runtime
Prism for windows runtimeSteve Xu
 
Pdrmsqlsr services share_point_integrated_mode
Pdrmsqlsr services share_point_integrated_modePdrmsqlsr services share_point_integrated_mode
Pdrmsqlsr services share_point_integrated_modeSteve Xu
 
Multidimensional model programming
Multidimensional model programmingMultidimensional model programming
Multidimensional model programmingSteve Xu
 
Multidimensional expressions mdx - reference
Multidimensional expressions   mdx - referenceMultidimensional expressions   mdx - reference
Multidimensional expressions mdx - referenceSteve Xu
 
Moving apps to the cloud 3rd edition
Moving apps to the cloud 3rd editionMoving apps to the cloud 3rd edition
Moving apps to the cloud 3rd editionSteve Xu
 
Monitor and tune for performance
Monitor and tune for performanceMonitor and tune for performance
Monitor and tune for performanceSteve Xu
 
Migrating data centric applications to windows azure
Migrating data centric applications to windows azureMigrating data centric applications to windows azure
Migrating data centric applications to windows azureSteve Xu
 
Microsoft project silk
Microsoft project silkMicrosoft project silk
Microsoft project silkSteve Xu
 
Microsoft office 365 for professionals and small businesses help and how to
Microsoft office 365 for professionals and small businesses   help and how toMicrosoft office 365 for professionals and small businesses   help and how to
Microsoft office 365 for professionals and small businesses help and how toSteve Xu
 

Más de Steve Xu (20)

Windows azure sql_database_tutorials
Windows azure sql_database_tutorialsWindows azure sql_database_tutorials
Windows azure sql_database_tutorials
 
Uwams cloud enable-windows_store_apps_java_script
Uwams cloud enable-windows_store_apps_java_scriptUwams cloud enable-windows_store_apps_java_script
Uwams cloud enable-windows_store_apps_java_script
 
Transact sql data definition language - ddl- reference
Transact sql data definition language - ddl- referenceTransact sql data definition language - ddl- reference
Transact sql data definition language - ddl- reference
 
The entity framework 4.0 and asp.net web forms getting started
The entity framework 4.0 and asp.net web forms   getting startedThe entity framework 4.0 and asp.net web forms   getting started
The entity framework 4.0 and asp.net web forms getting started
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012
 
Tcpip fund
Tcpip fundTcpip fund
Tcpip fund
 
Sql server community_fa_qs_manual
Sql server community_fa_qs_manualSql server community_fa_qs_manual
Sql server community_fa_qs_manual
 
Sql server distributed replay
Sql server distributed replaySql server distributed replay
Sql server distributed replay
 
Sql server 2012 tutorials writing transact-sql statements
Sql server 2012 tutorials   writing transact-sql statementsSql server 2012 tutorials   writing transact-sql statements
Sql server 2012 tutorials writing transact-sql statements
 
Sql server 2012 tutorials reporting services
Sql server 2012 tutorials   reporting servicesSql server 2012 tutorials   reporting services
Sql server 2012 tutorials reporting services
 
Share point server for business intelligence
Share point server for business intelligenceShare point server for business intelligence
Share point server for business intelligence
 
Prism for windows runtime
Prism for windows runtimePrism for windows runtime
Prism for windows runtime
 
Pdrmsqlsr services share_point_integrated_mode
Pdrmsqlsr services share_point_integrated_modePdrmsqlsr services share_point_integrated_mode
Pdrmsqlsr services share_point_integrated_mode
 
Multidimensional model programming
Multidimensional model programmingMultidimensional model programming
Multidimensional model programming
 
Multidimensional expressions mdx - reference
Multidimensional expressions   mdx - referenceMultidimensional expressions   mdx - reference
Multidimensional expressions mdx - reference
 
Moving apps to the cloud 3rd edition
Moving apps to the cloud 3rd editionMoving apps to the cloud 3rd edition
Moving apps to the cloud 3rd edition
 
Monitor and tune for performance
Monitor and tune for performanceMonitor and tune for performance
Monitor and tune for performance
 
Migrating data centric applications to windows azure
Migrating data centric applications to windows azureMigrating data centric applications to windows azure
Migrating data centric applications to windows azure
 
Microsoft project silk
Microsoft project silkMicrosoft project silk
Microsoft project silk
 
Microsoft office 365 for professionals and small businesses help and how to
Microsoft office 365 for professionals and small businesses   help and how toMicrosoft office 365 for professionals and small businesses   help and how to
Microsoft office 365 for professionals and small businesses help and how to
 

Último

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...PsychoTech Services
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 

Último (20)

INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 

Elsd sql server_integration_services

  • 1.
  • 2. Extracting and Loading SharePoint Data in SQL Server Integration Services Kevin Idzi Summary: The SharePoint List Source and Destination Sample available on Codeplex provides an optimized solution with an easy-to-use interface for getting data out of or into a SharePoint list. The sample also includes an API for accomplishing these tasks efficiently outside of SQL Server Integration Services. This article introduces the SharePoint List Source and Destination adapters, demonstrates their use in an SSIS package, and documents their features and options. Category:Quick Step-by-Step Applies to:SQL Server 2005, 2008, 2008 R2, and 2012 Source:White paper (link to source content) E-book publication date: November 2012
  • 3. Copyright © 2012 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property of their respective owners. The example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred. This book expresses the author’s views and opinions. The information contained in this book is provided without any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
  • 4. Contents Introduction..........................................................................................................................................4 Features of the SharePoint List Source and Destination.........................................................................4 Preparing to Use the SharePoint List Source and Destination.................................................................4 Prepare your SharePoint list for testing. ................................................................................................8 Extracting Data from SharePoint by Using the SharePoint List Source....................................................9 Writing Data to SharePoint by Using the SharePoint List Destination...................................................14 Working with SharePoint Data in the Data Flow ..................................................................................17 Setting Properties by Using SSIS Expressions during Runtime...............................................................19 Using SharePointUtility.dll Outside of Integration Services ..................................................................20 Conclusion...........................................................................................................................................24
  • 5. Introduction Integration Services package developers often ask about the best way to get data out of or into a SharePoint list. The SharePoint List Source and Destination Sample available on the Microsoft SQL Server Community Samples: Integration Services page on Codeplex provides an optimized solution with an easy-to-use interface. The sample also includes an API for accomplishing these tasks efficiently outside of Integration Services. There a few different ways to extract or load SharePoint data: • Use the SharePoint APIs to add or remove items one by one. • Use the SharePoint Batch API to generate XML and submit the XML. • Use the Lists Web service, which uses the same XML as the Batch API. Calling the Web service is a powerful way to transfer data to or from SharePoint, whether or not you have extensive rights in your SharePoint environment, because it does not alter the SharePoint server itself in any way.The Web service also uses the Batch XML structure, which provides better performance than the server APIs for extracting or loading data. Features of the SharePoint List Source and Destination The SharePoint List source and destination use public SharePoint Web services and have several features that enhance their performance and their ease of use: • Only the fields that you want are returned from SharePoint. • Large lists are not transferred all at once. They are paged in batches, with a configurable batch size. • Column type information from SharePoint is used for mapping to Integration Services data types • CAML queries can be added to the query to filter the rows to be returned. • Update and Delete operations from an Integration Services package are simple. • Important custom properties of the source and destination can be set by using Integration Services expressions. • Supports SQL Server 2005, 2008, 2008 R2, and later. • Supports x64 and x86 Processors (choose the appropriate installer package) Preparing to Use the SharePoint List Source and Destination To prepare to use the SharePoint List source and destination: 1. Download the appropriate installer package from the Codeplex site: Microsoft SQL Server Community Samples: Integration Services - Release: SharePoint List Source and Destination. 2. Run the installer package. Select Complete Install to have the installer install connectors for every version of SSIS currently on the target machine.
  • 6. Figure 1. Pages of the Setup utility. 3. Add the source and destination to the Toolbox: a. Open Business Intelligence Development Studio or Visual Studio. b. Create a new Integration Services project, or open an existing one.
  • 7. Figure 2. Creating a new Integration Services project. c. On the Tools menu, select Choose Toolbox Items. Figure 3. The Choose Toolbox Items option on the Tools menu. d. On the SSIS Data Flow Items tab of the Choose Toolbox Items dialog box, select the SharePoint List Source and the SharePoint List Destination by checking the boxes. Then click OK.
  • 8. Figure 4. The SSIS Data Flow Items tab of the Choose Toolbox Items dialog box e. If you find that the source and destination have been added to the General list in the toolbox, drag the source to the Data Flow Sources list, and drag the destination to the Data Flow Destinations list.
  • 9. Figure 5. Moving the source and destination to the appropriate categories in the Toolbox. Prepare your SharePoint list for testing. Create List and Data: Name: Test SharePoint List Columns: • SomeOtherColumn (Type = Single Line of Text, 255 Chars) • Number Data (Type = Number) • Date Data (Type = Date & Time, Format = Date & Time)
  • 10. • YesNo Data (Type = Yes/No) • Choice Data (Type = Choice, Options: First, Second, Third, Default=First) Figure 6.1. A sample SharePoint list. Create a Standard View: Name: Test View Columns: All from standard view, remove the Number Data and YesNo Data columns. Filter: Show items when YesNo Data column is equal to Yes Figure 6.2. A sample SharePoint view showing the data. Extracting Data from SharePoint by Using the SharePoint List Source Add the SharePoint Connection The SharePoint adapters use a Connection Manager to allow SharePoint lists to be accessed in different ways. By default, the credentials of the process that runs the SSIS Package will be used. Using Custom credentials can be set for the development environment by updating the editor shown below NOTE: SSIS will NOT save the password for use outside of the designer. Read the following article for some methods to securely store the password for executing your package: http://support.microsoft.com/kb/918760 Figure 7.1. Sample showing the right-click menu from the SSIS Connection Manager
  • 11. Figure 7.2. Sample showing the list of Connections Figure 7.3. Sample showing the Connection Manager Editor Figure 7.4. Sample showing the newly added SharePoint credential. Add Components to SSIS Data Flow Here is the visual representation of the SharePoint List source after you add it to the data flow of an Integration Services package. Figure 8. The SharePoint List source in the data flow. Setting the Properties of the SharePoint List Source You can configure the following custom properties of the SharePoint List source in the Advanced Editor.
  • 12. Figure 9.1. Select the Connection Manager created in previous step. Figure 9.2. The custom properties of the SharePoint List source displayed in the Advanced Editor. BatchSize The SharePoint List source retrieves items from SharePoint in batches.Try 1,000 items at a time as a starting point – this should work well with a typical 15-column SharePoint list. You can vary this number based on the number of columns that you want to retrieve and the width of the columns.
  • 13. If you only request a few small columns, then you can increase this number for better performance.If you request a lot of columns, or wide columns, then you may need to reduce the batch size. Determining the best batch size may require some trial and error. Keep in mind that SharePoint builds and sends its response in XML format. If the XML response is too large, an exception with an uninformative message will be raised. If you have problems with the batch size, set the batch size to match the paging size used for the SharePoint list view before you try a larger number. If your results include text fields of widely varying lengths, decide whether it’s necessary to include those columns. CamlQuery You can use a CAML query to filter the data returned by the server. You can create a dynamic CAML query by using an Integration Services expression to set this property. This can be key to making truly incremental loading packages by loading only items created after a particular date/time, for example. IncludeFolders By default, folders that are found in a list are not returned. However, you can change this setting. IsRecursive By default, only the list items at the top level are returned. If the list contains folders that contain other items, you can change this setting to load both the items in the top-level folder, and the items in all child folders. SharePointCulture Used to format the dates and numeric values when SharePoint is installed using an international culture. SiteListName The name of the SharePoint list, as seen on the SharePoint page. SiteListViewName The name of the SharePoint list view from which you want to retrieve data. You can use a list view to pre-filter rows and eliminate the need to add dynamic CAML queries to your package. This does NOT affect columns, only data. If you do not specify a list view name, then the default list view is used. The default list view is the one that appears first in the View dropdown list, which may not show all of the items in the list. Leaving this option blank is the same as entering the default list view, which is typically All Items if the default has not been changed.
  • 14. Figure 9.3. Selecting the Test View in a SharePoint list. SiteURL The URL for the primary site on which the list is found. Do not include any other subfolders or list paths, or the location of an .asmx file. Selecting Columns Selecting Columns by Using the Column Mappings Page After you configure the custom properties for the SharePoint List source, go to the Column Mappings page of the Advanced Editor to select the columns from the list that you want to include in the data flow. To improve the performance of the extraction from SharePoint, select Ignore for any columns that you don’t need in your data flow. Selecting Columns by Using the Input and Output Properties Page When you remove columns by using the Column Mappings page, the columns contain no data, but they still consume space in the buffers of data that pass through the data flow. To remove unwanted columns completely and optimize the use of memory for buffers, remove the columns from the Output Columns list on the Input and Output Propertiespage. When a list is initially synched, SharePoint may have the column multiple times (note “Title” is found three times below for the Link Titles). Remove any extraneous fields. New columns can be added by clicking ‘Refresh’. Any removed or modifications to existing columns should remain even if refreshed.
  • 15. Figure 10. The list of columns on the Column Mappings page of the Advanced Editor and Input and Output Properties Tab. Writing Data to SharePoint by Using the SharePoint List Destination Here is the visual representation of the SharePoint List destination after you add it to the data flow of an Integration Services package. Drop a SharePoint List Destination component from the toolbox onto the Dataflow. Connect a line from the Source to the Destination control before entering properties. Figure 11. The SharePoint List destination in the data flow. Setting the Properties of the SharePoint List Destination You can configure the following custom properties of the SharePoint List destination in the Advanced Editor. If using the same connection manager, select it as with the Source Component.
  • 16. Figure 12.1. The custom properties of the SharePoint List destination displayed in the Advanced Editor. BatchSize Since updates or deletes add to the size of the XML message, you have to use a smaller batch size for updates and deletes than for retrieving list items. Try 200 updates at a time as a starting point, and adjust this value as necessary. BatchType The SharePoint List destination can create, update or delete rows of data. • Create a Row (Modification Batch Type). A row is created on the server when you select this batch typeand do not specify an ID value (NULL) for a given row of data. Any columns that are not included receive the default values/empty on the server. • Update a Row (Modification Batch Type). A row is updated on the server when you select this batch typeand specify the SharePoint ID of an existing row. Only the columns contained in the data flow are modified. If you specify this batch type, but the data flow does not contain any updated rows, an error is raised. • Delete a Row (Deletion Batch Type). A row is deleted on the server when you select this batch typeand specify the SharePoint ID of an existing row. If you specify this batch type, but the data flow does not contain any deleted rows, an error is raised.
  • 17. SharePointCulture Used to format the dates and numeric values when SharePoint is installed using an international culture. SiteListName This property behaves the same as the property of the same name for the SharePoint List source. SiteListViewName This property behaves the same as the property of the same name for the SharePoint List source. If a row being modified or deleted is present in the view, then the action will not occur and will cause the dataflow to raise an error. SiteURL This property behaves the same as the property of the same name for the SharePoint List source. Selecting Input Columns After you configure the custom properties for the SharePoint List destination, go to the InputColumnspage of the Advanced Editor to select the columns from the data flow that you want to load into SharePoint. Any columns that exist on the server but not in the data flow will be ignored during the loading of data. You may need to click “Refresh” at the bottom of this tab to load in the target columns. Only Editable columns will be available from SharePoint for mapping. Figure 12.2. Showing before and after clicking “Refresh” button to load in the column mappings.
  • 18. Working with SharePoint Data in the Data Flow Looking Up Values in a SharePoint List If you have to look up a value in a SharePoint list, you can use the Lookup transformation in your data flow, and use the SharePoint List source to load the lookup table. You may have to add a Derived Column transformation or a Script component that splits data in the lookup column on the ";#" delimiter to separate the ID value from the description. If you are replacing values in your data with the values that you look up in the list, then loading the changed data back into SharePoint, you only have to include the ID from the lookup column. SharePoint ignores the description if you include it. Understanding the Data Types of Columns The data types of columns that are loaded by the SharePoint List source are derived from columns in the SharePoint list. SharePoint supplies NULL values when data has not been entered and a column does not have a default value. When a new column is added to a list, all existing rows contain NULL in that column by default. The logic of your package has to recognize the possibility of NULL values. Previewing Data You can easily preview the data in your data flow by adding a Data Viewer.
  • 19. Figure 13. Configuring a Data Viewer to preview data. To preview data by adding a Data Viewer to the data flow: 1. Double-click on the path (that is, the connecting arrow) between the two components at the point in the data flow where you want to view the data. 2. In the Data Flow Path Editor, select Data Viewers, then click Add. 3. In the Configure Data Viewer dialog box, select Grid, then click OK to close the dialog box. Click OK again to close the Data Flow Path Editor. When you run the package, you will see a grid that shows the current state of the data as it flows from the source to the destination. This can help you to ensure that you have correctly configured the properties of the components and the logic of the package.
  • 20. Setting Properties by Using SSIS Expressions during Runtime You can set many of the custom properties of the SharePoint List source and destination by using Integration Services expressions. Keep in mind that, in the data flow, you have to create these expressions on the containing Data Flow task, and not on the individual data flow component. Figure 14. Using expressions to set the properties of the SharePoint List source and destination. You can use expressions to set the following properties of the SharePoint List source: • SharePointCulture • SiteUrl • SiteListName • SiteListViewName • CamlQuery You can use expressions to set the following properties of the SharePoint List destination: • SharePointCulture • SiteUrl • SiteListName • SiteListViewName There are several ways to set an expression that offer considerable flexibility to the package developer: • You can use a package variable to set an expression. The expression can take its value from a package variable, which might also contain an expression. This expression can construct CAML dynamically, or contain the results of a query sent to the SharePoint site by an Execute SQL task. • You can use a package configuration to set an expression. Configurations simplify deployment by extracting values that you may want to change from the package into a separate file or storage location.
  • 21. Using SharePointUtility.dll Outside of Integration Services The SharePoint List source and destination install and use an assembly (SharePointUtility.dll) of utility functions which can also be used outside of Integration Services for accessing SharePoint Lists. Figure 15. The methods of the ListServiceUtility class in the SharePointUtility.dll assembly. Code for the below is stored in the Test Project, available on Codeplex. For the below samples, the following constants are shared. Every Method can take a Credential to use for connections as an override. By default, the current credentials are used. ''' <summary> ''' Folder where files will be loaded from for testing ''' </summary> ''' <remarks></remarks> Private testLocalFolderWithFiles As String = "C:sourceCode" ''' <summary> ''' SharePoint list which has at least one element used for testing ''' </summary> ''' <remarks></remarks> Private testSitePath As String = "http://TESTSERVER" Private testSiteListName As String = "Some Crazy List" Private testSiteListViewName As String = "Other View" Private testSiteDocumentLibraryName As String = "Documents" Private testSiteListSurveyName As String = "Test Survey" CreateFolders The unique data this takes is a list of folder names to create. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath + "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteListName Dim folderList As String() = {"test2", "teast"} Dim actual As XElement actual = ListServiceUtility.CreateFolders(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, folde rList) Assert.IsTrue(actual.Elements.Count <> 0, "# of items from sharepoint should not be empty.") If ((From item In actual...<action> Where item.Value = "Failure").Count() = 0) Then
  • 22. Assert.Fail("Did not receive an expected error updating the id on sharepoint.") End If DeleteListItems This method takes a list of IDs to remove. Other methods can be chained to get specific IDs. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath + "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteListName Dim fields = From f In ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing) _ Where f.IsHidden = False _ Select f.Name Dim dataForDelete = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, fields, <Query/>, False, 50) Dim deleteIds = New List(Of String) deleteIds.Add(dataForDelete(dataForDelete.Count - 1)("ID")) ListServiceUtility.DeleteListItems(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, deleteIds) GetFields This method returns all of the columns from the SharePoint list into a dictionary using a Column object. The Choices are also returned for the fields which have a domain of multiple possible entries. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteListName Dim listName As String = TEST_LIST_NAME Dim actual As List(Of ColumnData) actual = ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, listName, Nothing) Assert.IsTrue(actual.Count <> 0, "# of items from sharepoint should not be empty.") If ((From fld In actual Where fld.Name = "Id").Count() = 1) Then Assert.Fail("ID Field Column has not been found.") End If Dim column = (From a In actual Where a.Name = "ID").Single() Assert.AreEqual(column.IsHidden, False) Assert.AreEqual(column.IsReadOnly, True) Assert.AreEqual(column.MaxLength, 25)
  • 23. GetListItemData This gets the data for the SharePoint list. This returns data into a list of dictionaries (Key/Value). Note that the CAML code and fields are passed in, this allows the server to filter out fields not needed or perform server side filtering to reduce the query time. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteListName Dim listName As String = TEST_LIST_NAME Dim fieldNames As IEnumerable(Of String) = New List(Of String)(New String() {"Id"}) Dim isRecursive As Boolean = False Dim pagingSize As Short = 50 Dim actual As IEnumerable(Of Dictionary(Of String, String)) actual = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, listName, Nothing, fieldName s, <Query/>, isRecursive, pagingSize) Assert.IsTrue(actual.Count <> 0, "# of items from sharepoint should not be empty.") If (actual(0).ContainsKey("Id")) Then Assert.Fail("ID Field Column has not been found.") End If RemoveFiles This method can be used to remove files from Document Libraries. The file name list can be any enumerable List or string Array. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteDocumentLibraryName ' First we need to upload the files UploadFilesTest() ' Now remove them. Dim fullPathList = New List(Of String)(System.IO.Directory.GetFiles(testLocalFolderWithFiles)) Dim fileNameList = From f In fullPathList _ Select System.IO.Path.GetFileName(f) Dim removeResults = ListServiceUtility.RemoveFiles(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothi ng, fileNameList.ToArray()) If ((From item In removeResults...<action> Where item.Value = "Failure").Count() > 0) Then Assert.Fail("Updating the title on sharepoint failed.") End If Assert.IsTrue(removeResults.Elements.Count <> 0, "# of items from sharepoint should not be empty. ") UpdateListItems Lists can be updated, however the key (ID) must be a field in the dictionary of values. If that is present, then SharePoint will update. If the value does NOT match a target row of SharePoint, then it will error. If the field is not present or null, then the row will automatically be added by SharePoint. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteListName
  • 24. Dim fields = From f In ListServiceUtility.GetFields(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing) _ Where f.IsHidden = False _ Select f.Name Dim data = ListServiceUtility.GetListItemData(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, fields, < Query/>, False, 50) data(0)("Title") = "Updated title: " + New Random().Next().ToString() Dim updateOutput = ListServiceUtility.UpdateListItems(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, Nothing, d ata, 2) If ((From item In updateOutput...<action> Where item.Value = "Failure").Count() > 0) Then Assert.Fail("Updating the title on SharePoint failed.") End If Assert.IsTrue(updateOutput.Elements.Count <> 0, "# of items from sharepoint should not be empty.") UploadFiles Files can be easily added to document libraries using this method and a list of locally accessible files. Dim TEST_SHAREPOINTSITE_URL As Uri = New Uri(testSitePath & "/_vti_bin/lists.asmx") Dim TEST_LIST_NAME As String = testSiteDocumentLibraryName Dim fullPathList = New List(Of String)(System.IO.Directory.GetFiles(testLocalFolderWithFiles)) Dim uploadResults = ListServiceUtility.UploadFiles(TEST_SHAREPOINTSITE_URL, TEST_LIST_NAME, fullPathList) If ((From result In uploadResults Where result.Value = False).Count() > 0) Then Assert.Fail("Uploads to SharePoint had a failure.") End If Assert.IsTrue(uploadResults.Count <> 0, "# of items from SharePoint should not be empty.") The ListServiceUtility class in the SharePointUtility.dll assembly has the following features: • Although the methods of the ListServiceUtility class require parameter values, the parameters do not use GUID values and do not expose SharePoint XML. • When you request list data, the methods of the class return rows with a dictionary for the columns and values. When you update rows, you have to provide a list of dictionaries in return, where the names in the dictionary are column names. • When you work with the methods of the ListServiceUtility class, you never see the ows_ prefix, and spaces are converted from their XML representation (_x0020_) to a space character. • Files can be uploaded and removed easily. The methods also support SharePoint on a port other than port 80. (Older versions of Windows only support port 80 for WebDAV). • XML results are reformatted for update operations. If an error occurs during the update, a different XML structure that contains a description is returned, as in the following examples: Normal result of an update <result ID=”1” > <action>Success</action>
  • 25. <row [attributes are columns, and their values]></row> </result> Result of an update after an error <result ID=”1” > <action>Failure</action> <errorCode>0x81020015</errorCode> <errorDescription>The changes requested conflict with those made by another client.</errorDescription> <row [attributes are columns, and their values]></row> </result> Conclusion The SharePoint List Source and Destination Sample makes it easy to get data out of or into a SharePoint list from an Integration Services package. The sample also includes a utility library that simplifies working with SharePoint lists outside of Integration Services. If you have feedback or questions about these components, please visit the Codeplex site athttp://www.codeplex.com/SQLSrvIntegrationSrv.