首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅使用EG4.3将存储过程链接在一起?

如何仅使用EG4.3将存储过程链接在一起?
EN

Stack Overflow用户
提问于 2014-11-27 15:21:23
回答 1查看 512关注 0票数 1

我正在使用EG4.3中的存储进程创建一个基于HTML的数据字典,运行在Unix上的9.2BI套件上。

我们已经有效地关闭了我们的中间层web服务器,因此这个STP只能在EG内部使用。

使用大量的puts,我在四个存储过程中创建了所需的HTML页面:

  1. 主页作为提示输入,为(例如)有问题的列提供通配符,并在HTML中返回该列出现的数据集列表。

由此,用户可以选择库、表或列来深入了解更多详细信息。

  1. 在选定的中以HTML返回数据集列表的存储过程;
  2. 一个存储过程,它在HTML中返回选定的中的列列表;
  3. 返回属性的更详细列表的存储进程。

第一个STP非常好用,我可以看到一个格式良好的信息列表,包括库、数据集和列链接。

我的问题如下:当我单击一个链接时,我希望运行必要的STP,并将HTML页面返回到与我的初始报告相同的结果选项卡中。

我查阅了无数的sas文章,却找不到答案。

下面是我用来生成指向其他STP的链接的代码(其中chars[i]是数据集中的an值):

代码语言:javascript
复制
/* Get the root session ID*/
hrefroot = symget('_THISSESSION') || '&_PROGRAM=/Shared Data/Team/stored_process/';

/* Get the next stp path (neither ?&_PROGRAM= nor the below seem to work)*/
hrefnextstp = "?_PROGRAM=/Shared Data/Team/stored_process/";

// build up the HTML using puts //
stpval="stpddlibrary";
stplink=cats('<A HREF="', hrefnextstp, stpval, '&amp;type=', chars[i], '">', chars[i],'</A>');
put stplink;

考虑到以上所述,我如何使用EG将多个存储进程链接在一起?

没有人认为我不使用网络,所以这就排除了这一点。

我希望我说得很清楚..。

EN

回答 1

Stack Overflow用户

发布于 2014-12-20 09:58:05

您遇到的问题是,HTML页面试图导航到web服务以提取下一个页面。但是,EG不能作为web服务器响应浏览器的请求。

存储的过程代码最好通过web中间层或SAS MS Office插件来使用。如果这两个工具不可用,您可以考虑将逻辑从SAS存储的Proc中移出并直接进入EG,并使用响应来驱动eg项目中的第二个流。如果您想要驱动一个web页面,您可以通过Java和调用sas,并以EG的方式与SAS对话,但在这种情况下,您的UI将是用Java构建的。另一个建议是,尝试使用vbscript通过COM驱动EG。

下面是通过COM:Automation控制EG的链接

您提供的代码可以很好地构建由SAS中间层存储的proc web服务提供的url。存储在SAS存储的proc中,您可以将url构建到中间层,并使用SAS提供的用于存储进程的web接口来指向其他存储过程,以查看参数和url是如何构造的。

如果您的中间层web服务处于联机状态,您也可以在代码中调用存储过程。通过proc http调用它,下面是sas文档中的一个示例:

proc http in=in out=out url="http://localhost.com/rsm/rstool" method="post" ct="application/x-www-form-urlencoded"; run;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27173978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档