如果我理解正确,您希望能够使用此混搭从 Qlik 对象动态导出数据,而不是将应用程序和对象 ID 硬编码到混搭本身中。
可能有多种方法可以实现此目的,但最简单的实现方式可能是简单地使用 URL 参数。假设您只需要最终用户提供应用程序 ID 和对象 ID - 以下是一些可以添加到混搭中的 JavaScript 代码:
// Get the URL search parameters for the mashup page
const params_raw = window.location.search;
const params = new URLSearchParams(params_raw);
// Get the Qlik App ID parameter, `qlikAppID`, and
// throw an error if it was not provided
const qAppID = params.get("qlikAppID");
if (!qAppID) {
const err = "No Qlik app ID provided!";
alert(err);
throw err;
};
// Get the Qlik Object ID parameter, `qlikObjectID`, and
// throw an error if it was not provided
const qObjID = params.get("qlikObjectID");
if (!qObjID) {
const err = "No Qlik object ID provided!";
alert(err);
throw err;
};
// Open app
var app = qlik.openApp(qAppID, config);
// Get table object
app.getObject(qObjID).then(function (model) { ... });
那么在您的混搭 URL 中,您只需添加这两个参数,如下所示:
https://qlik-server/extensions/my-mashup?qlikAppID=8a9ba0aa-386b-423d-a0a5-a2305e1e7896&qlikObjectID=4ae44ca4-baee-4031-9d93-3b9895052f24
如果出于某种原因您需要一个更加以 Qlik 为中心的解决方案,您可以考虑使用应用程序本身的变量,通过 Variable API 访问。