【问题标题】:Loading files to SAS Stored Process server using VBA使用 VBA 将文件加载到 SAS 存储过程服务器
【发布时间】:2015-10-21 18:22:32
【问题描述】:

有没有办法(以编程方式)通过 HTTP 将文件直接发送到 STP 服务器?看来documented 方法(使用<input type="file">)不能以自动化方式使用,因为明确的浏览器限制旨在防止向网络服务器发送垃圾邮件。

我不希望使用 IOM(尽管我们已获得 AMO 许可),因为这会产生对本地 SAS 安装的依赖。

当前的方法涉及写入共享目录,然后通过 web query 调用 STP - 然后将数据提升和删除到非共享位置。

问题是在这几秒钟内数据在更广泛的公司域中。直接上传到 SAS 会更整洁!

这可能吗?没有第三方软件(只是 vanilla excel VBA)?

【问题讨论】:

  • 我迷路了。您希望以编程方式将文件从 PC 上传到存储过程服务器。为什么要通过 HTTP 执行此操作?你不能只是 SFTP 或类似的吗?如果您正在为用户制作一个 web 应用程序来上传文件并处理它们,那么使用 HTTP 是的,用户需要点击整个过程。除非您想使用 imacros.net/overview 之类的东西编写浏览器脚本。
  • 我在excel中建立了一个数据编辑器,需要将记录发送回SAS服务器。我确实希望为浏览器编写脚本,但没有任何本地安装。我认为你是对的,我唯一真正的选择是使用 SFTP(需要进行设置)。这会阻止其他用户查看文件吗?
  • 这取决于您的服务器上的权限,以及您放置文件的位置。
  • 我认为你想要的都是可能的。我最近刚刚使用 jQuery/AJAX 完成了一些代码,这些代码将采用编程方式创建的数据,并将其上传到 SAS/Intrnet 服务器(我相信相当于 STP),其方式与此处第 145 页上的详细信息兼容(@ 987654324@)。如果您熟悉 javascript,您可以让 excel 调用一些 javascript 而不是 VBA。或者,可能有一种方法可以使用 Internet Explorer 自动化对象和 VBA 进行等效操作。
  • 而就其价值而言,我看不出 STP 如何区分以编程方式生成的 HTTP 请求和常规 HTML <input type="file"> 方法。对服务器来说,它应该看起来都一样...

标签: excel sas http-post vba


【解决方案1】:

我真的不知道是否可以做你想做的事,但我确实看到了这一点,想知道后台模式是否会有所作为。

http://support.sas.com/kb/39/114.html

【讨论】:

  • _ACTION=BACKGROUND 选项允许 STP 异步运行(在后台)。我的问题是关于将文件传递给 STP - 所以这在 STP 本身运行之前。不过同意,我也不相信有可能做我想做的事!
  • 我再次阅读了您的帖子,我想我对您需要做什么有了更好的了解。对不起,但我对 VBA 知之甚少,所以我无法帮助你。我认为如果您能够将 AMO 安装在客户端上,它会有所帮助。我猜你知道这一点,但如果有任何混淆,SAS 插件不会在客户端上安装完整的 SAS,只是与服务器通信所需的部分。它不是太大的安装。我希望我能提供更多帮助。
  • 我们对 AMO 的问题是我们目前有 2 个(很快会是 3 个)版本的 SAS 需要考虑(这意味着不同的 VBA 引用集),以及正在使用的不同版本的 excel。而且,速度非常慢!不过谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 1970-01-01
  • 2017-03-13
相关资源
最近更新 更多