Bean模块管理
# FastWeb Bean模块管理
# 1. 简介
Bean模块的功能界面与设计模式与模块设计是相同的,与模块设计的不同是,Bean模块只能通过URL参数的方式来进行调用。而模块设计中的模块需要绑定菜单列表,通过点击菜单栏位来实现调用。

# 2. 设置Bean模块
点击左侧菜单栏中的 云服务工具-Bean模块管理
,打开Bean模块管理的界面。模块列表中的项会根据分组进行排序,可从表格顶部的筛选框中输入信息来快速查找相关模块。
# 2.1. 操作说明
添加Bean模块
如在初始状态下,Bean模块列表中无模块可选择,可直接点击 [添加]
按钮打开添加Bean模块对话框;如模块列表中存在可选模块,则选择要进行新增操作的分组中的任一模块,点击 [添加]
按钮,打开添加模块的对话框。与之前打开的对话框不同之处在于此时的组别编辑框中会引入刚才选择的分组信息。如需要新增组别的可直接在组别编辑框中修改为需要的组别信息,输入标题,选择开发用户,输入完成后点击 [保存]
按钮即可。

修改模块
如果需要修改Bean模块列表中已有模块的分组、标题或者开发用户信息,则选择要修改的模块,点击[修改]
按钮打开修改Bean
的对话框,在其中修改模块的信息,修改完成后点击[保存]
按钮保存。

删除模块
如需要删除某个模块,选择在模块列表中要删除的Bean模块,点击[删除]
按钮,此时会弹出删除Bean模块的提示信息,点击[是]
可删除选择的模块,如不需要删除模块,点击[否]
。
Bean设计
如需要进行Bean模块设计,首先需要选择要进行设计操作的模块,然后点击[Bean设计]
进入至模块设计的页面。关于Bean设计的说明请参考模块设计部分的说明。
Bean编辑
Bean编辑的功能适用于对Bean模块内容的修正。比如由于误操作导致选择的Bean模块不能进入至Bean模块设计页面,或者是在不进入模块设计页面的情况下导入模块时,模块编辑功能将会有很大的帮助。
选择要进行编辑的模块,点击[模块编辑]
按钮,打开模块编辑页面。在此页面中,可以将导出模块的txt
文件中的文本粘贴至此并覆盖原有的文本,点击上方右侧的保存至数据库
按钮将模块进行保存。也可对存在模块问题的文本进行编辑保存以能够正常打开模块设计页面。

# 2.2. Bean设计
Bean设计的说明请参考模块设计部分的说明。
# 2.3. Bean引用
Bean模块需通过Url参数来引用。引用的Url格式示例如下。
http://localhost:8888/?bean=bean-001¶mname=paramvalue&...
可使用的参数见下列表。
参数名称 | 类型 | 描述 | 是否必选 |
---|---|---|---|
bean | String | 设置Bean模块的编号,也可使用Bean模块记录的唯一地址 | 是 |
username | String | 登录的用户名称 | 否 |
password | String | 登录的用户密码,此密码为加密后的密码。可在登录后点击右上角的用户图标查看![]() Password 处第一个等号与倒数两个等号之间的数值为加密后的密码文本 | 否 |
其中引用的示例的 paramname=paramvalue
是自行定义的参数,这些自定义的参数可在Bean模块的脚本中获取。通过这种方式,可动态获取参数,在脚本中处理后实时展示。获取参数值的脚本示例如下。
//JScript
// s获取到的Url参数paramname的取值为 paramvalue
var s = Uniapplication.Parameters.Values["paramname"];
2
3
//PasScript
s := Uniapplication.Parameters.Values['paramname'];
2
// Make sure to add code blocks to your code group
# 2.4. Bean监控
IsoBean提供了Bean模块运行监控的功能。
当Bean模块在打开运行的状态中,可使用以下示例URL参数获取到处在运行状态的Bean模块信息。
http://localhost:8888/?restapi=getframemaps
如果要依据Bean模块的代码来删选,可额外添加一个参数 modulecode
。请求的示例如下。
http://localhost:8888/?restapi=getframemaps&modulecode=test
获取的示例如下。
[{"ModuleGuid":"BFCBA5CA-466E-4696-80C6-EDAE88FFD9EE","ModuleCode":"test","ModuleCaption":"test","ModuleType":"WEB","JSName":"O74","SessionId":"FBE8bVTbUm10A2DDF73","UserName":"demo","Createtime":"2022-04-06T10:59:16.390+08:00"}]
获取到的json各字段的说明如下。
字段名称 | 说明 |
---|---|
ModuleGuid | Bean模块的全局唯一ID,在Bean模块创建设计时生成 |
ModuleCode | Bean模块的编号 |
ModuleCaption | Bean模块的标题名称 |
ModuleType | Bean模块的类型,可分为 WEB 与 APP |
JSName | Bean模块窗口运行的JS名称 |
SessionId | Bean模块在运行时被分配的连接会话的ID |
UserName | Bean模块登录的用户名 |
Createtime | Bean模块创建的事件 |
以上json可导入至 TUgFDMenTable
,以表格的方式呈现。以下是实现效果的示例的部分程序。
//JScript
function UgRestApi01OnResultData(sender,aaresult)
{
if (UgFDMemTable01.Active)
UgFDMemTable01.EmptyDataSet;
UgFDMemTable01.LoadFromJSONString(aaresult);
UgFDMemTable01.Filtered = false;
UgFDMemTable01.Filter = "sessionid<>"+quotedstr(UniSession.SessionId);
UgFDMemTable01.Filtered = true;
}
function UgTimer01OnTimer(sender)
{
UgRestApi01.Server = Unisession.Url;
UgRestApi01.Params.Values["restapi"] = "getframemaps";
UgRestApi01.Params.Values["ModuleCode"] = "test";
UgRestApi01.Send;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//PasScript
procedure UgRestApi01OnResultData(sender:tobject,aresult: string);
begin
if (UgFDMemTable01.Active) then
UgFDMemTable01.EmptyDataSet;
UgFDMemTable01.LoadFromJSONString(aresult);
UgFDMemTable01.Filtered := false;
UgFDMemTable01.Filter := 'sessionid<>' + quotedstr(UniSession.SessionId);
UgFDMemTable01.Filtered := true;
end;
procedure UgTimer01OnTimer(sender: tobject);
begin
UgRestApi01.Server := Unisession.Url;
UgRestApi01.Params.Values['restapi'] := 'getframemaps';
UgRestApi01.Params.Values['ModuleCode'] := 'test';
UgRestApi01.Send;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Make sure to add code blocks to your code group