Вызов адаптера SQL из другого адаптера SQL не работает

Пожалуйста. Есть ли какие-либо идеи или предложения, почему вызов с адаптера SQL на другой адаптер SQL не работает? я использую WL.Server.invokeProcedure.({адаптер: «SQL_Adapter», процедура: «имя процедуры в другом адаптере»}). похоже, что функция не проверяет наличие параметров адаптера и процедуры и работает с любой произвольной строкой даже для несуществующего адаптера/процедуры. Результатом всегда является неопределенный объект, возвращаемый из вызова

я использую Worklight 6.1.0.01.20140311-2356 на сервере Windows, оба адаптера работают нормально и регулярно используются с клиентских устройств, «серверный» адаптер (MS SQL) используется для push-уведомлений и определяет источник события как «клиентский» адаптер (DB2 ) нормальный.

есть кусок кода:

var result = getAllUsersFromSQLPushNotificationAdapter();

if (result){
    WL.Logger.info("test1" + result.isSuccessful); //i got false
    WL.Logger.info("test2" + result.errorMessages); //i got undefined

    WL.Logger.info("test3 " + result.resultSet); //i got undefined
    //result = result["invocationResult"]["resultSet"];

    for (var i = 0; i < result.resultSet.length; i++) {
        //result[i].Category ";
    }

    WL.Logger.info("Number of users: " + result.resultSet.length);
}   

function getAllUsersFromSQLPushNotificationAdapter(){


    return WL.Server.invokeProcedure({
        adapter : "CZU_SQL",
        procedure : "getAllUsers"});    

}

Спасибо


person Tomas Kadlec    schedule 13.06.2014    source источник


Ответы (1)


Попробуйте что-то вроде ниже. В getDataSuccess() получите результаты и используйте их.

var invocationData = {
        adapter : 'ADAPTER_NAME',
        procedure : 'PROCEDURE_NAME'    
    };

WL.Server.invokeProcedure(invocationData,{
    onSuccess : getDataSuccess,
    onFailure : getDataFailure,
});

В целях отладки проверьте результаты функции «Успех» и «Ошибка». если вы не можете вызвать другую процедуру адаптера, опубликуйте сообщение об ошибке из функции сбоя.

person Bluewings    schedule 15.06.2014
comment
К сожалению, это не работает. я не могу предоставить какое-либо возвращаемое значение. Функция вызывающего абонента завершается, и ничего не происходит. Ни одна функция обратного вызова не вызывалась (я могу просто проверить это на консоли сервера через WL.server.log). Но я, вероятно, должен с самого начала сказать, что я использую этот адаптер типа источника события, и моя функция запускается по расписанию (WL.Server.createEventSource). но пожалуйста. возвращаясь к моему опыту, нет никакой разницы, когда я вызываю несуществующий/произвольный удаленный адаптер/функцию. Может есть проблема? Спасибо - person Tomas Kadlec; 19.06.2014