gpt4 book ai didi

java - 在另一个程序(VB 或 Java)之间传递 SAS 宏变量

转载 作者:行者123 更新时间:2023-11-30 08:47:39 29 4
gpt4 key购买 nike

我有一系列 SAS 程序,这些程序将用户选项作为宏变量并执行一些导出到 Excel 的分析。我正在 Excel VBA 和 Java 中为这些构建更加用户友好的界面(对于 2 个独立的软件包,Java 包也使用 Java 来做一些不同的事情)。

我找到了多种通过 VB 或 Java 运行 SAS 的方法,但我找不到让 SAS 然后将反馈返回给调用程序的方法。具体来说,我想做类似的事情:

-调用程序运行SAS

-SAS 进行一些计算并将一些宏变量作为字符串返回(或者它可以是串联的宏变量的单个字符串)

-调用程序从SAS中读取这个字符串

-调用程序根据它显示一些结果并做一些其他的事情

我研究过使用 Shell 命令运行 SAS,使用 OLE 自动化,使用 Java 的 SAS IOM 桥,以及使用 DDE(尽管据我所知这不起作用,因为当从另一个程序调用时 SAS 作为批处理作业运行) , 还没有找到任何东西。

我愿意接受所有涉及创建一些其他文件供调用程序读取的方法来执行此操作。我只想保留 SAS 和调用程序之间的所有交互。

作为引用,我使用的是 Base SAS 9.2 或 9.3(两者都有)、MS Office 2007 Excel VBA 和 JRE 1.7。

谢谢

BP

更新:

对于 Excel 程序,我使用了剪贴板,它似乎运行良好。我使用了这些来源:

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002571877.htm

http://excelhelphq.com/how-to-read-or-access-the-clipboard-with-excel-vba/

对于Java程序,我准备学习更多关于套接字的使用。再次感谢!

最佳答案

根据您的基础架构,我可以想到两件事,不幸的是,它们都不是直截了当的。

  • 将调用程序设置为监听套接字并让 SAS 将结果直接写回该套接字。
  • 创建一个 RESTful 接口(interface) API,并在处理完成后让 SAS 回调它。

有很多白皮书都在讨论如何做第一个。它的实现对于 SO 答案来说可能太长了,所以我将只链接一些白皮书,这些白皮书应该为您指明正确的方向。下面是一些帮助您入门的示例:

http://analytics.ncsu.edu/sesug/2000/p-1003.pdf

http://www2.sas.com/proceedings/sugi24/Coders/p083-24.pdf

http://www2.sas.com/proceedings/sugi22/INTERNET/PAPER184.PDF

第二种方法需要更多工作,但总体上可能是更好的解决方案。不过,对于您的需求来说,这可能有点矫枉过正。

编辑: 如果您碰巧从 UNIX 运行(不幸的是您不是),您可能已经能够使用 STDIO option .

我重读了你的问题,你确实提到它最终会以 excel 结束。我还想提一下 SAS 可以将数据导出到 excel in many different ways ,其中一些是直接的(例如 DDE)。

关于java - 在另一个程序(VB 或 Java)之间传递 SAS 宏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335337/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com