新鲜尝试一下2016/8/14维护时新出的功能

aki发表于:2017年02月06日 16:44:58更新于:2020年07月09日 11:01:27

2016/8/14的kintone定期维护时发布了如下链接中的新功能。

2016/08/14 定期维护时的kintone API、User API更新信息(仅提供日文)

  • kintone JavaScript API

    • 记录添加或编辑页面保存成功后的事件
      可在添加或编辑记录后保存成功的时候、或者在记录列表页面的行内编辑后保存成功的时候,添加要执行的处理。
      ※仅支持PC版。

  • 打印页面显示事件

    • 在记录显示页面按下打印按钮,显示打印页面时,可执行app.record.print.show事件。
      ※仅支持PC版。

  • kintone REST API

    • 在空间的主题内发表评论或填写了回复
      指定空间ID和主题ID,可给主题添加评论或回复。

以上新功能就介绍到这里,接下来简单介绍一下实际上如何使用这些功能。

记录添加或编辑页面保存成功后的事件

记录添加或编辑页面在执行保存之前的事件已经有了,这次新增的是“保存之后的事件”。

记录添加页面保存成功后的事件

有了这个事件我们就可以在保存成功的这个时间点上添加一些处理了。例如,可以将保存成功的数据添加到其他应用中(添增记录)、或者进行更新等等。如果是仓库管理应用的话,假设新添加了一条订单记录,这时可以让仓库管理应用中的库存数据自动减少。也可以获取新添加的记录的记录编号。
记录添加或编辑页面在执行保存之前的事件比较的话,可以有以下用法。

使用记录保存前的事件可以做哪些自定义呢

  • 检查记录中的数据内容,如果有问题,报错不让保存
    不让保存数据,也就是可以做数据的有效验证。

  • 在保存之前,编辑记录数据然后保存
    在保存之前可以执行统一格式或数据重新计算等处理。比如,将半角转换成全角等。

使用记录保存后的事件可以做哪些自定义呢

  • 将保存后的记录编号登记到其他应用
    如果是新添加记录,使用记录保存前的事件无法获取记录编号(因为还没保存,理所当然获取不到)。但是这次新添加的功能,就可以将保存后的记录编号登记到其他应用或发布到主题。

  • 保存成功时操作其他应用
    记录保存后的事件可以确保记录保存成功。使用这个的话,可便于对库存数量的增减等情况进行自定义。

打印页面的显示事件

以前打印的时候因为不能使用JavaScript,无法改变页面外观。这次新增的“打印页面显示事件”可实现打印页面的自定义,打印功能将变得更加便捷。

记录打印页面显示事件

另外,如果和空白栏字段和起来用的话,可以灵活地指定打印内容。
举个比较极端的例子,使用以下代码,可以隐藏所有字段,在空白栏字段中显示要打印的内容。

jQuery.noConflict();
(function($) {
    "use strict";
    kintone.events.on("app.record.print.show", function(event) {
        var record = event.record;
        kintone.app.record.setFieldShown('顾客编号', false);
        kintone.app.record.setFieldShown('公司名称', false);
        kintone.app.record.setFieldShown('部门', false);
        kintone.app.record.setFieldShown('对方负责人', false);
        kintone.app.record.setFieldShown('TEL', false);
        kintone.app.record.setFieldShown('FAX', false);
        kintone.app.record.setFieldShown('邮件地址', false);
        kintone.app.record.setFieldShown('预计签约日', false);
        kintone.app.record.setFieldShown('签约几率', false);
        kintone.app.record.setFieldShown('产品名称', false);
        kintone.app.record.setFieldShown('单价', false);
        kintone.app.record.setFieldShown('用户数', false);
        kintone.app.record.setFieldShown('合计', false);
        var printContent = 
            "公司名称: "  + record.公司名称.value + "<br>"
            + "部门: " + record.部门.value + "<br>"
            + "负责人(TEL): " + record.对方负责人.value + "(" + record.TEL.value + ")<br>";
        var printField = kintone.app.record.getSpaceElement('print_space');
        $(printField).append(printContent);
    });
})(jQuery);
  • JavaScript自定义启用之前
    00158a655c59d859cd6a38f08ca5bb7

  • JavaScript自定义启用之后
    00158a655bcc21536e3b70189440db2

发布评论到空间内的主题

最近新出来记录回复的API,这次又新出来了向空间发布评论或回复的API。(不可删除或更改)
使用这个的话,可以直接从应用端向主题发表评论,让该主题的相关人员都知道,或者需要大家一起讨论的记录可以直接搬到主题里讨论,更加便于信息共享。

向空间的主题发布评价或回复

下面的范例是与刚才提到的“记录保存成功后事件”结合起来使用的情况,点击保存的时候,该记录的URL自动发到空间。

(function() {
    "use strict";
    // 记录保存时的事件
    kintone.events.on("app.record.create.submit.success", function(event) {
        var record = event.record;
        // 发布到主题的内容。也显示记录的URL。
        var post = "日报已经提交。请检查后Feedback。\n"
                 + location.origin + location.pathname + "#record=" + record.$id.value;
        // 发布到主题
        kintone.api(kintone.api.url('/k/v1/space/thread/comment'), 'POST', {
            space: 1,  // 任意的空间ID
            thread: 1, // 任意的主题ID
            comment: {
                text: post
            }
        });
    });
})();

00158a65a401fa4c43194e94cb01484

上面的使用场景,也可以处理通知功能。灵活运用的话,可以用于多个使用场景。

其他

可导入的JavaScript文件大小也扩展了。
起码可实现多个JavaScript文件绑定成一个上传。

  • 扩展了可导入的JavaScript文件的大小
    修改前:512KB以下
    修改后:5MB以下

总结

有了记录添加或编辑页面保存成功后的事件、以及打印页面显示事件,我们就可以动更多地方了。上次的记录回复API以及本次的向主题发布评论或回复的API,让交流工具可实现更多的功能。也期待下一次的发布!