码迷,mamicode.com
首页 > 其他好文 > 详细

我和domino不得不说的故事(连载2016-3-2)

时间:2016-03-02 14:53:58      阅读:961      评论:0      收藏:0      [点我收藏+]

标签:

  • 1、关于NotesViewEntry

注意:通过NotesViewEntry获取某列的值时,若该列的值为@IsExpandable or @DocNumber 或者是常量时,将不会显示。

 

 Set entry = view.GetEntryByKey("Sports car", False)
 Messagebox entry.ColumnValues(0),, "Column 1"
帮助文档的解释:

A column value is not returned if it is determined by:

  • A formula containing a UI-only function such as @IsExpandable or @DocNumber. 

  • A constant.

 

结论:要多看帮助文档,上面都有。苦逼的新人啊!   

 

  • 2、关于在domino中导出Excel

   2.1)按照视图导出Excel时,某列常量没有导出来。

           解决方法:在常量后面加一个不存在的变量。如:“11”+a;    "a"+a   

           技术分享

   

    2.2)按照视图导出Excel时,某列数值为编号,前面为0,如021、089等等,却没有显示出来。即导出时丢失了前面的0。

         解决方法:代理中写入数据的位置,在数据的左边或右边添加一个 即可。

         提示:该代理为domino的lotusscript语言所写,通过table格式所写的excel导出代理。具体的代码,可以在这里看:

       技术分享

    

  • 3、通过java代理从Oracle 11g中取数据,在domino中引入java代理,打印到页面,也可以将这些数据导出到Excel。这个问题以前出过,然后不知道怎么被我调试好了。这次因为电脑奔溃重装了Domino Server,数据是原来的不变,java代理的编码也没变,Eclipse是完全拷贝到机子的,Domino的表单也没变。但是,直接写在代理中的中文,在输出到页面后,通通变成了乱码。  

在我将domino 服务端的Domino Server 修改后,从java代理输出到页面的所有数据都成了乱码。

另外,导致js提示也为乱码,究其原因,乃是因为js文件本身编码的问题。因为当前的Domino编码为UTF-8,而这份文件编码却为GB2312。将这份文件转成gbk,复制到记事本中,再将该文件另存为utf-8格式,最后上传替换原来的文件,即可。

最后,我想起打印出来的数据的编码设置,将它从utf-8改为gb2312,从Oracle获取的数据中中文乱码消失。  

 

 

  • 4、有个客户需要从Domino系统通过web Service 接口拿走数据。乍听之下,不知所云。问了做过的同事,一时也未能说清楚。于是,只好向度娘打听打听。可以注意看看文章后面的评论,以及博主的回答,还会另有些收获的。

在Domino85中调用Web Service  
http://windindream.blog.163.com/blog/static/4935919201011285263783/

Domino8.5中发布Web Service

http://windindream.blog.163.com/blog/static/493591920101128423493/

需要注意的是:

1、因为客户的接口是用java编写的,在domino designer 通过WSDL文件在web service获取到这些.java。不知是不是domino的问题,在designer端获得的客户.java代码是被编译过的,客户给的方法,全部都变成了.java类。

这个时候,需要在.java文件中找到两个重要的接口。

第一个是,XXXXLocator,以Locator结尾,这个类应该是domino解析时,作为所有方法的总接口。

第二个是,客户通过webService传过来的接口,在WSDL中可以找到。

大家可以通过下面的图了解一下:

技术分享

1
2
3
WebserviceCommonserviceLocator comLoc = new WebserviceCommonserviceLocator();
ICommon ic = comLoc.getCommonImplPort();
ic.方法

 

  • 5、关于domino中引用js的问题

js文件在数据库的资源文件中,在html首页内容中引用时,src=‘test.js‘。

在表单中引用,<script type = "text/javascript" src = "test.js"></script>

 

  • 6、如何在domino视图中写html代码。

   将代码用[]包住即可。

   例如:“[<input name=‘gdCheck‘  type=‘text‘  value=”+unid+"‘></input>]"

 

  • 7、关于Domino数据库中js文件编码的问题

描述:在做项目的时候,将公用的js方法放到js文件里面,方便调用。但是,在进行迁移后,再次对js文件中的js方法进行修改,保存之后,发现应用中调用该方法出错了,该js文件中的方法全部无法调用。

经检查,发现如下情况:

1)修改保存后,再次打开js文件,中文显示为乱码。

2)打开js文件,设置当前文本文件编码为gb2312后,代码显示正常。保存时,会提示编码有问题。(菜单“编辑”-->设置编码-->)

3)将js文件中的内容通过记事本转为utf-8编码,然后复制到,js文件中,问题依旧。

4)将编码为utf-8编码的js文件直接导入,问题依旧。

 

结论:当前数据库的编码有问题。因为每次只要不对js文件进行改动、保存,那么就不会有乱码的问题。很明显,保存的时候,数据库自动将js文件的编码转换了。找了半天没找到到底在哪里进行修改,通过请教公司高手后,找到了菜单“项目”-->属性-->资源-->文本文件编码,默认为gb18030。

 

解决方案:

1)首先修改数据库的资源-->文本文件编码,将编码改为utf-8。这样每次保存时,js文件就会为自动变成utf-8编码。

2)将所有的js文件通过记事本,把编码转成utf-8,然后再导入进来。

3)测试。

 

  • 8、通过webService将Domino文档中的附件传送给一个Java系统,结果当在XP环境下的时候没有问题。但是,在AIX环境下的时候报错。

描述:关于这个接口,由我们从OA中提取文档内容(包括附件、正文、域值),然后调用对方提供的方法,将这些内容传送给对方。他们的传送方式是,首先将附件转换成字节流,然后将所有的附件打包成一个对象,作为参数进行传送;而正文则只是转换成字节流,作为参数进行传送;域值则挑选重要的进行传送。结果在XP环境中测试没有问题,开始时报过“OutOfMemoryError”的问题,配置JavaMaxHeapSize以后解决了问题。但是在AIX环境中却总是不行,而且一直在报内存不够的问题。

目前报的错误,如下图:

 

技术分享

现在就卡在这里。

这个链接是别人总结的JVM异常处理办法:http://blog.csdn.net/zys5212/article/details/7046066

备注:

目前这个问题已经解决。我们的解决方案是,将附件转成文件流以后,放到集合里面,这样就可以避免出现内存溢出错误。但是,当附件达到100M左右的时候,依旧还是会报内存溢出错误。(JavaMaxHeapSize设置的是1G)

 

  • 9、关于lotus Domino复杂查询

     

描述:有关Domino查询的资料在网上也能找到一些,我这里主要记录一下复杂查询。复杂查询也就是db.Search(formula)。

formula="form=\"fFaWen\""

数值类型:"& @texttonumber(num)=>"+num2

文本类型:“&@contains("";"")”

日期类型:“&@texttotime(riqi)>=@texttotime("2011-09-09")”

 

 

  • 10、Error: ...‘WAITING FOR READ LOCK ON FRWSEM‘...‘FOR 30000 ms’...

描述:这个问题遇到过两次,前面一次找了很久没找到怎么解决,后面这次似乎在重启Domino Server后提示就没出现。在网上找了下解决方法,如下链接:

在note.ini中增加参数:SCHEDULE_NO_CALCSTATS=1.

http://www-01.ibm.com/support/docview.wss?uid=swg21315806

 

  • 11、登录表单原来是通过action提交的,后来直接通过按钮调用代理提交到后台代理进行处理。但是,发现代理中无法取到当前表单中录入的值。若是默认值,没有问题。

描述:.几经折腾,发现原来是表单的最上方,有一个标签</form>。当调用按钮提交到代理的时候,页面默认<form>以外的内容(包括域)都不属于此次提交的内容。所以,我们在提交的时候,JS显示有内容。但是,代理中根本无法获取最新的域值。

        以前的表单可以,主要是因为,他们直接写了一个新的form包裹住了需要提交的内容。而我在修改的时候,不再使用action这种方式,而是以整个表单的形式提交,表单会找到第一个form就会直接进行处理了。

       这个</form>之前我是有发现的,但是没有搞清楚它的作用没删除。结果,浪费了大把时间。

我和domino不得不说的故事(连载2016-3-2)

标签:

原文地址:http://www.cnblogs.com/liuyp-ken/p/5234798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!