Динамически создать объект TW в IBM BPM - PullRequest
0 голосов
/ 24 октября 2018

Я использую IBM BPM 8.6

У меня есть следующая строка ввода: "\"RECORD_CONTACT\":\"Maram\" , \"DRUG\":\"Panadol\"

В сценарии на стороне сервера я хочу создать динамическибизнес-объект, подобный этому:

tw.local.recordContact = Maram;
tw.local.drug = Panadol;

Как я могу динамически создать бизнес-объект?

1 Ответ

0 голосов
/ 31 октября 2018

Есть несколько проблем с вашим запросом.Во-первых, вы не создаете бизнес-объект, вы создаете переменные.В IBM BPM переменные должны быть объявлены во время разработки, иначе вы получите ошибку, поэтому попытка вызвать что-то вроде -

tw.local.myVariable = 'Bob';

вызовет исключение, если tw.local.myVariable не был объявлен,Основываясь на другом вашем вопросе, который вы задали здесь ( ссылка ), я собираюсь предположить, что у вас действительно есть ЛЮБАЯ переменная, объявленная как "return", так что

tw.local.return.myVariable = 'Bob'

будет работать.Учитывая, что я основываюсь на ответе Свена, я думаю, что будет работать что-то вроде следующего (вам нужно будет проверить)

var str = "\"RECORD_CONTACT\":\"Maram\" , \"DRUG\":\"Panadol\"";
var jsonStr = "{" + str.replace(/\\\"/g,'\"') + "}";
var tempValue = JSON.parse(jsonStr);
var keyArray = Object.keys(tempValue);
var valueArray = Object.values(tempValue);
for(var keyCount=0; keyCount<keyArray.length; keyCount++{
  var evalString = "tw.local.return."+keyArray[keyCount]+"="+valueArray[keyCount];
  eval(evalString);
}

Я отмечу, что делать это очень плохая идея, так как это будет очень хрупкий коди что использование eval () таким образом открывает вам все возможные варианты эксплойтов.Он также будет плохо работать, если значение для одного из ключей будет не простым.

-Andrew Paier

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...