有人问我,我们是否可以通过网络服务向客户提供文件。我们经常使用 Scribe 将数据发送到 Web 服务,但我无法发送附件。任何人都知道我是否可以使用 SSIS(或其他工具)做这样的事情:
这是客户端用于上传 purl 更新的方法。 这是一个以 CSV 格式上传的单个文件,第一行是标题。该方法需要五 (5) 个参数:
Parameters (1) a string that is the login name.
Parameters (2) a string that is used for the password.
Parameters (3) a string that is used to specify which application.
Parameters (4) a string that is the file name. This is used to identify a specific file upload.
Parameters (5) an array of bytes that is the content of the file.
Parameters (6) an integer that defines the length of the file upload.
RETURNS an integer that will return the number of items successful uploaded or a negative number that returns an error.
Sample:
// Connect to the Web Service
PurlService.ServiceFile service = new PurlService.ServiceFile();
// Test the method
string login = “mylogin”;
string password = “mypassword”;
string application = “FSI”;
string filename = “myfilename.csv”;
byte [] bytes = new byte[file.ContentLength];
file.InputStream.Read( bytes, 0, file.ContentLength)
int returnValue = service.UploadFile(login, password, application, fileName, bytes, bytes.Length ); // If successful, the returnValue will be a text message.
SSIS 提供对 .NET 库的访问,因此,如果可以在控制台应用中编写它,则可以在 SSIS 中执行此操作(我有一个播放 MP3 的 SSIS 包只是为了证明这一点)。脚本任务是您希望如何进行 Web 服务调用。有一个内置的Web服务任务,但它是废话。上面的代码对于 Web 服务调用来说看起来模糊正确,尽管我的代码都是 Windows 身份验证,所以我以不同的方式设置凭据。
在工作流程方面,我希望您的包看起来像一个生成 CSV 数据提取的Data Flow
,然后是一个用于调用 Web 服务的脚本任务,然后可能是用于存档 CSV 的文件任务或用于在表中记录传输详细信息的执行 SQL 任务。