OmniPlan 无法通过导入 csv 的方式添加子任务

今天遇到一个问题,我可以利用 Excel 导出 csv ,并将 csvOmniPlan 打开,实现任务的批量导入,但是居然没有找到很好的批量添加子任务的方法。

在我的测试中, csv 中只能添加行和/或列,由于我也不太了解 csv 的规则,没有找到解决方法。

根据官方文档,可以从所选 JSON 数据文件 (下载) 导入的团队创建资源组,但是数据添加并不方便。

Omni Automation 来实现批量添加多个子任务

实在没有办法,只能研究一下Omni Automation,希望通过自动化来解决这一问题。

这里直接给出 Omni 的相关代码,实现的功能是:对选中的task(一级任务),批量添加三项子任务(Subtask)

/*{
 "type": "action",
 "targets": ["omniplan"],
 "author": "QXPAI",
 "identifier": "com.qxpai.cn.test",
 "version": "1.0",
 "description": "qxpai.cn",
 "label": "qxpai.cn",
 "shortLabel": "add_subtask"
}*/

(() => {
    var action = new PlugIn.Action(function(selection, sender){
        // 获取当前选中的任务
        selectedTasks = document.windows[0].selection.tasks;
        selectedTasks.forEach(task => {
            // 检查任务是否为一级任务(顶层任务)
            if (task.parent === document.taskRoot) {
                // 为一级任务添加名为 'test' 的子任务
                let subtask1 = task.addSubtask();
                subtask1.title = 'test1'; // 设置子任务1的标题
                let subtask2 = task.addSubtask();
                subtask2.title = 'test2'; // 设置子任务2的标题
                let subtask3 = task.addSubtask();
                subtask3.title = 'test3'; // 设置子任务3的标题
            }
        });
  taskTitles = selectedTasks.map(task => task.title)
  console.log(taskTitles.join('\n'))
    });

    return action;

})();

当然,在上述代码的基础上,也可以实现在刚添加的子任务中添加子子任务的功能,只需要将task.addSubtask()修改为类似task3.addSubtask()即可。

想要直接下载插件的,见下方说明。

下载关键词

可以关注页面底部公众号,回复「批量添加子任务」,即可得到插件的下载链接!


更多宏示例和教程都在「效率成瘾的浅学派」!

全平台同名:「效率成瘾的浅学派」

欢迎关注我的网站: www.qxpai.cn

Keyboard Maestro中文手册参见:km.qxpai.cn

有问题请反馈至 wuzimuws@gmail.com