目录
1、准备工作
云之家
申请云之家
云之家官网
1、获取云之家eid
2、同步eas和云之家用户
参考文档:云之家同步eas用户参考文档
移动BOS
搭建移动bos
2、开发工作
后台篇
bos环境搭建
1、安装bos工具
2、启动eas服务器管理控制台的bim服务器
3、从eas服务器更新bos工具
4、导入解决方案
此处遇到个问题,新搭建的eas服务器,更新解决方案报错,具体看日志发现,是路径中gl模块有个脚本是中文命名导致更新失败,删除失败日志对应的脚本文件即可正常导入解决方案
实现工具类
1、创建后台类
例:后台类名com.kingdee.eas.cp.bc.app.mobile.MInvoceTicketUtil
2、后台类中创建具体方法供调用
具体调用例:
后台代码:
public static CoreBillBaseInfo invokeInvoiceSeiralNos(Context ctx,String companyid,String invoiceTicketNos,String jsonData) throws EASBizException, BOSException, Exception{
CompanyOrgUnitInfo companyOrgUnitInfo = CompanyOrgUnitFactory
.getLocalInstance(ctx).getCompanyOrgUnitInfo(
new ObjectUuidPK(BOSUuid.read(companyid)));
String userkey = getUserkey(ctx, companyOrgUnitInfo);
String client_id = companyOrgUnitInfo.getAuthorizationCode();
String client_sec = companyOrgUnitInfo.getAuthorizationKey();
long timestamp = new Date().getTime();
String sign = MD5Util.getMD5String(client_id+client_sec+timestamp);
JSONObject json = new JSONObject();
json.put("userKey", userkey);
json.put("timestamp", timestamp);
json.put("sign", sign);
json.put("client_id", client_id);
json.put("fid", invoiceTicketNos);
String url = getValFromPro("webUrl")+getValFromPro("viewInviceDetail");
JSONObject returnJson = sendPost(url, json);
if ("0000".equals(returnJson.getString("errcode"))) {
JSONArray invokeDetaildata = returnJson.getJSONArray("data");
return dealData(ctx,invokeDetaildata, JSONUtils.convertJsonToObject(ctx, jsonData, BizAccountBillInfo.class));
} else {
String error_description = returnJson
.getString("description");
throw new BOSException(error_description);
}
}
移动bos中后台调用方法:
//定义引入变量
var easNames =JavaImporter();
//引入指定包
easNames.importPackage(Packages.java.util);
easNames.importPackage(Packages.com.kingdee.util);
easNames.importPackage(Packages.com.kingdee.eas.cp.bc);
easNames.importPackage(Packages.com.kingdee.eas.cp.bc.app.mobile);
//使用引用作用域
with(easNames){
//获取服务端上下文
var ctx = context.getBosContext();
var companyId=com.kingdee.eas.util.app.ContextUtil.getCurrentFIUnit(context.getBosContext()).get("id").toString();
var invoiceSeiralNos = context.getParamAsString(0);
var info = context.getParamAsString(1);
var jsonArray = MInvoceTicketUtil.invokeInvoiceSeiralNos(ctx,companyId,invoiceSeiralNos,info);
context.setResult(jsonArray);
}
前台调用后台方法:
_this.importInvoce = function(event) {
var param = [];
var success = function(result) {
XuntongJSBridge.call('launchMiniprogram', result, function(returnValue) {