我正在学习基本编程(现在通过SICP阅读),目的是编写Groovy脚本以在Oracle Agile PLM中进行部署。我已经在线阅读了几个Java教程,我也正在阅读Groovy Recipes一书。我正在尝试部署一些基本脚本,我遇到了if else语句的一些问题。我希望有人能指出我正确的方向。在这种情况下,1272和1332是属性ID。当属性1272等于'Stock'(由列表填充的属性)时,属性1332(文本字段)应该等于'AWESOME'。对于属性1272的所有其他值,属性1332应该等于'NOT AWESOME'。这就是我现在所拥有的:
import com.agile.agileDSL.ScriptObj.IBaseScriptObj
// add other import statements here
void invokeScript(IBaseScriptObj obj) {
//script body starts here.
def session = obj.getAgileSDKSession()
def objectClassId = obj.getObjectClassId()
def objectNumber = obj.getObjectNumber()
def dataObject = session.getObject(objectClassId, objectNumber) {
if ((dataObject.getValue(1272)) == 'Stock') {
dataObject.setValue(1332, 'AWESOME')
} else {
dataObject.setValue(1332, 'NOT AWESOME') }
}
}
通过这个和其他变化,我尝试过继续得到“groovy.lang.MissingMethodException:No signature of method”错误。
答案 0 :(得分:1)
不确定你使用的库,但是你应该在getObject()之后使用花括号吗?可能会尝试...
def dataObject = session.getObject(objectClassId, objectNumber)
if ((dataObject.getValue(1272)) == 'Stock') {
dataObject.setValue(1332, 'AWESOME')
}
else {
dataObject.setValue(1332, 'NOT AWESOME')
}