从另一个 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 适配器过程。我的编码有啥问题?