Доступ к клавишам json document в процедуре адаптера (ярлык IBM)

У меня есть локальный jsonstore, связанный с удаленной базой данных sql через адаптер. Я пытаюсь переместить локальные данные в удаленную базу данных следующим образом:

submit_data = function () {

 accessor.getPushRequired().then(function (result) { alert(result.length);

 accessor.push();

 });

Скажем, я только добавил документы (нет замены/удаления). Я хочу, чтобы моя процедура добавления выглядела так:

function addGegegr(document) {

 //WL.Logger.warn(document[56]);
 return WL.Server.invokeSQLStoredProcedure({
 procedure : "DBO.USP_TIM_add_sp",
 parameters : [document.key1,document.key2,document.key3,...]
 });
}

И то же самое для процедуры replace/remove, они должны вызывать другие хранимые процедуры с теми же параметрами.

Тем не менее, я получаю ошибки, потому что кажется, что переменная "документ" работает в функции добавления после вызова push - это просто строка, а не объект json.

Поэтому мой вопрос: как мне получить доступ к атрибутам json из процедуры адаптера? Если это невозможно, могу ли я передать эти атрибуты функции push?

PS: передача каждого из n документов для добавления в качестве параметра push() не работает и вызывает добавление, которое нужно называть n * n раз вместо n...

1 ответ

Попробуйте использовать JSON.parse, чтобы превратить строку в объект JavaScript.

function addGegegr(document) {
 var doc = JSON.parse(document);
 //... use doc as a regular JavaScript object
}

Если JSON.parse там недоступен, вы можете добавить его, включив этот код в файл реализации адаптера.

licensed under cc by-sa 3.0 with attribution.