Commit 7a840276 authored by Ekaterina's avatar Ekaterina

erp5_wendelin_tutorial: fix bug in the tutorial Howto.Create.Data.Product and...

erp5_wendelin_tutorial: fix bug in the tutorial Howto.Create.Data.Product and add incomplete test Transform.Data
parent 5dd92148
......@@ -161,14 +161,29 @@
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
......@@ -193,12 +208,12 @@
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[1]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Stream</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[2]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Progress Indicator</td>
</tr>
<tr>
......@@ -213,7 +228,7 @@
</tr>
<tr>
<td>pause</td>
<td>5000</td>
<td>3000</td>
<td></td>
</tr>
<tr>
......@@ -233,14 +248,24 @@
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
......
......@@ -382,6 +382,238 @@
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.18868.58898.37120</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global id="4.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603807654.82</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37615.38039.34594</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603807849.22</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37618.53766.43229</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603807962.73</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
<item>
<key> <string>_next</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tail_count</string> </key>
<value> <int>42</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1602156839.57</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......@@ -421,7 +653,7 @@
<value>
<object>
<klass>
<global id="4.1" name="DateTime" module="DateTime.DateTime"/>
<global id="6.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
......@@ -467,7 +699,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -512,7 +744,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -557,7 +789,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -602,7 +834,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -647,7 +879,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -692,7 +924,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -737,7 +969,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -782,7 +1014,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -827,7 +1059,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -872,7 +1104,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -917,7 +1149,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -962,7 +1194,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1007,7 +1239,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1052,7 +1284,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1097,7 +1329,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1142,7 +1374,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1187,7 +1419,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1232,7 +1464,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1277,7 +1509,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1322,7 +1554,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1367,7 +1599,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1412,7 +1644,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1457,7 +1689,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1502,7 +1734,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1547,7 +1779,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1592,7 +1824,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1637,7 +1869,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1682,7 +1914,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1727,7 +1959,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1772,7 +2004,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1817,7 +2049,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1862,7 +2094,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1907,7 +2139,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1952,7 +2184,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -1997,7 +2229,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2042,7 +2274,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2087,7 +2319,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2132,7 +2364,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2177,7 +2409,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2222,7 +2454,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2267,7 +2499,7 @@
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
......@@ -2284,67 +2516,16 @@
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<key> <string>_next</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1602156839.57</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......
<section>
<!--<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/init_test_environment"&gt;init&lt;/span&gt;</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/Zuite_setUpPersonTest</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td></td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/login_as_functional_test_user"&gt;Login As Functional Test User&lt;/span&gt;</td>
</tr>
</tbody>
</table>
</test>-->
<h1>Agenda</h1>
<ul>
<li>Create Data Operation</li>
<li>Create Data Product</li>
<li>Create Transformation Script</li>
<li>Create Data Transformation</li>
<li>See Data Analysis</li>
<li>See&nbsp;Data Array</li>
</ul>
<details open="">
<p>&nbsp;</p>
<p>This tutorial teaches how to transform raw data and write it in Data Arrays.</p>
<p>Before doing this tutorial make sure you read and completed the following tutorial and have data in your wendelin instance:</p>
<ul>
<li><a href="wendelin-Tutorial.Check.Data.Arrival">HowTo Check Data Arrival</a></li>
</ul>
<p>&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Data Operation</h1>
<img alt="" src="wendelin-Data.Operation.1?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Open your Wendelin dashboard.&nbsp;</p>
<p>In Modules click on Data Operations Module</p>
</details>
</section>
<section class="screenshot">
<h1>Add Data Operation</h1>
<img alt="" src="wendelin-Data.Operation.2?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on <strong>Add</strong> to add a new Data Operation.</p>
</details>
</section>
<section class="screenshot">
<h1>Add Data Operation</h1>
<img alt="" src="wendelin-Data.Operation.3?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click <strong>Proceed</strong> to continue.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>openAndWait</td>
<td>${base_url}/web_site_module/renderjs_runner/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_operation_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_operation_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Fill the Form</h1>
<img alt="" src="wendelin-Data.Operation.4?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Fill the form to create Data Operation.</p>
<p><strong>Title&nbsp;</strong>-&nbsp; we name it&nbsp;<strong>Convert Raw Environment Data to Array</strong></p>
<p><strong>Reference&nbsp;</strong>&nbsp;-&nbsp;<strong>data-operation-convert-raw-data-to-array&nbsp;</strong></p>
<p><strong>Script ID&nbsp;</strong>-&nbsp;<strong>DataAnalysisLine_convertEnvironmentDataStreamToArray </strong>:&nbsp;this script will do all the magic. It doesn&#39;t exist yet, we will create it later in this tutorial.&nbsp;</p>
<p><strong><label for="field_my_aggregated_portal_type_list">Item Types&nbsp;</label></strong><label for="field_my_aggregated_portal_type_list">- <strong>Data Array&nbsp;</strong>: we choose Data Array as we will&nbsp;convert the raw data to Data Array</label></p>
</details>
</section>
<section class="screenshot">
<h1>Save</h1>
<img alt="" src="wendelin-Data.Operation.5?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click <strong>Save</strong> to save the changes.</p>
</details>
</section>
<section class="screenshot">
<h1>Validate</h1>
<img alt="" src="wendelin-Data.Operation.6?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Validate on left side panel to validate Data Operation.</p>
</details>
</section>
<section class="screenshot">
<h1>Confirm Validation</h1>
<img alt="" src="wendelin-Data.Operation.7?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click <strong>Proceed</strong> to confirm validation.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Convert Raw Environment Data to Array</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>data-operation-convert-raw-data-to-array</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_version"]</td>
<td>001</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_script_id"]</td>
<td>DataAnalysisLine_convertEnvironmentDataStreamToArray</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Array</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section>
<h1>Data Product</h1>
<img alt="" src="wendelin-new.Interface.add.Data.Product.1.screenshot?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Next we need to create a new Data Product which will the output Data Product of the Transformation.&nbsp;</p>
<p>&nbsp;</p>
</details>
</section>
<section>
<h1>Create Data Product</h1>
<img alt="" src="wendelin-Data.Transformation.17?format=" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Create a new Data Product as described in <a href="wendelin-Tutorial.Howto.Create.Data.Product">HowTo Create Data Product</a> tutorial with following values</p>
<p>Title -&nbsp; <strong>Environment Raw Array</strong></p>
<p>Reference -&nbsp;<strong>environment-raw-array</strong></p>
<p>Item Types</p>
<ul>
<li><strong>Data Stream</strong></li>
<li><strong>Progress Indicator</strong></li>
<li><strong>Data Array</strong></li>
</ul>
<p>&nbsp;</p>
</details>
<p>&nbsp;</p>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_product_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_product_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Environment Raw Array</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="subfield_field_my_quantity_unit_list_default:list"]</td>
<td>Unit/Piece</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>environment-raw-array</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[1]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Stream</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[2]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Progress Indicator</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[3]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Array</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="subfield_field_my_use_list_default:list"]</td>
<td>Big Data/Ingestion/Stream Ingestion</td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @value="Validate"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Portal Callables</h1>
<img alt="" src="wendelin-Data.Transformation.1?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>After Data Product is created and validated, navigate to page called Portal Callables by clicking on&nbsp;<strong>Callables&nbsp;</strong> on the left side panel.</p>
<p>There we will create and store a python script that will transform raw data to arrays.&nbsp;</p>
<h1>&nbsp;</h1>
</details>
</section>
<section class="screenshot">
<h1>Add Transformation Script</h1>
<img alt="" src="wendelin-Data.Transformation.2?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Add button to add a new script.</p>
</details>
</section>
<section class="screenshot">
<h1>Add Transformation Script Cont.</h1>
<img alt="" src="wendelin-Data.Transformation.3?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Choose Python Script as Document Type and click on Create Document to create an empty python script.</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form</h1>
<img alt="" src="wendelin-Data.Transformation.4?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Define <strong>ID</strong>, <strong>Title</strong> and <strong>Reference</strong> of your script.</p>
<p>We name it <strong>DataAnalysisLine_convertEnvironmentDataStreamToArray </strong> as we did in Data Operation.</p>
<p>And click <strong>Save</strong> to save the changes.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/web_site_module/default_wendelin_front/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=portal_callables')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=portal_callables')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_your_select_action"]</td>
<td>Python Script</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_id"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_id"]</td>
<td>DataAnalysisLine_convertEnvironmentDataStreamToArray</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>DataAnalysisLine_convertEnvironmentDataStreamToArray</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>DataAnalysisLine_convertEnvironmentDataStreamToArray</td>
</tr>
<tr>
<td>pause</td>
<td>15000</td>
<td></td>
</tr>
<!--<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>-->
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Parameters</h1>
<img alt="" src="wendelin-Data.Transformation.5?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Next we define the parameters we will give to our script.&nbsp;</p>
<p><strong>in_stream&nbsp;</strong>- the input Data Stream where raw data is stored</p>
<p><strong>out_array&nbsp;</strong>&nbsp;- the output Data Array where data will be stored.&nbsp;</p>
<p>At the end click <strong>Save</strong> to save the changes.</p>
</details>
</section>
<section class="screenshot">
<h1>Transformation Script</h1>
<img alt="" src="wendelin-Data.Transformation.6?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">The script we write in the textbox area at the bottom of the page.</details>
</section>
<section class="screenshot">
<h1>Transformation Script Cont.</h1>
<pre>
<code>
import pandas as pd
progress_indicator = in_stream[&quot;Progress Indicator&quot;]
in_data_stream = in_stream[&quot;Data Stream&quot;]
out_data_array = out_array[&quot;Data Array&quot;]
chunk_size = 20 * 10**6
start = progress_indicator.getIntOffsetIndex()
end = min(start+chunk_size, in_data_stream.getSize())
unpacked, end = in_data_stream.readMsgpackChunkList(start, end)
f = in_data_stream.extractDateTime
df = pd.DataFrame((dict(**o[1]) for o in unpacked), dtype=&quot;float64&quot;, index=(f(o[0]) for o in unpacked))
if df.shape[0] == 0:
&nbsp; return
df.index.name=&quot;date&quot;
ndarray = df.to_records(convert_datetime64=False)
zbigarray = out_data_array.getArray()
if zbigarray is None:
&nbsp; zbigarray = out_data_array.initArray(shape=(0,), dtype=ndarray.dtype.fields)
zbigarray.append(ndarray)
if end &gt; start:
&nbsp; progress_indicator.setIntOffsetIndex(end)
# tell caller to create new activity after processing if we did not reach end of stream
if end &lt; in_data_stream.getSize():
&nbsp; return 1</code><code>
</code>
</pre>
<details open="">
<p>This script will simply write raw data to Data Array.&nbsp; More sophisticated example like resampling data or data predictions are shown in following tutorials.&nbsp;</p>
<p>First we extract data from the Data stream and read a chunk of data at a time.&nbsp;</p>
<p>As data is in <a href="https://msgpack.org/">msgpack</a> format we unpack it using iterUnpack method of wendelin Data Stream which is based on&nbsp; Unpacker of msgpack.&nbsp;</p>
<p>Next we create a data frame using <a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html">pandas DataFrame</a>.&nbsp;</p>
<p>After we convert it to ndarray and append it to <a href="https://lab.nexedi.com/nexedi/wendelin.core">zbigarray</a>.</p>
<p>We use Progress Indicator to keep track of how much raw data we already processed.&nbsp;</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_parameter_signature"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_parameter_signature"]</td>
<td>in_stream=None, out_array=None</td>
</tr>
<tr>
<td>type</td>
<td>//div[contains(@data-gadget-url,'gadget_editor.html')]//textarea</td>
<!--<td>//pre[@class=" CodeMirror-line " and @role="presentation"]</td>-->
<td>import pandas as pd
progress_indicator = in_stream[&quot;Progress Indicator&quot;]
in_data_stream = in_stream[&quot;Data Stream&quot;]
out_data_array = out_array[&quot;Data Array&quot;]
chunk_size = 20 * 10**6
start = progress_indicator.getIntOffsetIndex()
end = min(start+chunk_size, in_data_stream.getSize())
unpacked, end = in_data_stream.readMsgpackChunkList(start, end)
f = in_data_stream.extractDateTime
df = pd.DataFrame((dict(**o[1]) for o in unpacked), dtype=&quot;float64&quot;, index=(f(o[0]) for o in unpacked))
if df.shape[0] == 0:
&nbsp; return
df.index.name=&quot;date&quot;
ndarray = df.to_records(convert_datetime64=False)
zbigarray = out_data_array.getArray()
if zbigarray is None:
&nbsp; zbigarray = out_data_array.initArray(shape=(0,), dtype=ndarray.dtype.fields)
zbigarray.append(ndarray)
if end &gt; start:
&nbsp; progress_indicator.setIntOffsetIndex(end)
# tell caller to create new activity after processing if we did not reach end of stream
if end &lt; in_data_stream.getSize():
&nbsp; return 1
</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Transformations</h1>
<img alt="" src="wendelin-Data.Transformation.7?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>After your transformation script is ready, it&#39;s time to create Data Transformation.</p>
<p>On Modules page click on Data Transformations.</p>
</details>
</section>
<section class="screenshot">
<h1>Add Data Transformations</h1>
<img alt="" src="wendelin-Data.Transformation.8?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Add to add a new Data Transformation.</p>
</details>
</section>
<section class="screenshot">
<h1>Create Data Transformation</h1>
<img alt="" src="wendelin-Data.Transformation.9?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Create Document to continue.</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form</h1>
<img alt="" src="wendelin-Data.Transformation.10?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Chose descriptive title and reference. For example</p>
<p>Title : Convert Environment Raw Data</p>
<p>Reference : convert-environment-raw-data</p>
<p>For Initial Product we choose the Data Product we created in&nbsp;<a href="wendelin-Tutorial.Howto.Create.Data.Product">HowTo Create Data Product</a>&nbsp;tutorial.&nbsp;</p>
<p>At the end click Save to save the changes.&nbsp;</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_transformation_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_transformation_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Convert Environment Raw Data</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>convert-environment-raw-data</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_resource_title"]</td>
<td>Sample Environment Raw Data</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name='field_my_resource_title']</td>
<td>input</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Transformation Lines</h1>
<img alt="" src="wendelin-Data.Transformation.11?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Add button to add a Data Transformation Line.</p>
<p>&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Create Operation Line</h1>
<img alt="" src="wendelin-Data.Transformation.12?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>&nbsp;</p>
<p>Choose <strong>Data Transformation Operation Line&nbsp;</strong>for Document Type and click on Create Document.&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form</h1>
<img alt="" src="wendelin-Data.Transformation.13?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Fill the form.</p>
<p>For Data Operation put the name of the Data operation that we created at the beginning of this tutorial - <strong>Convert Raw Environment Data to Array</strong>.</p>
<p>At the end click on Save to save the changes.&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Back To Data Transformation</h1>
<img alt="" src="wendelin-Data.Transformation.14?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Once needed fields are filled click Save to save the changes and go back to Data Transformations view by clicking on the upper panel.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Convert Raw Data to Array</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>data_operation</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_resource_title"]</td>
<td>Convert Raw Environment Data to Array</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name='field_my_resource_title']</td>
<td>input</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//li[contains(@data-relative-url,'data_operation_module/')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[contains(@data-relative-url,'data_operation_module/')]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_trade_phase"]</td>
<td>Data/Convert</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_quantity_unit"]</td>
<td>Unit/Piece</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@data-i18n,'Data Transformation Operation Line')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@data-i18n,'Data Transformation Operation Line')]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Transformation Lines</h1>
<img alt="" src="wendelin-Data.Transformation.15?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Add another Data Transformation Line.</p>
</details>
</section>
<section class="screenshot">
<h1>Create Transformation Line</h1>
<img alt="" src="wendelin-Data.Transformation.16?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Now for Document Type choose <strong>Data Transformation Resource Line</strong> and click on <strong>Create Document</strong>.</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form</h1>
<img alt="" src="wendelin-Data.Transformation.18?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Fill the form.</p>
<p>For <strong>Data Product</strong> put the name of the Data Product that we created in <a href="wendelin-Tutorial.Howto.Create.Data.Product">HowTo Create Data Product</a>&nbsp;tutorial.</p>
<p>After filling in the Data Product name click Save to save the intermediate changes.&nbsp;</p>
<p>After saving a new field <strong>Item Types&nbsp;</strong>will appear.&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form Cont.</h1>
<img alt="" src="wendelin-Data.Transformation.19?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Continue filling the form as shown on the screenshot</p>
<p>At the end don&#39;t forget to save the changes.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@id="field_your_select_action"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_your_select_action"]</td>
<td>Data Transformation Resource Line</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Raw Data</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>in_stream</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_resource_title"]</td>
<td>Sample Environment Raw Data</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name='field_my_resource_title']</td>
<td>input</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_quantity_unit"]</td>
<td>Unit/Piece</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[1]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Stream</td>
</tr>
<tr>
<td>select</td>
<td>//div[@data-gadget-scope="field_my_aggregated_portal_type_list"]//div//div//div[2]//div//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Progress Indicator</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_trade_phase"]</td>
<td>Data/Convert</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@data-i18n,'Data Transformation Resource Line')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@data-i18n,'Data Transformation Resource Line')]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Add Output Line</h1>
<img alt="" src="wendelin-Data.Transformation.20?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Head back to Data Transformation and add one more Transformation line.</p>
</details>
</section>
<section class="screenshot">
<h1>Create Transformation Line</h1>
<img alt="" src="wendelin-Data.Transformation.16?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Once again&nbsp;for Document Type choose <strong>Data Transformation Resource Line</strong> and click on <strong>Create Document</strong>.</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form</h1>
<img alt="" src="wendelin-Data.Transformation.21?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Fill the form.</p>
<p>For <strong>Data Product</strong> put the name of the Data Product that we created earlier in this tutorial - <strong>Environment Raw Array</strong>.</p>
<p>Once filling in the Data Product name click Save to save the intermediate changes.&nbsp;</p>
<p>After saving a new field <strong>Item Types&nbsp;</strong>will appear.&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Fill The Form Cont.</h1>
<img alt="" src="wendelin-Data.Transformation.22?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Continue filling the form as shown on the screenshot</p>
<p>At the end don&#39;t forget to save the changes.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[@data-i18n="Add"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//select[@id="field_your_select_action"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_your_select_action"]</td>
<td>Data Transformation Resource Line</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<!--<tr>
<td>waitForElementPresent</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//input[@type="submit" and @name="action_confirm"]</td>
<td></td>
</tr>-->
<tr>
<td>waitForElementPresent</td>
<td>//input[@id="field_my_title"]</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_title"]</td>
<td>Raw Data</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_reference"]</td>
<td>out_array</td>
</tr>
<tr>
<td>type</td>
<td>//input[@id="field_my_resource_title"]</td>
<td>Environment Raw Array</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//input[@name='field_my_resource_title']</td>
<td>input</td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//li[contains(@data-relative-url,'data_product_module/')]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_quantity_unit"]</td>
<td>Unit/Piece</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_aggregated_portal_type_list"]</td>
<td>Data Array</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_trade_phase"]</td>
<td>Data/Convert</td>
</tr>
<tr>
<td>select</td>
<td>//select[@id="field_my_use"]</td>
<td>Big Data/Ingestion/Stream Ingestion</td>
</tr>
<tr>
<td>click</td>
<td>//button[@name="submit" and @data-i18n="Save"]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@data-i18n,'Data Transformation Resource Line')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@data-i18n,'Data Transformation Resource Line')]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Transformation</h1>
<img alt="" src="wendelin-Data.Transformation.23?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Head back to Data Transformation.</p>
<p>Now you can see that we have 3 Data Transformation Lines.</p>
<p>The first line defines what operation will be done.&nbsp;</p>
<p>The second line defines on what the operation will be done - the input.</p>
<p>And the third line defines the output.</p>
<p>Note the <strong>Quantity</strong> column of the Transformation Lines. Make sure the values are the same as shown on the screenshot.</p>
<p>The very&nbsp;last step is to validate the&nbsp;Data Transformation.&nbsp;</p>
<p>Click on Validate on the left side panel to validate the Data Transformation.</p>
</details>
</section>
<section class="screenshot">
<h1>Confirm Validation</h1>
<img alt="" src="wendelin-Data.Transformation.24?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on Validate to confirm the Validation.</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr[1]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr[1]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr[2]</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr[3]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'Dvalidate_action')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@type="submit" and @data-i18n="Proceed"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//button[@type="submit" and @class="success"]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Analysis</h1>
<img alt="" src="wendelin-Data.Transformation.25?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Go to <strong>Data Analyses </strong>module<strong>.</strong></p>
</details>
</section>
<section class="screenshot">
<h1>Data Analysis</h1>
<img alt="" src="wendelin-Data.Transformation.26?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>After few minutes in Data Analysis Module a new Data Analysis called&nbsp;<strong>Convert Environment Raw Data&nbsp;</strong>will appear.&nbsp;</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr class="" style="opacity: 1;">
<td colspan="3">&lt;span metal:use-macro="container/Zuite_viewTestMacroLibrary/macros/wait_for_activities"&gt; Wait for activities &lt;/span&gt;</td>
</tr>
<tr>
<td>openAndWait</td>
<td>${base_url}/web_site_module/default_wendelin_front/</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>150000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_analysis_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_analysis_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr//td[1]</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>Convert Environment Raw Data</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
<section class="screenshot">
<h1>Data Array Module</h1>
<img alt="" src="wendelin-Data.Transformation.27?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Go to Data Array Module to see the data.&nbsp;&nbsp;</p>
</details>
</section>
<section class="screenshot">
<h1>Data Array</h1>
<img alt="" src="wendelin-Data.Transformation.28?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Here we can see the newly created Data Array called&nbsp;<strong>Convert Environment Raw Data.</strong></p>
<p>Click on it to navigate to array.</p>
</details>
</section>
<section class="screenshot">
<h1>Data Array</h1>
<img alt="" src="wendelin-Data.Transformation.29?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Click on <strong>Preview</strong> to see the data.</p>
<p>Note it might take few minutes (&lt;10) until data appears.</p>
</details>
</section>
<section class="screenshot">
<h1>Data Array</h1>
<img alt="" src="wendelin-Data.Transformation.30?format=" style="font-size: 13px;" title="" type="image/svg+xml" />
<details open="">
<p>Data is here!</p>
</details>
<test>
<table style="display: none;" class="test">
<tbody>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'page=front')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'data_array_module')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'data_array_module')]</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='document_table']//table//tbody//tr//td[1]</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>Convert Environment Raw Data</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//div[@class='document_table']//table//tbody//tr//td[1]</td>
<td></td>
</tr>
<tr>
<td>pause</td>
<td>150000</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//a[contains(@href,'preview')]</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//a[contains(@href,'preview')]</td>
<td></td>
</tr>
</tbody>
</table>
</test>
</section>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Test Page" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>wendelin-Tutorial.Transform.Data</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>wendelin_Tutorial_Transform_Data</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Test Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value> <string>HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>subject</string> </key>
<value>
<tuple>
<string>Wendelin</string>
<string>installation</string>
<string>setup</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Wendelin - HowTo Transform Data</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary>
<item>
<key> <string>document_publication_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>edit_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>processing_status_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708410.72</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>draft</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37353.35407.16708</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global id="4.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603809974.02</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37654.15328.10734</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603810636.15</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37665.17645.4505</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603813516.67</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37713.18220.62685</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603813997.72</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37721.19365.17390</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="4.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603814685.31</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
<item>
<key> <string>_next</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tail_count</string> </key>
<value> <int>34</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708410.71</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>0.0.0.0</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass>
<global id="6.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708410.71</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.35961.33568.61354</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708462.84</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.35962.24979.21435</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708491.59</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.35962.56364.24678</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603708551.98</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.35963.56792.23842</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603709252.71</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.35975.35739.10683</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603711091.22</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36006.12270.43059</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603713558.68</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36047.20416.3703</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603714801.49</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36068.1639.58811</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603716549.02</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36097.9866.59357</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603718975.57</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36137.38856.54937</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603720126.89</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36156.51225.25326</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603722256.38</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36192.17906.17493</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603723870.98</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36219.12008.21094</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603724983.01</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36237.46990.44970</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603725010.06</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36238.10996.3242</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603725632.46</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36248.35465.12731</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603725826.13</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36251.50398.30702</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603725978.37</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36254.20078.36283</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603726040.05</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36255.21911.17271</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603726305.28</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36259.49472.51421</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603726430.11</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36261.54746.63061</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603726466.89</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36261.54746.63061</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603728024.31</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36288.26567.426</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603728256.13</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36292.17627.35328</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603728374.22</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36294.15545.63095</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603728759.13</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36300.42751.51080</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603732158.14</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.36357.19822.44663</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603788755.69</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37300.38989.27016</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603790327.41</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37326.51793.13550</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603790662.64</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37332.24741.25975</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603790908.02</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37336.30610.62054</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603791199.59</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37341.21402.58760</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603791426.12</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>edit</string> </value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>error_message</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>987.37345.6691.41779</string> </value>
</item>
<item>
<key> <string>state</string> </key>
<value> <string>current</string> </value>
</item>
<item>
<key> <string>time</string> </key>
<value>
<object>
<klass> <reference id="6.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1603791932.41</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</value>
</item>
<item>
<key> <string>_next</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>_prev</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment