public virtual JObject GetESBObjectParams(HttpContext context) { YZRequest request = new YZRequest(context); String objectName = request.GetString("ESB"); FlowDataSet dataset = new FlowDataSet(); //获取参数 string[] strs = objectName.Split(':'); SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]); FlowDataTable table = new FlowDataTable(); dataset.Tables.Add(table); SourceVisit visit = new SourceVisit(sourceInfo); List <ColumnInfo> paramList = visit.GetParameter(); if (paramList != null && paramList.Count > 0) { foreach (var item in visit.GetParameter()) { table.Columns.Add(new FlowDataColumn(item.rename)); } } JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType"); rv["supportOp"] = false; return(rv); }
/// <summary> /// 返回数据源列表 /// </summary> /// <param name="context"></param> /// <returns></returns> public JArray GetSourceList(HttpContext context) { JArray array = new JArray(); SourceInfoCollection rv = SourceInfoManager.GetSourceList(); return(JArray.FromObject(rv)); }
/// <summary> /// 测试数据源 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject TestSource(HttpContext context) { JObject obj = new JObject(); YZRequest request = new YZRequest(context); int sourceId = request.GetInt32("sourceId"); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); QueryDepictInfo info = JObject.Parse(sourceInfo.sourceStr).ToObject <QueryDepictInfo>(); StreamReader reader = new StreamReader(context.Request.InputStream); using (JsonTextReader streamReader = new JsonTextReader(reader)) { //获取参数配置 JsonSerializer serializer = new JsonSerializer(); JArray array = serializer.Deserialize(streamReader) as JArray; if (array != null && array.Count > 0) { foreach (var item in array) { ColumnInfo column = info.parameter.First(n => n.columnName == item["columnName"].ToString()); column.defaultValue = item["defaultValue"].ToString(); } } } DataTable dt = GetResult(info, sourceInfo.connectInfo); JArray results = new JArray(); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { JObject item = new JObject(); foreach (DataColumn column in dt.Columns) { item[column.ColumnName] = row[column.ColumnName].ToString(); } results.Add(item); } obj["children"] = results; } else { JObject item = new JObject(); foreach (DataColumn column in dt.Columns) { item[column.ColumnName] = ""; } results.Add(item); obj["children"] = results; } obj["children"] = results; //执行数据 obj[YZJsonProperty.success] = true; return(obj); }
public JObject DeleteSource(HttpContext context) { JObject obj = new JObject(); YZRequest request = new YZRequest(context); int sourceId = request.GetInt32("sourceId"); SourceInfoManager.DeleteSource(sourceId); obj[YZJsonProperty.success] = true; obj[YZJsonProperty.errorMessage] = "删除成功!"; return(obj); }
/// <summary> /// 返回源详细信息 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject GetSourceInfo(HttpContext context) { YZRequest request = new YZRequest(context); int sourceId = request.GetInt32("sourceId"); SourceInfo entity = SourceInfoManager.GetSourceInfo(sourceId); JObject obj = JObject.FromObject(entity); QueryDepictInfo info = JObject.Parse(entity.sourceStr).ToObject <QueryDepictInfo>(); obj["sourceStr"] = BizCommon.GetQueryDepictInfoJson(info); obj[YZJsonProperty.success] = true; return(obj); }
public virtual BPMObjectNameCollection GetESBObjects(HttpContext context) { YZRequest request = new YZRequest(context); BPMObjectNameCollection rv = new BPMObjectNameCollection(); SourceInfoCollection list = SourceInfoManager.GetSourceList(); foreach (var item in list.ToArray()) { rv.Add(string.Format("{0}:{1}", item.sourceType.ToString(), item.sourceName)); } return(rv); }
/// <summary> /// 判断数据源名称是否唯一 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject IsSourceNameOnly(HttpContext context) { YZRequest request = new YZRequest(context); string sourceName = request.GetString("sourceName"); SourceTypeEnum sourceType = request.GetEnum <SourceTypeEnum>("sourceType"); JObject obj = new JObject(); bool falg = SourceInfoManager.IsSourceRepeat(sourceName, sourceType); if (falg) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!"; } else { obj[YZJsonProperty.success] = true; } return(obj); }
public virtual JObject GetUserDataESB(BPMConnection cn, JObject request) { string esbObjectName = (string)request["ESB"]; YZDSFilterCollection filters = request["Filter"] != null ? request["Filter"].ToObject <YZDSFilterCollection>() : null; //获取参数 string[] strs = esbObjectName.Split(':'); SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]); SourceVisit visit = new SourceVisit(sourceInfo); BPMObjectNameCollection names = new BPMObjectNameCollection(); List <ColumnInfo> values = new List <ColumnInfo>(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { names.Add(filter.Key); values.Add(new ColumnInfo() { columnName = filter.Key, defaultValue = filter.Value.value }); } foreach (ColumnInfo column in visit.GetParameter()) { if (!names.Contains(column.rename)) { names.Add(column.rename); values.Add(new ColumnInfo() { columnName = column.rename, defaultValue = column.defaultValue }); } } } DataTable dt = visit.GetResult(values); FlowDataTable table = new FlowDataTable(dt); return(this.ToResult(table, false)); }
public virtual DataTable GetESBDataNoPaged(HttpContext context) { YZRequest request = new YZRequest(context); string esbObjectName = request.GetString("ESB"); YZDSFilterCollection filters = JObject.Parse(request.GetString("Filter", "{}")).ToObject <YZDSFilterCollection>(); //获取参数 string[] strs = esbObjectName.Split(':'); SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]); SourceVisit visit = new SourceVisit(sourceInfo); BPMObjectNameCollection names = new BPMObjectNameCollection(); List <ColumnInfo> values = new List <ColumnInfo>(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { names.Add(filter.Key); values.Add(new ColumnInfo() { columnName = filter.Key, defaultValue = filter.Value.value }); } foreach (ColumnInfo column in visit.GetParameter()) { if (!names.Contains(column.rename)) { names.Add(column.rename); values.Add(new ColumnInfo() { columnName = column.rename, defaultValue = column.defaultValue }); } } } return(visit.GetResult(values)); }
public virtual JObject GetESBObjectSchema(HttpContext context) { YZRequest request = new YZRequest(context); String objectName = request.GetString("ESB"); FlowDataSet dataset = new FlowDataSet(); //获取参数 string[] strs = objectName.Split(':'); SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]); FlowDataTable table = new FlowDataTable(); dataset.Tables.Add(table); SourceVisit visit = new SourceVisit(sourceInfo); foreach (var item in visit.GetSchema()) { table.Columns.Add(new FlowDataColumn(item.rename, typeof(string))); } return(YZJsonHelper.SerializeSchema(dataset, "", "DataType")); }
/// <summary> /// 保存数据源 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject SaveSource(HttpContext context) { JObject obj = new JObject(); try { YZRequest request = new YZRequest(context); //操作类型 string joinType = request.GetString("joinType"); string sourceName = request.GetString("sourceName"); string caption = request.GetString("caption", ""); int connectId = request.GetInt32("connectId"); int sourceId = request.GetInt32("sourceId", 0); string queryStr = request.GetString("queryStr"); //判断是否重名 bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.Oracle, sourceId); if (isNameOnly) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!"; return(obj); } //执行 ConnectInfo con = ConnectInfoManager.GetConnectInfo(connectId); OracleLogin login = JObject.Parse(con.connectStr).ToObject <OracleLogin>(); ISourceHandle handle = new OracleHandle(login); QueryDepictInfo info = new QueryDepictInfo(); info.query = queryStr; StreamReader reader = new StreamReader(context.Request.InputStream); using (JsonTextReader streamReader = new JsonTextReader(reader)) { //获取参数配置 JsonSerializer serializer = new JsonSerializer(); JArray array = serializer.Deserialize(streamReader) as JArray; JObject jo = array[0] as JObject; JArray parameterArray = jo["parameter"] as JArray; if (parameterArray != null && parameterArray.Count > 0) { List <ColumnInfo> paramList = new List <ColumnInfo>(); foreach (var item in parameterArray) { ColumnInfo column = new ColumnInfo(); column.columnName = item["columnName"].ToString(); column.rename = item["rename"].ToString(); column.isShow = item["isShow"].ToString().ToUpper().Equals("TRUE") ? 1 : 0; column.defaultValue = item["defaultValue"].ToString(); paramList.Add(column); } info.parameter = paramList; } JArray schemaArray = jo["schema"] as JArray; if (schemaArray != null && schemaArray.Count > 0) { List <ColumnInfo> schemaList = new List <ColumnInfo>(); foreach (var item in schemaArray) { ColumnInfo column = new ColumnInfo(); column.columnName = item["columnName"].ToString(); column.rename = item["rename"].ToString(); column.isShow = item["isShow"].ToString().ToUpper().Equals("TRUE") ? 1 : 0; column.defaultValue = item["defaultValue"].ToString(); schemaList.Add(column); } info.schema = schemaList; } } if (joinType.ToUpper().Equals("THEEDIT")) { SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); sourceInfo.sourceName = sourceName; sourceInfo.caption = caption; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.EditSource(sourceInfo); } else { SourceInfo sourceInfo = new SourceInfo(); sourceInfo.sourceName = sourceName; sourceInfo.sourceType = SourceTypeEnum.Oracle; sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId); sourceInfo.caption = caption; sourceInfo.isvalid = true; sourceInfo.createTime = DateTime.Now; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.AddSource(sourceInfo); } obj[YZJsonProperty.success] = true; obj[YZJsonProperty.errorMessage] = "保存成功"; return(obj); } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.Message.ToString(); return(obj); } }
/// <summary> /// 连接到服务器 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject JoinService(HttpContext context) { JObject obj = new JObject(); try { List <ElementInfo> structList; OracleLogin login; ISourceHandle handle; YZRequest request = new YZRequest(context); string joinType = request.GetString("jointype"); if (joinType.ToUpper().Equals("THEADD")) { //新增模式 int connectId = request.GetInt32("connectId"); ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId); //生成连接对象 login = JObject.Parse(connectInfo.connectStr).ToObject <OracleLogin>(); //实例化连接对象 handle = new OracleHandle(login); //获取接口集合 structList = handle.GetElementList(); } else { //编辑模式 int sourceId = request.GetInt32("sourceId"); //模糊查询表或视图的名称 string name = request.GetString("name", ""); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); //生成连接对象 login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <OracleLogin>(); //实例化连接对象 handle = new OracleHandle(login); //获取接口集合 structList = handle.GetElementList(name); } if (structList != null && structList.Count > 0) { List <ElementInfo> tableList = structList.Where(n => n.elementType.Trim().ToUpper().Equals("U")).ToList(); JArray tableArray = new JArray(); foreach (ElementInfo item in tableList) { JObject jo = new JObject(); jo["name"] = item.elementName; tableArray.Add(jo); } List <ElementInfo> viewList = structList.Where(n => n.elementType.Trim().ToUpper().Equals("V")).ToList(); JArray viewArray = new JArray(); foreach (ElementInfo item in viewList) { JObject jo = new JObject(); jo["name"] = item.elementName; viewArray.Add(jo); } obj["table"] = tableArray; obj["view"] = viewArray; obj[YZJsonProperty.success] = true; return(obj); } else { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "没有可供查询的表或视图!"; return(obj); } } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.ToString(); return(obj); } }
/// <summary> /// 保存数据源 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject SaveSource(HttpContext context) { JObject obj = new JObject(); YZRequest request = new YZRequest(context); try { //操作类型 string joinType = request.GetString("joinType"); string sourceName = request.GetString("sourceName"); string caption = request.GetString("caption", ""); int connectId = request.GetInt32("connectId"); int sourceId = request.GetInt32("sourceId", 0); //判断是否重名 bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.SAP, sourceId); if (isNameOnly) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!"; return(obj); } ConnectInfo con = ConnectInfoManager.GetConnectInfo(connectId); SapLogin login = JObject.Parse(con.connectStr).ToObject <SapLogin>(); ISourceHandle handle = new SapHandle(login); //获取接口信息 string rfcName = request.GetString("rfcName"); QueryDepictInfo info = handle.GetQueryInfo(rfcName); StreamReader reader = new StreamReader(context.Request.InputStream); using (JsonTextReader streamReader = new JsonTextReader(reader)) { //获取参数配置 JsonSerializer serializer = new JsonSerializer(); JArray array = serializer.Deserialize(streamReader) as JArray; JObject jo = array[0] as JObject; JArray parameterArray = jo["parameter"] as JArray; //清空输入参数原始值 CommonHandle.ClearParameter(info.parameter); //配置输入参数值 foreach (JObject item in parameterArray) { ColumnInfo column = info.parameter.First(n => n.columnName == item["columnName"].ToString()); SetParameterValue(column, item); } JArray schemaArray = jo["schema"] as JArray; //清空输出参数原始值 CommonHandle.ClearParameter(info.schema); //配置输出参数值 foreach (JObject item in schemaArray) { ColumnInfo columnInfo = info.schema.First(n => n.columnName == item["columnName"].ToString()); SetOutputInfo(columnInfo, item); } } if (joinType.ToUpper().Equals("THEEDIT")) { SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); sourceInfo.sourceName = sourceName; sourceInfo.caption = caption; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.EditSource(sourceInfo); } else { SourceInfo sourceInfo = new SourceInfo(); sourceInfo.sourceName = sourceName; sourceInfo.sourceType = SourceTypeEnum.SAP; sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId); sourceInfo.caption = caption; sourceInfo.isvalid = true; sourceInfo.createTime = DateTime.Now; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.AddSource(sourceInfo); } obj[YZJsonProperty.success] = true; obj[YZJsonProperty.errorMessage] = "保存成功"; return(obj); } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.ToString(); return(obj); } }
/// <summary> /// 连接服务 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject JoinService(HttpContext context) { JObject obj = new JObject(); try { List <ElementInfo> structList; SapLogin login; ISourceHandle handle; YZRequest request = new YZRequest(context); string joinType = request.GetString("jointype"); if (joinType.ToUpper().Equals("THEADD")) { //新增模式 int connectId = request.GetInt32("connectId"); string rfcName = request.GetString("rfcName", ""); ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId); //生成连接对象 login = JObject.Parse(connectInfo.connectStr).ToObject <SapLogin>(); //实例化连接对象 handle = new SapHandle(login); structList = handle.GetElementList(rfcName); } else { //编辑模式 int sourceId = request.GetInt32("sourceId"); string rfcName = request.GetString("rfcName", ""); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); //生成连接对象 login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <SapLogin>(); //实例化连接对象 handle = new SapHandle(login); //获取接口集合 structList = handle.GetElementList(rfcName); } if (structList != null && structList.Count > 0) { JArray funcArray = new JArray(); foreach (var item in structList) { JObject jo = new JObject(); jo["name"] = item.elementName; funcArray.Add(jo); } obj["funcarray"] = funcArray; obj[YZJsonProperty.success] = true; } else { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "没有可供调用的接口!"; return(obj); } return(obj); } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.Message; return(obj); } }
/// <summary> /// 连接服务 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject JoinService(HttpContext context) { JObject obj = new JObject(); try { List <ElementInfo> structList; ExcelLogin login; ISourceHandle handle; QueryDepictInfo info; YZRequest request = new YZRequest(context); string joinType = request.GetString("jointype"); if (joinType.ToUpper().Equals("THEADD")) { //新增模式 int connectId = request.GetInt32("connectId"); ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId); //生成连接对象 login = JObject.Parse(connectInfo.connectStr).ToObject <ExcelLogin>(); //实例化连接对象 handle = new ExcelHandle(login); //获取接口集合 structList = handle.GetElementList(); info = new QueryDepictInfo(); } else { //编辑模式 int sourceId = request.GetInt32("sourceId"); //模糊查询表或视图的名称 string sheetName = request.GetString("sheetName", ""); SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); //生成连接对象 login = JObject.Parse(sourceInfo.connectInfo.connectStr).ToObject <ExcelLogin>(); //实例化连接对象 handle = new ExcelHandle(login); //获取接口集合 structList = handle.GetElementList(sheetName); info = JObject.Parse(sourceInfo.sourceStr).ToObject <QueryDepictInfo>(); } //获取接口集合 if (structList != null && structList.Count > 0) { JArray sheetArray = new JArray(); foreach (var item in structList) { JObject jo = new JObject(); jo["name"] = item.elementName; sheetArray.Add(jo); } obj["sheetArray"] = sheetArray; obj["schema"] = GetColumnJson(info); obj[YZJsonProperty.success] = true; } else { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "没有可供查询的sheet表!"; return(obj); } return(obj); } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.ToString(); return(obj); } }
/// <summary> /// 保存数据源 /// </summary> /// <param name="context"></param> /// <returns></returns> public JObject SaveSource(HttpContext context) { JObject obj = new JObject(); try { YZRequest request = new YZRequest(context); string joinType = request.GetString("joinType"); string sourceName = request.GetString("sourceName"); string caption = request.GetString("caption", ""); int connectId = request.GetInt32("connectId"); int sourceId = request.GetInt32("sourceId", 0); string sheetName = request.GetString("sheetName"); string titleIndex = request.GetString("titleIndex"); string query = string.Format("{0}|{1}", sheetName, titleIndex); //判断是否重名 bool isNameOnly = SourceInfoManager.IsSourceNameRepeat(sourceName, SourceTypeEnum.Excel, sourceId); if (isNameOnly) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = "已存在同名的数据源,请重命名数据源名称!"; return(obj); } ConnectInfo connectInfo = ConnectInfoManager.GetConnectInfo(connectId); ExcelLogin login = JObject.Parse(connectInfo.connectStr).ToObject <ExcelLogin>(); ISourceHandle handle = new ExcelHandle(login); QueryDepictInfo info = handle.GetQueryInfo(sheetName); info.query = query; info = handle.GetQueryInfo(info); StreamReader reader = new StreamReader(context.Request.InputStream); using (JsonTextReader streamReader = new JsonTextReader(reader)) { //获取参数配置 JsonSerializer serializer = new JsonSerializer(); JArray array = serializer.Deserialize(streamReader) as JArray; List <ColumnInfo> param = new List <ColumnInfo>(); foreach (var item in array) { if (item["inputIsShow"].ToString().ToUpper().Equals("TRUE")) { ColumnInfo column = new ColumnInfo(); column.columnName = item["columnName"].ToString(); column.columnType = item["columnType"].ToString(); column.defaultValue = item["defaultValue"].ToString(); column.isShow = 1; column.rename = item["inputRename"].ToString(); param.Add(column); } ColumnInfo schemaColumn = info.schema.First(n => n.columnName == item["columnName"].ToString()); if (item["outputIsShow"].ToString().ToUpper().Equals("TRUE")) { schemaColumn.rename = item["outputRename"].ToString(); schemaColumn.isShow = 1; } else { schemaColumn.isShow = 0; } } info.parameter = param; } if (joinType.ToUpper().Equals("THEEDIT")) { SourceInfo sourceInfo = SourceInfoManager.GetSourceInfo(sourceId); sourceInfo.sourceName = sourceName; sourceInfo.caption = caption; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.EditSource(sourceInfo); } else { SourceInfo sourceInfo = new SourceInfo(); sourceInfo.sourceName = sourceName; sourceInfo.sourceType = SourceTypeEnum.Excel; sourceInfo.connectInfo = ConnectInfoManager.GetConnectInfo(connectId); sourceInfo.caption = caption; sourceInfo.isvalid = true; sourceInfo.createTime = DateTime.Now; sourceInfo.updateTime = DateTime.Now; sourceInfo.sourceStr = JObject.FromObject(info).ToString(); SourceInfoManager.AddSource(sourceInfo); } obj[YZJsonProperty.success] = true; obj[YZJsonProperty.errorMessage] = "保存成功"; return(obj); } catch (Exception ex) { obj[YZJsonProperty.success] = false; obj[YZJsonProperty.errorMessage] = ex.Message.ToString(); return(obj); } }