Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validation of SDK example notices fails with this notice viewer #19

Closed
phgo opened this issue Jul 14, 2022 · 2 comments
Closed

Validation of SDK example notices fails with this notice viewer #19

phgo opened this issue Jul 14, 2022 · 2 comments

Comments

@phgo
Copy link

phgo commented Jul 14, 2022

Hi there,

I understand that this is not supposed to be a production-ready application.
Nevertheless I was hoping that I could use it purely for the validation of eForms documents that I want to put into or get out of an application that I am currently preparing to test.
Unfortunately, even when trying the notice viewer with examples taken from the current 0.7.0 eForms SDK I get errors for most of the example eForms notices (the ones which are NOT marked as INVALID):

09:01:59.562 [main] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeXmlPath=examples\notices\cn_25.xml 09:01:59.572 [main] INFO e.e.ted.eforms.viewer.NoticeViewer - noticeSubType=17, viewId=17, eformsSdkVersion=0.7 09:01:59.806 [main] INFO e.e.t.eforms.sdk.helpers.MapFromJson - Populating maps for context, jsonPath=C:\working\eforms-notice-viewer\eforms-sdk\0.7\fields\fields.json 09:01:59.964 [main] INFO e.e.t.eforms.sdk.helpers.MapFromJson - Populating maps for context, jsonPath=C:\working\eforms-notice-viewer\eforms-sdk\0.7\fields\fields.json org.antlr.v4.runtime.misc.ParseCancellationException: line 151:32 mismatched input 'OR' expecting {'[', EndExpression} at eu.europa.ted.efx.exceptions.ThrowingErrorListener.syntaxError(ThrowingErrorListener.java:17) at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41) at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544) at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327) at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139) at eu.europa.ted.efx.sdk0.v7.EfxParser.contextDeclarationBlock(EfxParser.java:1311) at eu.europa.ted.efx.sdk0.v7.EfxParser.templateLine(EfxParser.java:361) at eu.europa.ted.efx.sdk0.v7.EfxParser.templateFile(EfxParser.java:287) at eu.europa.ted.efx.sdk0.v7.EfxTemplateTranslator07.renderTemplate(EfxTemplateTranslator07.java:152) at eu.europa.ted.efx.sdk0.v7.EfxTemplateTranslator07.renderTemplate(EfxTemplateTranslator07.java:136) at eu.europa.ted.efx.EfxTranslator.translateTemplate(EfxTranslator.java:50) at eu.europa.ted.eforms.viewer.NoticeViewer.buildXsl(NoticeViewer.java:253) at eu.europa.ted.eforms.viewer.NoticeViewer.generateHtml(NoticeViewer.java:88) at eu.europa.ted.eforms.viewer.CliCommand.call(CliCommand.java:63) at eu.europa.ted.eforms.viewer.CliCommand.call(CliCommand.java:1) at picocli.CommandLine.executeUserObject(CommandLine.java:1953) at picocli.CommandLine.access$1300(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358) at picocli.CommandLine$RunLast.handle(CommandLine.java:2352) at picocli.CommandLine$RunLast.handle(CommandLine.java:2314) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) at picocli.CommandLine$RunLast.execute(CommandLine.java:2316) at picocli.CommandLine.execute(CommandLine.java:2078) at eu.europa.ted.eforms.viewer.Application.main(Application.java:10)

Is this to be expected right now or am I totally missing the point of what this notice viewer should be able to do?

@rousso
Copy link
Contributor

rousso commented Jul 14, 2022

Hi @phgo,

Indeed, as you noticed (and as we also pointed out in the release notes), some of the view templates provided in SDK 0.7.0 still contain errors. Indeed some of those errors are "fatal" in the sense that they prevent any application (including the notice viewer sample app) from reading the specific view templates.

You are not "missing the point". We are kind of "missing the mark". Although we were aware of these problems when releasing the latest version of the SDK, we decided to go ahead and release it anyway. Let me explain in a bit more detail, and give you a workaround until the next release of the SDK.

The problem is not in the Notice Viewer Sample app. The application functions as expected and throws an exception when it tries to read a template that contains syntax errors. The problem is in some specific lines of EFX in some of the files inside the view-templates folder of the SDK. You can work around the problem by just deleting or fixing those specific lines.

The reason we did not fix these issues before releasing this version of the SDK (although we were aware of them), was because "we are on the clock" for creating and releasing SDK 1.0.0 by the end of the first week of August and our current priority is to complete the work on all issues that would introduce a breaking change in the SDK when they are released.

The content of the view-templates is just "metadata" and a simple patch of the SDK is sufficient to fix them, So we just ignored them for the moment and went ahead with the release of SDK 0.7.0 in order to be able to meet our "stable SDK" deadline for August.

We will try to have these fixed by the next SDK release although our priorities do not change until August 5. Please note that there are several other issues with the view templates apart from the three known syntax errors. It will take a while for us to finalize the templates and release the ones that will be eventually used by our production systems. However those fixes will be released as patches of the SDK, so your application will be able to use them directly with no developer intervention required.

The offending lines are:

  • In View Templates 7 to 24:
    {BT-18-Organization-Company OR BT-509-Organization-TouchPoint} #{business_term|name|BT-18}: ${BT-18-Organization-Company OR BT-509-Organization-TouchPoint}.
    This is a syntax error. To work around it, replace the context declaration {BT-18-Organization-Company OR BT-509-Organization-TouchPoint} with {BT-18-Organization-Company}
  • In View Templates 29-37:
    {BT-165-Organization-Company[BT-3201-Tender]} #{business_term|name|BT-165}: #{BT-165-Organization-Company[BT-3201-Tender]}.
    The problem here is a syntax error plus two type mismatch errors. To fix it, replace the replace the entire line with:
    {BT-165-Organization-Company[BT-3201-Tender is present]} #{business_term|name|BT-165}: ${BT-165-Organization-Company[BT-3201-Tender is present]}.
  • In View Templates 36 to 40:
    {BT-1501(n)-Contract, BT-1501(s)-Contract} #{name|BT-1501}: ${BT-1501(n)-Contract} ${BT-1501(s)-Contract}.
    The problem here is a syntax error. To work around it replace the context declaration {BT-1501(n)-Contract, BT-1501(s)-Contract} with {BT-1501(n)-Contract,}.

Regards,
Yannis

@phgo
Copy link
Author

phgo commented Jul 15, 2022

Hello @rousso,

many thanks for your extensive answer and for providing a workaround!
Actually, I even read the release notes and the known issues but couldn't really connect the dots.
Fingers crossed for you meeting the SDK 1.0.0 schedule.

Cheers,
Philipp

@phgo phgo closed this as completed Jul 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants