Модификация отчета BIRT

Я студент, который недавно начал работать с OFBIZ и BIRT, я пытаюсь изменить существующий отчет «Отчет о платежах», но не могу получить никаких данных. и я думаю, из-за этого я получаю ошибку,

The following items have errors:

ReportDesign (id = 1):
+ An exception occurred during processing. Please see the following message for     details:
A BIRT exception occurred. See next exception for more information.
Invalid javascript expression: measure["amount"] (Element ID:1)
+ Can not find the prepared query org.eclipse.birt.data.engine.olap.impl.query.CubeQueryDefinition@a91e3d. (Element ID:1)

это сценарий в офбизе "открытый":

payments = null;
userLogin = null;
parameters = null;
try {
    userLogin = delegator.findByPrimaryKey("UserLogin",UtilMisc.toMap("userLoginId","admin"));
} catch(e) {
        Debug.logError(e,"");
}
input =  FastMap.newInstance();
inputFields =  FastMap.newInstance();
if(params!=null){
    inputFields.put("partyIdTo", params["partyIdTo"]);
    inputFields.put("paymentId", params["paymentId"]);
    inputFields.put("paymentTypeId", params["paymentTypeId"]);
    inputFields.put("paymentId_op", params["paymentId_op"]);
    inputFields.put("paymentRefNum_ic", params["paymentRefNum_ic"]);
    inputFields.put("noConditionFind", params["noConditionFind"]);
    inputFields.put("partyIdFrom", params["partyIdFrom"]);
    inputFields.put("paymentRefNum_op", params["paymentRefNum_op"]);
    inputFields.put("amount", params["amount"]);
    inputFields.put("statusId", params["statusId"]);
    inputFields.put("paymentGatewayResponseId", params["paymentGatewayResponseId"]);
    inputFields.put("paymentId_ic", params["paymentId_ic"]);
    inputFields.put("paymentRefNum", params["paymentRefNum"]);
    inputFields.put("comments_ic", params["comments_ic"]);
    inputFields.put("comments_op", params["comments_op"]);
    inputFields.put("comments", params["comments"]);
}
input.put("userLogin",userLogin);
input.put("inputFields",inputFields);
input.put("entityName","PaymentAndType");
input.put("orderBy","effectiveDate DESC");
//input.put("viewIndex", 0);
//input.put("viewSize", 20);
try {
    result = dispatcher.runSync("performFind", input);
    payments = result.get("listIt");
} catch (e) {
    Debug.logError(e, module);
}

Я изменил Entityengine.xml и получил схему derby OFBIZ для Oracle.
и я пытаюсь изменить файл сценария с модификациями, но после нескольких модификаций (источник данных ofbiz не редактируется, я использую eclipse для редактирования .rptdesign) возникла эта ошибка.

(«Отчет о платежах» встроен в: «Eclipse BIRT Designer Version 2.5.1.v20090903», но я использую: «Eclipse BIRT Designer Version 4.3.1.v201309091055», поэтому при сохранении и запуске я получаю сообщение об ошибке)

org.eclipse.birt.report.engine.api.EngineException: The design file <stream> has error and can not be run.

Как я обнаружил, это происходит при несовместимости версий. Итак, как я могу изменить этот файл и получить данные? . что я делаю не так? спасибо и извините за плохой английский и отсутствие информации.


person Archangle    schedule 09.10.2014    source источник


Ответы (2)


В BIRT Designer попробуйте внести простое изменение в файл rptdesign (например, обновить описание), а затем сохранить его (и не запускать одновременно). Это должно обновить файл до последней версии BIRT Designer. Затем попробуйте запустить его еще раз, чтобы увидеть, исчезнет ли исключение EngineException.

person user3660637    schedule 13.10.2014
comment
Привет @ user3660637 - yap, я пытался медленно модифицировать его обеими версиями, до нескольких модификаций, это было нормально. но через несколько секунд появится файл конфигурации, и я получаю сообщение об ошибке org.eclipse.birt.report.engine.api.EngineException: The design file <stream> has error and can not be run.. так что какие-нибудь советы? и извините за поздний повтор. - person Archangle; 14.10.2014

BIRT имеет обратную совместимость, поэтому отчеты ранних версий (2.5) будут работать в новых версиях (4.3) BIRT. Я вижу, вы говорите, что уже пытались сохранить отчет, но отчет все еще указан как версия 2.5, что означает, что он не сохраняет ваши изменения. Если отчет обновлялся, он обновился до новой версии (4.3), с которой вы строите.

Скорее всего, в существующем отчете есть ошибка, которая была проигнорирована 2.5, но не будет запущена в 4.3.

Самое простое решение (и лучшее для вашего образования) - перестроить отчет в 4.3 с нуля. Проверяйте его в процессе сборки, чтобы убедиться, что он работает в простейшей форме. В процессе сборки вы либо найдете и исправите дефект конструкции, допустимый в версии 2.5, либо, поскольку вы строите в версии 4.3, вы вообще не создадите изъяна / ошибки.

person James Jenkins    schedule 13.10.2014
comment
Привет, Джеймс, спасибо за вклад. Пока я пробовал обе версии. если я восстановлю его с помощью 4.3, я получу org.eclipse.birt.report.engine.api.EngineException: The design file <stream> has error and can not be run. - person Archangle; 14.10.2014
comment
Привет, @James, спасибо за вклад. Пока я пробовал обе версии. если я восстановлю его с помощью 4.3, я получу org.eclipse.birt.report.engine.api.EngineException: The design file <stream> has error and can not be run., и если я построю его с помощью 2.5, я получу ошибку classdif с драйверами (birt EngineException). - person Archangle; 14.10.2014
comment
@Archangle Из вашего комментария в ответе похоже, что вы создаете ошибку. Не уверен, что кто-нибудь здесь сможет помочь вам с вашей проблемой. - person James Jenkins; 14.10.2014
comment
@ Джеймс, может быть: не на 100% уверен, что нужно просматривать документы). в любом случае в настоящее время я устал переходить на 2.5 и исправлять существующий скрипт (не диск jdbc) - person Archangle; 15.10.2014
comment
@ Джеймс, я знаю, что это неуместно в этом вопросе. но знаете ли вы, что с новым обновлением и Birt, перенесли ли они его как новый компонент? или они это убирают на 100%? в любом месте, где я могу найти официальную заметку об этом? - person Archangle; 15.10.2014