LOTUS 办公专题
 
 
 
 
 
                            CHE 300 5 W D – 200 7
                       Version 3 .0
 
 
 
 
 
 
Approved by :                               
 
 

Copyright Ó March , 2007 by mastudio Inc.
This document and the information contained in it shall not be used, or published, or disclosed outside of mastudio  in whole or in part without Mastudio’s consent. The copyright notice does not imply publication of this document.
 

1         背景

随着信息科技的高速发展,特别是网络技术和移动通信技术在全世界的推广,人们获取信息的手段发生了巨大变化,尤其是那些对实时信息要求强烈、移动性强的单位和个人,移动计算和无线数据技术将为他们的工作带来崭新的变化。
 
MAStudio 平台移动办公模块就是在这种技术发展的背景下提出来的,为政府机关、企事业单位移动办公提供的一套简洁实用的解决方案,目的是帮助用户高效率地把现有的计算机邮件和计算机办公应用借助互联网和无线网络扩展到智能手机或PDA上,使处于移动状态的工作人员可以随时随地通过手机上网方式继续保持与办公自动化系统的无缝衔接,随时查阅公文。
 

2         概要

移动办公属于MAStudio平台的一个模块,在移动平台的基础实现移动办公,通过连接到IBM Lotus系统,实现移动批阅文件、公文流转、公文签发,实时查阅会议通知、内部公告、灵活会捷,提高企业内部效率。
MAStudio 平台的优势在于将现有的办公系统实现其移动的特性,真正做到“随时随地”,无缝挂接运行中的办公平台,不需要对原有系统作改动、不影响原系统的运行。
 
 
 
 
 
 
 

3         Lotus Domino平台的移动办公的现状

目前国内使用Lotus Domino平台做为OA系统的政府和企业都是使用OA比较长的,比较有经验的用户;他们是最清楚OA给他们能带来什么效果。他们经过几年或10多年的应用;OA的使用已经进入一个成熟稳定期;需求上也相对比较稳定;每加一个需求都比较慎重;不希望对原由的结构进行调整。
目前随着智能手机和无线网络的发展;已经具备了实现移动OA的外部环境。对于Lotus Domino原有的用户来说,他们领导层也非常迫切需要在手机上来进行公文审批;但是信息部门对原来OA实施的时候面对的周期过长、代码反复调整、领导需求变化、实施推广等等以前头痛的问题还历历在目;现在好不容易OA稳定下来;而且又用得很顺畅了;如果现在要上移动OA;又需要将OA大面积的改造;带来的风险是非常高的;
如何实现能不需要修改现有OA的结构甚至代码;从而能将Lotus Domino OA拓展到手机上使用;这个就是目前Lotus用户主要的困境。
由于Lotus Domino有良好的二次开发环境(其Designer简单易用);使得用户经常可以在原来OA厂家提供的产品上进行深层次的改造;二是这些用户通常都有信息部门;这些信息部门大多数都具有一定的开发能力;这使得在上移动OA的时候,他们希望得到的不仅仅是一个产品;事实上想要一个平台;再这个平台上可以自己对其进行任意的功能增加、修改;这样才符合Lotus Domino用户群的需要。
MAStudio 平台正好解决了以上这两个问题:
MAStudio 提供了网页接口模式(HTTP方法);就是通过模拟浏览器向DOMINOHTTP SERVER提交(post/get)URL来获取到文档(openDocument)、视图(openView)、运行现有的代理(openagent)、新建文档(openForm)等等操作;充分利用现有domino的设计元素来进行数据交互。
MAStudio 是一个完整的平台;其全称为移动(mobile)应用(application)工作室(Studio)。我们有优秀的配置文件的设置;客户可以根据自己的需求,随意修改;包括用户界面和功能。具有其二次开发能力只需培训一周。
 

4         我们的优势

1.      您只需要配置一下,不需要修改原有系统代码;就可以将现有C/SB/S架构系统(OA,财务管理,CRM,ERP)扩展到手机上来应用。
2.      实施周期短,通常两周内就可以将一个系统大部份功能扩展到智能手机上使用。
3.      附件支持
1)      可以在线查看doc,xls,pdf,tif,tiff,bmp,txt,jpg文件。
2)      可以分页查看,可放大、缩小查看,以及移动显示内容。
3)      其中doc文件要达到
a)      展示内容包含文字、表格、图片;同时支持混排。
b)      依据WORD原文的分页进行分页显示。
4)      支持附件下载。
5)      支持附件上传。
6)      大附件支持,对于5M大小的文件、展示速度平均在3秒以内,也是目前最先进的技术。
4.      客户也可以自己进行二次开发;我们有优秀的配置文件的设置.客户可以根据自己的需求,随意修改;包括用户界面和功能.
5.      可以同时支持SymbianWindows Mobile两种手机操作系统;而不需要另外写配置脚本。
6.      价格超低
7.      为你的产品OEM(logo等任何标识都为贵公司);让你低成本拥有移动办公产品;快速的进入移动信息化领域。
 

5         实现原理

 
MAStudio 系统由服务器部分和客户端部分组成,通过无线网络、Internet相连接。MAStudio服务器架设于企业局域网络中,负责连接企业DOMINO系统。MAStudio客户端安装于手机/PDA等无线终端,通过无线网络连接到MAStudio服务器,读取数据和指令。
MAStudio 服务器可以部署在Domino服务器上也可以部署在单独服务器上。
MAStudio Lotus Domino的数据交换主要是通过如下两种方式进行数据交换:
*        HTTP 方式:主要通过向DominoHTTP SERVER进行POSTGET请求;请求的URL是现有OA的应用连接如openDocumentopenViewopenAgentopenFormeditDocument等;对请求回来的结果;采用正则表达式进行匹配;匹配的结果整理后PUSH到手机终端显示。
*        API for C++ 方式:主要是通过Lotus提供的API;配上相对.id文件进行对nsf数据库进行直接数据操作。

6         MAS脚本的语法

4.1. HTTP方式

4.1.1  使用条件

Lotus Domino 启用了HTTP SERVER;而且OA系统大多数功能是B/S模式的。

4.1.2  登陆

[Datasource]
Database= HTTP
Server= --raw--http://服务器IP/names.nsf?login
Flow=--raw--username=[User]&password=[Pwd]&RedirectTo=您系统首页的URL
Port= 80                                           //端口号
Method= Post                                    //提交方式;通常登陆都为POST
Preget= --raw--http:// 服务器IP /names.nsf?login  //预处理;获取登陆页面的数据一并提交;
Lex= //获取%%ModDate值进行提交

4.1.3  数据源的设置

gServer= "服务器IP"
OBJECT wxDATASOURCE aSource
{
private:
      aSource.Database= HTTP
      PRINT "aSource.Server= ""--raw--", gServer, "/names.nsf?login"""
      aSource.Port= 80                               //端口号
      aSource.Method= "Post"
      aSource.Timeout= 5
      var= "--raw--username="
      var= var+ sysGLOBAL.USER
      var= var+ "&password="
      var= var+ sysGLOBAL.PASSWORD
      var=var+"&RedirectTo=重定向的首页URL"
      PRINT "aSource.Flow=""", var, """"
}
 
aSource.Flow参数,是提交的数据,其中用户和密码分别是sysGLOBAL.USERsysGLOBAL.PASSWORD
 

4.1.4  获取视图数据

OBJECT wxQUERY aQuery
{
      sUrl = "--raw--http://"                            //加上—raw—是代表按原文不进行额外的编码或去?号等操作;进行提交
      sUrl=sUrl+gServer+"/"+"/test.nsf/视图名?openview"                                                            访问数据页面
      aQuery.wxDATASOURCE= gSource
      aQuery.wxRECORDSET= aRecord
 
      PRINT "aQuery.Url=""",sUrl,""""
      aQuery.Begin= "

(所有发文)

"     //
定义开始匹配点
      aQuery.End= ""                              //结束定义点
aQuery.Lex=" (.+?)(.+?)(.+?)(.+?)(.+?)(.+?) "                                                    //正则表达式;数据匹配
      aQuery.Method= Get                                //请求方式
      aQuery.Split= 3                                        分页大小
      aQuery.Page= 1
      aQuery.No= true
 
      aQuery.wxRECORDSET= aRecord
}
 

4.1.5  获取文档的数据

OBJECT wxQUERY aQuery
{
    sUrl = "--raw--http://"
    sUrl=sUrl+gServer+"/test.nsf/0/03DD0E6B52ABD7EC482574A900159D1A?openDocument"                          // 获取具体文档的资料
    aQuery.wxDATASOURCE= gSource
    aQuery.wxRECORDSET= aRecord
    PRINT "aQuery.Url=""",sUrl,""""
    aQuery.Begin= " 发文编号"
    aQuery.Lex= " .+?.+?.+?(.+?)