Zoho Creator的优势劣势
优势
使用Zoho Creator可以无须自己搭建数据库,自己租用服务器,甚至不需要自己写数据存入数据库的代码逻辑,不用关心开发一套系统的各种底层工作,只关心业务流程模式即可,非常的简单易用,一个没有多少开发经验的人,也可以通过系统的学习上手这个开发平台,开发一套软件出来。
劣势
可以说Zoho Creator的上限就是你要开发的软件系统的上限,你说我用Zoho Creator 开发一个淘宝出来,理论上几乎是不可能的,起码牵扯付款这方面的api,Zoho文档中并没有过多介绍。
Zoho Creator的基本构成
Zoho Creator组成的基本元素分为Form、Report、Page、Workflow,通过Form来收集填写数据,数据填写完成提交写入Report,一个Form可以对应多个不同的Report,如果想看数据可以通过看Report来看数据,也可以写Page通过deluge获取数据渲染到Page上。
Form
通俗理解就是填写的表单,可以通过拖拽添加各种字段在里面,都是Zoho Creator官方提供的字段。
Report
其实一个Report就是一个数据库,而Report的数据头全部来自于Form,一个Form可以对应多个Report,Report可以有9种表现形式,最普通的是列表,其他的日历,透视图,看板,根据自己不同的需要选择不同的Report,感兴趣可以自己研究,不在赘述。
Page
Page页面,可以写自定义的HTML代码,插入deluge代码,也可以直接拖动现成的模板,排列组合自己想要的样式,也可以使用Zoho 提供的ZML语法,编写网页,理论上很强大,但是HTML不支持JS,现在网页离开JS几乎没法看,预计今年就会支持了。
WorkFlow
WorkFlow工作流,软件系统中,提供后台逻辑数据的各个处理,类似MVC模式中的C。工作流可以工作在Form的加载时、修改某个字段数据时、提交验证时、提交成功时、还有进行审批流程时,还有定时执行,可以连接zoho的其他工作组件等各个应用场景。
举个例子:当我提交一个表单时,除了当前Form,对应的Report数据会新增一条,我还想再另一个Report的数据里面也增加一条,这时候我可以使用提交成功的工作流,使用Deluge把数据写入另一个Report,我甚至还想发送一个邮件给谁谁,也可以使用Deluge封装好的Sendmail发送邮件给特定邮箱。
Deluge
deluge是zoho开发的一套,专门操作ZohoCreator系统的数据的语言,可以实现数据的增删改查,发送邮件,数据格式的转换,也可以封装Deluge语法的自定义函数,预计今年会增加Java和Node语法的自定义函数。
Zoho Creator 可以实现的功能
- 门户网站
可以建立门户网站,通过Form,Report。Page展示门户网站的各个页面数据,而用户的登录注册由Zoho Creator来控制,开发者无须编写登录注册的逻辑,开箱即用。 - 权限控制
Zoho Creator 有非常强大的权限控制,可以建立不同的用户组,然后给每个用户组分配不同的Form、Report的读写删除等权限,实现精确的控制。可以实现不同级别的用户访问不同的Form和Repor,Page,看到的页面展示自然也不同。 - 发送邮件
自己开发系统的话,要不自己写功能,要不找组件库,还得服务器支持收发邮件,或是寻找第三方服务,而zoho已经集成,在deluge中一行代码即可搞定发送邮件的功能 - 组件繁多
可以使用系统提供的日历,地图,看板,仪表盘等组件,组合成自己想要的页面 - 定时任务
可以使用定时工作流,在特定时间执行
6.强大的工作流
几乎可以满足任意需求场景。
7.非常好用的deluge编辑器
有代码提示功能,非常的好用。 发布页面
支持发布页面,发布的页面可以不用登录就可以访问填写数据,可以做匿名问卷。常用语法
零散
thisapp.portal.loginUserProfile(); //获取当前登录用户的权限组 thisapp.portal.loginUserEmailId() == zoho.loginuserid //获取当前登录用户的的Email openUrl("#Report:Employee_Detail_Report","same window");//打开名字为Employee_Detail_Report的Report alert "alert"; //类似js的alert thisapp.portal.assignUserInProfile(Email,input.Role); //修改用户权限组
发送邮件
sendmail
[
from :zoho.adminuserid
to :input.Personal_Email
subject :"Offer Letter"
message :("Dear " + input.Name) + ",<div><br></div><div>Congratulations!</div><div><br></div><div>We are extremely happy to welcome you and it is our pleasure that you have chosen us.</div><div><br></div><div>Kindly go through the offer letter which is downloadable in below link.</div><div><br></div><div>You are requested to confirm your acceptance of the offer on or before " + input.Offer_Expires_On + ", using this link.</div><div><br></div><div><a href=\"" + "https://app.zohocreator.com.cn" + zoho.appuri + "\"" + " target=\"_blank\">Click here</a> to check out offer.</div><div><br></div><div>Reg
]
插入数据
New_ID = insert into Employee_Onboarding_Details
[
Added_User=zoho.loginuser
Job_Start_Date=input.Job_Start_Date
Onboarding_Initiated_by=input.New_Hire_Process_Initiated_by
Country=Country_Name
Name.first_name=input.Name.first_name
Name.last_name=input.Name.last_name
];
取出数据修改数据
Employee_Data = Employee_Information[ID == Nid]; //根据条件取出数据
Employee_Data.In_Service_Status="Leave";//修改
删除数据
delete from Addtional_Benefits[ID != 0]; //删除所有数据
子表单展示数据
row = Compension.Addtional_Benefits();
for each val in Addtional_Benefits[ID == Nid]
{
row.Addtional_Benefit=val.Addtional_Benefit;
row.Effective_Date=val.Effective_Date;
row.End_Date=val.End_Date;
row.Benefit_Notes=val.Benefit_Notes;
row.Employee_Onboarding_Details=val.Employee_Onboarding_Details;
input.Addtional_Benefits.insert(row);
}
取出Report的照片显示在Page
<%
Person_Data = Employee_Details[Employee_ID == E_ID];
Photo = Person_Data.Your_Profile_Photo;
empPic = Photo;
empPic = empPic.replaceFirst("/sharedBy/appLinkName/viewLinkName/fieldName",zoho.appuri + "Person_Details_Report/Photo");
%>
<%=empPic%>
尾记
Zoho Creator还有沙箱,多语言支持功能,还有许许多多的功能未介绍,暂时这样,有机会在补充。