用友yonsuite产品二开之简单的yonsql查询小工具
和以往的用友产品不同,yonsuite产品开发了低代码平台,满足客户的个性化开发需求。 它支持页面设计,前端函数以及后端函数的编写,后端函数分普通函数和API函数,API函数才可以让前端调用。然后在函数中可以通过yonSQL进行查询数据,对就是yonSql,他是平台新的sql规则,和数据库SQL有点小差别,但不影响。功能整体还是比较强大的。
- 平台网址:https://yonsuite.diwork.com/#/ 还有开发者平台比赛,有兴趣可以参与一下,在网站没找到文档···
http://tinper.org/mdf/docs#/wa0ing.html

如何进行二次开发?
- 登录系统(点击左上角风车,找到应用构建平台进行应用构建) 无法没有那就是没有权限

- 创建应用

- 创建实体
实体相当于数据库表,枚举相当于数据字典,查询是用作设计报表,创建实体后才能创建页面

- 创建页面
创建页面要基于相应的实体创建,实体时可以选择父实体,界面就可以绘制主子表结构页面


- 创建函数

- 使用函数
打开页面设计设置对应的前端函数,注意前端控件只能设置前端函数 
测试应用yonSQL查询小工具
- 前端函数
主要实现功能获取第一个输入框的值,是一个yonsql,传给后台执行sql,返回结果显示到第二个输入框中
cb.rest.invokeFunction (参数1:后台API函数调试ID;参数2:请求参数)
function (event) {
var viewModel = this;
var strSql= viewModel.get('item0sj').getValue();
cb.rest.invokeFunction("78645a2796ea481092c9a7b3ebf68655", {querySql:strSql},
function(err, res) {
console.log(err);
console.log(res.rst);
if(err!==null){
cb.utils.alert('拉取数据异常,请联系开发');
}else{
if(res.exception===undefined){
viewModel.get('item2qd').setValue(""+JSON.stringify(res.rst));
}else{
cb.utils.alert(res.exception);
}
}
});
}
- 后端函数
后端函数的语法也是类似javascript的语法,这里主要实现功能就是讲前台传过来的sql进行数据库查询接口返回给前台
let AbstractAPIHandler = require('AbstractAPIHandler');
class MyAPIHandler extends AbstractAPIHandler {
execute(request){
var sql= request.querySql;
var rst = ObjectStore.queryByYonQL(sql);
return {"rst":rst,"request":request};
}
}
exports({"entryPoint":MyAPIHandler});
- viewModel.get('item0sj'),如何查看对应控件的id

- cb.rest.invokeFunction("78645a2796ea481092c9a7b3ebf68655",如何查看后端API函数调试id


- 调试界面

用友yonsuite产品二开之简单的yonsql查询小工具的更多相关文章
- 小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图&简单图像处理
小工具:天气查询 开发一个天气查询的工具主要由两步构成,一是数据的获取,二是数据的展示. 一.数据获取 数据获取又可以分为使用其它公司提供的API和手动抓取其它网站数据. 1. 某公司提供的AP ...
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 关于用友 U8-UAP二开的一些事
这是关于一个刚刚接触用友U8的二次开发的一些小心得. 首先就是用友二开的论坛,http://u8dev.yonyou.com/ 当然这个论坛做得不怎么样,提出了好几个问题,都没有回复的. 以下是关于二 ...
- Odoo:全球第一免费开源ERP库龄表的简单实现方法(无需二开)
问题背景 希望查看库龄超过30天的货物,该如何实现?此种简单数据查询需要二开吗? 解决方案 方法一:Stock Quant列表视图增加过滤器 <filter string="库龄超30 ...
- NC57,NC63-NC二开经验总结
版主2010级市场营销专业本科生 2013年8月入达内培训Java相关技术 12月入职,做用友NC的二次开发工作 2015年4月离职,4中下旬入职一家互联网金融企业 下面是做NC二开期间积累的一些常用 ...
- 【阿里云产品公测】简单日志服务SLS使用评测 + 教程
[阿里云产品公测]简单日志服务SLS使用评测 + 教程 评测介绍 被测产品: 简单日志服务SLS 评测环境: 阿里云基础ECS x2(1核, 512M, 1M) 操作系统: CentOS 6.5 x6 ...
- 还在写SQL做SAP二开?通过RFC调用NetWeaver,让HANA数据库操作更可靠
相比于从零开始构建全套信息化系统,基于成熟的ERP等行业软件做二次开发是更多中大型企业应对个性化软件需求的首选方案.如何在二开模块中,可靠地对成品软件的数据库进行读写操作,以满足单据自动创建.元数据自 ...
- spring cloud: Hystrix(二):简单使用@HystrixCommand的commandProperties配置@HistrixProperty隔离策略
spring cloud: Hystrix(二):简单使用@HystrixCommand的commandProperties配置@HistrixProperty隔离策略 某电子商务网站在一个黑色星期五 ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
随机推荐
- 上手了RabbitMQ?再来看看它的交换机(Exchange)吧
人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 本篇是消息队列RabbitMQ的第三弹. RabbitMQ的入门和RabbitMQ+SpringBoot的整合可以点此链接进去回顾,今天要 ...
- css3新属性position: sticky 一分钟实现 导航栏悬停功能
css3新属性position: sticky 一分钟实现 导航栏悬停功能 前言 正文 前言 想必很多前端小伙伴经常会在开发中遇到这样一个需求,就是在下划时,导航栏悬停在屏幕最上方,例如咱们的csdn ...
- get customer attribute option
Mage::getResourceSingleton('customer/customer')->getAttribute('gender')->getSource()->getAl ...
- Dubbo直连方式
目录 一.dubbo概述 1. 基本架构 2. dubbo 支持的协议 二.直连方法 三.创建服务提供者 1. 思路 1. 创建maven web 2. pom.xml 3. 创建实体 4. 创建服务 ...
- 提升布局能力!理解 CSS 的多种背景及使用场景和技巧
CSS background是最常用的CSS属性之一.然而,并不是所有开发人员都知道使用多种背景.这段时间都在关注使用多种背景场景.在本文中,会详细介绍background-image`属性,并结合图 ...
- 详解 `HTTP` 系列之一
前言 本文介绍的是HTTP的基础知识,包括HTTP的由来.HTTP的报文信息.状态码.HTTP三个版本的对比等.希望这篇简短的文章能对大家认识HTTP协议提供帮助. HTTP的前世今生 HTTP 由来 ...
- [状压DP]P1441 题解 砝码称重
前置知识:状压DP 洛谷传送门 emm....看到题目,我第一个想到的就是枚举.暴力大法好! 具体怎么枚举?当然是子集枚举啦!枚举出每一个可能的砝码选择方案.对于每一个合法的(也就是选取数量等于\(n ...
- activemq的搭建
说在前面的话: 本节主要介绍activemq的介绍以及activemq的安装,希望可以给迷惑中的读者带来一丝灵感,activemq的安装是基于linux环境下的 准备的环境: 一台安装jdk的linu ...
- Kubernetes Operator基础入门
本文转自Rancher Labs 你是否曾经想过SRE团队是如何有效地成功管理复杂的应用?在Kubernetes生态系统中,Kubernetes Operator可以给你答案.在本文中,我们将研究Op ...
- Unity使用可空类型(Nullable Types)
译林军 范春彦|2014-04-09 09:46|5407次浏览|Unity(375)0 你怎么确定一个Vector3,int,或float变量是否被分配了一个值?一个方便的方式就是使用可空类型! 有 ...