通过perl脚本在Lotus Domino数据库中创建文档

时间:2012-06-05 09:44:04

标签: php perl e-commerce http-post lotus-domino

我见过像这样的代码块

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脚本。

5 个答案:

答案 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数据库中。