Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Epsilon » Debugging ETL
Debugging ETL [message #523830] Mon, 29 March 2010 09:32 Go to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi,
I'm running an ETL transformation via Ant, passing in various parameters
such as Source and Target to tell ETL what to transform and where to put
the result. What type are these parameters? And what operations can I
run on them to confirm that they are as expected?

The parameters are pssed into ETL from Ant viz:
<epsilon.etl src="${EtlFile}">
<model ref="${SourceName}" as="Source"/>
<model ref="${TargetName}" as="Target"/>
<model ref="${ReferenceName}" as="MessageSet"/>
</epsilon.etl>

Regards
Chris
Re: Debugging ETL [message #523840 is a reply to message #523830] Mon, 29 March 2010 15:02 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

Are you referring to parameters passed to Epsilon programs via the
<parameter> tag or to ANT variables such as ${SourceName}? Could you
please also elaborate a bit on what sort of checks you'd like to run?

Cheers,
Dimitris

Chris Holmes wrote:
> Hi,
> I'm running an ETL transformation via Ant, passing in various parameters
> such as Source and Target to tell ETL what to transform and where to put
> the result. What type are these parameters? And what operations can I
> run on them to confirm that they are as expected?
>
> The parameters are pssed into ETL from Ant viz:
> <epsilon.etl src="${EtlFile}">
> <model ref="${SourceName}" as="Source"/>
> <model ref="${TargetName}" as="Target"/>
> <model ref="${ReferenceName}" as="MessageSet"/>
> </epsilon.etl>
>
> Regards
> Chris


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Debugging ETL [message #523858 is a reply to message #523840] Mon, 29 March 2010 16:00 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
I declare the variables as properties in Ant:
<!--
Source details
-->
<property name="SourceDataDir" value="sourceDirectory"/>
<property name="SourceUri" location="SourceUrl"/>
<property name="SourceName" value="sourceName"/>
<property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
<filelist
id="SourceFiles"
dir="${SourceDataDir}"
files=" <listOfFilesToBeParsed>"/>

<!--
Target details
-->
<property name="TargetFile" value="target.model"/>
<property name="TargetUri" value="targetModelUrl"/>
<property name="TargetName" value="targetModelName"/>
<property name="TargetMetaModel" value="targetMetaModel.ecore"/>

<!--
Reference details
-->
<property name="ReferenceFile" value="reference.model"/>
<property name="ReferenceUri" value="referenceUri"/>
<property name="ReferenceName" value="referenceModelName"/>

and then use the variables to define the source/target/reference models
for the ETL transformation:
<epsilon.etl src="${EtlFile}">
<model ref="${SourceName}" as="Source"/>
<model ref="${TargetName}" as="Target"/>
<model ref="${ReferenceName}" as="MessageSet"/>
</epsilon.etl>

I'd like to be able to inspect the values of Source/Target/MessageSet
from within ETL to convince myself that they are pointing to the
relevant models. I notice (e.g.) that from within ETL I can resolve
Target to:
org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
It would be useful if I could get hold of the object to which this
refers to confirm what it is. It ought to refer to a model, so if I
could get hold of the root element of the model I could confirm it's
URL, location, etc. and also navigate down to expected objects/attributes.

Hence, when I declare some variable within ETL, say:
var thing : Target!Thing;
and ETL fails, saying something like:
EXCEPTION: Type 'Target!Thing' not found
I can at least begin to confirm the identity, location, etc. of Target.

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> Are you referring to parameters passed to Epsilon programs via the
> <parameter> tag or to ANT variables such as ${SourceName}? Could you
> please also elaborate a bit on what sort of checks you'd like to run?
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi,
>> I'm running an ETL transformation via Ant, passing in various
>> parameters such as Source and Target to tell ETL what to transform and
>> where to put the result. What type are these parameters? And what
>> operations can I run on them to confirm that they are as expected?
>>
>> The parameters are pssed into ETL from Ant viz:
>> <epsilon.etl src="${EtlFile}">
>> <model ref="${SourceName}" as="Source"/>
>> <model ref="${TargetName}" as="Target"/>
>> <model ref="${ReferenceName}" as="MessageSet"/>
>> </epsilon.etl>
>>
>> Regards
>> Chris
>
>
Re: Debugging ETL [message #523883 is a reply to message #523858] Mon, 29 March 2010 17:38 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

Thanks for your detailed explanation! Target.target should return the
real EmfModel wrapped by the ModelReference and Target.target.modelFile
should return the location of the model file.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi Dimitris,
> I declare the variables as properties in Ant:
> <!--
> Source details
> -->
> <property name="SourceDataDir" value="sourceDirectory"/>
> <property name="SourceUri" location="SourceUrl"/>
> <property name="SourceName" value="sourceName"/>
> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
> <filelist
> id="SourceFiles"
> dir="${SourceDataDir}"
> files=" <listOfFilesToBeParsed>"/>
>
> <!--
> Target details
> -->
> <property name="TargetFile" value="target.model"/>
> <property name="TargetUri" value="targetModelUrl"/>
> <property name="TargetName" value="targetModelName"/>
> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>
> <!--
> Reference details
> -->
> <property name="ReferenceFile" value="reference.model"/>
> <property name="ReferenceUri" value="referenceUri"/>
> <property name="ReferenceName" value="referenceModelName"/>
>
> and then use the variables to define the source/target/reference models
> for the ETL transformation:
> <epsilon.etl src="${EtlFile}">
> <model ref="${SourceName}" as="Source"/>
> <model ref="${TargetName}" as="Target"/>
> <model ref="${ReferenceName}" as="MessageSet"/>
> </epsilon.etl>
>
> I'd like to be able to inspect the values of Source/Target/MessageSet
> from within ETL to convince myself that they are pointing to the
> relevant models. I notice (e.g.) that from within ETL I can resolve
> Target to:
> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
> It would be useful if I could get hold of the object to which this
> refers to confirm what it is. It ought to refer to a model, so if I
> could get hold of the root element of the model I could confirm it's
> URL, location, etc. and also navigate down to expected objects/attributes.
>
> Hence, when I declare some variable within ETL, say:
> var thing : Target!Thing;
> and ETL fails, saying something like:
> EXCEPTION: Type 'Target!Thing' not found
> I can at least begin to confirm the identity, location, etc. of Target.
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> Are you referring to parameters passed to Epsilon programs via the
>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>> please also elaborate a bit on what sort of checks you'd like to run?
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi,
>>> I'm running an ETL transformation via Ant, passing in various
>>> parameters such as Source and Target to tell ETL what to transform
>>> and where to put the result. What type are these parameters? And what
>>> operations can I run on them to confirm that they are as expected?
>>>
>>> The parameters are pssed into ETL from Ant viz:
>>> <epsilon.etl src="${EtlFile}">
>>> <model ref="${SourceName}" as="Source"/>
>>> <model ref="${TargetName}" as="Target"/>
>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>> </epsilon.etl>
>>>
>>> Regards
>>> Chris
>>
>>
Re: Debugging ETL [message #523985 is a reply to message #523883] Tue, 30 March 2010 03:10 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi dimitris,
Thanks, Is it possible to identify the metamodel on which
Target.target.modelFile is based? It would also be useful to be able to
query the packages imported into the underlying metamodel. e.g. if I
receive an error from ETL to the effect that some type is not defined
I'd like to be able to confirm the scope of the imports.

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> Thanks for your detailed explanation! Target.target should return the
> real EmfModel wrapped by the ModelReference and Target.target.modelFile
> should return the location of the model file.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi Dimitris,
>> I declare the variables as properties in Ant:
>> <!--
>> Source details
>> -->
>> <property name="SourceDataDir" value="sourceDirectory"/>
>> <property name="SourceUri" location="SourceUrl"/>
>> <property name="SourceName" value="sourceName"/>
>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>> <filelist
>> id="SourceFiles"
>> dir="${SourceDataDir}"
>> files=" <listOfFilesToBeParsed>"/>
>>
>> <!--
>> Target details
>> -->
>> <property name="TargetFile" value="target.model"/>
>> <property name="TargetUri" value="targetModelUrl"/>
>> <property name="TargetName" value="targetModelName"/>
>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>
>> <!--
>> Reference details
>> -->
>> <property name="ReferenceFile" value="reference.model"/>
>> <property name="ReferenceUri" value="referenceUri"/>
>> <property name="ReferenceName" value="referenceModelName"/>
>>
>> and then use the variables to define the source/target/reference
>> models for the ETL transformation:
>> <epsilon.etl src="${EtlFile}">
>> <model ref="${SourceName}" as="Source"/>
>> <model ref="${TargetName}" as="Target"/>
>> <model ref="${ReferenceName}" as="MessageSet"/>
>> </epsilon.etl>
>>
>> I'd like to be able to inspect the values of Source/Target/MessageSet
>> from within ETL to convince myself that they are pointing to the
>> relevant models. I notice (e.g.) that from within ETL I can resolve
>> Target to:
>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>> It would be useful if I could get hold of the object to which this
>> refers to confirm what it is. It ought to refer to a model, so if I
>> could get hold of the root element of the model I could confirm it's
>> URL, location, etc. and also navigate down to expected
>> objects/attributes.
>>
>> Hence, when I declare some variable within ETL, say:
>> var thing : Target!Thing;
>> and ETL fails, saying something like:
>> EXCEPTION: Type 'Target!Thing' not found
>> I can at least begin to confirm the identity, location, etc. of Target.
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> Are you referring to parameters passed to Epsilon programs via the
>>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>>> please also elaborate a bit on what sort of checks you'd like to run?
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi,
>>>> I'm running an ETL transformation via Ant, passing in various
>>>> parameters such as Source and Target to tell ETL what to transform
>>>> and where to put the result. What type are these parameters? And
>>>> what operations can I run on them to confirm that they are as expected?
>>>>
>>>> The parameters are pssed into ETL from Ant viz:
>>>> <epsilon.etl src="${EtlFile}">
>>>> <model ref="${SourceName}" as="Source"/>
>>>> <model ref="${TargetName}" as="Target"/>
>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>> </epsilon.etl>
>>>>
>>>> Regards
>>>> Chris
>>>
>>>
Re: Debugging ETL [message #523999 is a reply to message #523985] Tue, 30 March 2010 04:10 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

You can identify the metamodel URI by calling Target.target.metamodelUri
or the metamodel file by calling Target.target.metamodelFile. You can
also navigate the metamodel by reflection (i.e. pick 1 model element,
call it's eClass() method and you're now at the metamodel level). Please
let me know if you need more specific examples.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi dimitris,
> Thanks, Is it possible to identify the metamodel on which
> Target.target.modelFile is based? It would also be useful to be able to
> query the packages imported into the underlying metamodel. e.g. if I
> receive an error from ETL to the effect that some type is not defined
> I'd like to be able to confirm the scope of the imports.
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> Thanks for your detailed explanation! Target.target should return the
>> real EmfModel wrapped by the ModelReference and
>> Target.target.modelFile should return the location of the model file.
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi Dimitris,
>>> I declare the variables as properties in Ant:
>>> <!--
>>> Source details
>>> -->
>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>> <property name="SourceUri" location="SourceUrl"/>
>>> <property name="SourceName" value="sourceName"/>
>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>> <filelist
>>> id="SourceFiles"
>>> dir="${SourceDataDir}"
>>> files=" <listOfFilesToBeParsed>"/>
>>>
>>> <!--
>>> Target details
>>> -->
>>> <property name="TargetFile" value="target.model"/>
>>> <property name="TargetUri" value="targetModelUrl"/>
>>> <property name="TargetName" value="targetModelName"/>
>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>
>>> <!--
>>> Reference details
>>> -->
>>> <property name="ReferenceFile" value="reference.model"/>
>>> <property name="ReferenceUri" value="referenceUri"/>
>>> <property name="ReferenceName" value="referenceModelName"/>
>>>
>>> and then use the variables to define the source/target/reference
>>> models for the ETL transformation:
>>> <epsilon.etl src="${EtlFile}">
>>> <model ref="${SourceName}" as="Source"/>
>>> <model ref="${TargetName}" as="Target"/>
>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>> </epsilon.etl>
>>>
>>> I'd like to be able to inspect the values of Source/Target/MessageSet
>>> from within ETL to convince myself that they are pointing to the
>>> relevant models. I notice (e.g.) that from within ETL I can resolve
>>> Target to:
>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>> It would be useful if I could get hold of the object to which this
>>> refers to confirm what it is. It ought to refer to a model, so if I
>>> could get hold of the root element of the model I could confirm it's
>>> URL, location, etc. and also navigate down to expected
>>> objects/attributes.
>>>
>>> Hence, when I declare some variable within ETL, say:
>>> var thing : Target!Thing;
>>> and ETL fails, saying something like:
>>> EXCEPTION: Type 'Target!Thing' not found
>>> I can at least begin to confirm the identity, location, etc. of Target.
>>>
>>> Best Wishes
>>> Chris
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Chris,
>>>>
>>>> Are you referring to parameters passed to Epsilon programs via the
>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>>>> please also elaborate a bit on what sort of checks you'd like to run?
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Chris Holmes wrote:
>>>>> Hi,
>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>> parameters such as Source and Target to tell ETL what to transform
>>>>> and where to put the result. What type are these parameters? And
>>>>> what operations can I run on them to confirm that they are as
>>>>> expected?
>>>>>
>>>>> The parameters are pssed into ETL from Ant viz:
>>>>> <epsilon.etl src="${EtlFile}">
>>>>> <model ref="${SourceName}" as="Source"/>
>>>>> <model ref="${TargetName}" as="Target"/>
>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>> </epsilon.etl>
>>>>>
>>>>> Regards
>>>>> Chris
>>>>
>>>>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Debugging ETL [message #524007 is a reply to message #523999] Tue, 30 March 2010 09:49 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
Is the following call correct?
('Metamodel file: ' + Target.target.metamodelFile).println();

I run the following from the 'pre' section of a working ETL file:
-- some diagnostics
'Source model:'.println();
('Source: ' + Source).println();
('EMF model: ' + Source.target).println();
'Target model:'.println();
('Target: ' + Target).println();
('EMF model: ' + Target.target).println();
('Location: ' + Target.target.modelFile).println();
('Metamodel URI: ' + Target.target.metamodelUri).println();
('Metamodel file: ' + Target.target.metamodelFile).println();

I receive the following output and error message:
Source model:
Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
Target model:
Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
Location: C:\EclipseWorkspaces\blah...\MyStuff.model
Metamodel URI: http://blah../MyStuff
EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> You can identify the metamodel URI by calling Target.target.metamodelUri
> or the metamodel file by calling Target.target.metamodelFile. You can
> also navigate the metamodel by reflection (i.e. pick 1 model element,
> call it's eClass() method and you're now at the metamodel level). Please
> let me know if you need more specific examples.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi dimitris,
>> Thanks, Is it possible to identify the metamodel on which
>> Target.target.modelFile is based? It would also be useful to be able
>> to query the packages imported into the underlying metamodel. e.g. if
>> I receive an error from ETL to the effect that some type is not
>> defined I'd like to be able to confirm the scope of the imports.
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> Thanks for your detailed explanation! Target.target should return the
>>> real EmfModel wrapped by the ModelReference and
>>> Target.target.modelFile should return the location of the model file.
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi Dimitris,
>>>> I declare the variables as properties in Ant:
>>>> <!--
>>>> Source details
>>>> -->
>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>> <property name="SourceUri" location="SourceUrl"/>
>>>> <property name="SourceName" value="sourceName"/>
>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>> <filelist
>>>> id="SourceFiles"
>>>> dir="${SourceDataDir}"
>>>> files=" <listOfFilesToBeParsed>"/>
>>>>
>>>> <!--
>>>> Target details
>>>> -->
>>>> <property name="TargetFile" value="target.model"/>
>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>> <property name="TargetName" value="targetModelName"/>
>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>
>>>> <!--
>>>> Reference details
>>>> -->
>>>> <property name="ReferenceFile" value="reference.model"/>
>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>
>>>> and then use the variables to define the source/target/reference
>>>> models for the ETL transformation:
>>>> <epsilon.etl src="${EtlFile}">
>>>> <model ref="${SourceName}" as="Source"/>
>>>> <model ref="${TargetName}" as="Target"/>
>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>> </epsilon.etl>
>>>>
>>>> I'd like to be able to inspect the values of
>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>> they are pointing to the relevant models. I notice (e.g.) that from
>>>> within ETL I can resolve Target to:
>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>> It would be useful if I could get hold of the object to which this
>>>> refers to confirm what it is. It ought to refer to a model, so if I
>>>> could get hold of the root element of the model I could confirm it's
>>>> URL, location, etc. and also navigate down to expected
>>>> objects/attributes.
>>>>
>>>> Hence, when I declare some variable within ETL, say:
>>>> var thing : Target!Thing;
>>>> and ETL fails, saying something like:
>>>> EXCEPTION: Type 'Target!Thing' not found
>>>> I can at least begin to confirm the identity, location, etc. of Target.
>>>>
>>>> Best Wishes
>>>> Chris
>>>>
>>>> Dimitris Kolovos wrote:
>>>>> Hi Chris,
>>>>>
>>>>> Are you referring to parameters passed to Epsilon programs via the
>>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could
>>>>> you please also elaborate a bit on what sort of checks you'd like
>>>>> to run?
>>>>>
>>>>> Cheers,
>>>>> Dimitris
>>>>>
>>>>> Chris Holmes wrote:
>>>>>> Hi,
>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>> parameters such as Source and Target to tell ETL what to transform
>>>>>> and where to put the result. What type are these parameters? And
>>>>>> what operations can I run on them to confirm that they are as
>>>>>> expected?
>>>>>>
>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>> </epsilon.etl>
>>>>>>
>>>>>> Regards
>>>>>> Chris
>>>>>
>>>>>
>
>
Re: Debugging ETL [message #524018 is a reply to message #524007] Tue, 30 March 2010 05:44 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

As you're loading the model by metamodel URI, metamodelFile is null and
this causes an exception. Could you please add another bug report for
this? Until we get this fixed you can get the raw URI of the metamodel
file (which will also be null in this case but won't throw an exception)
using:

('Metamodel file: ' + Target.target.metamodelFileUri).println();

On a side note, Target.target.xxx will only work when you're launching
the transformation through ANT. If at some point you invoke the ETL
transformation from Java/launch configuration there'll be no
ModelReference so all calls to Target.target.xxx will need to be
replaced by Target.xxx.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi Dimitris,
> Is the following call correct?
> ('Metamodel file: ' + Target.target.metamodelFile).println();
>
> I run the following from the 'pre' section of a working ETL file:
> -- some diagnostics
> 'Source model:'.println();
> ('Source: ' + Source).println();
> ('EMF model: ' + Source.target).println();
> 'Target model:'.println();
> ('Target: ' + Target).println();
> ('EMF model: ' + Target.target).println();
> ('Location: ' + Target.target.modelFile).println();
> ('Metamodel URI: ' + Target.target.metamodelUri).println();
> ('Metamodel file: ' + Target.target.metamodelFile).println();
>
> I receive the following output and error message:
> Source model:
> Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
> EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
> Target model:
> Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
> EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
> Location: C:\EclipseWorkspaces\blah...\MyStuff.model
> Metamodel URI: http://blah../MyStuff
> EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> You can identify the metamodel URI by calling
>> Target.target.metamodelUri or the metamodel file by calling
>> Target.target.metamodelFile. You can also navigate the metamodel by
>> reflection (i.e. pick 1 model element, call it's eClass() method and
>> you're now at the metamodel level). Please let me know if you need
>> more specific examples.
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi dimitris,
>>> Thanks, Is it possible to identify the metamodel on which
>>> Target.target.modelFile is based? It would also be useful to be able
>>> to query the packages imported into the underlying metamodel. e.g. if
>>> I receive an error from ETL to the effect that some type is not
>>> defined I'd like to be able to confirm the scope of the imports.
>>>
>>> Best Wishes
>>> Chris
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Chris,
>>>>
>>>> Thanks for your detailed explanation! Target.target should return
>>>> the real EmfModel wrapped by the ModelReference and
>>>> Target.target.modelFile should return the location of the model file.
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Chris Holmes wrote:
>>>>> Hi Dimitris,
>>>>> I declare the variables as properties in Ant:
>>>>> <!--
>>>>> Source details
>>>>> -->
>>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>>> <property name="SourceUri" location="SourceUrl"/>
>>>>> <property name="SourceName" value="sourceName"/>
>>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>>> <filelist
>>>>> id="SourceFiles"
>>>>> dir="${SourceDataDir}"
>>>>> files=" <listOfFilesToBeParsed>"/>
>>>>>
>>>>> <!--
>>>>> Target details
>>>>> -->
>>>>> <property name="TargetFile" value="target.model"/>
>>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>>> <property name="TargetName" value="targetModelName"/>
>>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>>
>>>>> <!--
>>>>> Reference details
>>>>> -->
>>>>> <property name="ReferenceFile" value="reference.model"/>
>>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>>
>>>>> and then use the variables to define the source/target/reference
>>>>> models for the ETL transformation:
>>>>> <epsilon.etl src="${EtlFile}">
>>>>> <model ref="${SourceName}" as="Source"/>
>>>>> <model ref="${TargetName}" as="Target"/>
>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>> </epsilon.etl>
>>>>>
>>>>> I'd like to be able to inspect the values of
>>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>>> they are pointing to the relevant models. I notice (e.g.) that from
>>>>> within ETL I can resolve Target to:
>>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>>> It would be useful if I could get hold of the object to which this
>>>>> refers to confirm what it is. It ought to refer to a model, so if I
>>>>> could get hold of the root element of the model I could confirm
>>>>> it's URL, location, etc. and also navigate down to expected
>>>>> objects/attributes.
>>>>>
>>>>> Hence, when I declare some variable within ETL, say:
>>>>> var thing : Target!Thing;
>>>>> and ETL fails, saying something like:
>>>>> EXCEPTION: Type 'Target!Thing' not found
>>>>> I can at least begin to confirm the identity, location, etc. of
>>>>> Target.
>>>>>
>>>>> Best Wishes
>>>>> Chris
>>>>>
>>>>> Dimitris Kolovos wrote:
>>>>>> Hi Chris,
>>>>>>
>>>>>> Are you referring to parameters passed to Epsilon programs via the
>>>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could
>>>>>> you please also elaborate a bit on what sort of checks you'd like
>>>>>> to run?
>>>>>>
>>>>>> Cheers,
>>>>>> Dimitris
>>>>>>
>>>>>> Chris Holmes wrote:
>>>>>>> Hi,
>>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>>> parameters such as Source and Target to tell ETL what to
>>>>>>> transform and where to put the result. What type are these
>>>>>>> parameters? And what operations can I run on them to confirm that
>>>>>>> they are as expected?
>>>>>>>
>>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>>> </epsilon.etl>
>>>>>>>
>>>>>>> Regards
>>>>>>> Chris
>>>>>>
>>>>>>
>>
>>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Debugging ETL [message #524019 is a reply to message #524018] Tue, 30 March 2010 05:44 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
OK, will do. Thanks for your help (and continued patience!).

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> As you're loading the model by metamodel URI, metamodelFile is null and
> this causes an exception. Could you please add another bug report for
> this? Until we get this fixed you can get the raw URI of the metamodel
> file (which will also be null in this case but won't throw an exception)
> using:
>
> ('Metamodel file: ' + Target.target.metamodelFileUri).println();
>
> On a side note, Target.target.xxx will only work when you're launching
> the transformation through ANT. If at some point you invoke the ETL
> transformation from Java/launch configuration there'll be no
> ModelReference so all calls to Target.target.xxx will need to be
> replaced by Target.xxx.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi Dimitris,
>> Is the following call correct?
>> ('Metamodel file: ' + Target.target.metamodelFile).println();
>>
>> I run the following from the 'pre' section of a working ETL file:
>> -- some diagnostics
>> 'Source model:'.println();
>> ('Source: ' + Source).println();
>> ('EMF model: ' + Source.target).println();
>> 'Target model:'.println();
>> ('Target: ' + Target).println();
>> ('EMF model: ' + Target.target).println();
>> ('Location: ' + Target.target.modelFile).println();
>> ('Metamodel URI: ' + Target.target.metamodelUri).println();
>> ('Metamodel file: ' + Target.target.metamodelFile).println();
>>
>> I receive the following output and error message:
>> Source model:
>> Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
>> EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
>> Target model:
>> Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
>> EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
>> Location: C:\EclipseWorkspaces\blah...\MyStuff.model
>> Metamodel URI: http://blah../MyStuff
>> EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> You can identify the metamodel URI by calling
>>> Target.target.metamodelUri or the metamodel file by calling
>>> Target.target.metamodelFile. You can also navigate the metamodel by
>>> reflection (i.e. pick 1 model element, call it's eClass() method and
>>> you're now at the metamodel level). Please let me know if you need
>>> more specific examples.
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi dimitris,
>>>> Thanks, Is it possible to identify the metamodel on which
>>>> Target.target.modelFile is based? It would also be useful to be able
>>>> to query the packages imported into the underlying metamodel. e.g.
>>>> if I receive an error from ETL to the effect that some type is not
>>>> defined I'd like to be able to confirm the scope of the imports.
>>>>
>>>> Best Wishes
>>>> Chris
>>>>
>>>> Dimitris Kolovos wrote:
>>>>> Hi Chris,
>>>>>
>>>>> Thanks for your detailed explanation! Target.target should return
>>>>> the real EmfModel wrapped by the ModelReference and
>>>>> Target.target.modelFile should return the location of the model file.
>>>>>
>>>>> Cheers,
>>>>> Dimitris
>>>>>
>>>>> Chris Holmes wrote:
>>>>>> Hi Dimitris,
>>>>>> I declare the variables as properties in Ant:
>>>>>> <!--
>>>>>> Source details
>>>>>> -->
>>>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>>>> <property name="SourceUri" location="SourceUrl"/>
>>>>>> <property name="SourceName" value="sourceName"/>
>>>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>>>> <filelist
>>>>>> id="SourceFiles"
>>>>>> dir="${SourceDataDir}"
>>>>>> files=" <listOfFilesToBeParsed>"/>
>>>>>>
>>>>>> <!--
>>>>>> Target details
>>>>>> -->
>>>>>> <property name="TargetFile" value="target.model"/>
>>>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>>>> <property name="TargetName" value="targetModelName"/>
>>>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>>>
>>>>>> <!--
>>>>>> Reference details
>>>>>> -->
>>>>>> <property name="ReferenceFile" value="reference.model"/>
>>>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>>>
>>>>>> and then use the variables to define the source/target/reference
>>>>>> models for the ETL transformation:
>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>> </epsilon.etl>
>>>>>>
>>>>>> I'd like to be able to inspect the values of
>>>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>>>> they are pointing to the relevant models. I notice (e.g.) that
>>>>>> from within ETL I can resolve Target to:
>>>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>>>> It would be useful if I could get hold of the object to which this
>>>>>> refers to confirm what it is. It ought to refer to a model, so if
>>>>>> I could get hold of the root element of the model I could confirm
>>>>>> it's URL, location, etc. and also navigate down to expected
>>>>>> objects/attributes.
>>>>>>
>>>>>> Hence, when I declare some variable within ETL, say:
>>>>>> var thing : Target!Thing;
>>>>>> and ETL fails, saying something like:
>>>>>> EXCEPTION: Type 'Target!Thing' not found
>>>>>> I can at least begin to confirm the identity, location, etc. of
>>>>>> Target.
>>>>>>
>>>>>> Best Wishes
>>>>>> Chris
>>>>>>
>>>>>> Dimitris Kolovos wrote:
>>>>>>> Hi Chris,
>>>>>>>
>>>>>>> Are you referring to parameters passed to Epsilon programs via
>>>>>>> the <parameter> tag or to ANT variables such as ${SourceName}?
>>>>>>> Could you please also elaborate a bit on what sort of checks
>>>>>>> you'd like to run?
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Dimitris
>>>>>>>
>>>>>>> Chris Holmes wrote:
>>>>>>>> Hi,
>>>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>>>> parameters such as Source and Target to tell ETL what to
>>>>>>>> transform and where to put the result. What type are these
>>>>>>>> parameters? And what operations can I run on them to confirm
>>>>>>>> that they are as expected?
>>>>>>>>
>>>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>>>> </epsilon.etl>
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Chris
>>>>>>>
>>>>>>>
>>>
>>>
>
>
Re: Debugging ETL [message #587917 is a reply to message #523840] Mon, 29 March 2010 16:00 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
I declare the variables as properties in Ant:
<!--
Source details
-->
<property name="SourceDataDir" value="sourceDirectory"/>
<property name="SourceUri" location="SourceUrl"/>
<property name="SourceName" value="sourceName"/>
<property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
<filelist
id="SourceFiles"
dir="${SourceDataDir}"
files=" <listOfFilesToBeParsed>"/>

<!--
Target details
-->
<property name="TargetFile" value="target.model"/>
<property name="TargetUri" value="targetModelUrl"/>
<property name="TargetName" value="targetModelName"/>
<property name="TargetMetaModel" value="targetMetaModel.ecore"/>

<!--
Reference details
-->
<property name="ReferenceFile" value="reference.model"/>
<property name="ReferenceUri" value="referenceUri"/>
<property name="ReferenceName" value="referenceModelName"/>

and then use the variables to define the source/target/reference models
for the ETL transformation:
<epsilon.etl src="${EtlFile}">
<model ref="${SourceName}" as="Source"/>
<model ref="${TargetName}" as="Target"/>
<model ref="${ReferenceName}" as="MessageSet"/>
</epsilon.etl>

I'd like to be able to inspect the values of Source/Target/MessageSet
from within ETL to convince myself that they are pointing to the
relevant models. I notice (e.g.) that from within ETL I can resolve
Target to:
org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
It would be useful if I could get hold of the object to which this
refers to confirm what it is. It ought to refer to a model, so if I
could get hold of the root element of the model I could confirm it's
URL, location, etc. and also navigate down to expected objects/attributes.

Hence, when I declare some variable within ETL, say:
var thing : Target!Thing;
and ETL fails, saying something like:
EXCEPTION: Type 'Target!Thing' not found
I can at least begin to confirm the identity, location, etc. of Target.

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> Are you referring to parameters passed to Epsilon programs via the
> <parameter> tag or to ANT variables such as ${SourceName}? Could you
> please also elaborate a bit on what sort of checks you'd like to run?
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi,
>> I'm running an ETL transformation via Ant, passing in various
>> parameters such as Source and Target to tell ETL what to transform and
>> where to put the result. What type are these parameters? And what
>> operations can I run on them to confirm that they are as expected?
>>
>> The parameters are pssed into ETL from Ant viz:
>> <epsilon.etl src="${EtlFile}">
>> <model ref="${SourceName}" as="Source"/>
>> <model ref="${TargetName}" as="Target"/>
>> <model ref="${ReferenceName}" as="MessageSet"/>
>> </epsilon.etl>
>>
>> Regards
>> Chris
>
>
Re: Debugging ETL [message #587924 is a reply to message #523858] Mon, 29 March 2010 17:38 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

Thanks for your detailed explanation! Target.target should return the
real EmfModel wrapped by the ModelReference and Target.target.modelFile
should return the location of the model file.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi Dimitris,
> I declare the variables as properties in Ant:
> <!--
> Source details
> -->
> <property name="SourceDataDir" value="sourceDirectory"/>
> <property name="SourceUri" location="SourceUrl"/>
> <property name="SourceName" value="sourceName"/>
> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
> <filelist
> id="SourceFiles"
> dir="${SourceDataDir}"
> files=" <listOfFilesToBeParsed>"/>
>
> <!--
> Target details
> -->
> <property name="TargetFile" value="target.model"/>
> <property name="TargetUri" value="targetModelUrl"/>
> <property name="TargetName" value="targetModelName"/>
> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>
> <!--
> Reference details
> -->
> <property name="ReferenceFile" value="reference.model"/>
> <property name="ReferenceUri" value="referenceUri"/>
> <property name="ReferenceName" value="referenceModelName"/>
>
> and then use the variables to define the source/target/reference models
> for the ETL transformation:
> <epsilon.etl src="${EtlFile}">
> <model ref="${SourceName}" as="Source"/>
> <model ref="${TargetName}" as="Target"/>
> <model ref="${ReferenceName}" as="MessageSet"/>
> </epsilon.etl>
>
> I'd like to be able to inspect the values of Source/Target/MessageSet
> from within ETL to convince myself that they are pointing to the
> relevant models. I notice (e.g.) that from within ETL I can resolve
> Target to:
> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
> It would be useful if I could get hold of the object to which this
> refers to confirm what it is. It ought to refer to a model, so if I
> could get hold of the root element of the model I could confirm it's
> URL, location, etc. and also navigate down to expected objects/attributes.
>
> Hence, when I declare some variable within ETL, say:
> var thing : Target!Thing;
> and ETL fails, saying something like:
> EXCEPTION: Type 'Target!Thing' not found
> I can at least begin to confirm the identity, location, etc. of Target.
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> Are you referring to parameters passed to Epsilon programs via the
>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>> please also elaborate a bit on what sort of checks you'd like to run?
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi,
>>> I'm running an ETL transformation via Ant, passing in various
>>> parameters such as Source and Target to tell ETL what to transform
>>> and where to put the result. What type are these parameters? And what
>>> operations can I run on them to confirm that they are as expected?
>>>
>>> The parameters are pssed into ETL from Ant viz:
>>> <epsilon.etl src="${EtlFile}">
>>> <model ref="${SourceName}" as="Source"/>
>>> <model ref="${TargetName}" as="Target"/>
>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>> </epsilon.etl>
>>>
>>> Regards
>>> Chris
>>
>>
Re: Debugging ETL [message #587951 is a reply to message #523883] Tue, 30 March 2010 07:36 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi dimitris,
Thanks, Is it possible to identify the metamodel on which
Target.target.modelFile is based? It would also be useful to be able to
query the packages imported into the underlying metamodel. e.g. if I
receive an error from ETL to the effect that some type is not defined
I'd like to be able to confirm the scope of the imports.

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> Thanks for your detailed explanation! Target.target should return the
> real EmfModel wrapped by the ModelReference and Target.target.modelFile
> should return the location of the model file.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi Dimitris,
>> I declare the variables as properties in Ant:
>> <!--
>> Source details
>> -->
>> <property name="SourceDataDir" value="sourceDirectory"/>
>> <property name="SourceUri" location="SourceUrl"/>
>> <property name="SourceName" value="sourceName"/>
>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>> <filelist
>> id="SourceFiles"
>> dir="${SourceDataDir}"
>> files=" <listOfFilesToBeParsed>"/>
>>
>> <!--
>> Target details
>> -->
>> <property name="TargetFile" value="target.model"/>
>> <property name="TargetUri" value="targetModelUrl"/>
>> <property name="TargetName" value="targetModelName"/>
>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>
>> <!--
>> Reference details
>> -->
>> <property name="ReferenceFile" value="reference.model"/>
>> <property name="ReferenceUri" value="referenceUri"/>
>> <property name="ReferenceName" value="referenceModelName"/>
>>
>> and then use the variables to define the source/target/reference
>> models for the ETL transformation:
>> <epsilon.etl src="${EtlFile}">
>> <model ref="${SourceName}" as="Source"/>
>> <model ref="${TargetName}" as="Target"/>
>> <model ref="${ReferenceName}" as="MessageSet"/>
>> </epsilon.etl>
>>
>> I'd like to be able to inspect the values of Source/Target/MessageSet
>> from within ETL to convince myself that they are pointing to the
>> relevant models. I notice (e.g.) that from within ETL I can resolve
>> Target to:
>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>> It would be useful if I could get hold of the object to which this
>> refers to confirm what it is. It ought to refer to a model, so if I
>> could get hold of the root element of the model I could confirm it's
>> URL, location, etc. and also navigate down to expected
>> objects/attributes.
>>
>> Hence, when I declare some variable within ETL, say:
>> var thing : Target!Thing;
>> and ETL fails, saying something like:
>> EXCEPTION: Type 'Target!Thing' not found
>> I can at least begin to confirm the identity, location, etc. of Target.
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> Are you referring to parameters passed to Epsilon programs via the
>>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>>> please also elaborate a bit on what sort of checks you'd like to run?
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi,
>>>> I'm running an ETL transformation via Ant, passing in various
>>>> parameters such as Source and Target to tell ETL what to transform
>>>> and where to put the result. What type are these parameters? And
>>>> what operations can I run on them to confirm that they are as expected?
>>>>
>>>> The parameters are pssed into ETL from Ant viz:
>>>> <epsilon.etl src="${EtlFile}">
>>>> <model ref="${SourceName}" as="Source"/>
>>>> <model ref="${TargetName}" as="Target"/>
>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>> </epsilon.etl>
>>>>
>>>> Regards
>>>> Chris
>>>
>>>
Re: Debugging ETL [message #587959 is a reply to message #587951] Tue, 30 March 2010 09:00 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

You can identify the metamodel URI by calling Target.target.metamodelUri
or the metamodel file by calling Target.target.metamodelFile. You can
also navigate the metamodel by reflection (i.e. pick 1 model element,
call it's eClass() method and you're now at the metamodel level). Please
let me know if you need more specific examples.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi dimitris,
> Thanks, Is it possible to identify the metamodel on which
> Target.target.modelFile is based? It would also be useful to be able to
> query the packages imported into the underlying metamodel. e.g. if I
> receive an error from ETL to the effect that some type is not defined
> I'd like to be able to confirm the scope of the imports.
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> Thanks for your detailed explanation! Target.target should return the
>> real EmfModel wrapped by the ModelReference and
>> Target.target.modelFile should return the location of the model file.
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi Dimitris,
>>> I declare the variables as properties in Ant:
>>> <!--
>>> Source details
>>> -->
>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>> <property name="SourceUri" location="SourceUrl"/>
>>> <property name="SourceName" value="sourceName"/>
>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>> <filelist
>>> id="SourceFiles"
>>> dir="${SourceDataDir}"
>>> files=" <listOfFilesToBeParsed>"/>
>>>
>>> <!--
>>> Target details
>>> -->
>>> <property name="TargetFile" value="target.model"/>
>>> <property name="TargetUri" value="targetModelUrl"/>
>>> <property name="TargetName" value="targetModelName"/>
>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>
>>> <!--
>>> Reference details
>>> -->
>>> <property name="ReferenceFile" value="reference.model"/>
>>> <property name="ReferenceUri" value="referenceUri"/>
>>> <property name="ReferenceName" value="referenceModelName"/>
>>>
>>> and then use the variables to define the source/target/reference
>>> models for the ETL transformation:
>>> <epsilon.etl src="${EtlFile}">
>>> <model ref="${SourceName}" as="Source"/>
>>> <model ref="${TargetName}" as="Target"/>
>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>> </epsilon.etl>
>>>
>>> I'd like to be able to inspect the values of Source/Target/MessageSet
>>> from within ETL to convince myself that they are pointing to the
>>> relevant models. I notice (e.g.) that from within ETL I can resolve
>>> Target to:
>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>> It would be useful if I could get hold of the object to which this
>>> refers to confirm what it is. It ought to refer to a model, so if I
>>> could get hold of the root element of the model I could confirm it's
>>> URL, location, etc. and also navigate down to expected
>>> objects/attributes.
>>>
>>> Hence, when I declare some variable within ETL, say:
>>> var thing : Target!Thing;
>>> and ETL fails, saying something like:
>>> EXCEPTION: Type 'Target!Thing' not found
>>> I can at least begin to confirm the identity, location, etc. of Target.
>>>
>>> Best Wishes
>>> Chris
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Chris,
>>>>
>>>> Are you referring to parameters passed to Epsilon programs via the
>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could you
>>>> please also elaborate a bit on what sort of checks you'd like to run?
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Chris Holmes wrote:
>>>>> Hi,
>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>> parameters such as Source and Target to tell ETL what to transform
>>>>> and where to put the result. What type are these parameters? And
>>>>> what operations can I run on them to confirm that they are as
>>>>> expected?
>>>>>
>>>>> The parameters are pssed into ETL from Ant viz:
>>>>> <epsilon.etl src="${EtlFile}">
>>>>> <model ref="${SourceName}" as="Source"/>
>>>>> <model ref="${TargetName}" as="Target"/>
>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>> </epsilon.etl>
>>>>>
>>>>> Regards
>>>>> Chris
>>>>
>>>>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Debugging ETL [message #587969 is a reply to message #587959] Tue, 30 March 2010 09:49 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
Is the following call correct?
('Metamodel file: ' + Target.target.metamodelFile).println();

I run the following from the 'pre' section of a working ETL file:
-- some diagnostics
'Source model:'.println();
('Source: ' + Source).println();
('EMF model: ' + Source.target).println();
'Target model:'.println();
('Target: ' + Target).println();
('EMF model: ' + Target.target).println();
('Location: ' + Target.target.modelFile).println();
('Metamodel URI: ' + Target.target.metamodelUri).println();
('Metamodel file: ' + Target.target.metamodelFile).println();

I receive the following output and error message:
Source model:
Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
Target model:
Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
Location: C:\EclipseWorkspaces\blah...\MyStuff.model
Metamodel URI: http://blah../MyStuff
EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> You can identify the metamodel URI by calling Target.target.metamodelUri
> or the metamodel file by calling Target.target.metamodelFile. You can
> also navigate the metamodel by reflection (i.e. pick 1 model element,
> call it's eClass() method and you're now at the metamodel level). Please
> let me know if you need more specific examples.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi dimitris,
>> Thanks, Is it possible to identify the metamodel on which
>> Target.target.modelFile is based? It would also be useful to be able
>> to query the packages imported into the underlying metamodel. e.g. if
>> I receive an error from ETL to the effect that some type is not
>> defined I'd like to be able to confirm the scope of the imports.
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> Thanks for your detailed explanation! Target.target should return the
>>> real EmfModel wrapped by the ModelReference and
>>> Target.target.modelFile should return the location of the model file.
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi Dimitris,
>>>> I declare the variables as properties in Ant:
>>>> <!--
>>>> Source details
>>>> -->
>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>> <property name="SourceUri" location="SourceUrl"/>
>>>> <property name="SourceName" value="sourceName"/>
>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>> <filelist
>>>> id="SourceFiles"
>>>> dir="${SourceDataDir}"
>>>> files=" <listOfFilesToBeParsed>"/>
>>>>
>>>> <!--
>>>> Target details
>>>> -->
>>>> <property name="TargetFile" value="target.model"/>
>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>> <property name="TargetName" value="targetModelName"/>
>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>
>>>> <!--
>>>> Reference details
>>>> -->
>>>> <property name="ReferenceFile" value="reference.model"/>
>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>
>>>> and then use the variables to define the source/target/reference
>>>> models for the ETL transformation:
>>>> <epsilon.etl src="${EtlFile}">
>>>> <model ref="${SourceName}" as="Source"/>
>>>> <model ref="${TargetName}" as="Target"/>
>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>> </epsilon.etl>
>>>>
>>>> I'd like to be able to inspect the values of
>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>> they are pointing to the relevant models. I notice (e.g.) that from
>>>> within ETL I can resolve Target to:
>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>> It would be useful if I could get hold of the object to which this
>>>> refers to confirm what it is. It ought to refer to a model, so if I
>>>> could get hold of the root element of the model I could confirm it's
>>>> URL, location, etc. and also navigate down to expected
>>>> objects/attributes.
>>>>
>>>> Hence, when I declare some variable within ETL, say:
>>>> var thing : Target!Thing;
>>>> and ETL fails, saying something like:
>>>> EXCEPTION: Type 'Target!Thing' not found
>>>> I can at least begin to confirm the identity, location, etc. of Target.
>>>>
>>>> Best Wishes
>>>> Chris
>>>>
>>>> Dimitris Kolovos wrote:
>>>>> Hi Chris,
>>>>>
>>>>> Are you referring to parameters passed to Epsilon programs via the
>>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could
>>>>> you please also elaborate a bit on what sort of checks you'd like
>>>>> to run?
>>>>>
>>>>> Cheers,
>>>>> Dimitris
>>>>>
>>>>> Chris Holmes wrote:
>>>>>> Hi,
>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>> parameters such as Source and Target to tell ETL what to transform
>>>>>> and where to put the result. What type are these parameters? And
>>>>>> what operations can I run on them to confirm that they are as
>>>>>> expected?
>>>>>>
>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>> </epsilon.etl>
>>>>>>
>>>>>> Regards
>>>>>> Chris
>>>>>
>>>>>
>
>
Re: Debugging ETL [message #587976 is a reply to message #524007] Tue, 30 March 2010 10:18 Go to previous messageGo to next message
Dimitrios Kolovos is currently offline Dimitrios KolovosFriend
Messages: 1776
Registered: July 2009
Senior Member
Hi Chris,

As you're loading the model by metamodel URI, metamodelFile is null and
this causes an exception. Could you please add another bug report for
this? Until we get this fixed you can get the raw URI of the metamodel
file (which will also be null in this case but won't throw an exception)
using:

('Metamodel file: ' + Target.target.metamodelFileUri).println();

On a side note, Target.target.xxx will only work when you're launching
the transformation through ANT. If at some point you invoke the ETL
transformation from Java/launch configuration there'll be no
ModelReference so all calls to Target.target.xxx will need to be
replaced by Target.xxx.

Cheers,
Dimitris

Chris Holmes wrote:
> Hi Dimitris,
> Is the following call correct?
> ('Metamodel file: ' + Target.target.metamodelFile).println();
>
> I run the following from the 'pre' section of a working ETL file:
> -- some diagnostics
> 'Source model:'.println();
> ('Source: ' + Source).println();
> ('EMF model: ' + Source.target).println();
> 'Target model:'.println();
> ('Target: ' + Target).println();
> ('EMF model: ' + Target.target).println();
> ('Location: ' + Target.target.modelFile).println();
> ('Metamodel URI: ' + Target.target.metamodelUri).println();
> ('Metamodel file: ' + Target.target.metamodelFile).println();
>
> I receive the following output and error message:
> Source model:
> Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
> EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
> Target model:
> Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
> EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
> Location: C:\EclipseWorkspaces\blah...\MyStuff.model
> Metamodel URI: http://blah../MyStuff
> EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException
>
> Best Wishes
> Chris
>
> Dimitris Kolovos wrote:
>> Hi Chris,
>>
>> You can identify the metamodel URI by calling
>> Target.target.metamodelUri or the metamodel file by calling
>> Target.target.metamodelFile. You can also navigate the metamodel by
>> reflection (i.e. pick 1 model element, call it's eClass() method and
>> you're now at the metamodel level). Please let me know if you need
>> more specific examples.
>>
>> Cheers,
>> Dimitris
>>
>> Chris Holmes wrote:
>>> Hi dimitris,
>>> Thanks, Is it possible to identify the metamodel on which
>>> Target.target.modelFile is based? It would also be useful to be able
>>> to query the packages imported into the underlying metamodel. e.g. if
>>> I receive an error from ETL to the effect that some type is not
>>> defined I'd like to be able to confirm the scope of the imports.
>>>
>>> Best Wishes
>>> Chris
>>>
>>> Dimitris Kolovos wrote:
>>>> Hi Chris,
>>>>
>>>> Thanks for your detailed explanation! Target.target should return
>>>> the real EmfModel wrapped by the ModelReference and
>>>> Target.target.modelFile should return the location of the model file.
>>>>
>>>> Cheers,
>>>> Dimitris
>>>>
>>>> Chris Holmes wrote:
>>>>> Hi Dimitris,
>>>>> I declare the variables as properties in Ant:
>>>>> <!--
>>>>> Source details
>>>>> -->
>>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>>> <property name="SourceUri" location="SourceUrl"/>
>>>>> <property name="SourceName" value="sourceName"/>
>>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>>> <filelist
>>>>> id="SourceFiles"
>>>>> dir="${SourceDataDir}"
>>>>> files=" <listOfFilesToBeParsed>"/>
>>>>>
>>>>> <!--
>>>>> Target details
>>>>> -->
>>>>> <property name="TargetFile" value="target.model"/>
>>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>>> <property name="TargetName" value="targetModelName"/>
>>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>>
>>>>> <!--
>>>>> Reference details
>>>>> -->
>>>>> <property name="ReferenceFile" value="reference.model"/>
>>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>>
>>>>> and then use the variables to define the source/target/reference
>>>>> models for the ETL transformation:
>>>>> <epsilon.etl src="${EtlFile}">
>>>>> <model ref="${SourceName}" as="Source"/>
>>>>> <model ref="${TargetName}" as="Target"/>
>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>> </epsilon.etl>
>>>>>
>>>>> I'd like to be able to inspect the values of
>>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>>> they are pointing to the relevant models. I notice (e.g.) that from
>>>>> within ETL I can resolve Target to:
>>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>>> It would be useful if I could get hold of the object to which this
>>>>> refers to confirm what it is. It ought to refer to a model, so if I
>>>>> could get hold of the root element of the model I could confirm
>>>>> it's URL, location, etc. and also navigate down to expected
>>>>> objects/attributes.
>>>>>
>>>>> Hence, when I declare some variable within ETL, say:
>>>>> var thing : Target!Thing;
>>>>> and ETL fails, saying something like:
>>>>> EXCEPTION: Type 'Target!Thing' not found
>>>>> I can at least begin to confirm the identity, location, etc. of
>>>>> Target.
>>>>>
>>>>> Best Wishes
>>>>> Chris
>>>>>
>>>>> Dimitris Kolovos wrote:
>>>>>> Hi Chris,
>>>>>>
>>>>>> Are you referring to parameters passed to Epsilon programs via the
>>>>>> <parameter> tag or to ANT variables such as ${SourceName}? Could
>>>>>> you please also elaborate a bit on what sort of checks you'd like
>>>>>> to run?
>>>>>>
>>>>>> Cheers,
>>>>>> Dimitris
>>>>>>
>>>>>> Chris Holmes wrote:
>>>>>>> Hi,
>>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>>> parameters such as Source and Target to tell ETL what to
>>>>>>> transform and where to put the result. What type are these
>>>>>>> parameters? And what operations can I run on them to confirm that
>>>>>>> they are as expected?
>>>>>>>
>>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>>> </epsilon.etl>
>>>>>>>
>>>>>>> Regards
>>>>>>> Chris
>>>>>>
>>>>>>
>>
>>


--
Spread the word: http://www.eclipse.org/gmt/epsilon/spreadtheword
Follow Epsilon on Twitter: http://twitter.com/epsilonews
Re: Debugging ETL [message #587989 is a reply to message #587976] Tue, 30 March 2010 10:36 Go to previous message
Eclipse UserFriend
Originally posted by: c.k.holmes.lboro.ac.uk

Hi Dimitris,
OK, will do. Thanks for your help (and continued patience!).

Best Wishes
Chris

Dimitris Kolovos wrote:
> Hi Chris,
>
> As you're loading the model by metamodel URI, metamodelFile is null and
> this causes an exception. Could you please add another bug report for
> this? Until we get this fixed you can get the raw URI of the metamodel
> file (which will also be null in this case but won't throw an exception)
> using:
>
> ('Metamodel file: ' + Target.target.metamodelFileUri).println();
>
> On a side note, Target.target.xxx will only work when you're launching
> the transformation through ANT. If at some point you invoke the ETL
> transformation from Java/launch configuration there'll be no
> ModelReference so all calls to Target.target.xxx will need to be
> replaced by Target.xxx.
>
> Cheers,
> Dimitris
>
> Chris Holmes wrote:
>> Hi Dimitris,
>> Is the following call correct?
>> ('Metamodel file: ' + Target.target.metamodelFile).println();
>>
>> I run the following from the 'pre' section of a working ETL file:
>> -- some diagnostics
>> 'Source model:'.println();
>> ('Source: ' + Source).println();
>> ('EMF model: ' + Source.target).println();
>> 'Target model:'.println();
>> ('Target: ' + Target).println();
>> ('EMF model: ' + Target.target).println();
>> ('Location: ' + Target.target.modelFile).println();
>> ('Metamodel URI: ' + Target.target.metamodelUri).println();
>> ('Metamodel file: ' + Target.target.metamodelFile).println();
>>
>> I receive the following output and error message:
>> Source model:
>> Source: org.eclipse.epsilon.workflow.tasks.ModelReference@99c2aa
>> EMF model: org.eclipse.epsilon.emc.emf.xml.XmlModel@bb4c22
>> Target model:
>> Target: org.eclipse.epsilon.workflow.tasks.ModelReference@8380df
>> EMF model: org.eclipse.epsilon.emc.emf.EmfModel@181b9f7
>> Location: C:\EclipseWorkspaces\blah...\MyStuff.model
>> Metamodel URI: http://blah../MyStuff
>> EXCEPTION: Internal error: java.lang.reflect.InvocationTargetException
>>
>> Best Wishes
>> Chris
>>
>> Dimitris Kolovos wrote:
>>> Hi Chris,
>>>
>>> You can identify the metamodel URI by calling
>>> Target.target.metamodelUri or the metamodel file by calling
>>> Target.target.metamodelFile. You can also navigate the metamodel by
>>> reflection (i.e. pick 1 model element, call it's eClass() method and
>>> you're now at the metamodel level). Please let me know if you need
>>> more specific examples.
>>>
>>> Cheers,
>>> Dimitris
>>>
>>> Chris Holmes wrote:
>>>> Hi dimitris,
>>>> Thanks, Is it possible to identify the metamodel on which
>>>> Target.target.modelFile is based? It would also be useful to be able
>>>> to query the packages imported into the underlying metamodel. e.g.
>>>> if I receive an error from ETL to the effect that some type is not
>>>> defined I'd like to be able to confirm the scope of the imports.
>>>>
>>>> Best Wishes
>>>> Chris
>>>>
>>>> Dimitris Kolovos wrote:
>>>>> Hi Chris,
>>>>>
>>>>> Thanks for your detailed explanation! Target.target should return
>>>>> the real EmfModel wrapped by the ModelReference and
>>>>> Target.target.modelFile should return the location of the model file.
>>>>>
>>>>> Cheers,
>>>>> Dimitris
>>>>>
>>>>> Chris Holmes wrote:
>>>>>> Hi Dimitris,
>>>>>> I declare the variables as properties in Ant:
>>>>>> <!--
>>>>>> Source details
>>>>>> -->
>>>>>> <property name="SourceDataDir" value="sourceDirectory"/>
>>>>>> <property name="SourceUri" location="SourceUrl"/>
>>>>>> <property name="SourceName" value="sourceName"/>
>>>>>> <property name="SourceMetaModel" value="sourceMetaModel.ecore"/>
>>>>>> <filelist
>>>>>> id="SourceFiles"
>>>>>> dir="${SourceDataDir}"
>>>>>> files=" <listOfFilesToBeParsed>"/>
>>>>>>
>>>>>> <!--
>>>>>> Target details
>>>>>> -->
>>>>>> <property name="TargetFile" value="target.model"/>
>>>>>> <property name="TargetUri" value="targetModelUrl"/>
>>>>>> <property name="TargetName" value="targetModelName"/>
>>>>>> <property name="TargetMetaModel" value="targetMetaModel.ecore"/>
>>>>>>
>>>>>> <!--
>>>>>> Reference details
>>>>>> -->
>>>>>> <property name="ReferenceFile" value="reference.model"/>
>>>>>> <property name="ReferenceUri" value="referenceUri"/>
>>>>>> <property name="ReferenceName" value="referenceModelName"/>
>>>>>>
>>>>>> and then use the variables to define the source/target/reference
>>>>>> models for the ETL transformation:
>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>> </epsilon.etl>
>>>>>>
>>>>>> I'd like to be able to inspect the values of
>>>>>> Source/Target/MessageSet from within ETL to convince myself that
>>>>>> they are pointing to the relevant models. I notice (e.g.) that
>>>>>> from within ETL I can resolve Target to:
>>>>>> org.eclipse.epsilon.workflow.tasks.ModelReference@5bedf
>>>>>> It would be useful if I could get hold of the object to which this
>>>>>> refers to confirm what it is. It ought to refer to a model, so if
>>>>>> I could get hold of the root element of the model I could confirm
>>>>>> it's URL, location, etc. and also navigate down to expected
>>>>>> objects/attributes.
>>>>>>
>>>>>> Hence, when I declare some variable within ETL, say:
>>>>>> var thing : Target!Thing;
>>>>>> and ETL fails, saying something like:
>>>>>> EXCEPTION: Type 'Target!Thing' not found
>>>>>> I can at least begin to confirm the identity, location, etc. of
>>>>>> Target.
>>>>>>
>>>>>> Best Wishes
>>>>>> Chris
>>>>>>
>>>>>> Dimitris Kolovos wrote:
>>>>>>> Hi Chris,
>>>>>>>
>>>>>>> Are you referring to parameters passed to Epsilon programs via
>>>>>>> the <parameter> tag or to ANT variables such as ${SourceName}?
>>>>>>> Could you please also elaborate a bit on what sort of checks
>>>>>>> you'd like to run?
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Dimitris
>>>>>>>
>>>>>>> Chris Holmes wrote:
>>>>>>>> Hi,
>>>>>>>> I'm running an ETL transformation via Ant, passing in various
>>>>>>>> parameters such as Source and Target to tell ETL what to
>>>>>>>> transform and where to put the result. What type are these
>>>>>>>> parameters? And what operations can I run on them to confirm
>>>>>>>> that they are as expected?
>>>>>>>>
>>>>>>>> The parameters are pssed into ETL from Ant viz:
>>>>>>>> <epsilon.etl src="${EtlFile}">
>>>>>>>> <model ref="${SourceName}" as="Source"/>
>>>>>>>> <model ref="${TargetName}" as="Target"/>
>>>>>>>> <model ref="${ReferenceName}" as="MessageSet"/>
>>>>>>>> </epsilon.etl>
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Chris
>>>>>>>
>>>>>>>
>>>
>>>
>
>
Previous Topic:Debugging ETL
Next Topic:Possible bug in ETL/Emfatic?
Goto Forum:
  


Current Time: Thu Apr 18 07:51:49 GMT 2024

Powered by FUDForum. Page generated in 0.02766 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top