I have implemented the code located at this link to export and import a list to a cmp file using powershell and the SPDeployment functions. While trying to better understand this code I came to the realization that I can use the same code (with a few adjustments) to export a single item by giving it the item unique ID, the type file (or list item), and the folder server relative url. My question is how would I modify the import-list to import this item in a specific folder/list. I read this article but it is in another language. I'm not sure how to convert it to powershell. I also, wasn't sure if the register-objectevent was the proper method but I also didn't want to do an "inline" function.
At first I thought I simply needed to give it a import object but there is no API to do so. I suspect I need to add this line:
Register-ObjectEvent -InputObject $import -EventName started `
-SourceIdentifier $import.started -Action { importStart }
And the following function:
Function importStart([object]$sender, [object]$args)#[Microsoft.SharePoint.Deployment.SPDeploymentEventArgs]$args)
{
write-host "successfully entered started2"
$web = #get list web somehow
$list = #get list somehow
$rootObjects = $args.RootObjects;
foreach ($io in $rootObjects)
{
if ($io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::File -or
$io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::ListItem)
{
$io.TargetParentUrl = $list.RootFolder.ServerRelativeUrl;
}
if ($io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::List)
{
$io.TargetParentUrl = $web.Url;
}
}
$web.dispose();
}
But there are no event arguments passed to the -action command block or the function. Am I missing something here? Please help!