Skip to content

Instantly share code, notes, and snippets.

@ishajain
Last active December 28, 2015 09:09
Show Gist options
  • Select an option

  • Save ishajain/7476790 to your computer and use it in GitHub Desktop.

Select an option

Save ishajain/7476790 to your computer and use it in GitHub Desktop.
function Connect-QueryStringFilterWP-To-BCSListWP($pageUrl,$fileName,$providerWP,$consumerArrayValue,$providerArrayValue,$consumerConnectionId)
{
$webPartGallery = $web.Lists["Web Part Gallery"]
$webpartmanager=$web.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
Write-Host "Searching Consumer webpart $fileName in web part gallery" -ForegroundColor Yellow
if($webPartGallery -eq $null)
{
Write-Host("Unable to retrieve Webpartgallery");
}
$webPartConsumer = $webpartmanager.WebParts | Where {$_.Title -eq $fileName}
Write-Host "Searching Consumer webpart $providerWP in web part gallery" -ForegroundColor Yellow
$webPartProvider = $webpartmanager.WebParts | Where {$_.Title -eq $providerWP}
$conWP = $webpartmanager.GetConsumerConnectionPoints($webPartConsumer)
$provWP = $webpartmanager.GetProviderConnectionPoints($webPartProvider)
$conWP=$conWP[$consumerConnectionId]
$provWP=$provWP["ITransformableFilterValues"]
$trans = New-Object Microsoft.SharePoint.WebPartPages.TransformableFilterValuesToParametersTransformer
$consumerArray=@($consumerArrayValue)
$providerArray=@($providerArrayValue)
$trans.ProviderFieldNames=$providerArray
$trans.ConsumerFieldNames=$consumerArray
$newCon = $webpartmanager.SPConnectWebParts($webPartProvider,$provWP,$webPartConsumer,$conWP,$trans)
$webpartmanager.SPWebPartConnections.Add($newCon);
$webpartmanager.Dispose()
Write-Host "Webparts are connected successfully" -ForegroundColor Green
}
function Connect-QueryStringFilterWP-To-BCSListItemWP($pageUrl,$fileName,$providerWP,$consumerConnectionId)
{
$webPartGallery = $web.Lists["Web Part Gallery"]
$webpartmanager=$web.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
Write-Host "Searching Consumer webpart $fileName in web part gallery" -ForegroundColor Yellow
if($webPartGallery -eq $null)
{
Write-Host("Unable to retrieve Webpartgallery");
}
$webPartConsumer = $webpartmanager.WebParts | Where {$_.Title -eq $fileName}
Write-Host "Searching Consumer webpart $providerWP in web part gallery" -ForegroundColor Yellow
$webPartProvider = $webpartmanager.WebParts | Where {$_.Title -eq $providerWP}
$conWP = $webpartmanager.GetConsumerConnectionPoints($webPartConsumer)
$provWP = $webpartmanager.GetProviderConnectionPoints($webPartProvider)
$conWP=$conWP[$consumerConnectionId]
$provWP=$provWP["ITransformableFilterValues"]
$trans = New-Object Microsoft.SharePoint.Portal.WebControls.TransformableFilterValuesToEntityInstanceTransformer
$newCon = $webpartmanager.SPConnectWebParts($webPartProvider,$provWP,$webPartConsumer,$conWP,$trans)
$webpartmanager.SPWebPartConnections.Add($newCon);
$webpartmanager.Dispose()
Write-Host "Webparts are connected successfully" -ForegroundColor Green
}
function Connect-BCSWebParts($pageUrl,$fileName,$providerWP){
$webPartGallery = $web.Lists["Web Part Gallery"]
$webpartmanager=$web.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
Write-Host "Searching Consumer webpart $fileName in web part gallery" -ForegroundColor Yellow
if($webPartGallery -eq $null)
{
Write-Host("Unable to retrieve Webpartgallery");
}
$webPartConsumer = $webpartmanager.WebParts | Where {$_.Title -eq $fileName}
Write-Host "Searching Consumer webpart $providerWP in web part gallery" -ForegroundColor Yellow
$webPartProvider = $webpartmanager.WebParts | Where {$_.Title -eq $providerWP}
$conWP = $webpartmanager.GetConsumerConnectionPoints($webPartConsumer)[0]
$provWP = $webpartmanager.GetProviderConnectionPoints($webPartProvider)[0]
$newCon = $webpartmanager.SPConnectWebParts($webPartProvider,$provWP,$webPartConsumer,$conWP)
$webpartmanager.SPWebPartConnections.Add($newCon);
$webpartmanager.Dispose()
Write-Host "Webparts are connected successfully" -ForegroundColor Green
}
function setupPageConnections ($pageName) {
Write-Host "Connecting webparts for page: $pageName" -ForegroundColor Yellow
$page=$web.lists[$LibName].Items | ? {$_.Name -eq $PageName}
$page.File.CheckOut();
setupWebPartsConnections $pageName
$page.File.CheckIn("Webparts are connected");
$page.File.Approve("Webparts are connected");
}
function setupWebPartsConnections ($pageName) {
Connect-BCSWebParts "$SiteURL/$LibName/$PageName" "{Custom Webpart Title}" "Business Data Item Builder" #{Custom Webpart Title} with title of custom web part
Connect-QueryStringFilterWP-To-BCSListWP "$SiteURL/$LibName/$PageName" "My Custom WebPart" "{Query String Filter WebPart tilte}" "{Custom Webpart filter Name}" "QueryString" "BDWP Query Values"
Connect-QueryStringFilterWP-To-BCSListItemWP "$SiteURL/$LibName/$PageName" "{Custom Webpart Title}" "{Query String Filter WebPart tilte}" "BDWP Item"
}
$Url = $(Read-Host -Prompt "Enter site url:")
$web = Get-SPWeb $Url
$web.AllowUnsafeUpdates=$true
$LibName = "Pages";
$SiteURL =$Url
setupPageConnections "Test.aspx"
$web.Update();
$web.AllowUnsafeUpdates=$false
$web.Dispose()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment