динамическое назначение на выходной блок - PullRequest
0 голосов
/ 17 октября 2019

мне нужно перенаправить агента в конкретную службу в зависимости от цикла, записанного в базе данных;в модели я написал следующий код:

serviceTo = selectFrom(ciclo)
.where(ciclo.sequenza.eq(agent.sequenza))
.where(ciclo.sku.eq(agent.SKU))
.uniqueResult(ciclo.service);

serviceTo.take (agent)

проблема в том, что: "serviceTo" является строкой иметод take не работает с этим. как я могу использовать переменную "serviceTo", чтобы доставить агента к нужному вводу?

1 Ответ

0 голосов
/ 17 октября 2019

Вам нужно будет проанализировать вашу ценность, например. преобразуйте строку serviceTo , которую вы извлекаете из базы данных, в объект Java / AnyLogic типа Введите .

. Для этого создайте коллекцию * 1007. * allMyEntersCollecton типа Enter и добавьте все ваши Enter-объекты, которые вы хотите иметь возможность анализировать. Вы также можете сделать это, выбрав все ваши блоки ввода, щелкните правой кнопкой мыши и используйте create Collection . Создайте функцию синтаксического анализа parseEnter , которая возвращает результат типа Others / Enter и принимает входной параметр serviceTo типа String:

for(int i=0;i<allMyEntersCollection.size();i++){
    if(allMyEntersCollection.get(i).getName().equalsIgnoreCase(serviceTo)){
        return allMyEntersCollection.get(i);
    }
}

//nothing found, will probably cause a NullPointerException later:
return null;

Теперь все, что вам нужно сделать, это запустить эту функцию parseEnter с вашими параметрами:

 Enter serviceToObject = parseEnter(serviceTo);

Конечно, синтаксический анализ работает только в том случае, если строка действительно содержит точно имя любого изВведите объекты в свою коллекцию.

Используйте полученный Enter-объект:

 serviceToObject.take(myExampleAgent);

Screenshot of parsing function

...