从另一个 SQL 适配器调用 SQL 适配器不起作用

Posted

技术标签:

【中文标题】从另一个 SQL 适配器调用 SQL 适配器不起作用【英文标题】:Calling an SQL adapter from another SQL adapter doesnt work 【发布时间】:2014-06-13 15:59:19 【问题描述】:

请。是否有任何想法或建议从 SQL 适配器调用到另一个 SQL 适配器不起作用? 我使用 WL.Server.invokeProcedure。(适配器:“SQL_Adapter”,过程:“另一个适配器中的过程名称”)。似乎该函数不检查适配器和过程参数的存在,并且即使对于不存在的适配器/过程也可以使用任意字符串。结果始终是调用返回的未定义对象

我在 Windows 服务器上使用 Worklight 6.1.0.01.20140311-2356 两个适配器都工作正常,并且经常从客户端设备使用 “服务器”适配器(MS SQL)用于推送通知并定义事件源 “客户端”适配器(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");    


谢谢

【问题讨论】:

【参考方案1】:

试试下面的方法。在getDataSuccess() 获取结果并使用它。

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

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

为了调试目的,检查成功和失败函数的结果。如果您无法调用另一个适配器程序,请发布故障函数中的错误。

【讨论】:

不幸的是它不起作用。我无法提供任何返回值。调用者函数完成并且没有任何反应。两个回调函数都没有被调用(我可以通过 WL.server.log 在服务器的控制台上检查它)。但我可能应该从一开始就说明我正在使用事件源类型适配器,并且我的函数按计划运行(WL.Server.createEventSource)。但请。回到我的经验,当我调用不存在/任意远程适配器/函数时没有区别。有问题吗,可能吗?谢谢

以上是关于从另一个 SQL 适配器调用 SQL 适配器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

MFP.Server.invokeProcedure 在 Mobilefirst 8 中不起作用

IBM MobileFirst 中的 SQL 适配器调用失败

从 REST 客户端调用 Worklight Javascript SQL 适配器

IBM Worklight - 无法从客户端调用插入查询的 SQL 适配器过程。我的编码有啥问题?

如何使用自定义 IN 参数在 IBM Worklight SQL 适配器中调用存储过程

BizTalk 2010 WCF-SQL 适配器 XML 轮询问题