Код источника данных Birt Javascript не выполняется - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь получить json ответ от RESTful API в сценарии источника данных Birt. Поэтому я имею в виду этот учебник Actuate Учебник Actuate для источника данных со сценариями и этот вопрос, который был поднят до Вопрос Stackoverflow относительно Birt с RESTful API . Поэтому я использую соответствующие источники open() и fetch() источника данных и набора данных для определения кода js. Но проблема в том, что код js просто не выполняется, даже когда я пытаюсь отладить с помощью простого window.alert("test");.

Это дает следующие исключения:

org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor handleJS
WARNING: Fail to execute script in function __bm_OPEN(). Source:

и

ReferenceError: "window" is not defined. (/report/data-sources/script-data-source[@id="4"]/method[@name="open"]#5)
org.eclipse.birt.data.engine.core.DataException: Fail to execute script in function __bm_OPEN(). Source:

Есть ли зависимость или jar, которые я должен добавить в папку scriptlib? Или это какая-то другая проблема? Заранее спасибо.

edit:

Кажется, что функция оповещения не будет работать, так как они используют Rhino в сценариях на стороне сервера. Так есть ли способ отладки скрипта?

1 Ответ

0 голосов
/ 24 января 2020

Не путайте BIRT Javascript с Javascript внутри браузера!

Еще более запутанно: вы можете использовать Javascript на разных этапах BIRT, и некоторые из них работают при просмотре выходных данных. в браузере ...

BIRT использует Javascript, но не знает alert () или объект окна. Они определяются только в том случае, если скрипт выполняется внутри браузера.

Большинство сценариев BIRT выполняется во время генерации, а не в браузере (сравните это, например, с node.js).

Если если вы хотите выводить отладочные сообщения, сделайте это, вызвав Java vom внутри скрипта.

...