ExportToDisk错误

2020-09-04 01:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Powershell脚本...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个Powershell脚本,该脚本执行一个带有三个参数的Crystal Report(没有子报告),从SQL Server检索它的数据,并将报告写入/保存到网络共享中。

我能够成功执行powershell脚本。

另一个用户无法成功执行脚本。

该用户:

1。 能够UNC到网络共享,并且

2.能够读写网络共享

3。 能够成功地将错误写入报告获取数据的同一SQL Server(请参见下面的代码中的Try ... Catch语句)。

该用户遇到的错误如下:使用" 2"参数调用" ExportToDisk"的异常:"无法打开连接。[报告名称] {16D21D5B-3494-5B3E- B3D9-3DFF7D467GDB} .rpt"

以下是与ExportToDisk错误有关的powershell代码:

$ BeginDate =读取主机'使用格式MM/DD/YYYY输入开始日期'

$ date = $ BeginDate

$ EndDate = $ BeginDate

$ BeginDate = $ BeginDate +" 02:00:00"

$ EndDate = $ EndDate +" 01:59:59"

$ EndDate =([datetime] $ EndDate).AddDays(1)#获取日期时间戳以YYYYMMDD_YYYYMMDD_HHMMSS的形式附加到文件名

$ CurrentDate =获取日期

$ CurrentDate = $ CurrentDate.ToString(" yyyyMMdd")

$ date = $ date.Replace("/","")

$ time =获取日期-格式HH:mm:ss

$ time = $ time.Replace(":","")

$ datetime = $ date +" _" + $ CurrentDate +" _" + $ time #YYYYMMDD_YYYYMMDD_HHMMSS

[字符串] $ UserName = $ env:UserName

$ Property =" SiteName"

$ SqlConnection =新对象System.Data.SqlClient.SqlConnection

$ SqlConnection.ConnectionString ="服务器=服务器名称;数据库=报告;集成安全性=真" $ SqlConnection.Open()

$ SqlCmd =新对象System.Data.SqlClient.SqlCommand

$ SqlCmd.Connection = $ SqlConnection

[reflection.assembly] :: LoadWithPartialName('CrystalDecisions.Shared')| 空出[reflection.assembly] :: LoadWithPartialName('CrystalDecisions.CrystalReports.Engine')| 空空

$ report =新对象CrystalDecisions.CrystalReports.Engine.ReportDocument

[string] $ LocalReportPath =" C:\ Users \ $ UserName \ Documents \ CrystalReports \ [报告名称] .rpt"

$ ReportPath =" S:\ Reporting \ SiteName \"#这用于保存到SQL表中以进行历史记录或发生错误。 $ FileLoc =" \\ ServerName \ Reporting \ SiteName \"#这是保存到网络服务器的路径,等同于ServerName上的S驱动器。

$ ReportNameLive =" TableGames_XX_" + $ datetime +" .pdf"

$ FileName = $ FileLoc + $ ReportNameLive

$ ReportFullPath = $ ReportPath + $ ReportNameLive

$ report.SetParameterValue(" @ Property",$ Property)

$ report.SetParameterValue(" @ BeginDate",$ BeginDate)

$ report.SetParameterValue(" @ EndDate",$ EndDate)

$ SqlCmd.CommandText =" INSERT dbo.ReportTracker(UserName,ReportNameLive,[FileName],ReportFullPath,BeginDateParam,EndDateParam)VALUES('$ UserName','$ ReportNameLive','$ FileName','$ ReportFullPath', '$ BeginDate','$ EndDate')"

尝试{

$ report.ExportToDisk(" PortableDocFormat",$ FileName)

$ SqlCmd.ExecuteNonQuery()| 空空

写主机"成功创建" $ ReportNameLive -ForegroundColor绿色}

抓住{

$ ErrorMessage =" [XX]" + $ _。Exception.Message

写主机-ForegroundColor红色$ ErrorMessage

$ SqlCmd.CommandText =" INSERT dbo.ReportErrorTracker(UserName,ReportNameLive,[FileName],ReportFullPath,BeginDateParam,EndDateParam,ErrorMessage)VALUES('$ UserName','$ ReportNameLive','$ FileName','$ ReportFullPath ','$ BeginDate','$ EndDate','$ ErrorMessage')"

$ SqlCmd.ExecuteNonQuery()| 空空

$ SqlConnection.Close()

$ report.close()

出口1}

7条回答
clever101
2020-09-04 02:04

Robert,您好,

I 只是注意到您的SQL连接的IntegratedSecurity为true。 在这种情况下,您传递给报告的密码将被忽略。

如果您的SQL Server未使用集成安全性,则必须传递用户名和密码。

https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/sql/authentication-in-sql-server

请告诉我这是否有意义。

谢谢,

Brian

一周热门 更多>