我见过像这样的代码块
use Win32::OLE;
my $Notes = Win32::OLE->new('Notes.NotesSession')
or die "Cannot start Lotus Notes Session object.\n";
my $database = $Notes->GetDatabase("",'mail\VIMM.nsf');
但我的脚本是在虚拟webfusion apache服务上运行的,所以如何在我的多米诺骨牌服务器上建立与数据库的连接,我控制了它的acl和它的网站,所以可以传入用户名&密码。剧本& 'POST'数据由第三方网关发送,其中包含我需要捕获的事务结果(成功/失败+名称值对等)。我无法直接在domino服务器上执行此操作,因为虽然Domino支持PERL脚本,但只有在服务器上也安装PERL时才能使用PERL脚本。
答案 0 :(得分:0)
Lotus Domino也是一个Web应用程序服务器,因此您可以使用Apache服务器上的perl脚本中的HTTP(GET和POST)与服务器进行通信。
这可能需要更改相关Domino应用程序,以便它能够提供您期望的内容。
答案 1 :(得分:0)
此外,您可以在Domino服务器上提供WebService。
答案 2 :(得分:0)
要使OLE / COM工作,Perl和脚本必须位于安装Notes和/或Domino的服务器上。否则,OLE / COM类未安装且不可用。
正如Per和Klaus所提到的,如果你不能将Notes / Domino放在带有Perl的机器上,你就必须切换到某种基于网络的通信。
答案 3 :(得分:0)
如果您不限于COM / OLE,则可以使用IBM Lotus Domino Data Service,这是Domino Designer 8.5.3升级包1中的新增功能:
IBM®Lotus®Domino®数据服务是一种可访问的REST API Domino服务器上的数据库。它是Domino Access Services的一部分。
Domino Data Service接收请求并使用发送响应 具有JSON格式的正文内容的HTTP和HTTPS协议。
Domino Data Service允许您获取有关数据库的信息, 视图,文件夹和文档。您可以更新,添加和删除 文档。
答案 4 :(得分:0)
根本问题是,如 http://www.mysite.com/thankyou?orderno=123 这样的网址在Lotus Domino网站上无效,因为?是Domino Web引擎的特殊字符(例如?openagent,?opendatabase)。你也不能使用 http://www.mysite.com/(thankyou)?openagent?orderno = 456 (我试过),在这两种情况下,你得到的是404页面未找到错误和多米诺骨牌日志错误“不明白网址”。问题最初是要求Perl帮助解决问题,但我无法在我的webfusion社区服务器上运行Perl脚本,但幸运的是,这个简单的PHP脚本很快就取得了成功:
<?php
$params = "";
$url = "http://www.mywebsite.co.uk/";
$path = "wpx/website.nsf/httpagent?openagent";
if($_GET) {
$kv = array();
foreach ($_GET as $key => $value) {
$kv[] = "$key=$value";
}
$params = join("&", $kv);
}
print "<script>window.location.href=\"" . $url . $path . "&" . $params . "\"</script>";
?>
脚本放在我的webfusion服务器上的子域下,有效地将url转换为Domino可以处理的格式,格式?openagent&amp; orderno = 456很容易被java或Lotusscript代理处理,参数被提取来自CGI Request_Content字段。
重定向意味着我现在不需要直接操作domino数据库中的数据,这也意味着除了url转换脚本之外,所有网站代码都在domino数据库中。