gd_bam 0.0.15 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +313 -5
- data/bin/bam +126 -48
- data/lib/bam/version.rb +1 -1
- data/lib/bam.rb +51 -0
- data/lib/base/errors.rb +15 -0
- data/lib/base/flow.rb +37 -0
- data/lib/base/graph.rb +23 -0
- data/lib/base/metadata.rb +107 -0
- data/lib/base/project.rb +95 -0
- data/lib/base/repo.rb +35 -0
- data/lib/base/sink.rb +44 -0
- data/lib/base/step.rb +47 -0
- data/lib/base/tap.rb +167 -0
- data/lib/base/taps.rb +19 -0
- data/lib/cloud_connect/dsl/cc.rb +42 -0
- data/lib/cloud_connect/dsl/es_helpers.rb +49 -0
- data/lib/cloud_connect/dsl/helpers.rb +199 -0
- data/lib/{nodes → cloud_connect/dsl}/nodes.rb +106 -16
- data/lib/cloud_connect/dsl/sf_helpers.rb +39 -0
- data/lib/cloud_connect/dsl/structure_helpers.rb +94 -0
- data/lib/commands/commands.rb +110 -0
- data/lib/commands/deployment.rb +217 -0
- data/lib/commands/docs_commands.rb +41 -0
- data/lib/commands/gd_commands.rb +95 -0
- data/lib/commands/scaffold_commands.rb +103 -0
- data/lib/commands/sf_commands.rb +37 -0
- data/lib/commands/validators.rb +19 -0
- data/lib/compatibility.rb +19 -0
- data/lib/compiler/compiler.rb +76 -0
- data/lib/compiler/etl_visitor.rb +165 -0
- data/lib/dsl/dsl.rb +125 -0
- data/lib/generators/downloaders.rb +449 -0
- data/lib/generators/etl.rb +261 -0
- data/lib/generators/validators.rb +445 -0
- data/lib/graphs/docentize.grf +1 -1
- data/lib/graphs/dummy.grf +1 -1
- data/lib/graphs/goodsales_v2/docentize.grf +47 -0
- data/lib/graphs/goodsales_v2/dummy.grf +46 -0
- data/lib/graphs/goodsales_v2/load_history.grf +579 -0
- data/lib/graphs/goodsales_v2/process_account.grf +47 -0
- data/lib/graphs/goodsales_v2/process_activity.grf +222 -0
- data/lib/graphs/goodsales_v2/process_activity_dim.grf +88 -0
- data/lib/graphs/goodsales_v2/process_activity_owner.grf +48 -0
- data/lib/graphs/goodsales_v2/process_forecast.grf +20 -0
- data/lib/graphs/goodsales_v2/process_opp_records.grf +84 -0
- data/lib/graphs/goodsales_v2/process_opportunity.grf +46 -0
- data/lib/graphs/goodsales_v2/process_opportunity_line_item.grf +171 -0
- data/lib/graphs/goodsales_v2/process_opportunity_snapshot.grf +94 -0
- data/lib/graphs/goodsales_v2/process_owner.grf +48 -0
- data/lib/graphs/goodsales_v2/process_stage.grf +51 -0
- data/lib/graphs/goodsales_v2/process_stage_history.grf +184 -0
- data/lib/graphs/goodsales_v2/process_velocity_duration.grf +140 -0
- data/lib/graphs/process_account.grf +1 -1
- data/lib/graphs/process_activity.grf +1 -1
- data/lib/graphs/process_activity_dim.grf +1 -1
- data/lib/graphs/process_activity_owner.grf +1 -1
- data/lib/graphs/process_forecast.grf +1 -1
- data/lib/graphs/process_opp_records.grf +1 -1
- data/lib/graphs/process_opportunity.grf +1 -1
- data/lib/graphs/process_opportunity_line_item.grf +1 -1
- data/lib/graphs/process_opportunity_snapshot.grf +1 -1
- data/lib/graphs/process_owner.grf +1 -1
- data/lib/graphs/process_stage.grf +1 -1
- data/lib/graphs/process_stage_history.grf +1 -1
- data/lib/graphs/process_velocity_duration.grf +1 -1
- data/lib/nodes/clover_gen.rb +59 -946
- data/lib/nodes/dependency.rb +95 -96
- data/lib/runtime.rb +7 -648
- data/lib/utils/utils.rb +66 -0
- data/templates/flow.rb.erb +7 -6
- data/templates/join_template.grf.erb +1 -1
- data/templates/reformat_template.grf.erb +1 -1
- data/templates/sink.json.erb +28 -0
- data/templates/tap.json.erb +3 -5
- data/templates/workspace.prm.erb +4 -0
- metadata +50 -8
- data/lib/contract_checkers/contract_checkers.rb +0 -53
- data/lib/dsl/project_dsl.rb +0 -259
- data/lib/repo/1_config.json +0 -8
- data/templates/dataset.json.erb +0 -13
- data/templates/source.json.erb +0 -22
@@ -0,0 +1,171 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="gdc-defectivedisplay" created="Thu Mar 07 20:20:14 PST 2013" guiVersion="3.3.2" id="1362726965567" licenseType="Commercial" modified="Tue Jun 25 17:05:18 PDT 2013" modifiedBy="tomassvarovsky" name="process_opportunity_line_item" revision="1.36" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_in.xml" id="Metadata0"/>
|
5
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_out.xml" id="Metadata1"/>
|
6
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_in.xml" id="Metadata2"/>
|
7
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_out.xml" id="Metadata3"/>
|
8
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/3_in.xml" id="Metadata4"/>
|
9
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/3_out.xml" id="Metadata5"/>
|
10
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/4_in.xml" id="Metadata6"/>
|
11
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/4_out.xml" id="Metadata7"/>
|
12
|
+
<Property fileURL="params.prm" id="GraphParameter0"/>
|
13
|
+
<Property fileURL="workspace.prm" id="GraphParameter2"/>
|
14
|
+
<Dictionary/>
|
15
|
+
</Global>
|
16
|
+
<Phase number="0">
|
17
|
+
<Node enabled="enabled" fileURL="data/1_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="51" id="DATA_READER0" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
18
|
+
<Node enabled="enabled" fileURL="data/2_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="153" id="DATA_READER1" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
19
|
+
<Node enabled="enabled" fileURL="data/3_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="388" id="DATA_READER2" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
20
|
+
<Node enabled="enabled" fileURL="data/4_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="60" guiY="539" id="DATA_READER3" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
21
|
+
<Node enabled="enabled" fileURL="data/out.csv" guiHeight="77" guiName="CSV Writer" guiWidth="128" guiX="1142" guiY="533" id="DATA_WRITER0" outputFieldNames="true" quoteCharacter=""" quotedStrings="true" type="DATA_WRITER"/>
|
22
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="488" guiY="113" id="EXT_MERGE_JOIN0" joinKey="$PricebookEntryId(a);$Snapshot(a)#$Id(a);$Snapshot(a);" joinType="leftOuter" type="EXT_MERGE_JOIN">
|
23
|
+
<attr name="transform"><![CDATA[//#CTL2
|
24
|
+
|
25
|
+
// Transforms input record into output record.
|
26
|
+
function integer transform() {
|
27
|
+
$out.0.* = $in.0.*;
|
28
|
+
|
29
|
+
$out.0.PricebookEntryId = $in.1.Product2Id;
|
30
|
+
|
31
|
+
return ALL;
|
32
|
+
}
|
33
|
+
|
34
|
+
// Called during component initialization.
|
35
|
+
// function boolean init() {}
|
36
|
+
|
37
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
38
|
+
// required by the transform. All resources allocated within this method should be released
|
39
|
+
// by the postExecute() method.
|
40
|
+
// function void preExecute() {}
|
41
|
+
|
42
|
+
// Called only if transform() throws an exception.
|
43
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
44
|
+
|
45
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
46
|
+
// allocated within the preExecute() method.
|
47
|
+
// function void postExecute() {}
|
48
|
+
|
49
|
+
// Called to return a user-defined error message when an error occurs.
|
50
|
+
// function string getMessage() {}
|
51
|
+
]]></attr>
|
52
|
+
</Node>
|
53
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="673" guiY="382" id="EXT_MERGE_JOIN1" joinKey="$Id(a);$Snapshot(a)#$OpportunityId(a);$Snapshot(a);" joinType="leftOuter" slaveDuplicates="true" type="EXT_MERGE_JOIN">
|
54
|
+
<attr name="transform"><![CDATA[//#CTL2
|
55
|
+
|
56
|
+
// Transforms input record into output record.
|
57
|
+
function integer transform() {
|
58
|
+
|
59
|
+
$out.0.* = $in.0.*;
|
60
|
+
|
61
|
+
$out.0.Amount = nvl($in.1.TotalPrice, $in.0.Amount);
|
62
|
+
$out.0.ProductId = $in.1.PricebookEntryId;
|
63
|
+
|
64
|
+
return ALL;
|
65
|
+
}
|
66
|
+
|
67
|
+
// Called during component initialization.
|
68
|
+
// function boolean init() {}
|
69
|
+
|
70
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
71
|
+
// required by the transform. All resources allocated within this method should be released
|
72
|
+
// by the postExecute() method.
|
73
|
+
// function void preExecute() {}
|
74
|
+
|
75
|
+
// Called only if transform() throws an exception.
|
76
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
77
|
+
|
78
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
79
|
+
// allocated within the preExecute() method.
|
80
|
+
// function void postExecute() {}
|
81
|
+
|
82
|
+
// Called to return a user-defined error message when an error occurs.
|
83
|
+
// function string getMessage() {}
|
84
|
+
]]></attr>
|
85
|
+
</Node>
|
86
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="809" guiY="533" id="EXT_MERGE_JOIN2" joinKey="$StageName(a);$Snapshot(a)#$Id(a);$Snapshot(a);" joinType="leftOuter" slaveDuplicates="true" type="EXT_MERGE_JOIN">
|
87
|
+
<attr name="transform"><![CDATA[//#CTL2
|
88
|
+
|
89
|
+
// Transforms input record into output record.
|
90
|
+
function integer transform() {
|
91
|
+
|
92
|
+
$out.0.* = $in.0.*;
|
93
|
+
|
94
|
+
$out.0.IsClosed = $in.1.IsClosed;
|
95
|
+
$out.0.IsWon = $in.1.IsWon;
|
96
|
+
|
97
|
+
return ALL;
|
98
|
+
}
|
99
|
+
|
100
|
+
// Called during component initialization.
|
101
|
+
// function boolean init() {}
|
102
|
+
|
103
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
104
|
+
// required by the transform. All resources allocated within this method should be released
|
105
|
+
// by the postExecute() method.
|
106
|
+
// function void preExecute() {}
|
107
|
+
|
108
|
+
// Called only if transform() throws an exception.
|
109
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
110
|
+
|
111
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
112
|
+
// allocated within the preExecute() method.
|
113
|
+
// function void postExecute() {}
|
114
|
+
|
115
|
+
// Called to return a user-defined error message when an error occurs.
|
116
|
+
// function string getMessage() {}
|
117
|
+
]]></attr>
|
118
|
+
</Node>
|
119
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtSort" guiWidth="128" guiX="252" guiY="51" id="EXT_SORT0" sortKey="PricebookEntryId(a);Snapshot(a)" type="EXT_SORT"/>
|
120
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="252" guiY="153" id="EXT_SORT1" sortKey="Id(a);Snapshot(a)" type="EXT_SORT"/>
|
121
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="252" guiY="388" id="EXT_SORT2" sortKey="Id(a);Snapshot(a)" type="EXT_SORT"/>
|
122
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtSort" guiWidth="128" guiX="482" guiY="236" id="EXT_SORT3" sortKey="OpportunityId(a);Snapshot(a)" type="EXT_SORT"/>
|
123
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="283" guiY="539" id="EXT_SORT4" sortKey="Id(a);Snapshot(a)" type="EXT_SORT"/>
|
124
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtSort" guiWidth="128" guiX="855" guiY="388" id="EXT_SORT5" sortKey="StageName(a);Snapshot(a)" type="EXT_SORT"/>
|
125
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="989" guiY="533" id="REFORMAT0" type="REFORMAT">
|
126
|
+
<attr name="transform"><![CDATA[//#CTL2
|
127
|
+
|
128
|
+
// Transforms input record into output record.
|
129
|
+
function integer transform() {
|
130
|
+
$out.0.* = $in.0.*;
|
131
|
+
|
132
|
+
$out.0.CreatedDate = left($in.0.CreatedDate, 10);
|
133
|
+
|
134
|
+
return ALL;
|
135
|
+
}
|
136
|
+
|
137
|
+
// Called during component initialization.
|
138
|
+
// function boolean init() {}
|
139
|
+
|
140
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
141
|
+
// required by the transform. All resources allocated within this method should be released
|
142
|
+
// by the postExecute() method.
|
143
|
+
// function void preExecute() {}
|
144
|
+
|
145
|
+
// Called only if transform() throws an exception.
|
146
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
147
|
+
|
148
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
149
|
+
// allocated within the preExecute() method.
|
150
|
+
// function void postExecute() {}
|
151
|
+
|
152
|
+
// Called to return a user-defined error message when an error occurs.
|
153
|
+
// function string getMessage() {}
|
154
|
+
]]></attr>
|
155
|
+
</Node>
|
156
|
+
<Edge fromNode="DATA_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata0" outPort="Port 0 (output)" toNode="EXT_SORT0:0"/>
|
157
|
+
<Edge fromNode="DATA_READER1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge2" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (output)" toNode="EXT_SORT1:0"/>
|
158
|
+
<Edge fromNode="DATA_READER2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge5" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (output)" toNode="EXT_SORT2:0"/>
|
159
|
+
<Edge fromNode="DATA_READER3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge10" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 0 (output)" toNode="EXT_SORT4:0"/>
|
160
|
+
<Edge debugMode="true" fromNode="EXT_MERGE_JOIN0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge8" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="EXT_SORT3:0"/>
|
161
|
+
<Edge fromNode="EXT_MERGE_JOIN1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge13" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="EXT_SORT5:0"/>
|
162
|
+
<Edge debugMode="false" fromNode="EXT_MERGE_JOIN2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="REFORMAT0:0"/>
|
163
|
+
<Edge debugMode="false" fromNode="EXT_SORT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge3" inPort="Port 0 (driver)" metadata="Metadata0" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN0:0"/>
|
164
|
+
<Edge debugMode="false" fromNode="EXT_SORT1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge4" inPort="Port 1 (slave)" metadata="Metadata2" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN0:1"/>
|
165
|
+
<Edge debugMode="false" fromNode="EXT_SORT2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge7" inPort="Port 0 (driver)" metadata="Metadata4" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN1:0"/>
|
166
|
+
<Edge fromNode="EXT_SORT3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge9" inPort="Port 1 (slave)" metadata="Metadata1" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN1:1"/>
|
167
|
+
<Edge fromNode="EXT_SORT4:0" guiBendpoints="" guiRouter="Manhattan" id="Edge11" inPort="Port 1 (slave)" metadata="Metadata6" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN2:1"/>
|
168
|
+
<Edge fromNode="EXT_SORT5:0" guiBendpoints="" guiRouter="Manhattan" id="Edge12" inPort="Port 0 (driver)" metadata="Metadata5" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN2:0"/>
|
169
|
+
<Edge debugMode="false" fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge6" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="DATA_WRITER0:0"/>
|
170
|
+
</Phase>
|
171
|
+
</Graph>
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="fluke" created="Tue Feb 05 15:38:24 PST 2013" guiVersion="3.3.1" id="1360179808937" licenseType="Commercial" modified="Wed Feb 27 14:46:54 PST 2013" modifiedBy="fluke" name="process_name" revision="1.16" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_in.xml" id="Metadata1"/>
|
5
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_out.xml" id="Metadata3"/>
|
6
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_in.xml" id="Metadata2"/>
|
7
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_out.xml" id="Metadata4"/>
|
8
|
+
<MetadataGroup id="ComponentGroup0" name="metadata"/>
|
9
|
+
<Property fileURL="params.prm" id="GraphParameter0"/>
|
10
|
+
<Property fileURL="workspace.prm" id="GraphParameter2"/>
|
11
|
+
<LookupTable charset="ISO-8859-1" id="LookupTable0" initialSize="512" key="MasterLabel" metadata="Metadata4" name="StageLookup" type="simpleLookup"/>
|
12
|
+
<Dictionary/>
|
13
|
+
</Global>
|
14
|
+
<Phase number="0">
|
15
|
+
<Node charset="UTF-8" enabled="enabled" fileURL="${PROJECT}/data/stage.csv" guiHeight="89" guiName="CSV Reader" guiWidth="128" guiX="139" guiY="26" id="DATA_READER3" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
16
|
+
<Node enabled="enabled" guiHeight="65" guiName="LookupTableReaderWriter" guiWidth="177" guiX="528" guiY="26" id="LOOKUP_TABLE_READER_WRITER0" lookupTable="LookupTable0" type="LOOKUP_TABLE_READER_WRITER"/>
|
17
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="330" guiY="26" id="REFORMAT2" type="REFORMAT">
|
18
|
+
<attr name="transform"><![CDATA[//#CTL2
|
19
|
+
long m_count = 0;
|
20
|
+
// Transforms input record into output record.
|
21
|
+
function integer transform() {
|
22
|
+
$out.0.* = $in.0.*;
|
23
|
+
return ALL;
|
24
|
+
}
|
25
|
+
|
26
|
+
// Called during component initialization.
|
27
|
+
// function boolean init() {}
|
28
|
+
|
29
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
30
|
+
// required by the transform. All resources allocated within this method should be released
|
31
|
+
// by the postExecute() method.
|
32
|
+
// function void preExecute() {}
|
33
|
+
|
34
|
+
// Called only if transform() throws an exception.
|
35
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
36
|
+
|
37
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
38
|
+
// allocated within the preExecute() method.
|
39
|
+
// function void postExecute() {}
|
40
|
+
|
41
|
+
// Called to return a user-defined error message when an error occurs.
|
42
|
+
// function string getMessage() {}
|
43
|
+
]]></attr>
|
44
|
+
</Node>
|
45
|
+
<Edge fromNode="DATA_READER3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge23" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (output)" toNode="REFORMAT2:0"/>
|
46
|
+
<Edge fromNode="REFORMAT2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge14" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (out)" toNode="LOOKUP_TABLE_READER_WRITER0:0"/>
|
47
|
+
</Phase>
|
48
|
+
<Phase number="1">
|
49
|
+
<Node enabled="enabled" fileURL="${PROJECT}/data/opportunitysnapshot.csv" guiHeight="89" guiName="CSV Reader" guiWidth="128" guiX="127" guiY="205" id="DATA_READER0" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
50
|
+
<Node enabled="enabled" fileURL="${PROJECT}/data/opportunitysnapshot_out.csv" guiHeight="89" guiName="CSV Writer" guiWidth="128" guiX="612" guiY="205" id="DATA_WRITER0" outputFieldNames="true" quoteCharacter=""" quotedStrings="true" type="DATA_WRITER"/>
|
51
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="368" guiY="211" id="REFORMAT0" type="REFORMAT">
|
52
|
+
<attr name="transform"><![CDATA[//#CTL2
|
53
|
+
|
54
|
+
// Transforms input record into output record.
|
55
|
+
function integer transform() {
|
56
|
+
in_2 myRecord;
|
57
|
+
myRecord = lookup(StageLookup).get($in.0.StageName);
|
58
|
+
string status = (myRecord.IsClosed=='false')?'Open':(myRecord.IsWon=='true')?'Won':'Lost';
|
59
|
+
|
60
|
+
|
61
|
+
$out.0.* = $in.0.*;
|
62
|
+
$out.0.snapshot = date2str(str2date("2011-01-01","yyyy-MM-dd"), "yyyy-MM-dd");
|
63
|
+
$out.0.CreatedDate = date2str(str2date($in.0.CreatedDate,"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"), "yyyy-MM-dd");
|
64
|
+
|
65
|
+
// $out.0.days_to_close = status == "Open" ? toString(abs(dateDiff(str2date($in.0.CloseDate, 'yyyy-MM-dd'), today(), day))) : "0";
|
66
|
+
// $out.0.snapshot = date2str(dateAdd(str2date('1900-01-01', 'yyyy-MM-dd'), str2long($in.0.snapshot) - 1, day), "yyyy-MM-dd");
|
67
|
+
|
68
|
+
return ALL;
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
// Called during component initialization.
|
73
|
+
// function boolean init() {}
|
74
|
+
|
75
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
76
|
+
// required by the transform. All resources allocated within this method should be released
|
77
|
+
// by the postExecute() method.
|
78
|
+
// function void preExecute() {}
|
79
|
+
|
80
|
+
// Called only if transform() throws an exception.
|
81
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
82
|
+
|
83
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
84
|
+
// allocated within the preExecute() method.
|
85
|
+
// function void postExecute() {}
|
86
|
+
|
87
|
+
// Called to return a user-defined error message when an error occurs.
|
88
|
+
// function string getMessage() {}
|
89
|
+
]]></attr>
|
90
|
+
</Node>
|
91
|
+
<Edge fromNode="DATA_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (output)" toNode="REFORMAT0:0"/>
|
92
|
+
<Edge fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 0 (out)" toNode="DATA_WRITER0:0"/>
|
93
|
+
</Phase>
|
94
|
+
</Graph>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="fluke" created="Tue Feb 05 15:38:24 PST 2013" guiVersion="3.3.1" id="1360179808937" licenseType="Commercial" modified="Thu Feb 21 23:29:16 PST 2013" modifiedBy="fluke" name="process_name" revision="1.11" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_in.xml" id="Metadata0"/>
|
5
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_out.xml" id="Metadata1"/>
|
6
|
+
<MetadataGroup id="ComponentGroup0" name="metadata"/>
|
7
|
+
<Property fileURL="params.prm" id="GraphParameter0"/>
|
8
|
+
<Property fileURL="workspace.prm" id="GraphParameter1"/>
|
9
|
+
<Dictionary/>
|
10
|
+
</Global>
|
11
|
+
<Phase number="0">
|
12
|
+
<Node enabled="enabled" fileURL="data/1_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="124" guiY="169" id="DATA_READER0" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
13
|
+
<Node enabled="enabled" fileURL="data/out.csv" guiHeight="77" guiName="CSV Writer" guiWidth="128" guiX="609" guiY="169" id="DATA_WRITER0" outputFieldNames="true" quoteCharacter=""" quotedStrings="true" type="DATA_WRITER"/>
|
14
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="365" guiY="175" id="REFORMAT0" type="REFORMAT">
|
15
|
+
<attr name="transform"><![CDATA[//#CTL2
|
16
|
+
|
17
|
+
// Transforms input record into output record.
|
18
|
+
function integer transform() {
|
19
|
+
$out.0.* = $in.0.*;
|
20
|
+
$out.0.Name = $in.0.FirstName + " " + $in.0.LastName;
|
21
|
+
$out.0.Url = '${SF_SERVER_FOR_LINKS}' + $in.0.Id;
|
22
|
+
|
23
|
+
return OK;
|
24
|
+
}
|
25
|
+
|
26
|
+
// Called during component initialization.
|
27
|
+
// function boolean init() {}
|
28
|
+
|
29
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
30
|
+
// required by the transform. All resources allocated within this method should be released
|
31
|
+
// by the postExecute() method.
|
32
|
+
// function void preExecute() {}
|
33
|
+
|
34
|
+
// Called only if transform() throws an exception.
|
35
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
36
|
+
|
37
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
38
|
+
// allocated within the preExecute() method.
|
39
|
+
// function void postExecute() {}
|
40
|
+
|
41
|
+
// Called to return a user-defined error message when an error occurs.
|
42
|
+
// function string getMessage() {}
|
43
|
+
]]></attr>
|
44
|
+
</Node>
|
45
|
+
<Edge fromNode="DATA_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata0" outPort="Port 0 (output)" toNode="REFORMAT0:0"/>
|
46
|
+
<Edge fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="DATA_WRITER0:0"/>
|
47
|
+
</Phase>
|
48
|
+
</Graph>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="fluke" created="Tue Feb 05 15:38:24 PST 2013" guiVersion="3.3.2" id="1360179808937" licenseType="Commercial" modified="Wed Apr 17 09:21:46 PDT 2013" modifiedBy="josefvitek" name="process_name" revision="1.18" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_in.xml" id="Metadata0"/>
|
5
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_out.xml" id="Metadata1"/>
|
6
|
+
<MetadataGroup id="ComponentGroup0" name="metadata"/>
|
7
|
+
<Property fileURL="params.prm" id="GraphParameter0"/>
|
8
|
+
<Property fileURL="workspace.prm" id="GraphParameter2"/>
|
9
|
+
<Dictionary/>
|
10
|
+
</Global>
|
11
|
+
<Phase number="0">
|
12
|
+
<Node enabled="enabled" fileURL="data/1_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="124" guiY="169" id="DATA_READER0" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
13
|
+
<Node enabled="enabled" fileURL="data/out.csv" guiHeight="77" guiName="CSV Writer" guiWidth="128" guiX="609" guiY="169" id="DATA_WRITER0" outputFieldNames="true" quoteCharacter=""" quotedStrings="true" type="DATA_WRITER"/>
|
14
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="365" guiY="175" id="REFORMAT0" type="REFORMAT">
|
15
|
+
<attr name="transform"><![CDATA[//#CTL2
|
16
|
+
|
17
|
+
// Transforms input record into output record.
|
18
|
+
function integer transform() {
|
19
|
+
string status = ($in.0.IsClosed=='false')?'Open':($in.0.IsWon=='true')?'Won':'Lost';
|
20
|
+
|
21
|
+
$out.0.* = $in.0.*;
|
22
|
+
$out.0.status = status;
|
23
|
+
$out.0.label = $in.0.Id;
|
24
|
+
$out.0.SortOrder = nvl($in.0.SortOrder, "9999");
|
25
|
+
|
26
|
+
return ALL;
|
27
|
+
}
|
28
|
+
|
29
|
+
// Called during component initialization.
|
30
|
+
// function boolean init() {}
|
31
|
+
|
32
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
33
|
+
// required by the transform. All resources allocated within this method should be released
|
34
|
+
// by the postExecute() method.
|
35
|
+
// function void preExecute() {}
|
36
|
+
|
37
|
+
// Called only if transform() throws an exception.
|
38
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
39
|
+
|
40
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
41
|
+
// allocated within the preExecute() method.
|
42
|
+
// function void postExecute() {}
|
43
|
+
|
44
|
+
// Called to return a user-defined error message when an error occurs.
|
45
|
+
// function string getMessage() {}
|
46
|
+
]]></attr>
|
47
|
+
</Node>
|
48
|
+
<Edge fromNode="DATA_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata0" outPort="Port 0 (output)" toNode="REFORMAT0:0"/>
|
49
|
+
<Edge fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="DATA_WRITER0:0"/>
|
50
|
+
</Phase>
|
51
|
+
</Graph>
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="gdc-defectivedisplay" created="Thu Mar 07 20:20:14 PST 2013" guiVersion="3.3.2" id="1362726965567" licenseCode="CLP1DGOODD71636137BY" licenseType="Commercial" modified="Sun Mar 17 16:54:19 PDT 2013" modifiedBy="gdc-defectivedisplay" name="process_opportunity_line_item" revision="1.23" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_in.xml" id="Metadata0"/>
|
5
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/1_out.xml" id="Metadata1"/>
|
6
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_in.xml" id="Metadata2"/>
|
7
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/2_out.xml" id="Metadata3"/>
|
8
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/3_in.xml" id="Metadata4"/>
|
9
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/3_out.xml" id="Metadata5"/>
|
10
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/4_in.xml" id="Metadata6"/>
|
11
|
+
<Metadata fileURL="${PROJECT}/metadata/${FLOW}/${NAME}/4_out.xml" id="Metadata7"/>
|
12
|
+
<Property fileURL="params.prm" id="GraphParameter0"/>
|
13
|
+
<Property fileURL="workspace.prm" id="GraphParameter2"/>
|
14
|
+
<Dictionary/>
|
15
|
+
</Global>
|
16
|
+
<Phase number="0">
|
17
|
+
<Node enabled="enabled" fileURL="data/1_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="51" id="DATA_READER0" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
18
|
+
<Node enabled="enabled" fileURL="data/2_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="153" id="DATA_READER1" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
19
|
+
<Node enabled="enabled" fileURL="data/3_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="74" guiY="388" id="DATA_READER2" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
20
|
+
<Node enabled="enabled" fileURL="data/4_in.csv" guiHeight="77" guiName="CSV Reader" guiWidth="128" guiX="60" guiY="539" id="DATA_READER3" quoteCharacter=""" quotedStrings="true" skipRows="1" type="DATA_READER"/>
|
21
|
+
<Node enabled="enabled" fileURL="data/out.csv" guiHeight="77" guiName="CSV Writer" guiWidth="128" guiX="1142" guiY="533" id="DATA_WRITER0" outputFieldNames="true" quoteCharacter=""" quotedStrings="true" type="DATA_WRITER"/>
|
22
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="488" guiY="113" id="EXT_MERGE_JOIN0" joinKey="$PricebookEntryId(a)#$Id(a);" joinType="leftOuter" type="EXT_MERGE_JOIN">
|
23
|
+
<attr name="transform"><![CDATA[//#CTL2
|
24
|
+
|
25
|
+
// Transforms input record into output record.
|
26
|
+
function integer transform() {
|
27
|
+
$out.0.* = $in.0.*;
|
28
|
+
|
29
|
+
$out.0.PricebookEntryId = $in.1.Product2Id;
|
30
|
+
|
31
|
+
return ALL;
|
32
|
+
}
|
33
|
+
|
34
|
+
// Called during component initialization.
|
35
|
+
// function boolean init() {}
|
36
|
+
|
37
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
38
|
+
// required by the transform. All resources allocated within this method should be released
|
39
|
+
// by the postExecute() method.
|
40
|
+
// function void preExecute() {}
|
41
|
+
|
42
|
+
// Called only if transform() throws an exception.
|
43
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
44
|
+
|
45
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
46
|
+
// allocated within the preExecute() method.
|
47
|
+
// function void postExecute() {}
|
48
|
+
|
49
|
+
// Called to return a user-defined error message when an error occurs.
|
50
|
+
// function string getMessage() {}
|
51
|
+
]]></attr>
|
52
|
+
</Node>
|
53
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="609" guiY="385" id="EXT_MERGE_JOIN1" joinKey="$Id(a)#$OpportunityId(a);" joinType="leftOuter" slaveDuplicates="true" type="EXT_MERGE_JOIN">
|
54
|
+
<attr name="transform"><![CDATA[//#CTL2
|
55
|
+
|
56
|
+
// Transforms input record into output record.
|
57
|
+
function integer transform() {
|
58
|
+
|
59
|
+
$out.0.* = $in.0.*;
|
60
|
+
$out.0.Product = $in.1.PricebookEntryId;
|
61
|
+
|
62
|
+
return ALL;
|
63
|
+
}
|
64
|
+
|
65
|
+
// Called during component initialization.
|
66
|
+
// function boolean init() {}
|
67
|
+
|
68
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
69
|
+
// required by the transform. All resources allocated within this method should be released
|
70
|
+
// by the postExecute() method.
|
71
|
+
// function void preExecute() {}
|
72
|
+
|
73
|
+
// Called only if transform() throws an exception.
|
74
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
75
|
+
|
76
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
77
|
+
// allocated within the preExecute() method.
|
78
|
+
// function void postExecute() {}
|
79
|
+
|
80
|
+
// Called to return a user-defined error message when an error occurs.
|
81
|
+
// function string getMessage() {}
|
82
|
+
]]></attr>
|
83
|
+
</Node>
|
84
|
+
<Node enabled="enabled" guiHeight="89" guiName="ExtMergeJoin" guiWidth="128" guiX="809" guiY="533" id="EXT_MERGE_JOIN2" joinKey="$StageName(a)#$MasterLabel(a);" joinType="leftOuter" slaveDuplicates="true" type="EXT_MERGE_JOIN">
|
85
|
+
<attr name="transform"><![CDATA[//#CTL2
|
86
|
+
|
87
|
+
// Transforms input record into output record.
|
88
|
+
function integer transform() {
|
89
|
+
|
90
|
+
$out.0.* = $in.0.*;
|
91
|
+
|
92
|
+
$out.0.IsClosed = $in.1.IsClosed;
|
93
|
+
$out.0.IsWon = $in.1.IsWon;
|
94
|
+
|
95
|
+
return ALL;
|
96
|
+
}
|
97
|
+
|
98
|
+
// Called during component initialization.
|
99
|
+
// function boolean init() {}
|
100
|
+
|
101
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
102
|
+
// required by the transform. All resources allocated within this method should be released
|
103
|
+
// by the postExecute() method.
|
104
|
+
// function void preExecute() {}
|
105
|
+
|
106
|
+
// Called only if transform() throws an exception.
|
107
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
108
|
+
|
109
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
110
|
+
// allocated within the preExecute() method.
|
111
|
+
// function void postExecute() {}
|
112
|
+
|
113
|
+
// Called to return a user-defined error message when an error occurs.
|
114
|
+
// function string getMessage() {}
|
115
|
+
]]></attr>
|
116
|
+
</Node>
|
117
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="252" guiY="51" id="EXT_SORT0" sortKey="PricebookEntryId(a)" type="EXT_SORT"/>
|
118
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="252" guiY="153" id="EXT_SORT1" sortKey="Id" type="EXT_SORT"/>
|
119
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="252" guiY="388" id="EXT_SORT2" sortKey="Id(a)" type="EXT_SORT"/>
|
120
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="482" guiY="236" id="EXT_SORT3" sortKey="OpportunityId(a)" type="EXT_SORT"/>
|
121
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="283" guiY="539" id="EXT_SORT4" sortKey="MasterLabel(a)" type="EXT_SORT"/>
|
122
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="790" guiY="385" id="EXT_SORT5" sortKey="StageName(a)" type="EXT_SORT"/>
|
123
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="989" guiY="533" id="REFORMAT0" type="REFORMAT">
|
124
|
+
<attr name="transform"><![CDATA[//#CTL2
|
125
|
+
|
126
|
+
// Transforms input record into output record.
|
127
|
+
function integer transform() {
|
128
|
+
$out.0.* = $in.0.*;
|
129
|
+
|
130
|
+
// if ($in.0.Snapshot == "" || $in.0.Snapshot == null) {
|
131
|
+
// $out.0.Snapshot = '2013-01-08';
|
132
|
+
// }
|
133
|
+
|
134
|
+
if ($in.0.CloseDate != null && $in.0.CloseDate != "" && left($in.0.CloseDate, 4) < "1950") {
|
135
|
+
$out.0.CloseDate = '1950-01-01';
|
136
|
+
}
|
137
|
+
|
138
|
+
if ($in.0.CloseDate != null && $in.0.CloseDate != "" && left($in.0.CloseDate, 4) > "2049") {
|
139
|
+
$out.0.CloseDate = '2049-01-01';
|
140
|
+
}
|
141
|
+
|
142
|
+
if ($in.0.CloseDate != null && $in.0.CloseDate != "") {
|
143
|
+
$out.0.CreatedDate = left($in.0.CreatedDate, 10);
|
144
|
+
}
|
145
|
+
|
146
|
+
|
147
|
+
return ALL;
|
148
|
+
}
|
149
|
+
|
150
|
+
// Called during component initialization.
|
151
|
+
// function boolean init() {}
|
152
|
+
|
153
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
154
|
+
// required by the transform. All resources allocated within this method should be released
|
155
|
+
// by the postExecute() method.
|
156
|
+
// function void preExecute() {}
|
157
|
+
|
158
|
+
// Called only if transform() throws an exception.
|
159
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
160
|
+
|
161
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
162
|
+
// allocated within the preExecute() method.
|
163
|
+
// function void postExecute() {}
|
164
|
+
|
165
|
+
// Called to return a user-defined error message when an error occurs.
|
166
|
+
// function string getMessage() {}
|
167
|
+
]]></attr>
|
168
|
+
</Node>
|
169
|
+
<Edge fromNode="DATA_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata0" outPort="Port 0 (output)" toNode="EXT_SORT0:0"/>
|
170
|
+
<Edge fromNode="DATA_READER1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge2" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (output)" toNode="EXT_SORT1:0"/>
|
171
|
+
<Edge fromNode="DATA_READER2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge5" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (output)" toNode="EXT_SORT2:0"/>
|
172
|
+
<Edge fromNode="DATA_READER3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge10" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 0 (output)" toNode="EXT_SORT4:0"/>
|
173
|
+
<Edge debugMode="true" fromNode="EXT_MERGE_JOIN0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge8" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="EXT_SORT3:0"/>
|
174
|
+
<Edge fromNode="EXT_MERGE_JOIN1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge13" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="EXT_SORT5:0"/>
|
175
|
+
<Edge debugMode="false" fromNode="EXT_MERGE_JOIN2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="REFORMAT0:0"/>
|
176
|
+
<Edge debugMode="false" fromNode="EXT_SORT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge3" inPort="Port 0 (driver)" metadata="Metadata0" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN0:0"/>
|
177
|
+
<Edge debugMode="false" fromNode="EXT_SORT1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge4" inPort="Port 1 (slave)" metadata="Metadata2" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN0:1"/>
|
178
|
+
<Edge debugMode="false" fromNode="EXT_SORT2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge7" inPort="Port 0 (driver)" metadata="Metadata4" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN1:0"/>
|
179
|
+
<Edge fromNode="EXT_SORT3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge9" inPort="Port 1 (slave)" metadata="Metadata1" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN1:1"/>
|
180
|
+
<Edge fromNode="EXT_SORT4:0" guiBendpoints="" guiRouter="Manhattan" id="Edge11" inPort="Port 1 (slave)" metadata="Metadata6" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN2:1"/>
|
181
|
+
<Edge fromNode="EXT_SORT5:0" guiBendpoints="" guiRouter="Manhattan" id="Edge12" inPort="Port 0 (driver)" metadata="Metadata5" outPort="Port 0 (out)" toNode="EXT_MERGE_JOIN2:0"/>
|
182
|
+
<Edge debugMode="false" fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge6" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (out)" toNode="DATA_WRITER0:0"/>
|
183
|
+
</Phase>
|
184
|
+
</Graph>
|