gd_bam 0.0.1
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 +169 -0
- data/bin/bam +218 -0
- data/lib/bam/version.rb +3 -0
- data/lib/bam.rb +8 -0
- data/lib/dsl/project_dsl.rb +259 -0
- data/lib/graphs/docentize.grf +47 -0
- data/lib/graphs/dummy.grf +46 -0
- data/lib/graphs/load_history.grf +579 -0
- data/lib/graphs/process_account.grf +47 -0
- data/lib/graphs/process_activity.grf +222 -0
- data/lib/graphs/process_activity_dim.grf +88 -0
- data/lib/graphs/process_activity_owner.grf +48 -0
- data/lib/graphs/process_opportunity.grf +46 -0
- data/lib/graphs/process_opportunity_line_item.grf +179 -0
- data/lib/graphs/process_opportunity_snapshot.grf +94 -0
- data/lib/graphs/process_owner.grf +48 -0
- data/lib/graphs/process_stage.grf +51 -0
- data/lib/graphs/process_stage_history.grf +184 -0
- data/lib/graphs/process_velocity_duration.grf +140 -0
- data/lib/nodes/clover_gen.rb +1283 -0
- data/lib/nodes/dependency.rb +96 -0
- data/lib/nodes/nodes.rb +371 -0
- data/lib/repo/1_config.json +8 -0
- data/lib/repository/repo.rb +21 -0
- data/lib/runtime.rb +517 -0
- data/templates/dataset.json.erb +13 -0
- data/templates/flow.rb.erb +12 -0
- data/templates/params.json.erb +7 -0
- data/templates/project.erb +18 -0
- data/templates/source.json.erb +22 -0
- data/templates/tap.json.erb +16 -0
- data/templates/update_dataset.script.erb +4 -0
- data/templates/update_dataset_dry.script.erb +3 -0
- data/templates/workspace.prm.erb +25 -0
- metadata +412 -0
@@ -0,0 +1,579 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Graph author="radektomasek" created="Tue Mar 12 17:22:22 CET 2013" guiVersion="3.3.2" id="1363132448535" licenseType="Commercial" modified="Thu Mar 21 16:26:58 PDT 2013" modifiedBy="?" name="test" revision="1.255" showComponentDetails="true">
|
3
|
+
<Global>
|
4
|
+
<Metadata id="Metadata13" previewAttachmentCharset="ISO-8859-1">
|
5
|
+
<Record fieldDelimiter="," name="I_OpportunityCreatedDate" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
6
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
7
|
+
<Field eofAsDelimiter="false" name="CreatedDate" nullable="true" shift="0" size="0" type="string"/>
|
8
|
+
</Record>
|
9
|
+
</Metadata>
|
10
|
+
<Metadata id="Metadata9" previewAttachmentCharset="ISO-8859-1">
|
11
|
+
<Record fieldDelimiter="," name="I_SFDC_Amount" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
12
|
+
<Field eofAsDelimiter="false" name="Amount" nullable="true" shift="0" size="0" type="decimal"/>
|
13
|
+
<Field eofAsDelimiter="false" name="SystemModstamp" nullable="true" shift="0" size="0" type="string"/>
|
14
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
15
|
+
</Record>
|
16
|
+
</Metadata>
|
17
|
+
<Metadata id="Metadata8" previewAttachmentCharset="ISO-8859-1">
|
18
|
+
<Record fieldDelimiter="," name="I_SFDC_CloseDare" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
19
|
+
<Field eofAsDelimiter="false" name="CloseDate" nullable="true" shift="0" size="0" type="string"/>
|
20
|
+
<Field eofAsDelimiter="false" name="SystemModstamp" nullable="true" shift="0" size="0" type="string"/>
|
21
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
22
|
+
</Record>
|
23
|
+
</Metadata>
|
24
|
+
<Metadata id="Metadata10" previewAttachmentCharset="ISO-8859-1">
|
25
|
+
<Record fieldDelimiter="," name="I_SFDC_Probability" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
26
|
+
<Field eofAsDelimiter="false" name="Probability" nullable="true" shift="0" size="0" type="decimal"/>
|
27
|
+
<Field eofAsDelimiter="false" name="SystemModstamp" nullable="true" shift="0" size="0" type="string"/>
|
28
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
29
|
+
</Record>
|
30
|
+
</Metadata>
|
31
|
+
<Metadata id="Metadata7" previewAttachmentCharset="ISO-8859-1">
|
32
|
+
<Record fieldDelimiter="," name="I_SFDC_StageName" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
33
|
+
<Field eofAsDelimiter="false" name="StageName" nullable="true" shift="0" size="0" type="string"/>
|
34
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd'T'HH:mm:ss.SSSZ" name="SystemModstamp" nullable="true" shift="0" size="0" type="string"/>
|
35
|
+
<Field name="Id" type="string"/>
|
36
|
+
</Record>
|
37
|
+
</Metadata>
|
38
|
+
<Metadata id="Metadata11">
|
39
|
+
<Record fieldDelimiter="," name="IO_Metadata" recordDelimiter="\n" recordSize="-1" type="delimited">
|
40
|
+
<Field eofAsDelimiter="false" name="Field" nullable="true" shift="0" size="0" type="string"/>
|
41
|
+
<Field eofAsDelimiter="false" name="NewValue" nullable="true" shift="0" size="0" type="string"/>
|
42
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd'T'HH:mm:ss.SSSZ" name="CreatedDate" nullable="true" shift="0" size="0" type="date"/>
|
43
|
+
<Field eofAsDelimiter="false" name="OpportunityId" nullable="true" shift="0" size="0" type="string"/>
|
44
|
+
</Record>
|
45
|
+
</Metadata>
|
46
|
+
<Metadata id="Metadata5" previewAttachmentCharset="ISO-8859-1">
|
47
|
+
<Record fieldDelimiter="," name="IO_OpportunityStage" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
48
|
+
<Field eofAsDelimiter="false" name="MasterLabel" nullable="true" shift="0" size="0" type="string"/>
|
49
|
+
<Field eofAsDelimiter="false" name="IsWon" nullable="true" shift="0" size="0" type="string"/>
|
50
|
+
<Field eofAsDelimiter="false" name="IsClosed" nullable="true" shift="0" size="0" type="string"/>
|
51
|
+
</Record>
|
52
|
+
</Metadata>
|
53
|
+
<Metadata id="Metadata3" previewAttachmentCharset="ISO-8859-1">
|
54
|
+
<Record fieldDelimiter="," name="O_Amount" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
55
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
56
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
57
|
+
<Field eofAsDelimiter="false" length="12" name="Amount" nullable="true" scale="2" shift="0" size="0" type="decimal"/>
|
58
|
+
</Record>
|
59
|
+
</Metadata>
|
60
|
+
<Metadata id="Metadata2" previewAttachmentCharset="ISO-8859-1">
|
61
|
+
<Record fieldDelimiter="," name="O_CloseDate" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
62
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
63
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
64
|
+
<Field eofAsDelimiter="false" name="CloseDate" nullable="true" shift="0" size="0" type="string"/>
|
65
|
+
</Record>
|
66
|
+
</Metadata>
|
67
|
+
<Metadata id="Metadata14" previewAttachmentCharset="ISO-8859-1">
|
68
|
+
<Record fieldDelimiter="," name="O_CreatedDate" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
69
|
+
<Field eofAsDelimiter="false" format="yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
70
|
+
<Field eofAsDelimiter="false" name="OpportunityId" nullable="true" shift="0" size="0" type="string"/>
|
71
|
+
<Field eofAsDelimiter="false" name="CreatedDate" nullable="true" shift="0" size="0" type="string"/>
|
72
|
+
</Record>
|
73
|
+
</Metadata>
|
74
|
+
<Metadata id="Metadata12" previewAttachmentCharset="ISO-8859-1">
|
75
|
+
<Record fieldDelimiter="," name="O_CreatedDate" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
76
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
77
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
78
|
+
<Field eofAsDelimiter="false" name="CreatedDate" nullable="true" shift="0" size="0" type="string"/>
|
79
|
+
<Field name="OpportunityId" type="string"/>
|
80
|
+
</Record>
|
81
|
+
</Metadata>
|
82
|
+
<Metadata id="Metadata4" previewAttachmentCharset="ISO-8859-1">
|
83
|
+
<Record fieldDelimiter="," name="O_Probability" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
84
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
85
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
86
|
+
<Field eofAsDelimiter="false" name="Probability" nullable="true" shift="0" size="0" type="decimal"/>
|
87
|
+
</Record>
|
88
|
+
</Metadata>
|
89
|
+
<Metadata id="Metadata1" previewAttachmentCharset="ISO-8859-1">
|
90
|
+
<Record fieldDelimiter="," name="O_StageName" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
91
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd HH:mm:ss" name="Timestamp" nullable="true" shift="0" size="0" type="date"/>
|
92
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
93
|
+
<Field eofAsDelimiter="false" name="StageName" nullable="true" shift="0" size="0" type="string"/>
|
94
|
+
<Field eofAsDelimiter="false" name="IsWon" nullable="true" shift="0" size="0" type="string"/>
|
95
|
+
<Field eofAsDelimiter="false" name="IsClosed" nullable="true" shift="0" size="0" type="string"/>
|
96
|
+
<Field name="field6" type="string"/>
|
97
|
+
</Record>
|
98
|
+
</Metadata>
|
99
|
+
<Metadata id="Metadata15" previewAttachmentCharset="ISO-8859-1">
|
100
|
+
<Record fieldDelimiter="|" name="recordName1" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" type="delimited">
|
101
|
+
<Field name="Id" type="string"/>
|
102
|
+
<Field name="Timestamp" type="date"/>
|
103
|
+
<Field name="IsDeleted" type="string"/>
|
104
|
+
</Record>
|
105
|
+
</Metadata>
|
106
|
+
<Metadata id="Metadata0" previewAttachmentCharset="ISO-8859-1">
|
107
|
+
<Record fieldDelimiter="," name="sfdc_metadata" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
108
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
109
|
+
<Field eofAsDelimiter="false" name="CreatedDate" nullable="true" shift="0" size="0" type="string"/>
|
110
|
+
<Field eofAsDelimiter="false" name="StageName" nullable="true" shift="0" size="0" type="string"/>
|
111
|
+
<Field eofAsDelimiter="false" name="CloseDate" nullable="true" shift="0" size="0" type="string"/>
|
112
|
+
<Field eofAsDelimiter="false" length="12" name="Amount" nullable="true" scale="2" shift="0" size="0" type="decimal"/>
|
113
|
+
<Field eofAsDelimiter="false" name="Probability" nullable="true" shift="0" size="0" type="string"/>
|
114
|
+
</Record>
|
115
|
+
</Metadata>
|
116
|
+
<Metadata id="Metadata6" previewAttachmentCharset="ISO-8859-1">
|
117
|
+
<Record fieldDelimiter="," name="X_metadata" previewAttachmentCharset="ISO-8859-1" recordDelimiter="\n" recordSize="-1" type="delimited">
|
118
|
+
<Field eofAsDelimiter="false" name="Id" nullable="true" shift="0" size="0" type="string"/>
|
119
|
+
<Field eofAsDelimiter="false" format="joda:yyyy-MM-dd'T'HH:mm:ss.SSSZ" name="CreatedDate" nullable="true" shift="0" size="0" type="string"/>
|
120
|
+
<Field eofAsDelimiter="false" name="StageName" nullable="true" shift="0" size="0" type="string"/>
|
121
|
+
<Field eofAsDelimiter="false" name="CloseDate" nullable="true" shift="0" size="0" type="string"/>
|
122
|
+
<Field eofAsDelimiter="false" length="12" name="Amount" nullable="true" scale="2" shift="0" size="0" type="decimal"/>
|
123
|
+
<Field eofAsDelimiter="false" name="Probability" nullable="true" shift="0" size="0" type="string"/>
|
124
|
+
<Field name="IsWon" type="string"/>
|
125
|
+
<Field name="IsClosed" type="string"/>
|
126
|
+
</Record>
|
127
|
+
</Metadata>
|
128
|
+
<Connection clientId="${SFDC_CLIENT_ID}" id="SFDC" loginHostname="${SFDC_LOGIN_HOSTNAME}" name="${SFDC_NAME}" password="${SFDC_PASSWORD}" passwordEncrypted="true" token="${SFDC_TOKEN}" type="SFDC" username="${SFDC_USERNAME}"/>
|
129
|
+
<Property id="GraphParameter0" name="SFDC_CLIENT_ID" value="gooddata/gooddata/"/>
|
130
|
+
<Property id="GraphParameter1" name="SFDC_LOGIN_HOSTNAME" value="test.salesforce.com"/>
|
131
|
+
<Property id="GraphParameter2" name="SFDC_NAME" value="Test"/>
|
132
|
+
<Property id="GraphParameter3" name="SFDC_PASSWORD" value="IJKC+Up9aa0WVg4u51L3Cg=="/>
|
133
|
+
<Property id="GraphParameter4" name="SFDC_TOKEN" value="n3xnliHf2Vvd4n2ekEDusAos"/>
|
134
|
+
<Property id="GraphParameter5" name="SFDC_USERNAME" value="r1293350@ge.com.gd.test"/>
|
135
|
+
<Property fileURL="workspace.prm" id="GraphParameter6"/>
|
136
|
+
<LookupTable id="LookupTable0" initialSize="512" key="MasterLabel" metadata="Metadata5" name="L_OpportunityStage" type="simpleLookup"/>
|
137
|
+
<Dictionary/>
|
138
|
+
</Global>
|
139
|
+
<Phase number="0">
|
140
|
+
<Node enabled="enabled" guiHeight="65" guiName="LookupTableReaderWriter" guiWidth="177" guiX="1872" guiY="122" id="LOOKUP_TABLE_READER_WRITER0" lookupTable="LookupTable0" type="LOOKUP_TABLE_READER_WRITER"/>
|
141
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"MasterLabel","label":"Master Label","xmlPath":"MasterLabel","metadataField":"MasterLabel"}},{"xmlFieldMapping":{"name":"IsWon","label":"Won","xmlPath":"IsWon","metadataField":"IsWon"}},{"xmlFieldMapping":{"name":"IsClosed","label":"Closed","xmlPath":"IsClosed","metadataField":"IsClosed"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="188" guiY="122" id="SF_READER1" sfdcConnection="SFDC" soql="Select MasterLabel, IsWon, IsClosed From OpportunityStage" type="SF_READER"/>
|
142
|
+
<Edge debugMode="true" fromNode="SF_READER1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge2" inPort="Port 0 (in)" metadata="Metadata5" outPort="Port 0 (output)" toNode="LOOKUP_TABLE_READER_WRITER0:0"/>
|
143
|
+
</Phase>
|
144
|
+
<Phase number="1">
|
145
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="280" id="EXT_SORT0" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
146
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"IsClosed":{"name":"IsClosed","type":"attribute"},"IsWon":{"name":"IsWon","type":"attribute"},"StageName":{"name":"StageName","type":"attribute"},"Id":{"name":"Id","type":"recordid"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1872" guiY="280" id="GD_ESTORE_WRITER0" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
147
|
+
<Node enabled="enabled" guiHeight="77" guiName="LookupJoin" guiWidth="128" guiX="535" guiY="280" id="LOOKUP_JOIN0" joinKey="StageName" leftOuterJoin="true" lookupTable="LookupTable0" type="LOOKUP_JOIN">
|
148
|
+
<attr name="transform"><![CDATA[//#CTL2
|
149
|
+
|
150
|
+
// Transforms input record into output record.
|
151
|
+
function integer transform() {
|
152
|
+
$out.0.Id = $in.0.Id;
|
153
|
+
$out.0.CreatedDate = $in.0.CreatedDate;
|
154
|
+
$out.0.StageName = $in.0.StageName;
|
155
|
+
$out.0.CloseDate = $in.0.CloseDate;
|
156
|
+
$out.0.Amount = $in.0.Amount;
|
157
|
+
$out.0.Probability = $in.0.Probability;
|
158
|
+
$out.0.IsWon = $in.1.IsWon;
|
159
|
+
$out.0.IsClosed = $in.1.IsClosed;
|
160
|
+
|
161
|
+
return OK;
|
162
|
+
}
|
163
|
+
|
164
|
+
// Called during component initialization.
|
165
|
+
// function boolean init() {}
|
166
|
+
|
167
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
168
|
+
// required by the transform. All resources allocated within this method should be released
|
169
|
+
// by the postExecute() method.
|
170
|
+
// function void preExecute() {}
|
171
|
+
|
172
|
+
// Called only if transform() throws an exception.
|
173
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
174
|
+
|
175
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
176
|
+
// allocated within the preExecute() method.
|
177
|
+
// function void postExecute() {}
|
178
|
+
|
179
|
+
// Called to return a user-defined error message when an error occurs.
|
180
|
+
// function string getMessage() {}
|
181
|
+
]]></attr>
|
182
|
+
</Node>
|
183
|
+
<Node enabled="enabled" guiHeight="77" guiName="LookupJoin" guiWidth="128" guiX="1289" guiY="383" id="LOOKUP_JOIN1" joinKey="StageName" leftOuterJoin="true" lookupTable="LookupTable0" type="LOOKUP_JOIN">
|
184
|
+
<attr name="transform"><![CDATA[//#CTL2
|
185
|
+
import 'trans/DateFunctions.ctl';
|
186
|
+
|
187
|
+
// Transforms input record into output record.
|
188
|
+
function integer transform() {
|
189
|
+
$out.0.StageName = $in.0.StageName;
|
190
|
+
$out.0.IsWon = $in.1.IsWon;
|
191
|
+
$out.0.IsClosed = $in.1.IsClosed;
|
192
|
+
$out.0.Timestamp = $out.0.Timestamp = timestampParsing($in.0.SystemModstamp, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
193
|
+
$out.0.Id = $in.0.Id;
|
194
|
+
|
195
|
+
return OK;
|
196
|
+
}
|
197
|
+
|
198
|
+
// Called during component initialization.
|
199
|
+
// function boolean init() {}
|
200
|
+
|
201
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
202
|
+
// required by the transform. All resources allocated within this method should be released
|
203
|
+
// by the postExecute() method.
|
204
|
+
// function void preExecute() {}
|
205
|
+
|
206
|
+
// Called only if transform() throws an exception.
|
207
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
208
|
+
|
209
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
210
|
+
// allocated within the preExecute() method.
|
211
|
+
// function void postExecute() {}
|
212
|
+
|
213
|
+
// Called to return a user-defined error message when an error occurs.
|
214
|
+
// function string getMessage() {}
|
215
|
+
]]></attr>
|
216
|
+
</Node>
|
217
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="974" guiY="280" id="REFORMAT0" type="REFORMAT">
|
218
|
+
<attr name="transform"><![CDATA[//#CTL2
|
219
|
+
import 'trans/DateFunctions.ctl';
|
220
|
+
|
221
|
+
// Transforms input record into output record.
|
222
|
+
function integer transform()
|
223
|
+
{
|
224
|
+
$out.0.Id = $in.0.Id;
|
225
|
+
$out.0.StageName = $in.0.StageName;
|
226
|
+
$out.0.IsWon = $in.0.IsWon;
|
227
|
+
$out.0.IsClosed = $in.0.IsClosed;
|
228
|
+
$out.0.Timestamp = timestampParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
229
|
+
|
230
|
+
return OK;
|
231
|
+
}
|
232
|
+
|
233
|
+
// Called during component initialization.
|
234
|
+
// function boolean init() {}
|
235
|
+
|
236
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
237
|
+
// required by the transform. All resources allocated within this method should be released
|
238
|
+
// by the postExecute() method.
|
239
|
+
// function void preExecute() {}
|
240
|
+
|
241
|
+
// Called only if transform() throws an exception.
|
242
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
243
|
+
|
244
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
245
|
+
// allocated within the preExecute() method.
|
246
|
+
// function void postExecute() {}
|
247
|
+
|
248
|
+
// Called to return a user-defined error message when an error occurs.
|
249
|
+
// function string getMessage() {}
|
250
|
+
]]></attr>
|
251
|
+
</Node>
|
252
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"OpportunityId","label":"Opportunity ID","xmlPath":"OpportunityId","metadataField":"Id"}},{"xmlFieldMapping":{"name":"CreatedDate","label":"Created Date","xmlPath":"CreatedDate","metadataField":"CreatedDate"}},{"xmlFieldMapping":{"name":"StageName","label":"Stage Name","xmlPath":"StageName","metadataField":"StageName"}},{"xmlFieldMapping":{"name":"CloseDate","label":"Close Date","xmlPath":"CloseDate","metadataField":"CloseDate"}},{"xmlFieldMapping":{"name":"Amount","label":"Amount","xmlPath":"Amount","metadataField":"Amount"}},{"xmlFieldMapping":{"name":"Probability","label":"Probability","xmlPath":"Probability","metadataField":"Probability"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="188" guiY="280" id="SF_READER0" sfdcConnection="SFDC" soql="Select CreatedDate, OpportunityId, StageName, CloseDate, convertCurrency(Amount), Probability From OpportunityHistory" type="SF_READER"/>
|
253
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"StageName","label":"Stage","xmlPath":"StageName","metadataField":"StageName"}},{"xmlFieldMapping":{"name":"SystemModstamp","label":"System Modstamp","xmlPath":"SystemModstamp","metadataField":"SystemModstamp"}},{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1114" guiY="383" id="SF_READER2" sfdcConnection="SFDC" soql="Select StageName, SystemModstamp, Id From Opportunity" type="SF_READER"/>
|
254
|
+
<Node enabled="enabled" guiHeight="84" guiName="SimpleCopy" guiWidth="128" guiX="781" guiY="286" id="SIMPLE_COPY0" type="SIMPLE_COPY"/>
|
255
|
+
<Node enabled="enabled" guiHeight="72" guiName="SimpleGather" guiWidth="128" guiX="1468" guiY="283" id="SIMPLE_GATHER0" type="SIMPLE_GATHER"/>
|
256
|
+
<Edge debugMode="true" fromNode="EXT_SORT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge16" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER0:0"/>
|
257
|
+
<Edge debugMode="true" fromNode="LOOKUP_JOIN0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge4" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 0 (joined records)" toNode="SIMPLE_COPY0:0"/>
|
258
|
+
<Edge debugMode="true" fromNode="LOOKUP_JOIN1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge14" inPort="Port 1 (in)" metadata="Metadata1" outPort="Port 0 (joined records)" toNode="SIMPLE_GATHER0:1"/>
|
259
|
+
<Edge debugMode="true" fromNode="REFORMAT0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge9" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="SIMPLE_GATHER0:0"/>
|
260
|
+
<Edge debugMode="true" fromNode="SF_READER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge0" inPort="Port 0 (in)" metadata="Metadata0" outPort="Port 0 (output)" toNode="LOOKUP_JOIN0:0"/>
|
261
|
+
<Edge fromNode="SF_READER2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge13" inPort="Port 0 (in)" metadata="Metadata7" outPort="Port 0 (output)" toNode="LOOKUP_JOIN1:0"/>
|
262
|
+
<Edge fromNode="SIMPLE_COPY0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge5" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 0 (out)" toNode="REFORMAT0:0"/>
|
263
|
+
<Edge fromNode="SIMPLE_COPY0:1" guiBendpoints="" guiRouter="Manhattan" id="Edge6" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 1 (out)" toNode="REFORMAT1:0"/>
|
264
|
+
<Edge fromNode="SIMPLE_COPY0:2" guiBendpoints="" guiRouter="Manhattan" id="Edge7" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 2 (out)" toNode="REFORMAT2:0"/>
|
265
|
+
<Edge fromNode="SIMPLE_COPY0:3" guiBendpoints="" guiRouter="Manhattan" id="Edge8" inPort="Port 0 (in)" metadata="Metadata6" outPort="Port 3 (out)" toNode="REFORMAT3:0"/>
|
266
|
+
<Edge debugMode="true" fromNode="SIMPLE_GATHER0:0" guiBendpoints="" guiRouter="Manhattan" id="Edge15" inPort="Port 0 (in)" metadata="Metadata1" outPort="Port 0 (out)" toNode="EXT_SORT0:0"/>
|
267
|
+
</Phase>
|
268
|
+
<Phase number="2">
|
269
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="560" id="EXT_SORT1" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
270
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"Id":{"name":"Id","type":"recordid"},"CloseDate":{"name":"CloseDate","type":"attribute"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1872" guiY="560" id="GD_ESTORE_WRITER1" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
271
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="974" guiY="550" id="REFORMAT1" type="REFORMAT">
|
272
|
+
<attr name="transform"><![CDATA[//#CTL2
|
273
|
+
import 'trans/DateFunctions.ctl';
|
274
|
+
|
275
|
+
// Transforms input record into output record.
|
276
|
+
function integer transform()
|
277
|
+
{
|
278
|
+
$out.0.Id = $in.0.Id;
|
279
|
+
$out.0.CloseDate = $in.0.CloseDate;
|
280
|
+
$out.0.Timestamp = timestampParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
281
|
+
|
282
|
+
return OK;
|
283
|
+
}
|
284
|
+
|
285
|
+
// Called during component initialization.
|
286
|
+
// function boolean init() {}
|
287
|
+
|
288
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
289
|
+
// required by the transform. All resources allocated within this method should be released
|
290
|
+
// by the postExecute() method.
|
291
|
+
// function void preExecute() {}
|
292
|
+
|
293
|
+
// Called only if transform() throws an exception.
|
294
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
295
|
+
|
296
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
297
|
+
// allocated within the preExecute() method.
|
298
|
+
// function void postExecute() {}
|
299
|
+
|
300
|
+
// Called to return a user-defined error message when an error occurs.
|
301
|
+
// function string getMessage() {}
|
302
|
+
]]></attr>
|
303
|
+
</Node>
|
304
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="1300" guiY="642" id="REFORMAT4" type="REFORMAT">
|
305
|
+
<attr name="transform"><![CDATA[//#CTL2
|
306
|
+
import 'trans/DateFunctions.ctl';
|
307
|
+
|
308
|
+
// Transforms input record into output record.
|
309
|
+
function integer transform() {
|
310
|
+
$out.0.CloseDate = $in.0.CloseDate;
|
311
|
+
$out.0.Id = $in.0.Id;
|
312
|
+
$out.0.Timestamp = $out.0.Timestamp = timestampParsing($in.0.SystemModstamp, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
313
|
+
|
314
|
+
return OK;
|
315
|
+
}
|
316
|
+
|
317
|
+
// Called during component initialization.
|
318
|
+
// function boolean init() {}
|
319
|
+
|
320
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
321
|
+
// required by the transform. All resources allocated within this method should be released
|
322
|
+
// by the postExecute() method.
|
323
|
+
// function void preExecute() {}
|
324
|
+
|
325
|
+
// Called only if transform() throws an exception.
|
326
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
327
|
+
|
328
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
329
|
+
// allocated within the preExecute() method.
|
330
|
+
// function void postExecute() {}
|
331
|
+
|
332
|
+
// Called to return a user-defined error message when an error occurs.
|
333
|
+
// function string getMessage() {}
|
334
|
+
]]></attr>
|
335
|
+
</Node>
|
336
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"CloseDate","label":"Close Date","xmlPath":"CloseDate","metadataField":"CloseDate"}},{"xmlFieldMapping":{"name":"SystemModstamp","label":"System Modstamp","xmlPath":"SystemModstamp","metadataField":"SystemModstamp"}},{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1114" guiY="642" id="SF_READER3" sfdcConnection="SFDC" soql="Select CloseDate, SystemModstamp, Id From Opportunity" type="SF_READER"/>
|
337
|
+
<Node enabled="enabled" guiHeight="72" guiName="SimpleGather" guiWidth="128" guiX="1481" guiY="557" id="SIMPLE_GATHER1" type="SIMPLE_GATHER"/>
|
338
|
+
<Edge debugMode="true" fromNode="EXT_SORT1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge19" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER1:0"/>
|
339
|
+
<Edge fromNode="REFORMAT1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge10" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (out)" toNode="SIMPLE_GATHER1:0"/>
|
340
|
+
<Edge fromNode="REFORMAT4:0" guiBendpoints="" guiRouter="Manhattan" id="Edge24" inPort="Port 1 (in)" metadata="Metadata2" outPort="Port 0 (out)" toNode="SIMPLE_GATHER1:1"/>
|
341
|
+
<Edge fromNode="SF_READER3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge17" inPort="Port 0 (in)" metadata="Metadata8" outPort="Port 0 (output)" toNode="REFORMAT4:0"/>
|
342
|
+
<Edge fromNode="SIMPLE_GATHER1:0" guiBendpoints="" guiRouter="Manhattan" id="Edge18" inPort="Port 0 (in)" metadata="Metadata2" outPort="Port 0 (out)" toNode="EXT_SORT1:0"/>
|
343
|
+
</Phase>
|
344
|
+
<Phase number="3">
|
345
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="781" id="EXT_SORT2" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
346
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"Amount":{"name":"Amount","type":"fact"},"Id":{"name":"Id","type":"recordid"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1872" guiY="781" id="GD_ESTORE_WRITER2" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
347
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="960" guiY="787" id="REFORMAT2" type="REFORMAT">
|
348
|
+
<attr name="transform"><![CDATA[//#CTL2
|
349
|
+
import 'trans/DateFunctions.ctl';
|
350
|
+
|
351
|
+
// Transforms input record into output record.
|
352
|
+
function integer transform()
|
353
|
+
{
|
354
|
+
$out.0.Id = $in.0.Id;
|
355
|
+
$out.0.Amount = $in.0.Amount;
|
356
|
+
$out.0.Timestamp = timestampParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
357
|
+
|
358
|
+
return OK;
|
359
|
+
}
|
360
|
+
|
361
|
+
// Called during component initialization.
|
362
|
+
// function boolean init() {}
|
363
|
+
|
364
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
365
|
+
// required by the transform. All resources allocated within this method should be released
|
366
|
+
// by the postExecute() method.
|
367
|
+
// function void preExecute() {}
|
368
|
+
|
369
|
+
// Called only if transform() throws an exception.
|
370
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
371
|
+
|
372
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
373
|
+
// allocated within the preExecute() method.
|
374
|
+
// function void postExecute() {}
|
375
|
+
|
376
|
+
// Called to return a user-defined error message when an error occurs.
|
377
|
+
// function string getMessage() {}
|
378
|
+
]]></attr>
|
379
|
+
</Node>
|
380
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="1300" guiY="881" id="REFORMAT5" type="REFORMAT">
|
381
|
+
<attr name="transform"><![CDATA[//#CTL2
|
382
|
+
import 'trans/DateFunctions.ctl';
|
383
|
+
|
384
|
+
// Transforms input record into output record.
|
385
|
+
function integer transform()
|
386
|
+
{
|
387
|
+
$out.0.Amount = $in.0.Amount;
|
388
|
+
$out.0.Id = $in.0.Id;
|
389
|
+
$out.0.Timestamp = $out.0.Timestamp = timestampParsing($in.0.SystemModstamp, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
390
|
+
|
391
|
+
return OK;
|
392
|
+
}
|
393
|
+
|
394
|
+
// Called during component initialization.
|
395
|
+
// function boolean init() {}
|
396
|
+
|
397
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
398
|
+
// required by the transform. All resources allocated within this method should be released
|
399
|
+
// by the postExecute() method.
|
400
|
+
// function void preExecute() {}
|
401
|
+
|
402
|
+
// Called only if transform() throws an exception.
|
403
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
404
|
+
|
405
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
406
|
+
// allocated within the preExecute() method.
|
407
|
+
// function void postExecute() {}
|
408
|
+
|
409
|
+
// Called to return a user-defined error message when an error occurs.
|
410
|
+
// function string getMessage() {}
|
411
|
+
]]></attr>
|
412
|
+
</Node>
|
413
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"Amount","label":"Amount","xmlPath":"Amount","metadataField":"Amount"}},{"xmlFieldMapping":{"name":"SystemModstamp","label":"System Modstamp","xmlPath":"SystemModstamp","metadataField":"SystemModstamp"}},{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1114" guiY="881" id="SF_READER4" sfdcConnection="SFDC" soql="Select convertCurrency(Amount), SystemModstamp, Id From Opportunity" type="SF_READER"/>
|
414
|
+
<Node enabled="enabled" guiHeight="72" guiName="SimpleGather" guiWidth="128" guiX="1487" guiY="787" id="SIMPLE_GATHER2" type="SIMPLE_GATHER"/>
|
415
|
+
<Edge debugMode="true" fromNode="EXT_SORT2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge20" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER2:0"/>
|
416
|
+
<Edge fromNode="REFORMAT2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge11" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 0 (out)" toNode="SIMPLE_GATHER2:0"/>
|
417
|
+
<Edge fromNode="REFORMAT5:0" guiBendpoints="" guiRouter="Manhattan" id="Edge25" inPort="Port 1 (in)" metadata="Metadata3" outPort="Port 0 (out)" toNode="SIMPLE_GATHER2:1"/>
|
418
|
+
<Edge fromNode="SF_READER4:0" guiBendpoints="" guiRouter="Manhattan" id="Edge1" inPort="Port 0 (in)" metadata="Metadata9" outPort="Port 0 (output)" toNode="REFORMAT5:0"/>
|
419
|
+
<Edge fromNode="SIMPLE_GATHER2:0" guiBendpoints="" guiRouter="Manhattan" id="Edge3" inPort="Port 0 (in)" metadata="Metadata3" outPort="Port 0 (out)" toNode="EXT_SORT2:0"/>
|
420
|
+
</Phase>
|
421
|
+
<Phase number="4">
|
422
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="1002" id="EXT_SORT3" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
423
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"Probability":{"name":"Probability","type":"fact"},"Id":{"name":"Id","type":"recordid"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1872" guiY="1002" id="GD_ESTORE_WRITER3" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
424
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="954" guiY="1002" id="REFORMAT3" type="REFORMAT">
|
425
|
+
<attr name="transform"><![CDATA[//#CTL2
|
426
|
+
import 'trans/DateFunctions.ctl';
|
427
|
+
|
428
|
+
// Transforms input record into output record.
|
429
|
+
function integer transform()
|
430
|
+
{
|
431
|
+
$out.0.Id = $in.0.Id;
|
432
|
+
$out.0.Probability = str2decimal($in.0.Probability):null;
|
433
|
+
$out.0.Timestamp = timestampParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
434
|
+
|
435
|
+
return OK;
|
436
|
+
}
|
437
|
+
|
438
|
+
// Called during component initialization.
|
439
|
+
// function boolean init() {}
|
440
|
+
|
441
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
442
|
+
// required by the transform. All resources allocated within this method should be released
|
443
|
+
// by the postExecute() method.
|
444
|
+
// function void preExecute() {}
|
445
|
+
|
446
|
+
// Called only if transform() throws an exception.
|
447
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
448
|
+
|
449
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
450
|
+
// allocated within the preExecute() method.
|
451
|
+
// function void postExecute() {}
|
452
|
+
|
453
|
+
// Called to return a user-defined error message when an error occurs.
|
454
|
+
// function string getMessage() {}
|
455
|
+
]]></attr>
|
456
|
+
</Node>
|
457
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="1300" guiY="1110" id="REFORMAT6" type="REFORMAT">
|
458
|
+
<attr name="transform"><![CDATA[//#CTL2
|
459
|
+
import 'trans/DateFunctions.ctl';
|
460
|
+
|
461
|
+
// Transforms input record into output record.
|
462
|
+
function integer transform() {
|
463
|
+
$out.0.Probability = $in.0.Probability;
|
464
|
+
$out.0.Id = $in.0.Id;
|
465
|
+
$out.0.Timestamp = $out.0.Timestamp = timestampParsing($in.0.SystemModstamp, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
466
|
+
|
467
|
+
return OK;
|
468
|
+
}
|
469
|
+
|
470
|
+
// Called during component initialization.
|
471
|
+
// function boolean init() {}
|
472
|
+
|
473
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
474
|
+
// required by the transform. All resources allocated within this method should be released
|
475
|
+
// by the postExecute() method.
|
476
|
+
// function void preExecute() {}
|
477
|
+
|
478
|
+
// Called only if transform() throws an exception.
|
479
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
480
|
+
|
481
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
482
|
+
// allocated within the preExecute() method.
|
483
|
+
// function void postExecute() {}
|
484
|
+
|
485
|
+
// Called to return a user-defined error message when an error occurs.
|
486
|
+
// function string getMessage() {}
|
487
|
+
]]></attr>
|
488
|
+
</Node>
|
489
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"Probability","label":"Probability (%)","xmlPath":"Probability","metadataField":"Probability"}},{"xmlFieldMapping":{"name":"SystemModstamp","label":"System Modstamp","xmlPath":"SystemModstamp","metadataField":"SystemModstamp"}},{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1114" guiY="1104" id="SF_READER5" sfdcConnection="SFDC" soql="Select Probability, SystemModstamp, Id From Opportunity" type="SF_READER"/>
|
490
|
+
<Node enabled="enabled" guiHeight="72" guiName="SimpleGather" guiWidth="128" guiX="1487" guiY="1005" id="SIMPLE_GATHER3" type="SIMPLE_GATHER"/>
|
491
|
+
<Edge debugMode="true" fromNode="EXT_SORT3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge23" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER3:0"/>
|
492
|
+
<Edge fromNode="REFORMAT3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge12" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (out)" toNode="SIMPLE_GATHER3:0"/>
|
493
|
+
<Edge fromNode="REFORMAT6:0" guiBendpoints="" guiRouter="Manhattan" id="Edge26" inPort="Port 1 (in)" metadata="Metadata4" outPort="Port 0 (out)" toNode="SIMPLE_GATHER3:1"/>
|
494
|
+
<Edge fromNode="SF_READER5:0" guiBendpoints="" guiRouter="Manhattan" id="Edge21" inPort="Port 0 (in)" metadata="Metadata10" outPort="Port 0 (output)" toNode="REFORMAT6:0"/>
|
495
|
+
<Edge fromNode="SIMPLE_GATHER3:0" guiBendpoints="" guiRouter="Manhattan" id="Edge22" inPort="Port 0 (in)" metadata="Metadata4" outPort="Port 0 (out)" toNode="EXT_SORT3:0"/>
|
496
|
+
</Phase>
|
497
|
+
<Phase number="5">
|
498
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="1236" id="EXT_SORT4" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
499
|
+
<Node enabled="enabled" guiHeight="77" guiName="ExtSort" guiWidth="128" guiX="1656" guiY="1334" id="EXT_SORT5" sortKey="Timestamp(a)" type="EXT_SORT"/>
|
500
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"OpportunityId":{"name":"OpportunityId","type":"attribute"},"CreatedDate":{"name":"CreatedDate","type":"attribute"},"Id":{"name":"Id","type":"recordid"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1872" guiY="1236" id="GD_ESTORE_WRITER4" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
501
|
+
<Node enabled="enabled" entityFieldsMapping="{"entityName":"Opportunity","fieldsMapping":{"IsDeleted":{"name":"IsDeleted","type":"isDeleted"},"Id":{"name":"Id","type":"recordid"},"Timestamp":{"name":"Timestamp","type":"timestamp"}}}" guiHeight="65" guiName="GD Eventstore Writer" guiWidth="150" guiX="1917" guiY="1334" id="GD_ESTORE_WRITER5" store="${GDC_EVENTSTORE}" timezone="${GDC_EVENTSTORE_TIMEZONE}" type="GD_ESTORE_WRITER"/>
|
502
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="1300" guiY="1236" id="REFORMAT7" type="REFORMAT">
|
503
|
+
<attr name="transform"><![CDATA[//#CTL2
|
504
|
+
import 'trans/DateFunctions.ctl';
|
505
|
+
|
506
|
+
// Transforms input record into output record.
|
507
|
+
function integer transform()
|
508
|
+
{
|
509
|
+
$out.0.CreatedDate = dateParsing(goodDateParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}")):null;
|
510
|
+
$out.0.Id = $in.0.Id;
|
511
|
+
$out.0.OpportunityId = $in.0.Id;
|
512
|
+
$out.0.Timestamp = timestampParsing($in.0.CreatedDate, "${GDC_EVENTSTORE_TIMEZONE}"):null;
|
513
|
+
|
514
|
+
return OK;
|
515
|
+
}
|
516
|
+
|
517
|
+
// Called during component initialization.
|
518
|
+
// function boolean init() {}
|
519
|
+
|
520
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
521
|
+
// required by the transform. All resources allocated within this method should be released
|
522
|
+
// by the postExecute() method.
|
523
|
+
// function void preExecute() {}
|
524
|
+
|
525
|
+
// Called only if transform() throws an exception.
|
526
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
527
|
+
|
528
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
529
|
+
// allocated within the preExecute() method.
|
530
|
+
// function void postExecute() {}
|
531
|
+
|
532
|
+
// Called to return a user-defined error message when an error occurs.
|
533
|
+
// function string getMessage() {}
|
534
|
+
]]></attr>
|
535
|
+
</Node>
|
536
|
+
<Node enabled="enabled" guiHeight="65" guiName="Reformat" guiWidth="128" guiX="1300" guiY="1334" id="REFORMAT8" type="REFORMAT">
|
537
|
+
<attr name="transform"><![CDATA[//#CTL2
|
538
|
+
import 'trans/DateFunctions.ctl';
|
539
|
+
|
540
|
+
// Transforms input record into output record.
|
541
|
+
date now = today();
|
542
|
+
|
543
|
+
function integer transform()
|
544
|
+
{
|
545
|
+
$out.0.Id = $in.0.Id;
|
546
|
+
$out.0.Timestamp = now;
|
547
|
+
$out.0.IsDeleted = 'true';
|
548
|
+
return OK;
|
549
|
+
}
|
550
|
+
|
551
|
+
// Called during component initialization.
|
552
|
+
// function boolean init() {}
|
553
|
+
|
554
|
+
// Called during each graph run before the transform is executed. May be used to allocate and initialize resources
|
555
|
+
// required by the transform. All resources allocated within this method should be released
|
556
|
+
// by the postExecute() method.
|
557
|
+
// function void preExecute() {}
|
558
|
+
|
559
|
+
// Called only if transform() throws an exception.
|
560
|
+
// function integer transformOnError(string errorMessage, string stackTrace) {}
|
561
|
+
|
562
|
+
// Called during each graph run after the entire transform was executed. Should be used to free any resources
|
563
|
+
// allocated within the preExecute() method.
|
564
|
+
// function void postExecute() {}
|
565
|
+
|
566
|
+
// Called to return a user-defined error message when an error occurs.
|
567
|
+
// function string getMessage() {}
|
568
|
+
]]></attr>
|
569
|
+
</Node>
|
570
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}},{"xmlFieldMapping":{"name":"CreatedDate","label":"Created Date","xmlPath":"CreatedDate","metadataField":"CreatedDate"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1114" guiY="1236" id="SF_READER6" sfdcConnection="SFDC" soql="Select Id, CreatedDate From Opportunity" type="SF_READER"/>
|
571
|
+
<Node enabled="enabled" fieldsMapping="{"xmlFieldsMapping":{"xmlFields":[{"xmlFieldMapping":{"name":"Id","label":"Opportunity ID","xmlPath":"Id","metadataField":"Id"}},{"xmlFieldMapping":{"name":"CreatedDate","label":"Created Date","xmlPath":"CreatedDate","metadataField":"CreatedDate"}}]}}" guiHeight="65" guiName="SF Reader" guiWidth="128" guiX="1034" guiY="1334" id="SF_READER7" sfdcConnection="SFDC" soql="Select Id From Opportunity WHERE HasOpportunityLineItem = true" type="SF_READER"/>
|
572
|
+
<Edge debugMode="true" fromNode="EXT_SORT4:0" guiBendpoints="" guiRouter="Manhattan" id="Edge33" inPort="Port 0 (in)" metadata="Metadata12" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER4:0"/>
|
573
|
+
<Edge debugMode="true" fromNode="EXT_SORT5:0" guiBendpoints="" guiRouter="Manhattan" id="Edge29" inPort="Port 0 (in)" metadata="Metadata15" outPort="Port 0 (out)" toNode="GD_ESTORE_WRITER5:0"/>
|
574
|
+
<Edge debugMode="true" fromNode="REFORMAT7:0" guiBendpoints="" guiRouter="Manhattan" id="Edge28" inPort="Port 0 (in)" metadata="Metadata12" outPort="Port 0 (out)" toNode="EXT_SORT4:0"/>
|
575
|
+
<Edge debugMode="true" fromNode="REFORMAT8:0" guiBendpoints="" guiRouter="Manhattan" id="Edge30" inPort="Port 0 (in)" metadata="Metadata15" outPort="Port 0 (out)" toNode="EXT_SORT5:0"/>
|
576
|
+
<Edge debugMode="true" fromNode="SF_READER6:0" guiBendpoints="" guiRouter="Manhattan" id="Edge31" inPort="Port 0 (in)" metadata="Metadata13" outPort="Port 0 (output)" toNode="REFORMAT7:0"/>
|
577
|
+
<Edge debugMode="true" fromNode="SF_READER7:0" guiBendpoints="" guiRouter="Manhattan" id="Edge27" inPort="Port 0 (in)" metadata="Metadata13" outPort="Port 0 (output)" toNode="REFORMAT8:0"/>
|
578
|
+
</Phase>
|
579
|
+
</Graph>
|