我已经设置了一个过滤电子邮件的Outlook规则.我想运行一个外部程序(python脚本)来解析每个这样的电子邮件.
我知道SHELL功能,但我需要一种方法将电子邮件的正文传递给我的外部程序.
我用或运算符定义了一个规则,但它返回多个true或false.
isloanaccept(Name,Guarantor,LoanType,LoanAmount,LoanTenure)
:- customer(Name,bank(_),customertype(_),
citizen(Ci),age(Age),credit(C),
income(I),property(_),bankemployee(_)),
Ci == 'malaysian',
Age >= 18,
C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name),
ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenure).
Run Code Online (Sandbox Code Playgroud)
实际上,我需要检查贷款类型是否符合特定贷款要求并与一般规则相结合.
换句话说,我需要像这样定义上面的规则.
Ci == 'malaysian', Age >= 18,C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name)
Or with (ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenur)
Run Code Online (Sandbox Code Playgroud)
它应该在命令行中返回1个true/false而不是多个语句.
每个或者规则返回1布尔值,这是我想要的后检查命令行中的规则.我需要这样(一般规则和(多重或规则)).
如何组合几个或返回1布尔值的规则?
请帮忙.
谢谢.
我的.NET应用程序在运行时评估用户定义的规则.这些规则由用户通过GUI菜单输入系统.我生成一个与之对应的逻辑语句并将其存储在数据库中.
例如:( Name ='John'AND Surname ='Smith')或Number> 12
然而,当用户想要通过GUI编辑规则时,我需要进行反向操作以从存储的规则确定菜单状态,这是昂贵且复杂的.您如何建议以一种可以轻松转换为菜单状态的方式存储规则?
我在 UI 上有规则配置,它构建为 Java POJO。我如何生成 Drools DRL(传递给其他组件,该组件将匹配事实等,并在规则匹配时返回 true 或 false)。
我还从数据库收到 DRL 文件,为了在 UI 上显示规则,我需要转换回 Java POJO。
基本上有没有任何工具或脚本可以在 Java POJO 和 Drools DRL 文件之间进行转换?如果没有,最好的方法是什么?
非常感谢!
我有两个 int 字段的简单 JAVA bean:'a' 和 'b'。
我有两个规则:
rule "First rule"
salience 10
when
$bean : Bean ( a == 1)
then
$bean.setB(10);
end
rule "Second rule"
salience 20
when
$bean : Bean ( a == 1)
then
$bean.setB(20);
end
Run Code Online (Sandbox Code Playgroud)
实际结果:首先触发“第二条规则”(更高的显着性),第二条触发“第一条规则”。
预期结果:仅触发一条规则(具有最高显着性)。其他规则被忽略。这该怎么做?在 Drools 中可能吗?我正在使用 Drools 6.0.0 Final。
要求: 1. 我不能使用“激活组”。2. 我不想在每个 bean 上使用 'retract'。
更新
真的很感谢你的回答。
也许我应该详细描述我的问题。我有一套 1500 条规则。每条规则:
我想得到什么? 当我有冲突(输入事实与两个或更多规则匹配)时,我只想触发一个具有最高显着性的规则。应该忽略这一事实的其他匹配规则。最重要的是性能 - 这应该尽可能快地工作。
我所做的? 目前我有两种解决方案,但我不知道哪个更好,或者我应该以不同的方式解决这个问题。
解决方案 1 …
我正在尝试使用Delphi XE3在Windows 7上管理防火墙规则(例外).我发现了一个非常有趣的代码,用于向Windows防火墙添加规则,但没有删除(删除)它.拜托,有人可以帮忙吗?
以下是添加规则的代码:
procedure AddExceptToFirewall(const Caption, AppPath: String);
// Uses ComObj
const
NET_FW_PROFILE2_PRIVATE = 2;
NET_FW_PROFILE2_PUBLIC = 4;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_ACTION_ALLOW = 1;
var
Profile: Integer;
Policy2: OleVariant;
RObject: OleVariant;
NewRule: OleVariant;
begin
Profile := NET_FW_PROFILE2_PRIVATE OR NET_FW_PROFILE2_PUBLIC;
Policy2 := CreateOleObject('HNetCfg.FwPolicy2');
RObject := Policy2.Rules;
NewRule := CreateOleObject('HNetCfg.FWRule');
NewRule.Name := Caption;
NewRule.Description := Caption;
NewRule.ApplicationName := AppPath;
NewRule.Protocol := NET_FW_IP_PROTOCOL_TCP;
NewRule.Enabled := True;
NewRule.Grouping := '';
NewRule.Profiles := Profile;
NewRule.Action := NET_FW_ACTION_ALLOW;
RObject.Add(NewRule);
end;
Run Code Online (Sandbox Code Playgroud)
谢谢!
有没有办法改变枚举设置其常量值的方式?通常它会增加一,但我想应用另一条规则。在 PAWN 中这可以工作
enum (<<=1) {
a = 1,//0b001
b,//0b010
c//0b100
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在 C++ 中做到这一点?
查看GNU make manual,空配方和无配方之间究竟有什么区别(例如,请参阅没有配方或先决条件的规则中的一个实例)?更重要的是,什么时候应该使用/避免这两种食谱中的每一种?
在我目前的理解中,应该始终使用
target: ;
Run Code Online (Sandbox Code Playgroud)
因为有时一个隐含的规则有可能会破坏一个人的目的,没有规则。
在集成测试类中,我遇到了以下代码行:
@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
Run Code Online (Sandbox Code Playgroud)
当我尝试导航到课程时(我使用Intellij Idea)我得到'找不到声明去'.当我试图找到用法时,我得到"项目中没有找到用法"我熟悉规则的概念.但仍然不明白这两件事做了什么.我查看了这个页面:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ 没有信息.
我刚刚开始使用Eclipse的SonarLint插件来分析我的Java代码。我想知道,SonarLint Rule键中的“ squid:”前缀是什么意思?它代表什么吗?(请参见下面的屏幕截图)
谢谢!
麦可