tos_advanced_en
Download
Report
Transcript tos_advanced_en
TALEND OPEN STUDIO
ADVANCED
Training Material
Copyright
Any total or partial reproduction without the consent of the
author or beneficiary, devisee or legatee is not allowed (law
of 11 March 1957, par. 1 of article 40). Representation or
reproduction, by any means, would be considered an
infringement of copyright under articles 425 et.seq. of the
Penal Code. The law of 11 March 1957, par. 2 and 3 of
article 41, allows the creation of copies and reproductions
exclusively for the private use of the copier and not for
collective use on the one hand while on the other it allows
analysts to use short quotes for purposes of illustration.
V080424
Copyright © 2008 Talend. All rights reserved
p2
Summary
Reminders and best practices
Context management
Mastering complex components
Error handling
Performance monitoring
Monitoring and automating management of log files
Deployment and scheduling
Exploiting the power of programming languages
Routines
Debugging
Creating components
tCiviliteGenerator (no properties view/retrieval of an exercise)
tPrintln (properties view)
tDecryptRow or tChangeDevise or tAddColumnTotal
tPrintOutput to redirect to printer
Virtual component (combining tFileInput and tSortRow)
V080424
Copyright © 2008 Talend. All rights reserved
p3
Let's carry on!
Reminders
Job designs
Lookups
Best practices
Reminders and best practices
V080424
Copyright © 2008 Talend. All rights reserved
p4
Job Designer: reminders
A Job: components that are linked to one another
Job
Sub-Job
V080424
Copyright © 2008 Talend. All rights reserved
p5
Job Designer: tMap and Lookup
Main and Lookup links set the order of processing
CUSTOMER
WITH STATES
V080424
Copyright © 2008 Talend. All rights reserved
p6
Job Designer: best practices
V080424
Copyright © 2008 Talend. All rights reserved
p7
Job Designer: order of components
Order of execution of components
End
Starting
Starting
End
Starting
End
V080424
End
Starting
Starting
End
Copyright © 2008 Talend. All rights reserved
p8
Let's carry on!
Reminders
The Context node in the Repository
Dedicated components
Management of Contexts
V080424
Copyright © 2008 Talend. All rights reserved
p9
Context management
A context contains several types (dev/prod)
The prompt functionality refers to different types of
variables (pathDir, pathFile)
V080424
Copyright © 2008 Talend. All rights reserved
p10
Selecting the execution context
When Talend Open Studio starts:
During deployment:
V080424
Copyright © 2008 Talend. All rights reserved
p11
Advice
F5: Declare a variable
The component tRunJob
V080424
Copyright © 2008 Talend. All rights reserved
p12
Practice area
Exercise 1 and 2
V080424
Copyright © 2008 Talend. All rights reserved
p13
Let's carry on!
Using regular expressions: tFileRegex
tIntervalMatch / tDenormalize
XML input, validation & XSL
Using Webservices
Mastering complex
components
V080424
Copyright © 2008 Talend. All rights reserved
p14
Metadata file regexp
An example of reading an Apache log file
V080424
Copyright © 2008 Talend. All rights reserved
p15
tFileInputRegexp
Define a regexp, example of reading from Apache log
Aug 18 06:31:29 cplemon02.d075.cp logger: 66.102.9.104 - - [18/Aug/2006:07:49:27 +0200] "GET /server-status/ HTTP/1.1" 200 12891 "-" "CactiScript/1.0" "-" localhost
Aug 18 06:31:30 cplemon02.d075.cp logger: 66.102.9.104 - - [18/Aug/2006:07:49:28 +0200] "GET /portail/accueil.pl HTTP/1.1" 200 2907 "-" "CactiScript/1.0" "-" localhost
Aug 18 06:31:32 cplemon01.d075.cp logger: 66.102.9.104 - - [18/Aug/2006:08:06:48 +0200] "GET /server-status/ HTTP/1.1" 200 56765 "-" "CactiScript/1.0" "-" localhost
V080424
Copyright © 2008 Talend. All rights reserved
p16
tIntervalMatch
V080424
Copyright © 2008 Talend. All rights reserved
p17
tNormalize
V080424
Copyright © 2008 Talend. All rights reserved
p18
tDenormalize
3
2
V080424
Copyright © 2008 Talend. All rights reserved
p19
tXSDValidator
V080424
Copyright © 2008 Talend. All rights reserved
p20
tXSLT: generate documents
V080424
Copyright © 2008 Talend. All rights reserved
p21
tFileOutputXML: 1 special case
V080424
Copyright © 2008 Talend. All rights reserved
p22
tAdvancedFileOutputXML
V080424
Copyright © 2008 Talend. All rights reserved
p23
tWebServiceInput
V080424
Copyright © 2008 Talend. All rights reserved
p24
Let's carry on!
Trigger ifOk and ifError
Components tLogCatcher / tWarn / tDie
Create specific logs
Error management
V080424
Copyright © 2008 Talend. All rights reserved
p25
Error handling
Each component has its own error handling routine
(OnComponentError)
V080424
Copyright © 2008 Talend. All rights reserved
p26
tLogCatcher schema
Default schema
V080424
Copyright © 2008 Talend. All rights reserved
p27
Practice area
Exercise 3: Handling errors
V080424
Copyright © 2008 Talend. All rights reserved
p28
Practice area
Exercise 4: Customizing error logs
V080424
Copyright © 2008 Talend. All rights reserved
p29
Let's carry on!
tStatCatcher
tFlowMeter
Performance monitoring
V080424
Copyright © 2008 Talend. All rights reserved
p30
tStatCatcher
Monitoring the performance of each component
V080424
Copyright © 2008 Talend. All rights reserved
p31
Let's carry on!
Automating the management of logs
Using log files
Monitoring and automation of log
file management
V080424
Copyright © 2008 Talend. All rights reserved
p32
Log management
3 types of log
Manual log
management and
error management
(Java or Perl errors)
V080424
Management of
component
execution start,
end and duration
Copyright © 2008 Talend. All rights reserved
Management of
metrics
p33
Management of logs/preferences
In order to collate logs, configure preferences:
V080424
Copyright © 2008 Talend. All rights reserved
p34
Management of logs/preferences
In the Properties and Job Designs view, preferences
are entered automatically:
This is in Built-in mode, which is not great for
maintaining preferences!
It is better to create metadata in the Repository
and specify it in each job.
V080424
Copyright © 2008 Talend. All rights reserved
p35
Practice area
Exercise 5: Creating the tables that are needed
V080424
Copyright © 2008 Talend. All rights reserved
p36
Practice area
Exercise 6
V080424
Copyright © 2008 Talend. All rights reserved
p37
Activity Monitoring Console /PE
Centralize the monitoring of Talend jobs
Single user version
Harvesting of all execution server reports
Functionalities
Monitoring of:
Events triggered by the jobs
Execution time
Volumes of processed data
Harvest the local and remote
server data simultaneously
User-definable interface
Integrated in Talend Open Studio or independent
Benefits
Single console for all integration jobs
Custom indicators and thresholds
Global view
V080424
Copyright © 2008 Talend. All rights reserved
p38
Let's carry on!
tGroovy, tJava* & tPerl*
Create specific classes/subs
Use jars/ external Perl modules
Exploiting the power of
programming languages
V080424
Copyright © 2008 Talend. All rights reserved
p39
GroovyFile component
GroovyFile: a simplified syntax
The script is simply
entered in a text file
def name='World';
println "Hello $name";
V080424
Copyright © 2008 Talend. All rights reserved
p40
tPerlFlex/tJavaFlex component
Component execution in 3 stages
Component tPerlFlex/tJavaFlex:
a component in 3 parts
Starting
loop
Start
Main
End
End
V080424
Copyright © 2008 Talend. All rights reserved
p41
Practice area
Exercise 7
Use tPerlFlex/tJavaFlex to generate the following flow:
key
value
0
Miss
1
Mrs.
2
Mr.
V080424
Copyright © 2008 Talend. All rights reserved
p42
tJava / tPerl components
tJava / tPerl = Start section of a tPerlFlex/tJavaFlex
Start
Main
End
V080424
Copyright © 2008 Talend. All rights reserved
p43
Practice area
Exercise 8:
Create a table and use it in tMap
V080424
Copyright © 2008 Talend. All rights reserved
p44
tJavaRow / tPerlRow components
tJava / tPerl = Main section of a tJavaFlex / tPerlFlex
Start
Main
End
V080424
Copyright © 2008 Talend. All rights reserved
p45
Practice area
Exercise 9:
Use a tPerlRow/tJavaRow to modify a flow:
V080424
INPUT
OUTPUT
0
Miss
1
Mrs.
2
Mr.
Copyright © 2008 Talend. All rights reserved
p46
Practice area
Exercise 10: Use tPerlRow/tJavaRow to modify the flow:
INPUT
NSS
V080424
OUTPUT
month
year
depart
ment
2700392000000
03
1970
92
1760991000000
09
1976
91
Copyright © 2008 Talend. All rights reserved
p47
Let's carry on!
Master the complex components:
tGroovy, tJava & tPerl
Create specific classes/subs
Use jars/ external Perl modules
Exploiting the power of
programming languages
V080424
Copyright © 2008 Talend. All rights reserved
p48
Editor with embedded Java/Perl
Integrated Java / Perl editor
Auto-complete
Syntax-based colours
Explanation of errors
Javadoc / Perldoc
More information about the Java editor
http://jmdoudoux.developpez.com/java/eclipse/?page=Chap_006#L6.4
V080424
Copyright © 2008 Talend. All rights reserved
p49
Managing shared code: routines
Structure your classes and subs
Group together existing:
Business classes
Connectors
V080424
Copyright © 2008 Talend. All rights reserved
p50
Creating a class or a sub
Example: Java Class
The comments allow you to
make the method available in
Expression Builder and
tRowGenerator
V080424
Copyright © 2008 Talend. All rights reserved
p51
Practice area
Exercise 11: Create that allows the following to be extracted from
an NSS:
Month
Year
Department
INPUT
OUTPUT
NSS
V080424
month
year
dept
2700392000000
03
1970
92
1760991000000
09
1976
91
Copyright © 2008 Talend. All rights reserved
p52
Let's carry on!
Mastering complex components:
tGroovy, tJava & tPerl
Create specific classes/subs
Use jars/ external Perl modules
Exploiting the power of
programming languages
V080424
Copyright © 2008 Talend. All rights reserved
p53
Use a jar file or an external module
The external jar files are declared in a routine
V080424
Copyright © 2008 Talend. All rights reserved
p54
Practice area
Exercise 12: Import the jakarta-oro-2.0.8.jar package
Create a routine isValideEmail()
V080424
public static boolean isValideEmail(String email) {
Perl5Matcher matcher = new Perl5Matcher();
Perl5Compiler compiler = new Perl5Compiler();
Pattern pattern;
try {
pattern = compiler.compile("^[\\w_.-]+@[\\w_.-]+\\.[\\w]+$");
if (!matcher.matches(email, pattern)) {
return false;
}
} catch (MalformedPatternException e) {
throw new RuntimeException(e);
}
return true;
Copyright © 2008 Talend. All rights reserved
}
p55
Practice area
Exercise 13: Create a job and name it UseJar
Use the function IsValideEmail()
V080424
Copyright © 2008 Talend. All rights reserved
p56
Let's carry on!
Advanced debugging mode
Define Breakpoints
Learn step-by-step mode (step in, step into, step over)
View variables in real time
“Hot fix” variables in memory
Implementing jobs
V080424
Copyright © 2008 Talend. All rights reserved
p57
Debug view
"Step-by-step" mode
Hot fix variables
JasperETL
On-line resources
http://www.jmdoudoux.fr/java/dejae/chap008.htm
V080424
Copyright © 2008 Talend. All rights reserved
p58
Practice area
Exercise 14: Using the debugger
V080424
Copyright © 2008 Talend. All rights reserved
p59
Let's carry on!
Deploy your jobs to a production system
Export your jobs
Executable
Web services
Launch your jobs from the command line
Plan execution of your jobs via a scheduler
Implementing jobs
V080424
Copyright © 2008 Talend. All rights reserved
p60
Deployment and optimisation
Deploy jobs
Retrieve the generated code
Conditions under which they function
V080424
Copyright © 2008 Talend. All rights reserved
p61
Deploy a web service
V080424
Copyright © 2008 Talend. All rights reserved
p62
Talend products and deployment
• Hosted Repository
Deploy your jobs remotely
Activity Monitoring Console
/Personal Edition
Subscription
Talend on Demand
Shares Repository
Job Conductor
Activity Monitoring Console / Dashboard
Distant Run
Grid Conductor
CPU Balancer
Open Source
•
•
•
•
•
•
Enterprise
Talend Integration Suite
Talend Open Studio
V080424
Copyright © 2008 Talend. All rights reserved
GPL
Individual
• Business Modeler
• Job Designer
• Metadata Manager
p63
Let's carry on!
Create your own components: design and implementation
Understand the concepts of code generation via a template
Understand the 3 template files: start/main/end
Understand the XML description of components
Internationalize your components
Implementing jobs
V080424
Copyright © 2008 Talend. All rights reserved
p64
Storage
Code
Generator
Generated
Program
V080424
...
XML
XML
Business
Model
Job
Jet Template
Jet Template
Jet Template
Perl
Java
C
Perl
Program
Java
Program
C Program
Copyright © 2008 Talend. All rights reserved
Preliminary skills: Perl 5.8
Talend Open Studio
GUI
Preliminary skills: JAVA 1.5
Architecture of Talend Open Studio
p65
Execution of components
Order in which components are executed
End
Starting
Starting
End
Starting
End
V080424
End
Starting
Starting
End
Copyright © 2008 Talend. All rights reserved
p66
Design a specific component
tJavaFlex / tPerlFlex :
Start: action triggered by calling the component
Main: action triggered with each line of data
End: action triggered at the end of processing
V080424
Copyright © 2008 Talend. All rights reserved
p67
Module containing components
The module org.talend.designer.components.localprovider
Do not modify this file by hand!
V080424
Copyright © 2008 Talend. All rights reserved
p68
User components
Store your components in a specific file
V080424
Copyright © 2008 Talend. All rights reserved
p69
Component’s Designer
Your components currently in development
V080424
Copyright © 2008 Talend. All rights reserved
p70
Best practices
Differentiate between your development and
production environments!
Install an instance of TOS to develop your
components
Install an instance of TOS or of TIS Client to manage
your Talend projects
Simply separating the storage folders for production and
development components is not sufficient.
V080424
Copyright © 2008 Talend. All rights reserved
p71
Component files
<component>_<language>.xml
Description of a component
<component>_icon32.png
The Palette icon
<component>_messages.properties
The contents of the properties view
<component>_begin.<language>jet
The Start part of the code
<component>_main.<language>jet
The Main part of the code (the loop)
<component>_end.<language>jet
The End part of the code
V080424
Copyright © 2008 Talend. All rights reserved
p72
Working with files
The Component Designer view
V080424
Copyright © 2008 Talend. All rights reserved
p73
<component>_<language>.xml
<component>_<language>.xml, description of component
The Header tag presents the attributes
AUTHOR, VERSION, COMPATIBILITY
STARTABLE
SCHEMA_AUTO_PROPAGATE
DATA_AUTO_PROPAGATE
The CONNECTORS tag contains:
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0"/>
<CONNECTOR CTYPE="ITERATE"
MAX_OUTPUT="1" MAX_INPUT="1"/>
<CONNECTOR CTYPE="THEN_RUN" MAX_INPUT="1"/>
<CONNECTOR CTYPE="RUN_OK"/>
<CONNECTOR CTYPE="RUN_ERROR"/>
<CONNECTOR CTYPE="RUN_IF"/>
<CONNECTOR NAME="UNIQUE" CTYPE="FLOW"
COLOR="086438" BASE_SCHEMA="FLOW" />
<CONNECTOR NAME="DUPLICATE" CTYPE="FLOW"
LINE_STYLE="2" COLOR="f36300" BASE_SCHEMA="FLOW" />
PARAMETERS...following page ;)
http://www.talendforge.org/wiki/doku.php?id=component_creation#xml_description
V080424
Copyright © 2008 Talend. All rights reserved
p74
<component>_<language>.xml
<component>_<language>.xml, description of component:
parameters
<PARAMETER NAME="FILENAME" FIELD="FILE"
NUM_ROW="2" REQUIRED="true" >
<DEFAULT>'C:\talend_files\in.csv'</DEFAULT>
</PARAMETER>
The different forms of FIELD
•CHECK
•CLOSED_LIST
•DIRECTORY
•FILE
•MEMO
•MEMO_PERL
•MEMO_JAVA
•MEMO_SQL
•PROCESS_TYPE
•PROPERTY_TYPE
•SCHEMA_TYPE
•TABLE
•TEXT
http://www.talendforge.org/wiki/doku.php?id=component_creation#xml_description
V080424
Copyright © 2008 Talend. All rights reserved
p75
Practice area
Exercise 15: First component!
Objective is to understand the description xml file
V080424
Copyright © 2008 Talend. All rights reserved
p76
Internationalize these components
CompoName_messages_zh.properties
V080424
Copyright © 2008 Talend. All rights reserved
p77
JET Templates
Eclipse Modeling Framework (EMF) contains a very
powerful tool for generating source code:
JET (Java Emitter Templates)
V080424
Copyright © 2008 Talend. All rights reserved
p78
JET Templates: general information
JET Template is made up of several parts:
The code to be generated
The functional code allowing you to determine the
parameters of the code to be generated
<%
/*Java code which will not be included in the generated code
otherwise called the functional code
*/
%>
/* Jave Code constituting the generated code
*/
V080424
Copyright © 2008 Talend. All rights reserved
p79
Practice area
Exercise 16: First JET Templates!
V080424
Copyright © 2008 Talend. All rights reserved
p80
JET Templates / Start :: imports
JET Templates header
<%@ jet imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.designer.codegen.config.CodeGeneratorArgu
ment java.util.List
"
%>
Then provides information according to the
functionality of components
V080424
Copyright © 2008 Talend. All rights reserved
p81
JET Templates / tPrint
The tPrint component:
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String msg = ElementParameterParser.getValue(node, "__COMMENTAIRE__");
%>
String msg = <%=msg %>;
if(msg.equals("")) {
System.out.println("Message is empty");
} else {
System.out.println(msg);
}
V080424
Copyright © 2008 Talend. All rights reserved
p82
JET Templates/tPrint/generated code
Generated code
String msg = "nbrLignes: " + ((Integer)globalMap.get("tLogRow_1_NB_LINE")) ;
if(msg.equals("")) {
System.out.println("Message is empty");
} else {
System.out.println(msg);
}
V080424
Copyright © 2008 Talend. All rights reserved
p83
Practice area
Exercise 17: Create the component tPrint
A single parameter: Comments
Use it in a job!
V080424
Copyright © 2008 Talend. All rights reserved
p84
JET Templates/error management
Native handling: when a Java exception occurs
The OnError link is triggered instead of the OnOk link
The variable compoName_ERROR_MESSAGE is instantiated
The error message is sent to tLogCatcher
Manual handling:
compoName_ERROR_MESSAGE must be instantiated
throw new Exception("myErrorMessage");
System.err.println("myErrorMessage");
V080424
Copyright © 2008 Talend. All rights reserved
p85
JET Templates / tPrint
Handling an error in the tPrint component:
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String msg = ElementParameterParser.getValue(node, "__MSG2PRINT__");
String cid = node.getUniqueName();
%>
String msg = <%=msg %>;
if(msg.equals("")) {
String errMsg = "<%=cid %>: message is empty";
globalMap.put("<%=cid %>_ERROR_MESSAGE", errMsg);
System.err.println(errMsg);
throw new Exception(errMsg);
} else {
System.out.println(msg);
}
V080424
Copyright © 2008 Talend. All rights reserved
p86
Practice area
Exercise 18: Manage errors from within a component
Create the component tPrint
Display an alert in the case of an empty message
Trigger the OnError link
V080424
Copyright © 2008 Talend. All rights reserved
p87
JET Templates
Eclipse Modeling Framework (EMF) contains a very
powerful tool for generating source code:
JET (Java Emitter Templates)
In Talend, the JET Templates are split into 3 parts:
Start
Main
End
V080424
Copyright © 2008 Talend. All rights reserved
p88
tInputCivilite
V080424
Copyright © 2008 Talend. All rights reserved
p89
Define a schema by default
<PARAMETERS>
<PARAMETER NAME="SCHEMA" FIELD="SCHEMA_TYPE"
REQUIRED="true" NUM_ROW="1" READONLY="true">
<TABLE>
<COLUMN NAME="id" TYPE="id_Integer" LENGTH="1"/>
<COLUMN NAME="value" TYPE="id_String" LENGTH="30"/>
</TABLE>
</PARAMETER>
</PARAMETERS>
V080424
Copyright © 2008 Talend. All rights reserved
p90
Practice area
Exercise 19: Create the tInputCivilite (or tInputtitle) component
Configure the xml file and properties
Create the 3 JET Templates
V080424
Copyright © 2008 Talend. All rights reserved
p91
Practice area
Exercise 20: Manipulate multiple flows
Modify the xml file in order to allow multiple outputs
Modify the main Jet Template
V080424
Copyright © 2008 Talend. All rights reserved
p92
Mode Row: Propagation of the schema
Let's pass to the Row components
V080424
Copyright © 2008 Talend. All rights reserved
p93
Propagation of the schema/ the code
V080424
Copyright © 2008 Talend. All rights reserved
p94
Practice area
Exercise 21: Create a tDemoRow component
V080424
Copyright © 2008 Talend. All rights reserved
p95
tInt2StringCiviliteRow
V080424
Copyright © 2008 Talend. All rights reserved
p96
Practice area
Exercise 22: Produce the tInt2StringCivilite component
Begin: initialize the String [] valueArray table
Main: loop on the columns and determine the content of the
column __CIVILITEOUT__
V080424
Copyright © 2008 Talend. All rights reserved
p97
tReplaceCiviliteRow
<PARAMETERS>
<PARAMETER NAME="CIVILITEOUT"
FIELD="TEXT" REQUIRED="true"
NUM_ROW="1" NB_LINES="1">
<DEFAULT>"newColumn"</DEFAULT>
</PARAMETER>
</PARAMETERS>
V080424
Copyright © 2008 Talend. All rights reserved
p98
Practice area
Exercise 23: Produce the tRowCivility component
V080424
Copyright © 2008 Talend. All rights reserved
p99
Reject
Case where the key is superior
to 2
V080424
Copyright © 2008 Talend. All rights reserved
p100
Practice area
Exercise 24: Manage a reject flow
V080424
Copyright © 2008 Talend. All rights reserved
p101
Load a jar into a component
V080424
Copyright © 2008 Talend. All rights reserved
p102
Practice area
Exercise 25: Import a Jar into a component
V080424
Copyright © 2008 Talend. All rights reserved
p103
Improve the created components
The Java editor allows you to identify unused imports
V080424
Copyright © 2008 Talend. All rights reserved
p104
Virtual component
Certain components can use other components in a
transparent manner
<CODEGENERATION>
<TEMPLATES INPUT="AGGOUT" OUTPUT="AI">
<TEMPLATE NAME="AGGOUT" COMPONENT="tAggregateOut">
<LINK_TO NAME="AI" CTYPE="THEN_RUN"/>
</TEMPLATE>
<TEMPLATE NAME="AI" COMPONENT="tArrayIn"/>
<TEMPLATE_PARAM SOURCE="self.OPERATIONS"
<TEMPLATE_PARAM SOURCE="self.OPERATIONS"
<TEMPLATE_PARAM SOURCE="self.GROUPBYS"
TARGET="AGGOUT.GROUPBYS"/>
<TEMPLATE_PARAM SOURCE="self.SCHEMA"
TARGET="AGGOUT.SCHEMA"/>
<TEMPLATE_PARAM SOURCE="self.SCHEMA "
TARGET="AI.SCHEMA"/>
<TEMPLATE_PARAM SOURCE="self.UNIQUE_NAME"
TARGET="AGGOUT.DESTINATION"/>
<TEMPLATE_PARAM SOURCE="self.UNIQUE_NAME "
TARGET="AI.ORIGIN" />
</TEMPLATES>
</CODEGENERATION>
V080424
Copyright © 2008 Talend. All rights reserved
p105
Component and graphic interface
The use of the graphic user interface by a component
requires the creation of a dedicated plugin
V080424
Copyright © 2008 Talend. All rights reserved
p106
Rely on the Talend community
Exchange with the community:
Forum
Ecosystem
V080424
Your tools:
Wiki
BugTracker
Copyright © 2008 Talend. All rights reserved
p107
Congratulations!
Your
turn to play!
Contact : [email protected]
V080424
Copyright © 2008 Talend. All rights reserved
p108