通达OA二次开发手册.docx

上传人:b****8 文档编号:11016745 上传时间:2023-02-24 格式:DOCX 页数:85 大小:41.71KB
下载 相关 举报
通达OA二次开发手册.docx_第1页
第1页 / 共85页
通达OA二次开发手册.docx_第2页
第2页 / 共85页
通达OA二次开发手册.docx_第3页
第3页 / 共85页
通达OA二次开发手册.docx_第4页
第4页 / 共85页
通达OA二次开发手册.docx_第5页
第5页 / 共85页
点击查看更多>>
下载资源
资源描述

通达OA二次开发手册.docx

《通达OA二次开发手册.docx》由会员分享,可在线阅读,更多相关《通达OA二次开发手册.docx(85页珍藏版)》请在冰豆网上搜索。

通达OA二次开发手册.docx

通达OA二次开发手册

OfficeAnywhere网络智能办公系统

二次开发手册

V8.1.150425(2015版)

通达信科

中国兵器工业信息中心

目录1

前言1

第一章软件开发环境简介2

1.1编程环境2

1.3参数配置4

1.3.1OfficeFPM配置4

1.3.2OfficWeb配置4

1.3.3PHP配置4

1.3.4MySQL配置4

1.3.5OfficWeb、OfficeFPM和PHP的关系4

1.4核心文件5

5

5

5

1.4.4conn.php(MYOA\webroot\inc\)6

第二章数据库管理7

2.1phpMyAdmin的安装7

2.2phpMyAdmin的使用7

第三章如何创建一个模块10

3.1建立模块目录10

3.2创建菜单10

3.3分配菜单权限11

3.4编码和测试11

3.4.1系统变量12

3.4.2PHP代码样例12

3.4.3连接数据库代码13

第四章内置类库参考14

4.1TD类14

4.1.1成员函数14

4.2PortalData类15

4.2.1成员函数15

4.3ExcelReader类18

4.3.1成员函数18

4.4Workflow相关类19

4.4.1TworkForm类的成员函数19

4.4.2TworkRun类的成员函数20

第五章内置函数参考25

5.1utility.php25

5.1.1Message25

5.1.2Button_Back25

5.1.3find_id26

5.1.4get_client_ip26

5.2utility_all.php26

5.2.1csubstr26

5.2.2is_ip27

5.2.3add_log27

5.2.4get_code_name28

5.2.5dept_long_name28

5.2.6get_sys_para28

5.2.7set_sys_para29

5.3utility_org.php29

5.3.1is_dept_parent29

5.3.2top_dept30

5.3.3GetDeptNameById30

5.3.4GetPrivNameById30

5.3.5GetUserNameById31

5.3.6GetUserNameByUid31

5.3.7my_exclude_uid31

5.3.8GetUnionSetOfChildDeptId32

5.3.9GetfunmenuByuserID32

32

33

33

34

34

5.4utility_sms1.php34

5.4.1send_sms34

5.4.2delete_sms35

5.5utility_sms2.php35

5.5.1send_mobile_sms_user35

5.5.2send_mobile_sms36

5.6utility_file.php36

5.6.1upload36

5.6.2delete_attach37

5.6.3attach_size37

5.6.4copy_attach37

5.6.5is_uploadable38

5.6.6is_text38

5.6.7is_office39

5.6.8is_image39

5.6.9is_viewable39

40

40

40

41

41

42

42

42

43

43

43

44

44

44

45

45

46

46

47

47

5.6.30attach_link_pda48

48

49

49

50

50

50

51

51

52

52

52

53

53

53

54

54

54

55

55

55

56

56

56

57

57

57

5.7utility_email.php58

5.7.1GetWebMailNumByUid58

5.7.2GetSentMailNum58

5.7.3trim_notlogin59

5.7.4insert_to_address59

5.7.5get_email_data59

5.7.6remove_email60

5.7.7get_sentbox_data60

5.7.8delete_email61

5.7.9destroy_email61

61

62

62

62

5.8utility_calendar.php63

5.8.1insert_taskcenter63

5.8.2add_calendar63

5.8.3update_calendar63

5.8.4get_list_data64

5.8.5delete_calendar64

第六章公用组件参考65

6.1人员多选65

6.2人员单选65

6.3部门多选66

6.4部门单选67

6.5角色多选68

第七章典型功能简析68

7.1用户名相关69

7.2登录密码加密69

7.3系统缓存机制69

7.4OA升级产生的变化70

7.4.12013版升级到2013增强版70

7.4.22013增强版升级到2015版71

前言

OfficeAnywhere网络智能办公系统(以下简称通达OA),不仅是一套成熟的网络办公系统,同时也是一个完整、精巧的软件开发平台,不仅集成了Web开发的全套环境,并提供了管理架构、系统资源的开放性支持,是开发中小型管理应用系统的理想平台。

本文将从不同的技术层面向您揭示通达OA的二次开发细节,是主要针对专职程序设计人员、编程爱好者、软件产品技术支持人员编写的OA二次开发入门教程。

通过阅读本文,您将不仅可以了解通达OA的设计奥秘,也将能够运用本文所介绍的知识和技巧,轻松构建属于自己的应用系统或模块,文中将结合具体实例加以说明。

第一章软件开发环境简介

1.1编程环境

通达OA主要采用PHP语言开发,系统使用MySQL数据库。

在Windows平台下,通达OA主要注册了9个系统服务,可以通过控制面板-〉管理工具-〉服务,查看这9项服务,服务名分别是Office_Web、MySQL5_OA、Office_Redis、OfficeDaemon、OfficeIm、OfficeIndex、OfficeMail、OfficePOP3、OfficeTask,Office_Web是管理ngnix进程的服务,Office_Web是通达OA所使用的WebServer,通达OA也可以支持IIS作为WebServer,具体配置方法参见通达网站OA知识库相关文档。

关于PHP语言的使用,可参阅,下载PHP手册,作为开发指导,PHP版本已升级至5.3,该版本中许多函数或方法有调整,使用时需要注意;关于MySQL数据库的管理与使用,将在第二章进行详细介绍。

1.2目录层次结构

通达OA的目录层次结构清晰,体现出对服务程序、应用程序、WEB页面的巧妙整合与组织,便于理解和扩充,下面对目录结构加以说明:

MYOA

├─attachOA附件文件存放目录

├─binPHP、Zend等主程序及配置文件,服务配置程序等

├─data5MySQL数据库文件目录

│├─BUS公交线路查询数据库

│├─TD_OA通达OA主数据库

│├─crscell报表数据库

│├─MySQLMySQL系统数据库

│├─TD_OA_ARCHIVE通达OA归档数据库

│├─ib_logfile0InnoDB引擎使用的日志文件

│├─ib_logfile1InnoDB引擎使用的日志文件

│└─ibdata1InnoDB引擎存储数据与索引的数据文件

├─logsOA服务等的日志文件目录

├─MyAdmin通达OA的MySQL管理工具

├─mysql5MySQL主程序文件

├─nginx高性能的通达NginxWeb应用服务

├─tmp临时文件目录

└─webroot通达OA的WEB根目录(PHP程序目录)

├─attachment部分OA附件文件存放目录

 │├─hrms_pic人事档案照片目录

 │├─product_pic销售管理产品照片存放目录

│├─new_sms新短消息提醒状态文件

│├─……部分附件目录(略)

 │├─rss今日资讯信息缓存文件

│├─update系统升级,该文件夹下如存在1.php会被自动执行并删除

│├─weather天气预报缓存文件

 │└─wm外部邮件存储目录

 ├─general主要模块目录

 │├─……一般模块目录(略)

 │├─ipanel主控面板,集成了菜单、短信箱等应用控制界面

 │├─mytable桌面模块程序

 │└─system系统功能模块,下级目录略

 ├─inc系统通用程序及函数目录

├─ispiritOA精灵页面

 ├─mobileOA移动界面

 ├─module系统组件

 │├─dept_select部门选择组件

 │├─editor简易HTML编辑器组件

 │├─OCOffice文档在线编辑与阅读

 │├─OC_NETDISK文档在线编辑与阅读-仅适用于网络硬盘

 │├─save_file文件转存组件

 │├─user_select用户多选组件

 │└─user_select_single用户单选组件

├─portal门户界面

└─static系统通用程序及静态文件目录

 ├─common通用css文件及其引用的图片文件

 ├─images所有代码中的标签src引用的图片文件

├─templates登录界面模版

├─theme界面主题

├─wav微讯提醒声音

├─js界面主题

├─templates登录界面模版

└─modules所有模块非通用的css文件及其引用的图片文件等的目录

├─address通讯簿非通用css文件及其引用的图片文件

├─……部分模块目录(略)

└─workflow工作流非通用css文件及其引用的图片文件

注:

上表中红色颜色标示的目录是备份数据时需要备份的,是OA的所有数据所存放的目录。

1.3参数配置

1.3.1OfficeFPM配置(MYOA\bin\service.ini)

Listen=8266//监听端口

ProcessNumber=10//fastcgi进程数

1.3.2OfficWeb配置(MYOA\bin\service.ini)

Listen=2367//监听端口

MemoryWarning=100//非工作时间OfficeNginx.exe占用内存的最大值,单位为兆字节(MB)

MemoryMax=200//工作时间OfficeNginx.exe占用内存的最大值,单位为兆字节(MB)

1.3.3PHP配置(MYOA\bin\php.ini)

display_errors=Off//是否显示PHP程序错误

log_errors=Off//是否记录错误日志

error_log=filename//错误日志记录文件

max_execution_time=1200//程序最大执行时间,单位秒

memory_limit=256M//单个程序占用内存上限

post_max_size=1000M//表单提交最大数据量,单位MB

upload_max_filesize=200M//上传单个附件大小,单位MB

1.3.4MySQL配置(MYOA\mysql5\my.ini)

basedir=D:

/MYOA/mysql5///MySQL主程序路径

datadir=D:

/MYOA/data5///MySQL数据库路径

tmpdir=D:

/MYOA/tmp///缓存路径

character-set-server=gbk//MySQL数据库字编码

port=3336//端口

wait_timeout=30//SQL语句执行结束后自动断开时间

interactive_timeout=30//运行SQL语句时段开时间

skip-name-resolve//避免外部锁定(默认是ON)

//允许远程连接

innodb_file_per_table=1//启用独立表空间模式

innodb_file_format=Barracuda//InnoDB数据压缩

注:

以上所有的配置选项修改后都需要重启服务才会生效。

1.3.5OfficWeb、OfficeFPM和PHP的关系

OfficeWeb服务守护OfficeFPM进程和OfficeNginx。

OfficeFPM进程启动多个(ProcessNumber)FastCGI进程。

OfficeWeb根据配置参数(MemoryWarning和MemoryMax)定时检测OfficeNginx的内存占用情况,保证OfficeNginx时刻处于正常响应状态。

1.4核心文件

1.4.1MYOA\webroot\inc\)

例:

1.4.2(MYOA\webroot\inc\)

例:

$HTML_PAGE_TITLE=_("页面标题");

1.4.3MYOA\webroot\inc\)

为了防止用户输入不安全数据等,通达OA为您提供了用户输入数据($_GET、$_POST、$_COOKIE)过滤和校验程序,原则上所有php页面文件都需要包含,但如果页面已经包含过。

例:

1.4.4conn.php(MYOA\webroot\inc\)

例:

include_once("inc/conn.php");

第二章数据库管理

2.1phpMyAdmin的安装

MySQL的数据库管理工具很多,phpMyAdmin是使用PHP编写的免费MySQL数据库管理工具。

由于OA的MySQL数据库出于安全考虑,被配置为仅能从本机访问,所以使用phpMyAdmin这样的B/S结构的管理工具,可实现数据库的远程管理。

第一步、下载程序包

第二步、解压缩

在MYOA\webroot目录下新建一个目录,如mysql369(为了防止他人利用该工具侵入数据库系统,可把目录名设为比较复杂的,如MySQL2345,避免目录名被猜测到。

),将下载的程序包解压后拷贝至mysql369目录下。

第三步、修改配置文件

用文本编辑器,如记事本,打开MySQL管理工具目录,复制

$cfg['blowfish_secret']='';//随便输入一个字符串,加密Cookie等信息

$cfg['Servers'][$i]['auth_type']='http';//http,config,cookie,建议使用http

$cfg['Servers'][$i]['host']='localhost';//数据库地址,默认为localhost

$cfg['Servers'][$i]['port']='3336';//数据库端口,默认为3336

$cfg['Servers'][$i]['user']='root';//数据库用户名,默认为root

$cfg['Servers'][$i]['password']='';//数据库密码,默认为myoa888

第四步、使用phpMyAdmin

MySQL管理工具地址:

OA地址/mysql,注意,进入后先选择中文界面(中文-Chinesesimplified)。

该管理工具的使用需具有一定数据库基础,请勿进行危险操作,以免导致数据丢失。

2.2phpMyAdmin的使用

phpMyAdmin主界面如下

在左侧选择TD数据库,可查看OA所有的数据表,如下图

点击左侧的表名,则右侧列出该表的结构和字段、索引、记录数等信息,如下图

phpMyAdmin的具体使用教程方法可以参考通达网站/OA知识库/OfficeAnywhere高级应用技巧/OA数据库管理工具/mysql网页方式管理工具/phpMyAdmin的安装和使用.wmv。

第三章如何创建一个模块

创建一个模块一般需要经过以下几个步骤:

根据功能建立程序存放目录、创建菜单、分配菜单权限、编码、测试等。

3.1建立模块目录

在MYOA\webroot\general下建议一个目录new_module,作为自己开发模块的目录,将程序放置于该目录下,默认页面是index.php或index.html或index.htm

3.2创建菜单

用管理员帐号进入OA,打开系统管理->菜单设置,在相应的一级菜单后点击“下一级”链接,在右侧的界面上点击“增加子菜单项”按钮,如下图所示:

详细阅读上图界面中的说明信息,按界面上说明的要求定义好菜单:

子菜单项ID:

系统自动生成,无须调整

上级菜单:

根据自己的实际应用情况调整

子菜单项代码:

两位的数字或字母,作为排序之用

子菜单项名称:

根据自己的实际应用自行填写

子菜单模块路径:

该菜单对应的程序目录,应为上一个步骤创建的目录名称。

如果为new_module,则该菜单对应的菜单图片名称为MYOA\webroot\static\images\menu\new_mod

ule.gif,需要自己创建或拷贝new_module.gif拷贝至MYOA\webroot\static\images\menu下。

3.3分配菜单权限

用系统管理员账号,在菜单创建完成后跳转界面直接可以给指定菜单分配权限(首次分配菜单权限时需要验证超级密码,与系统管理->组织机构设置->角色与权限管理中超级密码一致),如下图所示:

也可以使用传统方式给新建菜单分配权限,用管理员帐号进入OA,打开系统管理->组织机构设置->角色与权限管理,给相关的角色分配刚创建的菜单的使用权限,则相关角色的人员就可以在OA界面左侧的菜单中看到并访问该菜单。

3.4编码和测试

为便于用户开发自己的模块,通达科技在用户服务区提供了OfficeAnywhere部份模块源码的下载,供开发人员参考。

用户自行开发OA的功能模块,需要根据OA的相关规范进行开发,这样既可以使自行开发的模块和OA的界面效果一致,又可以保证自行开发的程序在OA安全框架的保护之下,这样不仅可以保证新模块数据的安全,又可以使开发人员集中精力投入到模块功能的开发上。

OA的各功能模块下的每个程序都需要包含OA的安全验证程序:

inc/auth.inc.php。

该程序包含了对用户登录信息、是否有权限访问该路径等的检查等。

具体的语法为:

include_once("inc/auth.inc

在开发自己的功能模块时可以参考现有OA模块,把功能相似的OA模块代码复制一份,然后在OA代码的基础上修改。

以下几个小节介绍OA系统变量和数据库的使用。

3.4.1系统变量

OA系统提供了多个通过SESSION保存的当前用户的系统变量,分别是

$_SESSION["LOGIN_UID"]//用户数字ID

$_SESSION["LOGIN_USER_ID"]//用户名,无意义

$_SESSION["LOGIN_BYNAME"]//用户名,又叫用户别名,登录使用

$_SESSION["LOGIN_USER_NAME"]//用户真实姓名

$_SESSION["LOGIN_USER_PRIV"]//用户角色ID

$_SESSION["LOGIN_USER_PRIV_OTHER"]//用户辅助角色ID

$_SESSION["LOGIN_SYS_ADMIN"]//用户是否有系统管理员权限

$_SESSION["LOGIN_DEPT_ID"]//用户部门ID

$_SESSION["LOGIN_DEPT_ID_OTHER"]//用户辅助部门ID

$_SESSION["LOGIN_AVATAR"]//用户头像

$_SESSION["LOGIN_THEME"]//用户界面主题

$_SESSION["LOGIN_FUNC_STR"]//用户模块权限

$_SESSION["LOGIN_NOT_VIEW_USER"]//用户禁止查看用户列表

$_SESSION["LOGIN_DEPT_ID_JUNIOR"]//用户所在部门和所属部门合集字符串

$_SESSION["LOGIN_CLIENT"]//用户登录OA的设备类型

$_SESSION["LOGIN_USER_SEX"]//用户性别

如需使用这些系统变量,程序需要包含auth.inc.php,如下代码:

include_once("inc/auth.inc.php");

echo"我的登录用户名是".$_SESSION["LOGIN_BYNAME"];//本句中的.表示字符串连接

?

>

3.4.2PHP代码样例

以下是一段样例代码index.php,可放置于new_module目录下,可作为开发OA应用程序的模版。

//或/*…*/是PHP的注释语句。

include_once("inc/auth.inc.php");//如需登录验证则包含,未登录将退出

//include_once("inc/conn.php");//如需要连接数据库则包含

//如已包含auth.inc.php,则无须包含conn.php

//include_once("inc/utility_all.php");//如需要使用公用函数则包含

//include_once("inc/check_type.php");//如需要使用类型检验函数则包含

$HTML_PAGE_TITLE=_("功能模块名称");

//如有HTML代码输出则包含

?

>

echo"当前登录的用户为:

".$_SESSION["LOGIN_USER_NAME"].",用户名为:

".$_SESSION["LOGIN_BYNAME"];

?

>

程序运行结果如下:

3.4.3连接数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1