Groovy Script в Oracle Agile PLM для устранения неполадок

Я нахожусь в процессе изучения базового программирования (сейчас читаю через SICP) с целью написания скриптов Groovy для развертывания в Oracle Agile PLM. Я просмотрел несколько онлайн-уроков по Java и читаю книгу Groovy Recipes. Я пытаюсь развернуть некоторые базовые сценарии, и я столкнулся с некоторыми проблемами с оператором if else. Я надеюсь, что кто-то может указать мне правильное направление. В этом случае 1272 и 1332 являются идентификаторами атрибутов. Когда атрибут 1272 равен "Stock" (атрибут, заполненный списком), тогда атрибут 1332 (текстовое поле) должен равняться "AWESOME". Для всех других значений атрибута 1272 атрибут 1332 должен быть равен "НЕ УДИВИТЕЛЬНО". Вот что у меня сейчас:

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: Нет сигнатуры метода".

1 ответ

Не уверен в библиотеках, которые вы используете, но вы должны иметь фигурные скобки после getObject()?, возможно, попробуйте...

def dataObject = session.getObject(objectClassId, objectNumber) 
if ((dataObject.getValue(1272)) ==  'Stock') {
    dataObject.setValue(1332, 'AWESOME')
} 
else {
       dataObject.setValue(1332, 'NOT AWESOME') 
}
Другие вопросы по тегам