Code Monkey home page Code Monkey logo

vtl's Introduction

License VTL E&E builds Codacy Badge Codacy Badge GitHub release (latest by date) Maven metadata URL

VTL E&E

An engine and editor for the Validation and Transformation Language, written in Java, Javascript and R.

Usage and documentation

Usage info, documentation and examples are available at the project site.

Now you can try the VTLStudio live on ShinyApps: VTLStudio.

Contributing to the project

All contributions are welcome!

Please take a moment to read the Guideline.

Build information

A complete description of the project modules and the build process will be available soon.

To build this project, you will need:

  • A Windows or Linux machine;

Building on a MacOS machine should be possible by now but it is untested.

  • JDK >= 11;
  • Apache Maven 3.9.4;
  • GNU R >= 4.3.2 for building RVTL package;
  • Configured internet connection (to download node.js).

To build the project, launch the command:

mvn [-P with-r,with-sdmx,with-spark,with-jupyter,with-cli,with-rest] clean package

Each artifact will be generated inside the target folder of each module. The optional maven profiles allow you to build any of the provided VTL bundles for the different front-ends capable of communicating with the VTL engine.

Spark support

If you want to build with support for the Spark evironment, activate the with-spark maven profile. Each bundle listed below created while this profile is active will contain the Spark environment (Note that the Spark libraries are not included in the bundle and must be made available at runtime in your CLASSPATH).

SDMX REST support

If you want to build with support for SDMX web services, activate the with-sdmx maven profile. Each bundle created with this build will contain the support for interacting with a SDMX registry. Note that this requires that the sdmx-core maven artifacts are already installed in the local repository, because the artifacts are distributed only in source form by the Bank of International Settlements.

Jupyter notebook kernel

If you want to build the Jupyter notebook kernel along with the engine, also activate the with-jupyter maven profile. The java-native jupyter kernel will be packaged as an executable jar that can be installed into your jupyter with the command java -jar vtl-jupyter-x.x.x-complete.jar. Please make sure that your Python environment is able to launch java, and that java version requirement is satisfied.

RVTL and VTL Studio

If you want to build the editor and the R package along with the engine, activate the with-r maven profile. Before you do that, make sure to install rJava package in your R installation. Then you may need to configure your internet connection in Maven settings in order to download Node.js and npm packages. You will also need to install REngine.jar into your local maven repository. It can be done with the following command:

Un*x:
mvn install:install-file -DgroupId=org.rosuda.JRI -DartifactId=Rengine -Dversion=$R_VERSION file=$R_LIBRARY/java/jri/REngine.jar

Windows
mvn install:install-file -DgroupId=org.rosuda.JRI -DartifactId=Rengine -Dversion=%R_VERSION% file=%R_LIBRARY%/java/jri/REngine.jar

Please set the environment variables R_VERSION and R_LIBRARY accordingly to your environment settings, or directly replace them in the command above. The R package, ready for installation in R (with install.packages), will be located there. Moreover, each bundle created while this profile is active will contain support for the R environment.

Web API for VTL Engine

If you want to build the RESTful web services for VTL along with the engine, activate the with-rest maven profile. A WAR file ready to be deployed in your application server will be packaged during the package maven lifecycle phase in your build.

Command-line interface for VTL Engine

If you want to build the command line interface to VTL along with the engine, activate the with-cli maven profile. An executable JAR file ready to be deployed in your platform will be packaged during the package maven lifecycle phase in your build.

Project Status

The Project is an ongoing development effort at Bank of Italy, with the purpose of demonstrating the feasibility and usefulness of VTL in a real scenario, such as translating validation rules exchanged by entities operating in the ESCB. Thus,

some VTL operators and statements offer only limited functionality, and some have to be implemented yet.

The following table shows the current implementation status:

operator scalar dataset-level component-level
define datapoint ruleset
define hierarchical ruleset
define operator
call defined operator
persistent assignment
membership (#)
eval
cast
inner_join
left_join
full_join
cross_join
concat (||)
l-r-trim
upper,lower
substr
replace
instr
length
arithmetic
mod
round
trunc
ceil
floor
abs
exp
ln
power
log
sqrt
comparisons (=, >, <, <>)
between
in/not_in
match_characters
isnull
exists_in
boolean operators
period_indicator
fill_time_series
flow_to_stock
stock_to_flow
timeshift
timeagg
current_date
union

vtl's People

Contributors

amattioc avatar dependabot[bot] avatar liganib avatar ma-bdi avatar vpinna80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vtl's Issues

Fail at building package

Describe the bug
It throws an error at building

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for VTL 1.0.4-SNAPSHOT:
[INFO] 
[INFO] VTL ................................................ SUCCESS [  1.322 s]
[INFO] vtl-api ............................................ SUCCESS [ 11.705 s]
[INFO] vtl-types .......................................... SUCCESS [  6.988 s]
[INFO] vtl-domains ........................................ SUCCESS [  3.779 s]
[INFO] vtl-parser ......................................... SUCCESS [ 14.746 s]
[INFO] vtl-transform ...................................... SUCCESS [  5.178 s]
[INFO] vtl-envs ........................................... FAILURE [  2.270 s]
[INFO] vtl-session ........................................ SKIPPED
[INFO] vtl-transform ...................................... SKIPPED
[INFO] vtl-launcher ....................................... SKIPPED
[INFO] vtl-editor ......................................... SKIPPED
[INFO] RVTL ............................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  47.678 s
[INFO] Finished at: 2020-06-09T09:58:35-03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project vtl-envs: Could not resolve dependencies for project it.bancaditalia.oss.vtl:vtl-envs:jar:1.0.4-SNAPSHOT: Could not find artifact it.bancaditalia.oss:sdmx:jar:1.0.3 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :vtl-envs

To Reproduce

 mvn -P with-r -Dsdmx.version=1.0.3  clean package

Expected behavior
A package build

Java complete Stack Trace

Please complete the following information:

  • MacOS 10.15.5
  • java version "1.8.0_40"
    Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
    Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
  • R 4.0.0

Additional context

Error with numeric operations between dataset and scalar, only if scalar is calculated

Test case: https://github.com/vpinna80/VTL/tree/master/vtl-bundles/vtl-r/RVTL/src/main/resources/R/user_tests/vtl_scripts/numeric/op_with_calculated_scalar.vtl

Error:

ERROR 28/04/2021 10:56:22 [vtl.util.Paginator/Thread-128] - Component m1 not found in [$id1[string], number_var[number]] it.bancaditalia.oss.vtl.exceptions.VTLMissingComponentsException: Component m1 not found in [$id1[string], number_var[number]] at it.bancaditalia.oss.vtl.impl.transform.number.ArithmeticTransformation.lambda$null$7(ArithmeticTransformation.java:125) ~[vtl-transform-1.0.8-SNAPSHOT.jar:?] at java.util.Optional.orElseThrow(Unknown Source) ~[?:1.8.0_192] at it.bancaditalia.oss.vtl.impl.transform.number.ArithmeticTransformation.lambda$null$8(ArithmeticTransformation.java:125) ~[vtl-transform-1.0.8-SNAPSHOT.jar:?] at java.util.stream.Collectors.lambda$toConcurrentMap$59(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReferencePipeline.lambda$collect$1(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:1.8.0_192] at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_192] at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) ~[?:1.8.0_192] at java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[?:1.8.0_192] at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_192] at java.util.concurrent.ForkJoinTask.doInvoke(Unknown Source) ~[?:1.8.0_192] at java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unknown Source) ~[?:1.8.0_192] at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:1.8.0_192] at it.bancaditalia.oss.vtl.impl.transform.number.ArithmeticTransformation.lambda$evalDatasetWithScalar$10(ArithmeticTransformation.java:123) ~[vtl-transform-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.types.dataset.AbstractDataSet.lambda$mapKeepingKeys$8(AbstractDataSet.java:162) ~[vtl-types-1.0.8-SNAPSHOT.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:1.8.0_192] at java.util.concurrent.ConcurrentHashMap$KeySpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_192] at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_192] at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_192] at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_192] at java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[?:1.8.0_192] at it.bancaditalia.oss.vtl.impl.types.dataset.AbstractDataSet.lambda$filteredMappedJoinWithIndex$7(AbstractDataSet.java:145) ~[vtl-types-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.types.dataset.LightFDataSet.streamDataPoints(LightFDataSet.java:44) ~[vtl-types-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.types.dataset.AbstractDataSet.stream(AbstractDataSet.java:240) ~[vtl-types-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.session.CachedDataSet.createUnindexedCache(CachedDataSet.java:281) ~[vtl-session-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.session.CachedDataSet.streamDataPoints(CachedDataSet.java:234) ~[vtl-session-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.impl.types.dataset.AbstractDataSet.stream(AbstractDataSet.java:240) ~[vtl-types-1.0.8-SNAPSHOT.jar:?] at it.bancaditalia.oss.vtl.util.Paginator.lambda$new$1(Paginator.java:60) ~[vtl-java2r-1.0.8-SNAPSHOT.jar:?] at java.lang.Thread.run(Unknown Source) [?:1.8.0_192]

Add ‘sdmx’ Topic: Boost Discoverability for SDMX Repositories

Dear repository owners, 🌟

As your repository is related to SDMX (Statistical Data and Metadata Exchange), please consider adding the sdmx topic to it. This will help other developers discover and engage with your project more easily.

To associate your repository with the sdmx topic, visit your repo's landing page and select 'manage topics'. Let's make SDMX-related projects more visible and accessible! 🚀

Thank you for contributing to the community! 🙌

For detailed instructions on how to add topics to your repository, refer to the GitHub documentation.

Happy coding! 🌐👩‍💻👨‍💻

Add java API and shiny control to let user load a dataset as csv file

Users cannot load datasets outside of VTL code today. This creates some limitations with the VTL Studio in shinyapps because neither local csv files nor the R environment can be used in that situation (so, only SDMX datasets can be used).

To overcome this limitation, an explicit shiny control could be added to vtl studio, that allows users to upload a dataset in the csv environment. This could be a fileInput button that selects the file, and calls a java API that streams the files and puts it in the csv environment, ready to be used in vtl scripts.

Error in boolean NULL values when they are transferred from VTL to R

Null values in VTL boolean components are set as false in R. This is due to the jdx package:

Logical NA cannot be represented in primitive Java boolean types. Logical NA
will be coerced to FALSE to align with rJava. When logical NAs are coerced, a
warning is thrown. Java null values in java.lang.Boolean boxed types are also
coerced with a warning.
NA_ASSUMPTION_LOGICAL <- FALSE

https://github.com/floidgilbert/jdx/blob/master/R/jdx/R/Private.R

To be investigated:

  • option 1: improve jdx
  • option 2: cast to int

Performance issue with Arithmentic operators

Using multiple arithmentic operatorsin the same calc, e.g.

ds[x:=calc round..., y:=calc round..., z:=calc round...]

results in a considerable decay in performance.
If the same operation is done in multiple calcs, e.g.

ds[x:=calc round...][y:=calc round...][z:=calc round...]

this does not happen.

Error in "Get Started" page

In page https://vpinna80.github.io/VTL/RVTL/documentation.html#get-started

the dependencies=TRUE parameter does not work.

The documentation should be changed asking to install all prereq packages by hand:

install.packages('rJava')
install.packages('RJSDMX')
install.packages('igraph')
install.packages('networkD3')
install.packages('shiny')
install.packages('shinyAce')
install.packages('jdx')
install.packages('xtable')
install.packages('dplyr')

TIME_PERIOD support in CSV Environment

Currently the CSV Environment only supports DATE types for the time family (e.g. MYDATE_ID$=date[YYYY-MM-DD]).

TIME_PERIOD type should be supported as well.

Error with NA values in R Environment

NA Values in datasets coming from the R Environment should be mapped to VTL NULL values, but they are not managed correctly. This also prevents some operators to work correctly (e.g. comparisons and null specific functions like nvl and isnull)

Handle dates in R environment

Currently date and time_period objects are not managed by the R environment. We should consider adding support for dates at least for dates:

  • from R to VTL: date classes in datatset components shoud be marshalled into VTL dates (YYYY-MM-DD) (this could be a bit tricky as JRI seems not to support dates natively, but it should be feasible anyway). Only date classes will be supported, so it will be up to the user to perform conversins before entering VTL.

  • from VTL to R: currently dates and time_period is cast to string because even jdx does not support dates. It should be possible to format everything to a standard R date format (YYYY-MM-DD) and set a flag somewhere that implies recasting once in R (as.Date should be sufficient). An example of flag could be an attribute (e.g. date_columns) that lists all the date components

Bug in string concatenation

dsr_3:= ds1[ calc Text_3:= Text_1||Text_2]; /* Text_1 and Text_2 are string measures */

Error:

The two datasets must have the same measures.

Error in fill_time_series function

With daily data the fill_time_series shows some incorrect behaviours:

  1. start dates are skipped in the result dataset
  2. Some years are missing

this applies to both single and all options

Incorrect handling of DATE type in CSV environment

If a date component is specified as [YYYY-MM] in the CSV file, the environment add days too. This is not correct and it has an impact on operators behaviour.

e.g.

csv

$Id_1=String,$Id_2=date[YYYY-MM],Me_1=String
A,2010-01,hello world

dataset
immagine

Error with operator "replace"

Exception thrown when a numeric measure exists in the dataset.

ds_rep:= replace(ds1,"lorem","LOREM");

java.lang.ClassCastException: it.bancaditalia.oss.vtl.impl.types.data.DoubleValue cannot be cast to it.bancaditalia.oss.vtl.impl.types.data.StringValue

CSVDirectoryEnvironment

A new environment should be developed, pointing to a local directory containing csv files having the same format specifed for the CSV Environment.

The Engine will use the file name to match datasets (without .csv extension), so there will not be any need of quotes and tags in the VTL code

This environment will be particularly useful for testing purposes

Documentation update

Missing VTL Engine documentation

Expected documentation missing at VTL Engine documentation

Seems to me like the documentation was pointing to local files, rather than files in the repo. I would also then expect the relevant files to be at "vtl/vtl-bundles/vtl-rest/target/generated-snippets/compile/request-parameters.adoc", although these file does not exist in the repo.

Error in compilation, missing check

This code:

b:= ", world!";
ds_r2:= ds1[ calc Text_3:= Text_1||b];

should not pass compilation, but it does and then it fails at runtime. This is a bug.

Error in CSVPathEnvironment

The search mechnism has a bug. If I use a dataset that either does not exist or is in the R environment, the search is not completed because an error is caught in the CSVPath Env:

java.lang.StringIndexOutOfBoundsException: String index out of range: -3
	at java.lang.String.substring(Unknown Source)
	at it.bancaditalia.oss.vtl.impl.environment.CSVPathEnvironment.mapper(CSVPathEnvironment.java:86)

UPDATE: it seems that this happens only if the searched dataset name is 3 chrs long or less.

a:=att

results in:

INFO 23/04/2021 09:59:23 [vtl.impl.session.VTLSessionImpl/main] - Resolving value of att java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(Unknown Source) at it.bancaditalia.oss.vtl.impl.environment.CSVPathEnvironment.mapper(CSVPathEnvironment.java:86) at it.bancaditalia.oss.vtl.impl.environment.CSVPathEnvironment.getValueMetadata(CSVPathEnvironment.java:97) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$acquireValue$10(VTLSessionImpl.java:226) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.tryAdvance(Unknown Source) at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source) at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.findAny(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.acquireValue(VTLSessionImpl.java:229) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$getMetadata$6(VTLSessionImpl.java:162) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.cacheHelper(VTLSessionImpl.java:203) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.getMetadata(VTLSessionImpl.java:162) at it.bancaditalia.oss.vtl.impl.transform.VarIDOperand.getMetadata(VarIDOperand.java:53) at it.bancaditalia.oss.vtl.impl.engine.statement.AssignStatement.getMetadata(AssignStatement.java:87) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$compile$12(VTLSessionImpl.java:268) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.compile(VTLSessionImpl.java:269) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at RJavaTools.invokeMethod(RJavaTools.java:386)

while

a:=atti

in

INFO 23/04/2021 10:00:50 [vtl.impl.session.VTLSessionImpl/main] - Resolving value of atti it.bancaditalia.oss.vtl.exceptions.VTLNestedException: Error evaluating statement 'b := atti'. Error: Alias 'atti' is not bound to this transformation scheme. at it.bancaditalia.oss.vtl.impl.engine.statement.AssignStatement.getMetadata(AssignStatement.java:91) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$compile$12(VTLSessionImpl.java:268) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.compile(VTLSessionImpl.java:269) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at RJavaTools.invokeMethod(RJavaTools.java:386) Caused by: it.bancaditalia.oss.vtl.exceptions.VTLUnboundNameException: Alias 'atti' is not bound to this transformation scheme. at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$null$5(VTLSessionImpl.java:163) at java.util.Optional.orElseThrow(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$getMetadata$6(VTLSessionImpl.java:163) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.cacheHelper(VTLSessionImpl.java:203) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.getMetadata(VTLSessionImpl.java:162) at it.bancaditalia.oss.vtl.impl.transform.VarIDOperand.getMetadata(VarIDOperand.java:53) at it.bancaditalia.oss.vtl.impl.engine.statement.AssignStatement.getMetadata(AssignStatement.java:87) ... 13 more INFO 23/04/2021 10:00:50 [vtl.impl.engine.mapping.OpsFactory/main] - Using VTL configuration file: jar:file:/D:/Dati/Profili/e922480/Documents/R/R-4.0.2/library/RVTL/java/vtl-transform-1.0.8-SNAPSHOT.jar!/it/bancaditalia/oss/vtl/impl/engine/mapping/OpsFactory.xml DEBUG 23/04/2021 10:00:50 [vtl.impl.engine.mapping.OpsFactory/168/main] - Loading mappings DEBUG 23/04/2021 10:00:50 [vtl.impl.engine.mapping.OpsFactory/177/main] - Loading tokensets DEBUG 23/04/2021 10:00:50 [vtl.impl.engine.mapping.OpsFactory/184/main] - Loading recursive context DEBUG 23/04/2021 10:00:50 [vtl.impl.engine.mapping.OpsFactory/192/main] - Parsing new context VarIdExprContext containing 'atti'. INFO 23/04/2021 10:00:50 [vtl.impl.session.VTLSessionImpl/main] - Resolving value of atti it.bancaditalia.oss.vtl.exceptions.VTLNestedException: Error evaluating statement 'b := atti'. Error: Alias 'atti' is not bound to this transformation scheme. at it.bancaditalia.oss.vtl.impl.engine.statement.AssignStatement.getMetadata(AssignStatement.java:91) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$compile$12(VTLSessionImpl.java:268) at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.util.stream.ReferencePipeline.collect(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.compile(VTLSessionImpl.java:269) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at RJavaTools.invokeMethod(RJavaTools.java:386) Caused by: it.bancaditalia.oss.vtl.exceptions.VTLUnboundNameException: Alias 'atti' is not bound to this transformation scheme. at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$null$5(VTLSessionImpl.java:163) at java.util.Optional.orElseThrow(Unknown Source) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.lambda$getMetadata$6(VTLSessionImpl.java:163) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.cacheHelper(VTLSessionImpl.java:203) at it.bancaditalia.oss.vtl.impl.session.VTLSessionImpl.getMetadata(VTLSessionImpl.java:162) at it.bancaditalia.oss.vtl.impl.transform.VarIDOperand.getMetadata(VarIDOperand.java:53) at it.bancaditalia.oss.vtl.impl.engine.statement.AssignStatement.getMetadata(AssignStatement.java:87) ... 13 more

JDX package end of support

The R package jdx has been discontinued. The R VTL code has to be updated to remove any reference to the package.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.