纷享销客低代码pass平台研究

纷享销客低代码pass

Posted by hdj on February 10, 2025

纷享销客低代码

前言

上次我们领略了基于协议的开源的lowcode-engine低代码平台,其优秀的插件机制以及丰富的API能让我们在其上构建出各式各样的应用系统.今天我们看一下纷享销客这款基于模型驱动的低代码PaaS平台有何特殊之处吧。

一、纷享销客低代码平台能力

纷享销客 PaaS 平台的定制能力主要包括:对象定制、界面定制、业务逻辑定制、流程定制、多维 多级权限体系、国际化及开发工具套件,基于以上能力,能够以低代码的方式,支持企业快速构建 业务应用。以上几个能力除了国际化与开发工具之外,StudioX系统业已支持其中大部分模块,其中界面定制低代码模块可定制化能力略有欠缺,可以参考纷享销客的实现,实现自身低代码平台的扩展,满足更多的业务场景。

架构

二、 无代码模块进行构建页面

纷享销客是以业务模型驱动、组件化的 UI 实现方式利用对象设计器方创建业务对象,扩展对象字段,配置界面,利用无代码布局设计器,按照业务逻辑定制和角色权限快速创建业务定制界面。

核心功能

Web/移动 App 自定义应用, 导航,首页,菜单,Logo,App启动图等

对象布局能力 ,无代码布局设计器,支持对象列表页,详情页,新建/编辑页

架构

三、基于PWC架构的低代码能力

1 . PWC架构图

纷享销客研发的基于模型驱动的”拖拉拽”的低代码应用模块,提供插件及组件化机制,和APL(Advanced Programming Language)代码及PWC (Page Web Component)页面组件,以在线或者离线IDE的完成代码开发,让开发速度更快,质量更高。

架构

  1. 纷享销客引擎

PC端是使用Vue作为引擎,小程序端和PC端在自定义组件和插件方面大体一致,只不过小程序端是使用微信小程序的语法作为引擎,都提供了FxUI以及内置的相关的组件、插件、Api。

  1. APL代码

APL代码,是纷享基于 Java/Groovy 开发语言的服务端客制化高代码编程能力。通过将代码在线编译为 Java 字节码,直接运行在服务端的 JVM 中,同时支持在线创建、测试APL函数和类。通常在触发某个动作之后调用相应的自定义APL函数,在自定义组件中也可以通过调用Api使用。

  1. 自定义组件

在纷享销客的PaaS平台中,除了FxUI(内置基础表单组件)和一系列标准化的业务组件(内置的对象字段详情编辑之外,还向租户方开发者提供组件级二次开发能力,即 「自定义组件」。通过自定义组件(其实就是将vue -template的模版代码上传到纷享销客的后台),开发者能够在纷享销客的业务场景下,快速、简便地加入定制化的界面功能,以贴合企业用户的实际需求。

示例:

//   @file firstComponent.vue  
<template  >  
    <div class=  "demo  "  >  
        Hello:   
    </div  >  
</template  >  
<script  >  
export default {  
    data() {  
        return {  
             myName:   "Developer233  "  
        }  
    }  
}  
</script  >  
    <style  >  
    .demo {  
    width: 100%;  
    }  
</style  >

找到管理后台的「自定义组件」管理界面,点击「新建」并上传该文件,在布局设计器中,找到「自定义组件」工具箱,即可看到该组件,并将其拖入到页面布局中,在前端界面中,即可看到「第一个自定义组件」加载后的界面。 架构

5.自定义插件 自定义插件是一个javascript脚本,当遇到仅通过配置无法实现的业务场景时,除了开发自定义组件以外,它可以配置在表单和列表两种业务界面中 。插件的生命周期如下所示:

架构

示例在插件中引用组件:

import FieldName from   './name.vue  ';

export default {  
    // context: Object:字段的上下文环境  
    // data: Object:列表页面数据  
    /// 返回:该方法需返回列表页面数据。  
    // beforeParse发生在接口成功调用后,解析响应数据之前。  
    beforeParse(context, data){  
    //   ...  
    }  
    // beforeFetch发生在接口之前。  
    beforeFetch(context, data){  
    //   ...  
    }  
    // 渲染  
    render(context, field, value) {  
    return new Vue({  
    components: { // 使用自定义组件  
    AsyncComponent: FxUI.component.get(  'AsyncComponent  ')  
    },  
    render(h) {  
        使用组件  
        return h(FieldName, {  
        on: {  
        change: this.  _onChange  
        }  
    });  
    // 使用自定义组件  
    return h(  'AsyncComponent  ', {  
    props: {  
    // 获取组件  
    apiName: **  'component_plugin  _  _c  '**  
    },  
    });

    }).$mount().$el;  
   }  
}

其使用方式和自定义组件大体一致。

架构

  1. 插件和自定义组件区别 插件是在系统约束的框架内,对系统进行适当的控制。自定义组件是独立存在的业务功能的封装,并不会影响系统本身。以下是两者的比较:

架构

  1. API

纷享销客提供了丰富的API让用户在定义组件中控制菜单切换、操作对象、获取组织架构、调用自定义APL函数:

  1. $context: 定义组件的上下文环境(this.$context),它提供给自定义组件以下功能:
    • 事件订阅/发布 —组件内通信$emit,$on,emitSystem(系统内事件)
    • 行为守卫—开发者可以通过api注册一个守卫在上下文的状态发生变化前(例如刷新beforeRefresh、关闭(beforeHide)、业务操作callHook,tapHook)进行拦截。
    • 辅助API –获取组件内的对象(getData),组件描述(getComponets),表单字段(getFieldData)等信息
  2. 业务对象操作–FxUI.objectApi–获取业务对象的描述信息,业务对象数据,邮件模板列表等
  3. 业务对象界面操作–FxUI.objectUIAction–增删查改业务对象信息
  4. 应用操作–FxUI.appApi–进入应用,显隐菜单,监听代办和通知信息
  5. 组织架构–FxUI.organization–获取组织,员工,部门等信息
  6. 租户自定义–FxUI.userDefine.call_controller –调用自定义的controller函数

8.预置组件

UI组件:提供了FxUI的内置按钮,表单,弹出框,文字提示等基础组件

业务组件:展示定义的数据对象详情,表单,对象列表,关联对象列表的组件

9. 系统集成能力

企业都会自己的内部系统在使用纷享CRM的同时,可以通过iframe的方式将企业内部系统嵌入到CRM系统中,为保障安全性使用HTTPS协议,同时内部系统需要允许set-cookie为None,以及x-frame-option 请求头为 DENY 或者 ALLOW-FROM https://www.fxiaoke.com/。

架构

四、纷享销客总结:

自定义业务对象是纷享平台的基础构建模型,通过自定义对象将业务逻辑和数据进行封装,拼凑成对象业务组件并通过可视化配置页面,能满足大部分场景的业务开发,复杂需求完全可以通过APL自定义函数以及PWC提供的组件和插件机制采用低代码开发。基于纷享销客的低代码平台的上述能力,能够让企业更加快速地、更低成本、更敏捷、更高效地构建业务系统。

五、与阿里lowcode-engine对比

架构

六、纷享销客 VS StudioX

相似点:

其设计思路都是基于模型驱动的低代码平台,都支持自定义业务对象,并基于业务对象通过可视化设计器拖拽生成相应的业务页面,同时提供了丰富的预置业务组件,方便业务使用,支持流程定制以及角色权限控制。

不同点:

纷享销客的权限控制已经精确到了字段级,提供了国际化以及VSCode插件支持的能力,通过APL代码和自定义组件的方式扩展业务功能,StudioX在可扩展性方面还需要沉淀。

StudioX 目前支持schema的定义可以从容的进行跨端开发,纷享销客的低代码模块采用自定义组件代码的方式,各端之间的代码需要分别编写,这方面我们更有优势。

七、StudioX未来的思考

在低代码模块,我们也应该形成统一的sdk方法调用获取对象的信息、权限、组织架构、应用等信息,前端的组件库最好也能形成相应的以XsUI标准的组件库,同时提供自定义组件的功能,利于客户进行复杂业务的开。目前租户端对低代码模块的组件也是通过json-schema的形式定义的,此处可以参考lowcode-engne的方式,定义统一的标准使低代码模块能够在PC、移动端、App端同时使用。

参考:

纷享销客自定义组件

业务定制平台(PaaS)