Open jlagman opened 6 years ago
I've got an active pull request with this feature implemented, including nested folders. It just needs to be merged.
Hi @dancaswell I think our developer already implemented a separate task for this purpose called SqlReportingServicesFolderDeployment See documentation here: https://github.com/tobania/VSTS.Extension.SqlReportingServices
@dancaswell Ok I saw the PR but he's on holiday and will have a look next week.
@jlagman Could you verify first if the other task is enough to reach your required result before we merge?
@muziekklas - folder ReportsTest did not exist under /Reports/
2017-11-14T19:47:04.6495278Z ##[section]Starting: Deploy SQL Server reporting folder structure
2017-11-14T19:47:04.6495278Z ==============================================================================
2017-11-14T19:47:04.6495278Z Task : SQL Server Reports Folder Deployment
2017-11-14T19:47:04.6495278Z Description : Deploys a folder structure to the SQL Reporting Service
2017-11-14T19:47:04.6495278Z Version : 1.0.4
2017-11-14T19:47:04.6495278Z Author : Tobania
2017-11-14T19:47:04.6495278Z Help : Deploys a folder structure to the SQL Reporting Service
2017-11-14T19:47:04.6495278Z ==============================================================================
2017-11-14T19:47:04.6964075Z Preparing task execution handler.
2017-11-14T19:47:05.0870487Z Executing the powershell script: E:\Work\001\Agent1_work_tasks\SqlReportingServicesFolderDeployment_40abe74e-bbd1-43af-ac02-4f2364f01d78\1.0.4\SqlReportingServicesFolderDeployment.ps1
2017-11-14T19:47:05.3214535Z Preparing Deployment of RDL files...
2017-11-14T19:47:05.3214535Z
2017-11-14T19:47:05.3214535Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Preparing script... (Verbose = true) -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Using following parameters: -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Remote root path: /Reports/ReportsTest -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Local root path: E:\Work\001\Agent1_work\r63\a\drop\Reports\*.rdl -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Attempt to update the datasource path: true -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> Webservice: http://usadde00031/ReportServer/ReportService2010.asmx?wsdl -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> WsUsername: usa\VSTSSvc -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z [VERBOSE] >> WsPassword: **** -
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3527049Z
2017-11-14T19:47:05.3683292Z ##[error]System.Management.Automation.MethodInvocationException: Exception calling "GetFullPath" with "1" argument(s): "Illegal characters in path." ---> System.ArgumentException: Illegal characters in path.
2017-11-14T19:47:05.3683292Z at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
2017-11-14T19:47:05.3683292Z at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
2017-11-14T19:47:05.3683292Z at CallSite.Target(Closure , CallSite , Type , String )
2017-11-14T19:47:05.3683292Z --- End of inner exception stack trace ---
2017-11-14T19:47:05.3683292Z at System.Management.Automation.ExceptionHandlingOps.ConvertToMethodInvocationException(Exception exception, Type typeToThrow, String methodName, Int32 numArgs, MemberInfo memberInfo)
2017-11-14T19:47:05.3683292Z at CallSite.Target(Closure , CallSite , Type , String )
2017-11-14T19:47:05.3683292Z at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
2017-11-14T19:47:05.3683292Z at System.Management.Automation.Interpreter.DynamicInstruction3.Run(InterpretedFrame frame) 2017-11-14T19:47:05.3683292Z at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) 2017-11-14T19:47:05.3683292Z Uploading files 2017-11-14T19:47:05.3839345Z Creating WebService proxy using credentials 2017-11-14T19:47:05.3839345Z 2017-11-14T19:47:05.3839345Z 2017-11-14T19:47:06.8996149Z [VERBOSE] >> Got Namespace for SSRS... - 2017-11-14T19:47:06.8996149Z 2017-11-14T19:47:06.8996149Z 2017-11-14T19:47:06.8996149Z ##[error]System.Management.Automation.MethodInvocationException: Exception calling "GetFolderStructure" with "2" argument(s): "Illegal characters in path." ---> System.ArgumentException: Illegal characters in path. 2017-11-14T19:47:06.8996149Z at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath) 2017-11-14T19:47:06.8996149Z at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath) 2017-11-14T19:47:06.8996149Z at Tobania.SqlReportingFolderDeployment.DirectoryHelpers.GetFolderStructure(String root, String remoteRoot) 2017-11-14T19:47:06.8996149Z at CallSite.Target(Closure , CallSite , Type , String , String ) 2017-11-14T19:47:06.8996149Z --- End of inner exception stack trace --- 2017-11-14T19:47:06.8996149Z at System.Management.Automation.ExceptionHandlingOps.ConvertToMethodInvocationException(Exception exception, Type typeToThrow, String methodName, Int32 numArgs, MemberInfo memberInfo) 2017-11-14T19:47:06.8996149Z at CallSite.Target(Closure , CallSite , Type , String , String ) 2017-11-14T19:47:06.8996149Z at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2) 2017-11-14T19:47:06.8996149Z at System.Management.Automation.Interpreter.DynamicInstruction
4.Run(InterpretedFrame frame)
2017-11-14T19:47:06.8996149Z at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2017-11-14T19:47:06.9152405Z ##[error]System.Management.Automation.RuntimeException: You cannot call a method on a null-valued expression.
2017-11-14T19:47:06.9152405Z at CallSite.Target(Closure , CallSite , Object )
2017-11-14T19:47:06.9152405Z at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
2017-11-14T19:47:06.9152405Z at System.Management.Automation.Interpreter.DynamicInstruction`2.Run(InterpretedFrame frame)
2017-11-14T19:47:06.9152405Z at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2017-11-14T19:47:06.9152405Z at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
2017-11-14T19:47:06.9464992Z Uploading Data sources...
2017-11-14T19:47:06.9464992Z
2017-11-14T19:47:06.9464992Z
2017-11-14T19:47:06.9464992Z Uploading Datasets...
2017-11-14T19:47:06.9464992Z
2017-11-14T19:47:06.9464992Z
2017-11-14T19:47:06.9621190Z Uploading Assets...
2017-11-14T19:47:06.9621190Z
2017-11-14T19:47:06.9621190Z
2017-11-14T19:47:06.9621190Z Uploading Reports... + 0
2017-11-14T19:47:06.9621190Z
2017-11-14T19:47:06.9621190Z
2017-11-14T19:47:06.9777430Z Uploading report Contacts Integrity Report to ...
2017-11-14T19:47:06.9777430Z
2017-11-14T19:47:06.9777430Z
2017-11-14T19:47:06.9777430Z [VERBOSE] >> Uploading Contacts Integrity Report with filesize bytes -
2017-11-14T19:47:06.9777430Z
2017-11-14T19:47:06.9777430Z
2017-11-14T19:47:07.1183920Z ##[error]Microsoft.PowerShell.Commands.WriteErrorException: The item '/Reports/ReportsTest' cannot be found. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemNotFoundException: The item '/Reports/ReportsTest' cannot be found.
2017-11-14T19:47:07.1496251Z ##[error]PowerShell script completed with 4 errors.
2017-11-14T19:47:07.1496251Z ##[section]Finishing: Deploy SQL Server reporting folder structure
Hello ygeelen-tb,
I think our developer already implemented a separate task for this purpose called SqlReportingServicesFolderDeployment See documentation here: https://github.com/tobania/VSTS.Extension.SqlReportingServices
This is not working for us, we're getting below errors.
Creating WebService proxy using credentials
The item '/ReportPath/ReportSubFolder/NewFolder' cannot be found
I suspect your url to the webservice is invalid. Please validate it again
Thanks for writing this useful tool!
Are there plans to implement a 'create folder' option such that a report can be nested? for example: /Accounting/AR/myawesomereport.rdl - where folders = /Accounting and /Accounting/AR will be created if not exists on report deploy.