问题标签 [script-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1374 浏览

c# - 如何使用 c# 检查电子邮件中的文件?

我每周都会收到一封带有 excel 文件的电子邮件。我知道可能有更好的方法来实现我的目标,但是是否有可能在 SSIS 中有一个脚本任务可以打开电子邮件,查找特定文件名作为附件,然后将该文件复制到另一个位置?

这是场景。这个 excel 文件对于我的团队在 SQL 数据库中很重要,并且 excel 源的提供者只愿意每周通过电子邮件将这个 excel 文件发送给我们一次。然后我检查我的电子邮件,将文件复制到一个位置,然后 SSIS 数据流任务可以将其提取并插入到 SQL 表中。我想自动化这个。因此,如果我原来的方法不可行,那还能如何实现自动化呢?除了使用共享网络位置。假设 excel 文件只能来自电子邮件。使用 Outlook/Office 365、SSIS、SSMS,我有 DBO 访问权限,并且可以使用 c#。

我承认我对电子邮件一无所知。如果有一个电子邮件客户端可以实际执行的过程来完成此操作,那么我会全神贯注!

编辑:我也可以访问网络驱动器,因为我意识到保存到我的本地机器可能是不可能的。

0 投票
2 回答
2806 浏览

c# - 如何在 SSIS 脚本任务中加密密码?

所以我在访问电子邮件的 SSIS 包中有一个脚本任务。

我已经对包本身进行了加密,但我仍然对它在 ScriptMain.cs 页面上的纯文本感到不安。过去,我能够在说 WPF 应用程序上加密这些数据,但不确定如何将其转换为脚本任务。我是不是想太多了?有没有办法在连接管理器或其他可以增加一层保护的东西中设置它?

我想补充一下,我正在使用交换服务 API 连接到电子邮件。

0 投票
0 回答
772 浏览

c# - 脚本任务中的运行时错误

我们有一个完全运行的数据库服务器,比如serverA,它的数据每天都会刷新。我们想在不同的服务器上复制这个数据库, serverB说,这样我们就有了一个测试环境。数据库已恢复到 serverB。

与 serverA 一样,我们希望 serverB 的数据也每天刷新,因此我们在 serverB 上进行的测试可以说是完全准确的,因为它们将具有与 serverA 相同的数据。我们在 serverB 中部署了 serverA 中使用的 SSIS 包,并在 serverB 中复制了 SQL Server 代理作业

我正在尝试修改这些作业和包,以便它们可以在 serverB 上顺利运行,我正在更改目录路径、服务器名称等。

现在,这个作业总是因为一个包 zip.dtsx 而失败。 zip.dtsx从目录A 检索文件,压缩它们并将压缩文件保存到目录B,然后删除目录A 中的文件。但是,我无法弄清楚它为什么会出现运行时错误

zip.dtsx 有一个名为Zip files的脚本任务。

脚本语言为Microsoft Visual C# 2010

ReadOnlyVariables集是User::DestinationPath, User::NamePart, User::SourcePath,$Package::filename

剧本是,

当我在 Microsoft Visual Studio 中执行任务时出现的错误 - >右键单击脚本任务对象 - >执行任务 在此处输入图像描述

我对 Microsoft Visual C# 不熟悉,而且我也刚刚开始使用 SSIS 包,所以我真的很茫然。

更新:我尝试在 C# 脚本中注释掉不同的行。最后,当我注释掉时File.Delete(@sourcePath + namePart);,调用 zip.dtsx 的工作已经成功。但是,我不确定为什么我在这条线上有错误。我不确定是因为权限还是其他原因。

0 投票
1 回答
2665 浏览

c# - SSIS 包在 file.delete 的脚本任务上失败

我有一个SSIS 包zip.dtsx。此包在 serverA 上成功运行。我在serverB中复制了这个包。但是,当我尝试在 serverB 上运行 zip.dtsx 时,它失败了。

zip.dtsx 只是读取源文件夹中的文件,对其进行压缩,将压缩文件保存到不同的文件夹,然后删除源文件夹中的原始文件。

经过一番调查,我发现如果我注释掉 C# 脚本任务中删除源文件夹中文件的部分。包运行成功。

我需要删除源文件夹中的文件。否则,这个文件只会被重复加载到数据库中。我已经按照这里的建议重新添加了脚本任务引用,但我仍然无法file.delete成功运行。

更新:

在此处尝试完全相同的代码后。并发现此代码删除了我在源文件夹中的文件,我尝试更新我的代码以遵循链接中删除文件的方式。但是,它仍然没有工作。下面是我如何更新我的代码。

0 投票
1 回答
641 浏览

sql-server - 使用 SSIS 脚本任务检测空平面文件

我正在寻找一个脚本任务,它可以识别文件夹中的零 KB 文件并在邮件或文本文件中输出相同的文件。

提前致谢。让我知道任何问题。

0 投票
0 回答
1280 浏览

ssis - SSIS 无效字符“。” 脚本任务中的文件名错误

我的任务是将单个文件拆分为两个单独的文件,我已经完成了。但是,之后我需要将源文件从源目录移动到存档文件夹中,这样第二天就不会再次被拾取。

文件名很糟糕,类似于“DFG.AE234125.HDS932.H001.U001”,但是当我们从外部接收到类似的文件时,我无法控制重命名。我的循环工作正常,因为它通过使用 User::SelectedFile 变量进行迭代来拾取所有文件并按应有的方式拆分它们。当它到达新添加的“将文件移动到存档”脚本任务时,它卡在加载几乎整整一分钟并返回错误,如“文件名不能包含像'/\=,'这样的字符”脚本在 C# 中,它声明了两个字符串一个用于存档路径,另一个用于文件名,并使用 User::SelectedFile 变量。

我考虑过/尝试过的事情:

  1. 检查文件路径(它们是正确的,因为我在 C 驱动器上使用测试目录,因为我无权访问服务器位置)
  2. 由于我使用的是本地位置,因此它不会是权限问题,尤其是当它正在为拆分提取文件时。
  3. 这是一个使用平面文件连接的独立进程,因此不存在服务器连接问题。
  4. 我也尝试过为此使用文件系统任务,但名称出现相同的错误。
  5. C# 脚本本身是从另一个需要将处理后的文件移动到存档文件夹的包中复制和粘贴的。它在那里工作。我在新脚本中所做的只是更改路径的变量。
  6. 我添加了断点,并且可以看到变量在到达脚本任务时具有正确的值。

问题似乎出在进程到达脚本任务的地方。此时拆分已经成功完成。有人可以建议一种解决方法来忽略文件名中的“。”,这样我就可以将这该死的东西移到存档文件夹中吗?

这是我在 Stackoverflow 上的第一篇文章,因此欢迎对文章本身提出任何反馈。

提前谢谢了。

知识产权

0 投票
1 回答
854 浏览

sql-server - SSIS 脚本任务 - 从 XML 文件中读取,将文本与系统变量匹配并将值输出到用户变量

我是 SSIS 的新手,正在为脚本任务苦苦挣扎。试图弄清楚如何为以下场景构建脚本。

这是场景

我有 XML 文件有以下数据

**我希望脚本任务从 XML 文件中读取“名称”-与系统变量“机器名称”匹​​配并将输出写入用户变量“ServerNumber”。

如果机器名称是 DEV3WEB - 输出将是数字“1”,DEV3APP 输出将是数字“2”。**

提前致谢。

0 投票
2 回答
676 浏览

c# - SSIS 脚本任务在当前事务中登记

我在 SSIS 中有一个包含多个任务的包。我正在加载文件,如果最后的文件系统任务失败,我希望能够回滚事务。我的包看起来像那样。general_package 我希望能够回滚 SSIS 脚本已完成的所有操作。为此,我需要 SSIS 脚本加入由 BEGIN_TRANSACTION Sql 任务创建的事务。我该怎么做?

在 ssis 收集交易我做:

然后我做一个 BulkCopy:

如何告诉 SqlBulkCopy 使用现有事务?在 SSIS 的连接选项中,我使用 RetainSameConnection:true

谢谢你的所有想法

文森特

0 投票
1 回答
100 浏览

ssis - OLE DB 命令是否支持 ssis 中的动态独立查询?

早些时候,我正在运行许多 sql 查询并手动处理 csv 文件中的 eextract。现在,我正在尝试制作一个相同的 ssis 包。

我在 for-each 循环中使用了 OLE DB Source 来执行此操作。但这不起作用。那我做对了吗?或者还有什么可以帮助我做的(除了脚本任务)?

0 投票
1 回答
3480 浏览

c# - 使用基于 SSIS 脚本任务的 REST API 行

我正在寻找一种使用 C# 在 SSIS 脚本任务中使用 REST API 的方法。我不能使用 RestSharp 或 Microsoft.Aspnet.Webapi.Client,因为它们不在 GAC 中。

我需要为每一行调用 Rest API (POST) 以获取结果,然后将其写回输出。

是否有可能在没有程序集的情况下访问 REST API?