钉钉、钉应用(微应用和E应用)开发介绍
钉钉,数字化新工作方式,让工作更简单
目前在钉钉的官网可以看到,超过700万家企业组织正在使用钉钉。笔者也相信,这一数字每天都在增加。获得群众的认可,也是理所当然的,体验过钉钉,就能感觉到,钉钉的考勤、签到、审批、日报、周报、钉消息、视频会议等等做得非常好。笔者已使用钉钉将近4年,能体验到的唯一不足就是PC端的钉钉偶尔会觉得有点卡,当然这个不能排除是电脑配置低这一因素。目前钉钉很多基础功能都是免费,对于小微企业来说无疑是一大福音。对于钉钉的介绍,一片文章是不够的。本文主要讲的,是作为发展中的企业,可以基于钉钉做些什么?开发钉应用,怎么开发,能解决哪些问题。
钉应用能做什么
大多数企业在起步阶段,乃至后续发展壮大的过程中,都会面临数据管理的问题,而数据管理最有用的工具莫过于Excel。财务报表,库存报表,业务数据整理,员工积分管理,企业培训记录,其实都可以通过Excel解决。然而随着时间推移,业务复杂化,Excel做数据整理会面临很多问题,比如:时效性不高,很多数据无法实时统计与采集。数据维护困难,Excel维护需要人工统计。数据准确性难保证,操作失误等等会导致数据不对,且排查困难。这个时候就需要针对特定的业务场景,进行企业应用开发。
结合钉钉的钉应用开发,与一般的企业应用开发不同之处在于,钉应用能够更迅速专注于业务。钉钉替企业管理者维护了部门、员工、角色,这些组织架构。所以,钉钉管组织架构,钉应用管业务,很直接的说,钉应用就是来取代Excel的。
钉应用能用到钉钉哪些能力
自己开发的钉应用能用到哪些能力,主要取决于钉钉开放了哪些数据接口。下面列举几个主要的。服务端钉钉开放了通讯录接口,钉应用能拉取企业的组织架构信息,这也是一个应用最基础的信息;免登接口,也就是说员工访问钉应用,不需要输用户名密码就能登录;审批接口,钉应用能够同步获取审批信息,以便于在审批信息中对数据做进一步处理;消息通知接口,钉应用能够发钉消息以及其他定制消息;考勤接口,钉应用能获取考勤数据,并基于考勤数据做一些定制开发。还有公告、签到、群机器人等等,提供了一系列能力,以便于钉应用基于这些能力解决业务问题。
在真实的开发场景中,业务问题总是复杂的,只是问题本身有大小之分,复杂有复杂程度的区别。上一节讲到钉应用一大作用就是取代Excel,钉应用的复杂程度,其实也就是编写Excel的复杂程度。也是因此,使用钉钉单一的能力,往往无法解决业务问题,而需要综合使用。找不到解决方案的朋友可以加笔者的微信,一起讨论下。
举几个小的钉应用例子
纸上得来终觉浅,躬行起来又有点难。没关系,先看几个例子。例子都很简单,简单却能说明问题。
证件管理。业务场景:办公室的一些证件,比如车辆行驶证、企业相关资质、荣誉证书等等,一般是某位员工管理,平时用不到,要用的时候找不到人。因此做个小应用管理起来,最好加个过期提醒,提醒管理员去更换。解决方案设计:使用到钉钉通讯录能力、消息能力。在钉钉后台设计证件管理员角色,业务数据为证件数据,证件关键属性有负责人、电话、过期时间,过期时间快到了,就发送钉钉消息提醒。
积分奖励。业务场景:为鼓励工作积极的员工,可由员工为自己的正面工作行为申请加积分,通过后积分到账,可用于兑换小奖励。解决方案设计:使用钉钉通讯录能力、审批能力。在后台设计积分奖励管理员角色,同步指定审批数据,对审批通过的积分申请,增加指定员工的积分。员工使用钉应用上显示的积分执行奖励兑换。
小结
钉钉提供了一个企业的移动办公平台,而且基础功能是免费的。对于企业在基础功能之上的特性需求,钉钉提供了相对丰富的能力,提供了微应用和E应用的方式(这两种方式没什么本质区别),帮助企业能够比较小成本的实现特性需求的脱Excel化。
脱Excel,拥抱钉应用对于企业办公意味着什么?意味着降本增效,也就是意味着省去人工成本,加速办公效率,使数据实效化。更是意味着拥抱科技,占领高地,拥抱未来。
钉钉、钉应用(微应用和E应用)开发介绍的更多相关文章
- 微控工具xp模块-开发版[微信(wechat)二次开发模块]
http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...
- 钉钉企业内部H5微应用开发
企业内部H5微应用开发 分为 服务端API和前端API的开发,主要涉及到进入应用免登流程和JSAPI鉴权. JSAPI鉴权开发步骤: 1.创建H5微应用 登入钉钉开放平台(https://open-d ...
- jenkins 设置钉钉通知--钉钉机器人
https://blog.csdn.net/workdsz/article/details/77531802
- 微控制器(MCU)架构介绍
微控制器(MicroController)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM.RAM.CPU.I/O集合在同一个芯片中, ...
- 基于.net的微服务架构下的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- 微服务架构之spring cloud 介绍
在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大 ...
- Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...
- Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现
昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...
- Spring Boot微服务电商项目开发实战 --- 分布式开发要避的那些坑
今天已经进入第七讲了,整个微服务架构的搭建工作也基本完成.那到目前为止究竟使用了那些技术及实现了什么功能呢?我们先回顾一下. 使用的技术:SpringBoot.Dubbo.Zookeeper.Redi ...
随机推荐
- 查看whl包名是否满足系统的条件的命令,以此解决whl包出现“is not a supported wheel on this platform”错误提示的问题
在Ubuntu系统中,使用pip安装whl包时,常常会报如下错误: tensorflow_gpu-1.11.0-cp35-cp35m-manylinux1_x86_64.whl is not a su ...
- 简单实现KNN(处理连续型数据)
import numpy as np import matplotlib.pyplot as plt import time import math import collections raw_da ...
- ubuntu set up 5 - VIM
Edit ~/.vimrc source vimrc: :so ~/.vimrc 1. ctrl - left/right 切换tabs https://vim.fandom.com/wiki/Usi ...
- PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来.现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换. 输入格式: 输入在第一行给出一幅图像的分辨 ...
- 浅识mysql主键
primary key:主键,又叫主键约束. primary key在表中是唯一代表一条记录的.primary key可以是1列,或者多列组合而成的. 如何查看一个表的主键是什么,举个例子: desc ...
- go append 函数常见操作
1. 将切片 b 的元素追加到切片 a 之后: a = append(a, b...) 2. 复制切片 a 的元素到新的切片 b 上: 1. b = make([]T, len(a)) 2. copy ...
- C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用. 许多文件系统操作实质上是查询,因此非常适合使用LINQ方 ...
- tensorflow expand_dims和squeeze
有时我们会碰到升维或降维的需求,比如现在有一个图像样本,形状是 [height, width, channels],我们需要把它输入到已经训练好的模型中做分类,而模型定义的输入变量是一个batch,即 ...
- 从ASCII到Unicode再到UTF-8的历史原由
编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节(生僻字4个) 所有语言 UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言 具体解释: ...
- java中锁与@Transactional同时使用导致锁失效的问题
示例代码 @Transactional public void update(int id) { boolean lock = redisLock.lock(id); if (!lock) { thr ...