7.2 实战训练(积分发放)

前言

当我们碰到一个全新的场景,除了写代码以外也可以通过设计器来完成,大致步骤如下:

  1. 分析业务场景,规划对应的模型并通过模型设计器进行配置

  2. 通过界面设计器,设计出必要管理页面

  3. 通过流程设计器,设计对应业务流程

  4. 通过数据可视化,设计相应的数据看板

场景说明

本节通过例子完成一个积分成本分摊的业务场景

积分支出:谁受益谁支出原则+导购手动确认原则,通过门店应用的积分规则,来实现自动化+手动积分形式实现

案例背景

某家具企业经营多种家具类型,不同系列不同品类分事业部经营。

注:

独立门店:只能售卖本事业部下的商品;

融合门店:可以售卖多事业部下的商品;

需求:需要建立一套积分规则,遵循谁受益谁支出原则+导购手动确认原则;通过门店应用的积分规则,来实现自动化+手动积分。

7.2 实战训练(积分发放)

场景一

导购a邀请老客户c通过裂变分享新客户x在独立门店1下单。系统根据独立门店1的积分规则,自动发放积分给老客户c和新客户x,积分由国一事业部承担。

7.2 实战训练(积分发放)

场景二

融合门店1导购b邀请老客户d裂变分享新客户y在融合门店下单。该订单可能涉及多个事业部,由导购b手动选择最大量值的积分规则进行发放

7.2 实战训练(积分发放)

场景三

独立门店1的导购a邀请老客户c裂变分享新客户z在独立门店2下单。系统根据独立门店2的积分规则,来计算积分值,自动发放老客户c和新客户z的积分,积分由国二事业部

7.2 实战训练(积分发放)

实战训练

Step1 分析业务场景规划对应模型

本场景下涉及基础对象模型包括:事业部、门店、导购、会员等

  1. 事业部:它是积分成本的载体

  2. 门店:类型分为独立门店和融合门店,独立门店必须隶属于一个事业部,同时配置默认积分发放规则,融合门店可能属于多个事业部当发生积分发放时,需要店员手工选择成本事业部和积分发放规则

  3. 导购员:导购员必须隶属于一个门店等

  4. 会员:消费者需要记录它隶属导购员,以及是由哪个会员推荐过来的等

涉及业务对象模型包括:积分发放规则,积分发放记录,邀请下单记录

  1. 积分发放规则:会员积分发放规则,对应邀请老客的积分发放规则等

  2. 积分发放记录:本次发放积分、本次发放积分规则、发放对象(会员)、成本事业部、关联门店、关联导购、关联老客(可空)、关联下单记录编码等

  3. 邀请下单记录:导购、下单会员、下单门店、商品信息、下单金额等

对应模型如下:

7.2 实战训练(积分发放)

模型 设计器呈现 自定义字段列表 关系字段说明 说明
事业部 7.2 实战训练(积分发放) 事业部负责人(文本)
门店列表(o2m)
与门店建立o2m绑定关系,绑定时选择双向绑定,双向绑定意思是在事业部这边建立o2m到门店的关系字段,在门店那边建立m2o的关系字段 关系字段需要在有对方模型的情况下再建,比如事业部中的门店列表则是再后面追加新增的
门店 7.2 实战训练(积分发放)
7.2 实战训练(积分发放)
导购列表(o2m)
事业部(m2o)
默认积分发规则(m2o)
门店类型(枚举)
分别与事业部、导购、积分发放规则建立m2o、o2m、m2o关系 门店类型:需要先建对应的数据字典
导购 7.2 实战训练(积分发放) 绑定用户(m2o)
门店(m2o)
是否离职(布尔型)
与门店建立m2o关系 1. 绑定用户,用于后续业务流程设计中的填写规则
2. 打马赛克的忽略,其他场景测试用
会员 7.2 实战训练(积分发放) 会员累计积分(浮点数)
推荐客户(m2o)
所属于导购员(m2o)
是否为新客(布尔型)
与导购、会员建立m2o关系 1. 会员m2o的字段是自关联用于存储推荐会员
2. 打马赛克的忽略,其他场景测试用
积分发放规则 7.2 实战训练(积分发放) 推荐客户发放比例(浮点数)
发放倍数(整数)
积分发放记录 7.2 实战训练(积分发放) 最终发放积分(浮点数)
关联积分规则(m2o)
事件编码(文本)
推荐导购员(m2o)
推荐会员(m2o)
关系门店(m2o)
成本事业部(m2o)
会员(m2o)
成本事业部名称(文本)
会员名称(文本)
与积分发放规则、导购员、会员、门店、事业部建立m2o关系 1. 会员有两个m2o,分别用户记录发放会员和发放会员的推荐会员也就是老客
2. 事件编码用户维护触发本次积分发放记录产生的源头单据编码如:邀请下单记录的编码
邀请下单记录 7.2 实战训练(积分发放) 成本事业部(m2o)
选择积分发放规则(m2o)
下单门店(m2o)
购买商品(文本)
下单金额(整数)
会员(m2o)
导购(m2o)
与成本事业部、积分发放规则、下单门店、会员、导购等建立m2o的关系 1. 会员、下单门店、导购属于必要信息
2. 成本事业部、积分发放规则是业务流程中自动计算回填的数据

Step3 利用界面设计器,设计出必要的管理页面

以事业部为例,构建管理页面。其他模型依次按例子建立管理页面

  1. 进入界面设计器,应用选择全员营销,模型选择事业部,点击添加页面下的直接创建

7.2 实战训练(积分发放)

  1. 设置页面标题、模型(自动带上可切换)、业务类型(运营管理后续会扩展其他类型)、视图类型(表单)后点击确认按钮进入事业部表单设计页面

7.2 实战训练(积分发放)

  1. 进入页面设计器,对事业部表单页面进行设计(更多细节介绍,请参考界面设计产品使用手册)

    a. 左侧为物料区:分为组件、模型。

    ⅰ. 【组件】选项卡下为通用物料区,我们可以为页面增加对应布局、字段(如同在模型设计器增加字段)、动作、数据、多媒体等等

    ⅱ. 【模型】选项卡下为页面对应模型的自定义字段、系统字段、以及模型已有动作

    b. 中间是设计区域

    c. 右侧为属性面板,在设计区域选择中组件会显示对应组件的可配置参数

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,拖入布局组件【分组】,并设置组件【标题属性】为基础信息

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,再次拖入布局组件【分组】,并设置组件【标题属性】为门店列表

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,分别把自定义字段中的【事业部负责人】和系统字段中的【名称】拖入【基础信息】分组,把自定义字段中的【门店列表】字段拖入门店列表分组

7.2 实战训练(积分发放)

  1. 在设计区域切换【门店列表】展示组件为【表格】

7.2 实战训练(积分发放)

  1. 此时【门店列表】展示形式变成了表格形式,选中【门店列表】组件,会发现左侧【模型】选项卡下的当前模型切换成了【门店】,同时我们在右属性面板区置空其【标题属性】

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件,分别把自定义字段中的【默认积分发规则】、【门店类型】、【导购列表】和系统字段中的【名称】拖入【门店列表】表格组件的表格字段设计区

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件的【创建】按钮,点击【打开弹窗】设计关系字段【门店】的新增页面

7.2 实战训练(积分发放)

11.分别把自定义字段中的【默认积分发规则】、【门店类型】和系统字段中的【名称】拖入门店的新增页面设计区

7.2 实战训练(积分发放)

  1. 选中弹出框中【取消】取消按钮,设置其【按钮样式】属性为【次要按钮】

7.2 实战训练(积分发放)

  1. 关闭弹出框,回到主设计区

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件的【删除】按钮,设置其【按钮样式】属性为【次要按钮】,【二次确认】属性打开

7.2 实战训练(积分发放)

  1. 设计区选中【门店列表】的表格组件中操作列的【编辑】按钮,点击【打开弹窗】设计关系字段【门店】的编辑页面,

    a. 分别把自定义字段中的【默认积分发规则】、【门店类型】和系统字段中的【名称】拖入门店的新增页面设计区。

    b. 选中弹出框中【取消】取消按钮,设置其【按钮样式】属性为【次要按钮】

    c. 把门店类型展示组件切换为【单选框】

    d. 关闭弹出框

7.2 实战训练(积分发放)

  1. 设计区选择非【门店列表】组件如基础信息,模型切换为主模型【事业部】,在左侧【模型】选项卡下,把动作分类下的提交类型【创建】动作拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择中展示名为【确定】的创建动作按钮,在右侧属性面板中设置:是否隐藏属性为【条件隐藏】,隐藏条件为【id非空】

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,把动作分类下的提交类型【更新】动作拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择中展示名为【确定】的更新动作按钮,在右侧属性面板中设置:是否隐藏属性为【条件隐藏】,隐藏条件为【id为空】。之所以同时拖入【创建】和【更新】动作并都命名为确认,是期望这个页面同时可以做为新增页面也可以做为编辑页面,只不过要通过条件隐藏来设置按钮的出现规则

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【客户端动作】拖入中间设计区的动作区

7.2 实战训练(积分发放)

  1. 选择设计区【客户端动作】,在右侧属性面板中设置:动作名称为【返回】,客户端行为为【返回上一个页面】并点击保存

7.2 实战训练(积分发放)

  1. 选择设计区【返回】动作,在右侧属性面板中设置:按钮样式为【返回】,【二次确认】属性打开并设置提示文字为【返回页面操作将不被保存】,可以点击预览二次确认看效果

7.2 实战训练(积分发放)

  1. 点击【发布】按钮,页面成功发布,每发布一次会有一个例子版本,可以通过历史版本进行恢复

7.2 实战训练(积分发放)

  1. 点击右上角历史版本图标,进入历史版本查看页面

7.2 实战训练(积分发放)

  1. 在历史版本页面可以选择对应历史版本记录,并通过【恢复此版本】来完成页面的历史版本切换

7.2 实战训练(积分发放)

  1. 接下来我们为事业部模型创建表格管理页面,入口同编辑页面。设置页面标题、模型(自动带上可切换)、业务类型(运营管理后续会扩展其他类型)、视图类型(表格)后点击确认按钮进入事业部表格设计页面

7.2 实战训练(积分发放)

  1. 进入页面设计器,对事业部表格页面进行设计(更多细节介绍,请参考界面设计产品使用手册)

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,分别把自定义字段中的【事业部负责人】和系统字段中的【名称】拖入表格组件的表格字段设计区

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【跳转动作】拖入中间设计区的动作区,并在右侧属性面板中设置动作名称为【新增】,数据控制类型为【不进行数据处理】,打开方式为【当前窗口打开】,动作跳转页面为【事业部编辑】页面,并点击保存

7.2 实战训练(积分发放)

  1. 在左侧【组件】选项卡下,把动作分类下的【跳转动作】拖入中间设计区的行内动作区,并在右侧属性面板中设置动作名称为【编辑】,数据控制类型为【处理单条数据】,打开方式为【当前窗口打开】,动作跳转页面为【事业部编辑】页面,并点击保存

7.2 实战训练(积分发放)

  1. 在左侧【模型】选项卡下,把动作分类下的【删除】拖入中间设计区的动作区,并在右侧属性面板中设置动作名称为【删除】,按钮样式为【次要按钮】,【二次确认】属性打开

7.2 实战训练(积分发放)

  1. 点击右上角【显示母版】进入页面最终展示形式,点击添加菜单项,并在输入框中输入【事业部管理】

7.2 实战训练(积分发放)

  1. 点击菜单右侧设置图标,选择【绑定已有页面】,进行菜单与页面的绑定操作

7.2 实战训练(积分发放)

  1. 在绑定页面中,模型选择【事业部】,视图选择【事业部管理】,点击确认按钮提交

7.2 实战训练(积分发放)

  1. 拖动【事业部管理】菜单到【积分管理】父菜单下

7.2 实战训练(积分发放)

  1. 最后别忘了点击右上角【发布】按钮对【事业部管理】表格页面进行发布,回到界面设计器首页查看刚刚建好的两个页面

7.2 实战训练(积分发放)

  1. 以事业部为例分别对门店、导购、会员、积分发放规则、积分发放记录、邀请下单记录等模型进行页面设计,这里不再累赘,请按照自身学习需要,尝试进行界面设计

Step4 通过流程设计器,设计对应业务流程

我们先来整理下核心流程即:邀请下单流程

7.2 实战训练(积分发放)

Step4.1 创建导购邀请下单记录触发流程

  1. 进入流程设计器,点击【创建】按钮

注意:流程中需要获取关系类型的字段(如:O2O、O2M、M2O或M2M),这种类型都是复杂的对象字段,除关联字段(一般为ID)以外的字段,需要通过【数据获取】节点单独获取【关系字段】的对象数据。所以在流程设计中经常会用到【数据获取】节点

7.2 实战训练(积分发放)

  1. 左上角编辑流程名称为【导购邀请下单触发流程】,点击第一个【触发】节点,触发方式选择模型触发,模型选择【导购邀请下单】,触发场景选择【新增数据时】,点击该节点的【保存】按钮

7.2 实战训练(积分发放)

  1. 点击流程图节点间的【+】图标选择增加【获取数据】节点,或者拖动左侧物料区【获取数据】到特定的【+】图标

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 点击【获取数据】,在右侧属性面板中设置【获取数据条数】为单条,选择模型为【导购】,点击【筛选条件】的【{X}】图标,进行数据获取的条件设置

7.2 实战训练(积分发放)

  1. 选择条件字段为【ID】条件操作符为【等于】,条件为变量的导购字段的ID。当上下文只有一个变量时默认不需要选择,这里默认的是【触发[导购邀请下单记录]】,设置好以后点击确认,回到属性面板设置【未获取到数据时执行方式】为【终止流程】,并点击节点【保持】按钮

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【导购邀请下单记录】的会员关系字段的ID字段。因为上下文中存在多个变量时需要选择对应变量,跟获取导购数据有点区别,在获取导购数据时,上下文中只有此次【导购邀请下单记录】所以不需要选择对应变量,设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[会员]】的关系字段【所属导购员】的【ID】字段一个设置【为空】,一个设置【非空】

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【所属导购员】的【ID】字段【为空】的分支流程中,增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【获取数据[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【所属导购员】的【ID】

    ⅱ. 表达式设置为:【获取数据[导购]】的【ID】,点击【确认】按钮。

最终完成对【获取数据[会员]】的关系字段【所属导购员】的【ID】字段等于【获取数据[导购]】的【ID】字段的设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【门店】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【导购邀请下单记录】的关系字段【下单门店】的【ID】字段。设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[门店]】的【门店类型】字段一个设置为【独立门店】,一个设置【融合门店】。这里条件值没有选择上下文变量,而是选择了选项。选项即字段对应的枚举值,在这个例子中【门店类型】字段类型为数据字典

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[门店]】的【门店类型】字段等于【独立门店】的分支流程中,增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【触发[导购邀请下单]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【成本事业部】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的关系字段【事业部】的【ID】字段,点击【确认】按钮。

    c. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【选择积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的关系字段【默认积分发放规则】的【ID】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段等于【获取数据[门店]】的关系字段【事业部】的【ID】字段

b. 【触发[导购邀请下单]】的关系字段【选择积分发放规则】的【ID】字段等于【获取数据[门店]】的关系字段【默认积分发放规则】的【ID】字段

c. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[门店]】的【门店类型】字段等于【融合门店】的分支流程中,增加【填写】节点,在右侧属性面板中

    a. 【填写模型】选择模型为【触发[导购邀请下单]】

    b. 【选择视图】选择【流程中邀请下单】,这里需要专门为流程增加一个表单页面,因为正常的【导购邀请下单】的表单不需要填写积分发放规则和成本部门

    c. 填写人,选择导购的【绑定用户】,同时加上角色为【超级管理员】方便测试

    d. 数据权限除了【积分发放规则】和【成本部门】需要编辑外,其他都为查看

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【积分发放规则】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[导购邀请下单]】的关系字段【选择积分发放规则】的【ID】字段。设置好以后点击【确认】按钮

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

  2. 再增加一个【获取数据】节点,在右侧属性面板中设置

a. 【获取数据条数】为单条,选择模型为【事业部】

b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段。设置好以后点击【确认】按钮

c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

d. 最后点击节点【保持】按钮。

  1. 增加【新增数据】节点,在右侧属性面板中设置

    a. 【新增模型】选择模型为【积分发放记录】

    b. 【新增数据的节点】设置为【节点执行完即时增加业务数据】

    c. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【最终发放积分】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的【下单金额】字段【乘以】【获取数据[积分发放规则]】的【发放倍数】字段,点击【确认】按钮。

    d. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[积分发放规则]】的【ID】字段,点击【确认】按钮。

    e. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【事件编码】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的【编码】字段,点击【确认】按钮。

    f. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐导购员】的【ID】

    ⅱ. 表达式设置为:【获取数据[导购]】的【ID】字段,点击【确认】按钮。

    g. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐会员】的【ID】

    ⅱ. 表达式设置为:【获取数据[会员]】的关系字段【推荐客户】的【ID】字段,点击【确认】按钮。

    h. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【关系门店】的【ID】

    ⅱ. 表达式设置为:【获取数据[门店]】的【ID】字段,点击【确认】按钮。

    i. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【成本事业部】的【ID】

    ⅱ. 表达式设置为:【触发[导购邀请下单]】的关系字段【成本事业部】的【ID】字段,点击【确认】按钮。

    j. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【会员】的【ID】

    ⅱ. 表达式设置为:【获取数据[会员]】的【ID】字段,点击【确认】按钮。

    k. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【成本事业部名称】

    ⅱ. 表达式设置为:【获取数据[事业部]】的【名称】字段,点击【确认】按钮。

    l. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【会员名称】

    ⅱ. 表达式设置为:【获取数据[会员]】的【名称】字段,点击【确认】按钮。

    m. 最终完成的【新增数据[积分发放记录]】新增设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【子流程节点】,这里之所以设置为子流程,就跟上面我们业务流程图中画的一样,【导购邀请下单触发流程】已经完成,会员积分累加从业务上来说是独立的,不影响【导购邀请下单触发流程】。我们在右侧属性面板中设置

    a. 【选择模型】设置为【新增数据[积分发放记录]】

    b. 【选择子流程】设置为【创建新的子流程】,并设置子流程名称为【会员积分累加子流程】

    c. 【子流程执行方式】设置为【子流程和后续节点同时进行】

    d. 最后点击节点【保持】按钮

    7.2 实战训练(积分发放)

Step4.2 创建积分发放记录子流程:积分累积子流程

  1. 点击子流程的跳转图标,跳转到子流程的设计页面。子流程的触发模型由主流程指定,无法更改

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【触发[积分发放记录]】的【最终发放积分】字段一个设置为小于等于100,一个设置大于100。这里条件值没有选择上下文变量,而是选择了数值,因为【最终发放积分】字段为数字的普通类型,所以可以直接填数字

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 在【条件分支】的【触发[积分发放记录]】的【最终发放积分】字段一个设置为大于100的分支流程中,增加【审批】节点,在右侧属性面板中

    a. 【审批模型】选择模型为【触发[积分发放记录]】

    b. 【审批人】选择角色为【超级管理员】

    c. 【数据】权限全部设置为【查看】

    d. 其他配置项默认,需要了解更多请查看产品使用手册

    e. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 再增加一个【获取数据】节点,在右侧属性面板中设置

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量的关系字段【会员】的【ID】字段。设置好以后点击【确认】按钮。当上下文只有一个变量时默认不需要选择,这里默认的是【触发[积分发放记录]】

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【获取数据[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【会员累计积分】字段

    ⅱ. 表达式设置为:【获取数据[会员]】的【会员累计积分】字段【加上】【触发[积分发放记录]】的【最终发放积分】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【获取数据[会员]】的【会员累计积分】字段等于自身【加上】【触发[积分发放记录]】的【最终发放积分】字段

b. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 新增【条件分支】,分别对分支1和分支2进行条件设置,条件为:【获取数据[会员]】的关系字段【推荐客户】的【ID】字段一个设置为【为空】,一个设置为【非空】。

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【获取数据】节点,在右侧属性面板中

    a. 【获取数据条数】为单条,选择模型为【积分发放规则】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【触发[积分发放记录]】的关系字段【关联积分规则】的【ID】字段。设置好以后点击【确认】按钮。

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【获取数据】节点,在右侧属性面板中

    a. 【获取数据条数】为单条,选择模型为【会员】

    b. 点击【筛选条件】的【{X}】图标,进行数据获取的条件设置,选择条件字段为【ID】条件操作符为【等于】,条件为变量【获取数据[会员]】的关系字段【推荐客户】的【ID】字段。设置好以后点击【确认】按钮。

    c. 回到属性面板设置【未获取到数据时执行方式】为【终止流程】

    d. 最后点击节点【保持】按钮。

    e. 编辑节点名字为【推荐客户】

7.2 实战训练(积分发放)

  1. 在【条件分支】的【获取数据[会员]】的关系字段【推荐客户】的【ID】字段非空,增加【新增数据】节点,在右侧属性面板中

    a. 【新增模型】选择模型为【积分发放记录】

    b. 【新增数据的节点】设置为【节点执行完即时增加业务数据】

    c. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【最终发放积分】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【最终发放积分】字段【乘以】【获取数据[积分发放规则]】的【推荐客户发放比例】字段,点击【确认】按钮。

    d. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【积分发放规则】的【ID】

    ⅱ. 表达式设置为:【获取数据[积分发放规则]】的【ID】字段,点击【确认】按钮。

    e. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择【事件编码】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【事件编码】字段,点击【确认】按钮。

    f. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【推荐导购员】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】关系字段【推荐导购员】的【ID】,点击【确认】按钮。

    g. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【关系门店】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的关系字段【关系门店】的【ID】,点击【确认】按钮。

    h. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【成本事业部】的【ID】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的关系字段【成本事业部】的【ID】字段,点击【确认】按钮。

    i. 【新增数据】点击【创建】按钮

    ⅰ. 字段选择关系字段【会员】的【ID】

    ⅱ. 表达式设置为:【推荐客户[会员]】的【ID】字段,点击【确认】按钮。

    j. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【成本事业部名称】

    ⅱ. 表达式设置为:【触发[积分发放记录]】的【成本事业部名称】字段,点击【确认】按钮。

    k. 【新增数据】点击【创建】按钮 -- 为数据分析预留字段

    ⅰ. 字段选择【会员名称】

    ⅱ. 表达式设置为:【推荐客户[会员]】的【名称】字段,点击【确认】按钮。

    l. 最终完成的【新增数据[积分发放记录]】新增设置,最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 增加【更新数据】节点,在右侧属性面板中

    a. 【更新模型】选择【推荐客户[会员]】

    b. 【字段列表】点击【创建】按钮

    ⅰ. 字段选择 更新【会员累计积分】字段

    ⅱ. 表达式设置为:【推荐客户[会员]】的【会员累计积分】字段【加上】【新增[积分发放记录]】的【最终发放积分】字段,点击【确认】按钮。

最终完成的【触发[导购邀请下单]】更新设置

a. 【推荐客户[会员]】的【会员累计积分】字段等于自身【加上】【新增[积分发放记录]】的【最终发放积分】字段

b. 最后点击节点【保持】按钮。

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step4.3 两个流程确保都保持并发布过

流程列表页查看流程状态图标

7.2 实战训练(积分发放)

Step5 基础数据管理

流程前提:基础数据通过管理页面已经建好,后面看实战效果的基础数据为:

  1. 事业部:国一事业部、国二事业部

  2. 门店:国一独立门店01(绑定:国一事业部,积分发放规则:正常发放)、国二独立门店01(绑定:国二事业部,积分发放规则:双倍发放)、融合门店01

  3. 导购员:国一独立门店导购-cpc(绑定:国一独立门店01)、国二独立门店导购-温振(绑定:国二独立门店01)、融合门店导购-梦瑶(绑定:融合门店01)

  4. 会员:会员1001(导购绑定:融合门店导购-梦瑶)、会员1002(导购绑定:国二独立门店导购-温振、推荐会员绑定:会员1001)、会员1003(导购绑定:未绑定、推荐会员绑定:会员1001)、

  5. 积分发放规则:双倍发放(发放倍数:2、推荐客户发放比例:0.5)、正常发放(发放倍数:1、推荐客户发放比例:0.2)

Step6 走业务流程,看效果

Step6.1 用例设计1

新建【导购邀请下单记录】如下:

  1. 门店选择:国一独立门店01

  2. 导购选择:国一独立门店导购-cpc

  3. 会员选择:会员1003

  4. 商品填写:测试商品1001

  5. 下单金额:12

  6. 事件编码:O1001

期望结果:

  1. 【会员1003】的【所属于导购员】字段更新为:【国一独立门店导购-cpc】

  2. 【会员1003】的【会员累计积分】字段在原有值上增加【12】

  3. 【会员1001】的【会员累计积分】字段在原有值上增加【2.4】

  4. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1003 国一独立门店01 12 正常发放 O1001 国一独立门店导购-cpc 国一事业部 会员1001
会员1001 国一独立门店01 2.4 正常发放 O1001 国一独立门店导购-cpc 国一事业部

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step6.2 用例设计2

新建【导购邀请下单记录】如下:

  1. 门店选择:融合门店01

  2. 导购选择:融合门店导购-梦瑶

  3. 会员选择:会员1001

  4. 商品填写:测试商品1002

  5. 下单金额:12

  6. 事件编码:O1002

期望结果:

  1. 出现填写节点,【选择积分发放规则】:双倍发放,【成本事业部】:国二事业部

  2. 【会员1001】的【会员累计积分】字段在原有值上增加【24】

  3. 新增一条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1001 融合门店01 24 双倍发放 O1002 融合门店导购-梦瑶 国二事业部

7.2 实战训练(积分发放)

Step6.3 用例设计3

新建【导购邀请下单记录】如下:

  1. 门店选择:国二独立门店01

  2. 导购选择:国二独立门店导购-温振

  3. 会员选择:会员1002

  4. 商品填写:测试商品1003

  5. 下单金额:60

  6. 事件编码:O1003

期望结果:

  1. 出现审批,审批通过

  2. 【会员1002】的【会员累计积分】字段在原有值上增加【120】

  3. 【会员1001】的【会员累计积分】字段在原有值上增加【60】

  4. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1002 国二独立门店01 120 双倍发放 O1003 国二独立门店导购-温振 国二事业部 会员1001
会员1001 国二独立门店01 60 双倍发放 O1003 国二独立门店导购-温振 国二事业部

7.2 实战训练(积分发放)

Step6.4 用例设计4

新建【导购邀请下单记录】如下:

  1. 门店选择:国一独立门店01

  2. 导购选择:国二独立门店导购-温振

  3. 会员选择:会员1002

  4. 商品填写:测试商品1003

  5. 下单金额:60

  6. 事件编码:O1004

期望结果:

  1. 【会员1002】的【会员累计积分】字段在原有值上增加【60】

  2. 【会员1001】的【会员累计积分】字段在原有值上增加【12】

  3. 新增两条【积分发放记录】

会员 关系门店 最终发放积分 关联积分规则 事件编码 推荐导购员 成本事业部 推荐会员
会员1002 国一独立门店01 60 正常发放 O1004 国二独立门店导购-温振 国一事业部 会员1001
会员1001 国一独立门店01 12 正常发放 O1004 国二独立门店导购-温振 国一事业部

7.2 实战训练(积分发放)

Step7 通过数据可视化,设计相应的数据看板

Step7.1 事业部积分发放分析

  1. 进入数据可视化【图表】设计页,点击创建一级分组,在分组栏中会多出一行,并填入积分发放综合分析

7.2 实战训练(积分发放)

  1. 鼠标放到一级分组上会出现增加二级分组和删除入口,点击图标“+”,创建两个二级分组分别为:积分发放分析和订单下单分析

7.2 实战训练(积分发放)

  1. 选中二级分组【积分发放分析】出现【添加图标】操作入口,点击添加图表

7.2 实战训练(积分发放)

  1. 在创建图表弹出框中

    a. 【图表标题】填入【事业部积分成本分析】

    b. 【模型】选择【积分发放记录】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 上一步点击【确定】按钮后自动进入【事业部积分成本分析】图表设计页面。

    a. 【维度】选择【成本事业部名称】

    b. 【数值】选择【最终发放积分】

    c. 点击右上角【保存】,并点击左上角【< 事业部积分成本分析】返回图表管理入口

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成一个图表的开发。更多图表设计细节请查阅对应的产品使用手册
    7.2 实战训练(积分发放)

  2. 当有业务数据的时候展示

7.2 实战训练(积分发放)

Step7.2 会员积分分析

  1. 选中二级分组【积分发放分析】出现【添加图标】操作入口,点击添加图表。在创建图表弹出框中

    a. 【图表标题】填入【会员累计获取积分分析】

    b. 【模型】选择【积分发放记录】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 进入【会员累计获取积分分析】图表设计页面。

    a. 【维度】选择【会员名称】

    b. 【数值】选择【最终发放积分】

    c. 【对比】选择【成本事业部名称】

    d. 点击右上角【保存】,并点击左上角【< 会员累计获取积分分析】返回图表管理入口

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成该图表的开发

7.2 实战训练(积分发放)

Step7.3 商品下单金额分析

  1. 选中二级分组【订单下单分析】出现【添加图标】操作入口,点击添加图表。在创建图表弹出框中

    a. 【图表标题】填入【商品购买金额分析】

    b. 【模型】选择【导购邀请下单】

    c. 【方法】选择【根据条件分页查询记录列表和总数】

    d. 最后点击节点【确定】按钮

7.2 实战训练(积分发放)

  1. 进入【商品购买金额分析】图表设计页面。

    a. 图表形式切换为【饼图】

    b. 【维度】选择【购买商品】

    c. 【数值】选择【下单金额】

    d. 右侧属性面板设置

    ⅰ. 【展示标签】为【开启】

    1. 勾选【购买商品】

    ⅱ. 【展示图例】为【开启】

    1. 勾选【购买商品】

    2. 勾选【数值】

    e. 点击右上角【保存】,并点击左上角【< 会员累计获取积分分析】返回图表管理入口

7.2 实战训练(积分发放)

  1. 点击右上角【发布】按钮,即完成该图表的开发

7.2 实战训练(积分发放)

Step7.4 设计综合分析报表

  1. 进入数据可视化【报表】设计页,点击创建一、二级分组,分别为【积分分析报表】、【积分综合报表】,选中二级分组【积分综合报表】出现【添加图标】操作入口,在分组栏中会多出一行,并填入积分发放综合分析

7.2 实战训练(积分发放)

  1. 选中二级分组【积分发放综合分析】,点击右上角【选择图表】,把上面建的三张图表都选上

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

  1. 选完图表后,拖动图表大小和所在位置即完成了报表的设计,最后别完了点击【发布】按钮

7.2 实战训练(积分发放)

7.2 实战训练(积分发放)

Step7.5 把报表挂载到页面上并邦上菜单

简单描述:新建名为【积分综合分析页】的页面,选择模型【积分发放记录】,页面类型设置为【详情】,并在左侧【组件】选项卡下找到【报表】组件,拖入到设计器区并在其属性面板中选择展示报表。新建菜单【积分数据分析】并绑定已有页面【积分综合分析页】,最后点击【发布】按钮

这里新建页面不过多赘诉,更多细节可参阅产品操作手册

7.2 实战训练(积分发放)

Oinone社区 作者:史, 昂原创文章,如若转载,请注明出处:https://doc.oinone.top/oio4/9334.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
史, 昂的头像史, 昂数式管理员
上一篇 2024年5月23日
下一篇 2024年5月23日

相关推荐

  • 3.2 Oinone以模块为组织

    模块(module):是按业务领域划分和管理的最小单元,是一组功能、界面的集合。 带大家快速认识下如何构建一个oinone的模块并启动它。我会从以下几个维度去介绍模块的构建与启动方式、模块详解。让大家直观且全方位地了解oinone的模块所包含的内容 构建第一个Module 启动前端工程 应用中心

  • 第3章 Oinone的基础入门

    本章主要介绍如何快速入门,了解如何在Oinone上进行开发。我们将通过准备环境、构建自己的第一个Oinone模块、完成一些小功能等方式来全面了解Oinone,这将是一个很好的开始。 具体来说,本章包括以下几个方面: 环境搭建:准备Windows或Mac版环境。 Oinone以模块为组织:了解Oinone模块的概念和如何创建和使用模块。 Oinone以模型为驱动:了解Oinone模型的概念和如何使用模型来构建应用。 Oinone以函数为内在:了解Oinone函数的概念和如何使用函数来实现应用逻辑。 Oinone以交互为外在:了解Oinone交互的概念和如何使用交互来设计和实现应用界面。

  • 第1章 揭开面纱,理解Oinone

    本章旨在从以下几个维度逐步揭开Oinone的面纱,让大家了解Oinone的初心与愿景,以及它是如何站在软件领域的巨人肩膀上,结合企业数字化转型的深入,形成全新的理念,帮助企业完成数字化转型。 具体来说,本章会从以下四个方面逐一展开: Oinone的初心与愿景:结合中国软件行业的发展与自身职业发展经历,探讨Oinone为何诞生以及其愿景是什么。 Oinone致敬西方软件行业的新贵odoo:介绍Oinone的灵感来源,探究Oinone与odoo的异同,以及如何从odoo中汲取经验。 从企业转型困境,引出Oinone新的思路:通过剖析企业数字化转型的困境,引出Oinone提出的全新思路,以及如何应对企业数字化转型的挑战。 行业对比,让您从不同视角理解Oinone:通过与同行业产品进行对比,从不同的视角深入理解Oinone的特点和优势。

    Oinone 7天入门到精通 2024年5月23日
    1.4K00
  • 业务审计

    整体介绍 业务审计是指通过跟踪用户在平台业务应用中的各类行为操作以及关联的数据变化,支撑企业业务审计所需。平台提供可视化审计规则配置,根据审计规则记录行为日志,其中日志包括登录日志、应用日志; 登录日志:记录平台用户登录行为。 应用日志:针对已订阅的审计规则记录用户操作信息,是用户在各应用中操作行为留痕记录。 审计规则:业务审计中,数据变化订阅记录的规则,是记录应用日志的规则。 操作入口:应用中心——业务审计应用。

  • 3.4.1 构建第一个Function

    Function做为oinone的可管理的执行逻辑单元,是无处不在的 在3.3.3【模型的数据管理器】和3.3.2【模型类型】一文中的代理模型部分,涉及到包括在Action中自定义函数(action背后都对应一个Function)、重写queryPage的函数、以及独立抽取的公共逻辑函数,Function做为oinone的可管理的执行逻辑单元,是无处不在的。这也是为什么说oinone以函数为内在的原因。 一、构建第一个Function 因为数据管理器和数据构造器是oinone为模型自动赋予的Function,是内在数据管理能力。模型其他Function都需要用以下四种方式主动定义 伴随模型新增函数(举例) 它是跟模型的java类定义在一起,复用模型的命名空间。 Step1 为PetShop增加一个名为sayHello的Function package pro.shushi.pamirs.demo.api.model; …… //import @Model.model(PetShop.MODEL_MODEL) @Model(displayName = "宠物店铺",summary="宠物店铺",labelFields ={"shopName"} ) @Model.Code(sequence = "DATE_ORDERLY_SEQ",prefix = "P",size=6,step=1,initial = 10000,format = "yyyyMMdd") public class PetShop extends AbstractDemoIdModel { public static final String MODEL_MODEL="demo.PetShop"; …… //省略其他代码 @Function(openLevel = FunctionOpenEnum.API) @Function.Advanced(type=FunctionTypeEnum.QUERY) public PetShop sayHello(PetShop shop){ PamirsSession.getMessageHub().info("Hello:"+shop.getShopName()); return shop; } } 图3-4-1-1 代码示例 Step2 重启看效果 用graphQL工具Insomnia查看效果 用Insomnia模拟登陆 a. 创建一个login请求,用于保存login请求,为后续模拟登陆保留快捷方式 图3-4-1-2 创建一个login请求 b. 下面为登陆请求的GraphQL,请在post输入框中输入。如果请求输入框提示错误可以,可以点击schema 的Refresh Schema来刷新文档 mutation { pamirsUserTransientMutation { login(user: {login: "admin", password: "admin"}) { broken errorMsg errorCode errorField } } } 图3-4-1-3 登陆请求的GraphQL c. 点击Send按钮,我们可以看到登陆成功的反馈信息 图3-4-1-4 登陆成功的反馈信息 用Insomnia模拟访问PetShop的sayHello方法,gql的返回中,我们可以看到两个核心返回 a. 一是方法正常返回的shopName b. 二是“PamirsSession.getMessageHub().info("Hello:"+shop.getShopName())”代码执行的结果,在messages中有一个消息返回,更多消息机制详见4.1.23【框架之信息传递】 query{ petShopQuery{ sayHello(shop:{shopName:"cpc"}){ shopName } } } 图3-4-1-5 用Insomnia模拟访问PetShop的sayHello 图3-4-1-6 代码执行结果 用Insomnia模拟访问PetShopProxy的sayHello方法 效果同用Insomnia模拟访问PetShop的sayHello方法,体现Function的继承特性。 独立新增函数绑定到模型(举例) 独立方法定义类,并采用Model.model或Fun注解,但是value都必须是模型的编码,如@Model.model(PetShop.MODEL_MODEL)或@Fun(PetShop.MODEL_MODEL) Step1 提取PetShop的sayHello方法独立到PetShopService中 注释掉PetShop的sayHello方法 package pro.shushi.pamirs.demo.api.model; …… //import @Model.model(PetShop.MODEL_MODEL) @Model(displayName = "宠物店铺",summary="宠物店铺",labelFields ={"shopName"} ) @Model.Code(sequence = "DATE_ORDERLY_SEQ",prefix = "P",size=6,step=1,initial = 10000,format = "yyyyMMdd") public class PetShop extends AbstractDemoIdModel { public static final String MODEL_MODEL="demo.PetShop"; …… //省略其他代码 // @Function(openLevel = FunctionOpenEnum.API) // @Function.Advanced(type=FunctionTypeEnum.QUERY) // public PetShop sayHello(PetShop shop){ // PamirsSession.getMessageHub().info("Hello:"+shop.getShopName()); // return shop; // } } 图3-4-1-7 注释掉PetShop的sayHello 新增PetShopService接口类 接口的方法上要加上@Function注解,这样另模块依赖api包的时候,会自动注册远程服务的消费者 package pro.shushi.pamirs.demo.api.service; import pro.shushi.pamirs.demo.api.model.PetShop; import pro.shushi.pamirs.meta.annotation.Fun; import pro.shushi.pamirs.meta.annotation.Function; @Fun(PetShop.MODEL_MODEL) //@Model.model(PetShop.MODEL_MODEL) public interface…

    2024年5月23日
    63100

Leave a Reply

登录后才能评论