tobania / VSTS.Extension.SqlReportingServices

VSTS Extension for uploading SSRS Reports
MIT License
14 stars 20 forks source link

Create ReportFolder if not exists #32

Open jlagman opened 6 years ago

jlagman commented 6 years ago

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.

dancaswell commented 6 years ago

I've got an active pull request with this feature implemented, including nested folders. It just needs to be merged.

ygeelen-tb commented 6 years ago

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

ygeelen-tb commented 6 years ago

@dancaswell Ok I saw the PR but he's on holiday and will have a look next week.

anton-kirschhock commented 6 years ago

@jlagman Could you verify first if the other task is enough to reach your required result before we merge?

jlagman commented 6 years ago

@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.DynamicInstruction4.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

RRGGSS commented 6 years ago

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.

[error]Exception calling "GetFullPath" with "1" argument(s): "Illegal characters in path."

Creating WebService proxy using credentials

[error]Exception calling "GetFolderStructure" with "2" argument(s): "Illegal characters in path."

[error]You cannot call a method on a null-valued expression.

The item '/ReportPath/ReportSubFolder/NewFolder' cannot be found

anton-kirschhock commented 6 years ago

I suspect your url to the webservice is invalid. Please validate it again