有没有办法在Groovy DSL中检查if(do.condion=='11')
。
if(object.member == '2') //then do my logic
我无法使用==
。它不会抛出任何错误它只是下一个声明
答案 0 :(得分:1)
如果我正确理解您的DSL,为了清晰起见,请将其格式化为:
AcceptILPN {
input scanCase
if(workflowParameters.reserveVerificationModeParm.equals("1")) next AcceptSKUQuantity
if(workflowParameters.validateCarton.equals("1")) next AcceptOLPNOrTote
if(workflowDO.nextDtlPresent) next AcceptILPN else next AcceptPickCart
}
要了解发生了什么,请使用更正式的语法来使用相同的代码:
AcceptILPN {
input(scanCase)
if(workflowParameters.reserveVerificationModeParm.equals("1")) {
next(AcceptSKUQuantity)
}
if(workflowParameters.validateCarton.equals("1")) {
next(AcceptOLPNOrTote)
)
if(workflowDO.nextDtlPresent) {
next(AcceptILPN)
} else {
next(AcceptPickCart)
}
}
正如您所看到的,即使第一个if
表达式的计算结果为true,也会执行以下if
块,因为没有任何内容(至少在DSL中可见)退出{ {1}}过早地。你似乎正在寻找这样的东西:
Closure