https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&feed=atom&action=history
Creating Custom Workflows 0.9 alpha - Revision history
2024-03-28T12:11:16Z
Revision history for this page on the wiki
MediaWiki 1.35.4
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=13329&oldid=prev
Sallain at 21:42, 11 February 2020
2020-02-11T21:42:32Z
<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:42, 11 February 2020</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Main Page]] > [[Development]] > [[Creating Custom Workflows]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Main Page]] > [[Development]] > [[Creating Custom Workflows]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><div style="padding: 10px 10px; border: 1px solid black; background-color: #F79086;">This page is no longer being maintained and may contain inaccurate information. Please see the [https://www.archivematica.org/docs/latest/ Archivematica documentation] for up-to-date information. </div> <p></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=Read First=</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=Read First=</div></td></tr>
</table>
Sallain
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=11483&oldid=prev
Hbecker: /* Creating your first workflow */ Add sql vs migration warning
2016-10-11T18:44:50Z
<p><span dir="auto"><span class="autocomment">Creating your first workflow: </span> Add sql vs migration warning</span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:44, 11 October 2016</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l119" >Line 119:</td>
<td colspan="2" class="diff-lineno">Line 119:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=Creating your first workflow=</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=Creating your first workflow=</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{| class="wikitable" style="background-color:#ffcccc; font-size: 120%; font-weight: bold; " cellpadding="10"</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">| Since Archivematica 1.5, migrations are done with Django's data migrations instead of raw SQL.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">|}</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">These instructions no longer work unmodified. The link-tool in [https://github.com/artefactual/archivematica-devtools Archivematica development tools] may be useful as well.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Make sure you read the section "Read First" (above) first.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Make sure you read the section "Read First" (above) first.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Hbecker
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=6433&oldid=prev
Joseph: /* TasksConfigs Fields */
2012-08-27T21:42:59Z
<p><span dir="auto"><span class="autocomment">TasksConfigs Fields</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:42, 27 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l26" >Line 26:</td>
<td colspan="2" class="diff-lineno">Line 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===TasksConfigs Fields===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===TasksConfigs Fields===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div># taskType</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#<ins class="diffchange diffchange-inline">: </ins>taskType</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important. It determines the behavior for the MCP to create the tasks.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important. It determines the behavior for the MCP to create the tasks.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>one instance <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>one instance </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Only one task will be created.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Only one task will be created.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>for each file <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>for each file </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: A task will be created for each file, that matches the task's filters.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: A task will be created for each file, that matches the task's filters.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>get user choice to proceed with <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>get user choice to proceed with </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Creates no tasks. Uses the table MicroServiceChainChoice, to present the user with a set of choices of MicroserviceChains to continue processing with.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Creates no tasks. Uses the table MicroServiceChainChoice, to present the user with a set of choices of MicroserviceChains to continue processing with.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>assign magic link <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>assign magic link </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Units (Sips/Transfers) can be assigned a link to continue processing by the 'goto magic link' job type.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Units (Sips/Transfers) can be assigned a link to continue processing by the 'goto magic link' job type.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>goto magic link <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>goto magic link </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Units continue to process based on a configured value set by an assign magic link tasks.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Units continue to process based on a configured value set by an assign magic link tasks.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>get replacement dic from user choice <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>get replacement dic from user choice </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Uses MicroServiceChoiceReplacementDic to present the user with a list of choices, which are reflected by a a replacement dic, which will be used in the continued processing of the chain.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Uses MicroServiceChoiceReplacementDic to present the user with a list of choices, which are reflected by a a replacement dic, which will be used in the continued processing of the chain.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Note this choice can be pre-configured in the processingMCP.xml file.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>Split creating Jobs for each file <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>Split creating Jobs for each file </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Split processing, to process a chain on each file.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Split processing, to process a chain on each file.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>Split Job into many links based on file ID <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>Split Job into many links based on file ID </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Use the file id, and desired action (normalize preservation) to find links to run. This is used on sub chains created by 'Split creating jobs for each file'</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Use the file id, and desired action (normalize preservation) to find links to run. This is used on sub chains created by 'Split creating jobs for each file'</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>Transcoder task type <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>Transcoder task type </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: This is used to assign a transcoder task to an MCP client.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: This is used to assign a transcoder task to an MCP client.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>Get microservice generated list in stdOut <del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>Get microservice generated list in stdOut </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Gets a replacement dictionary from the stdOut of a Microservice.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Gets a replacement dictionary from the stdOut of a Microservice.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">====</del>Get user choice from microservice generated list<del class="diffchange diffchange-inline">====</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:# </ins>Get user choice from microservice generated list</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Presents a list retrieved from a 'Get microservice generated list in stdOut' for selection to user. </div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Presents a list retrieved from a 'Get microservice generated list in stdOut' for selection to user. </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#:</ins>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskTypePKReference</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskTypePKReference</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Used in combination with the taskType. The type allows the MCP code to map to a table, and the pkReference knows which entry in that table to look at.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Used in combination with the taskType. The type allows the MCP code to map to a table, and the pkReference knows which entry in that table to look at.</div></td></tr>
<!-- diff cache key mwiki_am:diff::1.12:old-6430:rev-6433 -->
</table>
Joseph
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=6430&oldid=prev
Joseph: /* TasksConfigs Fields */
2012-08-27T21:37:56Z
<p><span dir="auto"><span class="autocomment">TasksConfigs Fields</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:37, 27 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l28" >Line 28:</td>
<td colspan="2" class="diff-lineno">Line 28:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskType</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskType</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important. It determines the behavior for the MCP to create the tasks.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important. It determines the behavior for the MCP to create the tasks.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====one instance ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====one instance ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Only one task will be created.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Only one task will be created.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====for each file ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====for each file ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: A task will be created for each file, that matches the task's filters.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: A task will be created for each file, that matches the task's filters.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====get user choice to proceed with ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====get user choice to proceed with ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Creates no tasks. Uses the table MicroServiceChainChoice, to present the user with a set of choices of MicroserviceChains to continue processing with.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Creates no tasks. Uses the table MicroServiceChainChoice, to present the user with a set of choices of MicroserviceChains to continue processing with.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====assign magic link ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====assign magic link ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Units (Sips/Transfers) can be assigned a link to continue processing by the 'goto magic link' job type.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Units (Sips/Transfers) can be assigned a link to continue processing by the 'goto magic link' job type.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====goto magic link ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====goto magic link ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Units continue to process based on a configured value set by an assign magic link tasks.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Units continue to process based on a configured value set by an assign magic link tasks.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====get replacement dic from user choice ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====get replacement dic from user choice ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Uses MicroServiceChoiceReplacementDic to present the user with a list of choices, which are reflected by a a replacement dic, which will be used in the continued processing of the chain.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Uses MicroServiceChoiceReplacementDic to present the user with a list of choices, which are reflected by a a replacement dic, which will be used in the continued processing of the chain.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====Split creating Jobs for each file ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====Split creating Jobs for each file ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Split processing, to process a chain on each file.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Split processing, to process a chain on each file.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====Split Job into many links based on file ID ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====Split Job into many links based on file ID ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Use the file id, and desired action (normalize preservation) to find links to run. This is used on sub chains created by 'Split creating jobs for each file'</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Use the file id, and desired action (normalize preservation) to find links to run. This is used on sub chains created by 'Split creating jobs for each file'</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====Transcoder task type ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====Transcoder task type ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: This is used to assign a transcoder task to an MCP client.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: This is used to assign a transcoder task to an MCP client.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====Get microservice generated list in stdOut ====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====Get microservice generated list in stdOut ====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Gets a replacement dictionary from the stdOut of a Microservice.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Gets a replacement dictionary from the stdOut of a Microservice.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: </del>====Get user choice from microservice generated list====</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>====Get user choice from microservice generated list====</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Presents a list retrieved from a 'Get microservice generated list in stdOut' for selection to user. </div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Presents a list retrieved from a 'Get microservice generated list in stdOut' for selection to user. </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Note this choice can be pre-configured in the processingMCP.xml file</div></td></tr>
</table>
Joseph
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=6429&oldid=prev
Joseph: /* TasksConfigs Fields */
2012-08-27T21:37:20Z
<p><span dir="auto"><span class="autocomment">TasksConfigs Fields</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 21:37, 27 August 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27" >Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===TasksConfigs Fields===</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===TasksConfigs Fields===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskType</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskType</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: The task type is highly important<ins class="diffchange diffchange-inline">. It determines the behavior for the MCP to create the tasks</ins>.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">select * from TaskTypes;</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">====one instance ====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">+----+---------------------------------+</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">Only one task will be created.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">| pk | description |</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">====for each file ====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: +----+---------------------------------+</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">A task will be created </ins>for each file<ins class="diffchange diffchange-inline">, that matches the task's filters.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">#: | 0 | one instance |</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">====</ins>get user choice to proceed with <ins class="diffchange diffchange-inline"> ====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">| 1 | </del>for each file <del class="diffchange diffchange-inline"> |</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">Creates no tasks. Uses the table MicroServiceChainChoice, to present the user with a set of choices of MicroserviceChains to continue processing with.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">| 2 | </del>get user choice to proceed with <del class="diffchange diffchange-inline">|</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Note this choice can be pre-configured in the processingMCP.xml file</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">| 3 | </del>assign magic link <del class="diffchange diffchange-inline"> |</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====</ins>assign magic link <ins class="diffchange diffchange-inline"> ====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">| 4 | </del>goto magic link <del class="diffchange diffchange-inline"> |</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Units (Sips/Transfers) can be assigned a link to continue processing by the 'goto magic link' job type.</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: <del class="diffchange diffchange-inline">+</del>-<del class="diffchange diffchange-inline">---+---------------------------------+</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">====</ins>goto magic link <ins class="diffchange diffchange-inline"> ====</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>#: </div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Units continue to process based on a configured value set by an assign magic link tasks.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====get replacement dic from user choice ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Uses MicroServiceChoiceReplacementDic to present the user with a list of choices, which are reflected by a a replacement dic, which will be used in the continued processing of the chain.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">Note this choice can be pre</ins>-<ins class="diffchange diffchange-inline">configured in the processingMCP.xml file.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====Split creating Jobs for each file ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Split processing, to process a chain on each file.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====Split Job into many links based on file ID ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Use the file id, and desired action (normalize preservation) to find links to run. This is used on sub chains created by 'Split creating jobs for each file'</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====Transcoder task type ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: This is used to assign a transcoder task to an MCP client.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====Get microservice generated list in stdOut ====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Gets a replacement dictionary from the stdOut of a Microservice.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: ====Get user choice from microservice generated list====</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">#: Presents a list retrieved from a 'Get microservice generated list in stdOut' for selection to user. </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>#: <ins class="diffchange diffchange-inline">Note this choice can be pre-configured in the processingMCP.xml file</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskTypePKReference</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div># taskTypePKReference</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Used in combination with the taskType. The type allows the MCP code to map to a table, and the pkReference knows which entry in that table to look at.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>#: Used in combination with the taskType. The type allows the MCP code to map to a table, and the pkReference knows which entry in that table to look at.</div></td></tr>
</table>
Joseph
https://wiki.archivematica.org/index.php?title=Creating_Custom_Workflows_0.9_alpha&diff=6425&oldid=prev
Joseph: Copy 0.8
2012-08-27T21:14:59Z
<p>Copy 0.8</p>
<p><b>New page</b></p><div>[[Main Page]] > [[Development]] > [[Creating Custom Workflows]]<br />
<br />
=Read First=<br />
This page is used to described editing workflows in the archivematica system.<br />
<br />
[http://archivematica.org/wiki/index.php?title=Contribute_code We strongly encourage code contribution]. It requires use of the [[Development_environment]]<br />
<br />
==Overview==<br />
The MCP operates on a set of 'MicroService Chains' defined in the MCP database. Thes chains have a starting link, and default next link. The MCP will continue to process along these chains until it reaches a next chain link of Null. Note these chains can have branches, which will process a different set of commands.<br />
<br />
The archivematica workflow is now broken into two parts. The first is the transfer area. This section of the workflow is to prepare objects for SIP processing in archivematica. Transfer processing handles the format the objects were received in, where SIP processing is a very narrow workflow, designed to create archivematica DIPs and AIPs.<br />
==key components==<br />
<br />
=== MicroServiceChainLinks Fields===<br />
# currentTask<br />
#: FK TasksConfigs pk<br />
#: The task that operates at this stage in the chain.<br />
# defaultNextChainLink<br />
#: If the exit code of this Job is not defined in the MicroServiceChainLinksExitCodes, goto this next chain.<br />
#:<br />
#:The following are really only used for advanced/not implemented features.<br />
# defaultPlaySound<br />
# microserviceGroup<br />
# reloadFileList<br />
# defaultExitMessage<br />
<br />
===TasksConfigs Fields===<br />
# taskType<br />
#: The task type is highly important.<br />
#: select * from TaskTypes;<br />
#: +----+---------------------------------+<br />
#: | pk | description |<br />
#: +----+---------------------------------+<br />
#: | 0 | one instance |<br />
#: | 1 | for each file |<br />
#: | 2 | get user choice to proceed with |<br />
#: | 3 | assign magic link |<br />
#: | 4 | goto magic link |<br />
#: +----+---------------------------------+<br />
#: <br />
# taskTypePKReference<br />
#: Used in combination with the taskType. The type allows the MCP code to map to a table, and the pkReference knows which entry in that table to look at.<br />
# description<br />
#: a text description to appear in the dashboard<br />
<br />
===StandardTasksConfigs Fields===<br />
# File search filters<br />
#: filterFileEnd - useful for looking for extensions.<br />
#: filterFileStart<br />
#: filterSubDir - sub directory to operate on within the unit location<br />
# requiresOutputLock<br />
#: boolean. used when logging to files. If a number of tasks are writing to the same file it's used.<br />
#: this has more historical significance for archivematica than future.<br />
# standardOutputFile<br />
# standardErrorFile<br />
# execute<br />
#: linked to [http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/MCPClient/etc/archivematicaClientModules archivematicaClientModules]<br />
#: the client maps it to it's executable, and will run it as though on the command line with the given arguments below.<br />
#: The client can map these to anything callable at the command line.<br />
#: Whatever is called will need to return without human intervention, or the system will hang!<br />
# arguments<br />
#: arguments given to the executable<br />
#: some variables are replaced when the task is created. See replacement dics getReplacementDic():<br />
#:* [[http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/MCPServer/lib/unitSIP.py SIPs]]<br />
#:* [[http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/MCPServer/lib/unitTransfer.py Transfers ]]<br />
#:* [[http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/MCPServer/lib/unitFile.py Files]]<br />
#:* [[http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/MCPServer/lib/unitDIP.py Dips]]<br />
#: note: transfers use the word SIP instead of transfer for simplifying workflow migration from previous revisions of archivematica<br />
<br />
==Workflow decision tools==<br />
This section defines the tools available to select the chain or next chain link to process.<br />
<br />
===Watched Directories===<br />
Watched directories are watching for directories/files placed in them. When one is placed in them, it starts the corresponding Microservice Chain.<br />
====WatchedDirectories Fields====<br />
# watchedDirectoryPath<br />
#: The path to the directory. Starts with variable '%watchDirectoryPath%', which is replaced by the MCP with the location of the watched directories.<br />
# chain<br />
#: The pk of the MicroServiceChains to start processing down.<br />
# onlyActOnDirectories<br />
#: Always true for Archivematica 0.8<br />
#: Future or expanded use of MCP to allow for watching of individual files<br />
# expectedTypeTells the MCP what type of unit to expect <br />
#: two main unit types: SIPs and Transfers<br />
#: The MCP will try to match the directory to an existing unit, or create a unit to represent the directory.<br />
<br />
====Restrictions====<br />
* A watched directory can not contain a watched directory.<br />
<br />
===MicroServiceChainLinksExitCodes===<br />
This mechanism is used to provide an alternative to the default next chain link defined in the MicroServiceChainLink. The default is usually the default error condition, and then you define exit code 0 to go to the next chain in the link.<br />
<br />
There are special circumstances, where you may desire the code to change the direction of the processing links. This can be done through the exit code. See Archivematica 0.8 release use of exitCode 179 and 0, in the checkForAccessDirectory microservice for an example.<br />
<br />
===Choices===<br />
Pre 0.8 release of Archivematica, the MCP could only approve a microservice. In 0.8, that has changed to choices being their own steps/microservices. <br />
<br />
Choices link to a microservice chain, and are defined in MicroServiceChainChoice. The concept being that the user is selecting a path to follow, and the paths are defined in the microservice chains.<br />
<br />
===Magic Chain Links===<br />
Magic chain links involve getting the next chain link from the unit the job is operating on. I think they have the potential to be very useful when generating unit tests.<br />
In archivematica there are two key job types: ( 3, 'assign magic link'), ( 4, 'goto magic link').<br />
<br />
A key advantage the magic links provide, is that they allow two or more workflows to share the same watched directory. The items within that watched directory have a flag set to say which link they should go to next.<br />
<br />
=Creating your first workflow=<br />
Make sure you read the section "Read First" (above) first.<br />
<br />
== The mock situation ==<br />
Collection of jpgs normalized to bmp for preservation poorly. Want to remove the bmps, from a transfer, then process it as a standard transfer. (will later be normalized to Uncompressed TIFF by archivematica).<br />
<br />
== Creating a chain ==<br />
gedit /usr/share/archivematica/mysql<br />
view -> highlight mode -> source -> SQL<br />
<br />
I find it easier to work back chronologically. <br />
The chronological order is:<br />
# Watched directory watched<br />
# Move to processing directory<br />
# Remove .bmp files.<br />
# Set permissions<br />
# Move to regular processing watched directory.<br />
<br />
So reverse is:<br />
# Move to regular processing watched directory.<br />
# Remove .bmp files.<br />
# Move to processing directory<br />
# Set permissions<br />
# Watched directory watched<br />
<br />
[http://youtu.be/haotj_NlbX0 video]<br />
* Paths may be different<br />
* patch from video video<br />
<pre><br />
Index: src/MCPServer/share/mysql<br />
===================================================================<br />
--- src/MCPServer/share/mysql (revision 2328)<br />
+++ src/MCPServer/share/mysql (working copy)<br />
@@ -2774,12 +2774,62 @@<br />
<br />
<br />
<br />
+-- Move to regular processing watched directory. --<br />
+INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
+ VALUES<br />
+ (NULL, NULL, NULL, FALSE, NULL, NULL, 'moveTransfer_v0.0', '"%SIPDirectory%" "%sharedPath%watchedDirectories/activeTransfers/standardTransfer/." "%SIPUUID%" "%sharedPath%" "%SIPUUID%" "%sharedPath%"');<br />
+INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
+ VALUES<br />
+ (0, LAST_INSERT_ID(), 'Move to standard transfer directory');<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, NULL);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
<br />
+-- Remove .bmp files. --<br />
+INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
+ VALUES<br />
+ ('.bmp', NULL, 'objects', TRUE, NULL, NULL, 'remove_v0.0', '"%relativeLocation%"');<br />
+SET @AssignfileUUIDstoobjects = LAST_INSERT_ID();<br />
+INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
+ VALUES<br />
+ (1, @AssignfileUUIDstoobjects, 'Remove .bmp files');<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
+-- Move to processing directory --<br />
+-- move to processing directory --<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, @moveToProcessingDirectoryTaskConfig, @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
+-- Set permissions --<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, @setFilePermissionsTaskConfig, @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
+/*<br />
+Watched directory watched<br />
+/var/archivematica/sharedDirectory/watchedDirectories/example1<br />
+*/<br />
+INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'Remove .bmp\'s before processing');<br />
+set @MicroServiceChain = LAST_INSERT_ID();<br />
<br />
+INSERT INTO WatchedDirectories (watchedDirectoryPath, chain, expectedType)<br />
+ VALUES ('%watchDirectoryPath%example1', @MicroServiceChain, @expectedTypeTransfer);<br />
<br />
<br />
<br />
@@ -2803,6 +2853,11 @@<br />
<br />
<br />
<br />
+<br />
+<br />
+<br />
+<br />
+<br />
-- DSPACE TRANSER --<br />
-- transfer processing complete --<br />
SET @microserviceGroup = 'Complete transfer';<br />
</pre><br />
<br />
==using choices==<br />
===Continuing the example using choices ===<br />
<pre><br />
Index: src/MCPServer/share/mysql<br />
===================================================================<br />
--- src/MCPServer/share/mysql (revision 2328)<br />
+++ src/MCPServer/share/mysql (working copy)<br />
@@ -2657,6 +2657,87 @@<br />
VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
+<br />
+-- move to processing directory --<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, @moveToProcessingDirectoryTaskConfig, @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+<br />
+INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'Continue processing normally');<br />
+set @ContinueProcessingNormallyMicroServiceChain = LAST_INSERT_ID();<br />
+<br />
+-- Remove .bmp files. --<br />
+INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
+ VALUES<br />
+ ('.bmp', NULL, 'objects', TRUE, NULL, NULL, 'remove_v0.0', '"%relativeLocation%"');<br />
+SET @AssignfileUUIDstoobjects = LAST_INSERT_ID();<br />
+INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
+ VALUES<br />
+ (1, @AssignfileUUIDstoobjects, 'Remove .bmp files');<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
+<br />
+-- move to processing directory --<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, @moveToProcessingDirectoryTaskConfig, @defaultNextChainLink);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
+<br />
+INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'Remove .bmp files');<br />
+set @RemoveBMPfilesFirstMicroServiceChain = LAST_INSERT_ID();<br />
+<br />
+<br />
+INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
+ VALUES<br />
+ (NULL, NULL, NULL, FALSE, NULL, NULL, '', '');<br />
+INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
+ VALUES<br />
+ (2, LAST_INSERT_ID(), 'Workflow decision - remove .bmp files');<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
+ VALUES <br />
+ (@MicroServiceChainLink, @ContinueProcessingNormallyMicroServiceChain);<br />
+INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
+ VALUES <br />
+ (@MicroServiceChainLink, @RemoveBMPfilesFirstMicroServiceChain);<br />
+INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
+ VALUES <br />
+ (@MicroServiceChainLink, @rejectSIPMicroServiceChain);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
+<br />
+INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'create remove .bmp files?');<br />
+set @MicroServiceChain = LAST_INSERT_ID();<br />
+<br />
+INSERT INTO WatchedDirectories (watchedDirectoryPath, chain, expectedType)<br />
+ VALUES ('%watchDirectoryPath%workFlowDecisions/removeBMPFiles/', @MicroServiceChain, @expectedTypeTransfer);<br />
+<br />
+<br />
+INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
+ VALUES<br />
+ (NULL, NULL, NULL, FALSE, NULL, NULL, 'moveTransfer_v0.0', '"%SIPDirectory%" "%sharedPath%watchedDirectories/workFlowDecisions/removeBMPFiles/." "%SIPUUID%" "%sharedPath%" "%SIPUUID%" "%sharedPath%"');<br />
+Set @MovetoworkFlowDecisionsquarantineSIPdirectory = LAST_INSERT_ID();<br />
+INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
+ VALUES<br />
+ (0, @MovetoworkFlowDecisionsquarantineSIPdirectory, 'Move to workFlowDecisions-removeBMPFiles directory');<br />
+INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
+ VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
+set @MicroServiceChainLink = LAST_INSERT_ID();<br />
+INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
+ VALUES (@MicroServiceChainLink, 0, NULL);<br />
+set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
+<br />
+<br />
+<br />
SET @microserviceGroup = 'Include default Transfer processingMCP.xml';<br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
@@ -2802,7 +2883,6 @@<br />
<br />
<br />
<br />
-<br />
-- DSPACE TRANSER --<br />
-- transfer processing complete --<br />
SET @microserviceGroup = 'Complete transfer';<br />
<br />
</pre><br />
<br />
==Using Magic Links==<br />
Magic links are used so two workflows can share the same watched directory.<br />
[[http://archivematica.org/wiki/index.php?title=Creating_Custom_Workflows_0.8_alpha#Magic_Chain_Links see above]]<br />
They use units that can store a magic chain link (SIPs and Transfers).<br />
===Example===<br />
Let's look at where archivematica get's the user decision to send the transfer to quarantine or not.<br />
<br />
* Both workflows start with tasktype 3, where they set the chain link to resume processing on. This is stored in the unit itself.<br />
* Both then move the their transfer to the quarantine workflow decision directory<br />
* Only one has the watched directory and task type 4<br />
*: This is because it only has to occur once. There is only one watched directory, and it is liked to a chain that will start by loading magic link from the unit.<br />
* Each has then finished loading their magic link, and is back on their perspective processing chain. Where they present the user with the appropriate choices for the chain.<br />
<br />
<pre><br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, '', '');<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(2, LAST_INSERT_ID(), 'Workflow decision - create transfer backup');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @CreateTransferBackupMicroServiceChain);<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @DoNotCreateTransferBackupMicroServiceChain);<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @rejectSIPMicroServiceChain);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
set @WorkflowdecisioncreateTransferBackupDefaultTransferMagicChainLink = @MicroServiceChainLink;<br />
<br />
<br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, NULL, NULL);<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(4, LAST_INSERT_ID(), 'Find type to process as');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
<br />
INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'create transfer backup ?');<br />
set @MicroServiceChain = LAST_INSERT_ID();<br />
<br />
INSERT INTO WatchedDirectories (watchedDirectoryPath, chain, expectedType)<br />
VALUES ('%watchDirectoryPath%workFlowDecisions/createTransferBackup/', @MicroServiceChain, @expectedTypeTransfer);<br />
<br />
<br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, 'moveTransfer_v0.0', '"%SIPDirectory%" "%sharedPath%watchedDirectories/workFlowDecisions/createTransferBackup/." "%SIPUUID%" "%sharedPath%" "%SIPUUID%" "%sharedPath%"');<br />
Set @MovetoworkFlowDecisionsquarantineSIPdirectory = LAST_INSERT_ID();<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(0, @MovetoworkFlowDecisionsquarantineSIPdirectory, 'Move to workFlowDecisions-createTransferBackup directory');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
VALUES (@MicroServiceChainLink, 0, NULL);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, @WorkflowdecisioncreateTransferBackupDefaultTransferMagicChainLink, NULL);<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(3, LAST_INSERT_ID(), 'Designate to process as a standard transfer');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
</pre><br />
<br />
<br />
<pre><br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, '', '');<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(2, LAST_INSERT_ID(), 'Workflow decision - send transfer to quarantine');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @QuarantineMicroServiceChain);<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @SkipQuarantineMicroServiceChain);<br />
INSERT INTO MicroServiceChainChoice (choiceAvailableAtLink, chainAvailable)<br />
VALUES <br />
(@MicroServiceChainLink, @rejectSIPMicroServiceChain);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
set @WorkflowdecisionsendtransfertoquarantineDspace17TransferMagicChainLink = @NextMicroServiceChainLink;<br />
<br />
<br />
<br />
<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(0, @MovetoworkFlowDecisionsquarantineSIPdirectory, 'Move to workFlowDecisions-quarantineSIP directory');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
VALUES (@MicroServiceChainLink, 0, NULL);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
<br />
INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)<br />
VALUES<br />
(NULL, NULL, NULL, FALSE, NULL, NULL, @WorkflowdecisionsendtransfertoquarantineDspace17TransferMagicChainLink, NULL);<br />
INSERT INTO TasksConfigs (taskType, taskTypePKReference, description)<br />
VALUES<br />
(3, LAST_INSERT_ID(), 'Designate to process as a DSpace 1.7 transfer');<br />
INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) <br />
VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink);<br />
set @MicroServiceChainLink = LAST_INSERT_ID();<br />
INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) <br />
VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink);<br />
set @NextMicroServiceChainLink = @MicroServiceChainLink;<br />
</pre><br />
<br />
=Creating a custom microservice=<br />
These will make heavy use of the replacement dics listed [http://archivematica.org/wiki/index.php?title=Creating_Custom_Workflows_0.8_alpha#StandardTasksConfigs_Fields above] in the standard tasks configs arguments. Remember SIP processing workflow, as opposed to Transfer processing, will need to work for all SIPs. If you require metadata to end up in the METS.xml file, or another metadata container in the AIP, we recomend creating a set of tables in the database(That represent a metadata standard), populate the tables during transfer processing, and modifying the create METS script to include your data. There is a handy tool [http://pim.fcla.edu/validate here] for mets validation.<br />
<br />
== Python ==<br />
Most microservices are writen in python. You will probably be able to save some time by writing yours in python, and using functions already available to you. These are generally in the [http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/archivematicaCommon/lib/ archivematicaCommon directory].<br />
Some key reusable code I can think of off the top of my head, is the database interface, and the createEvent function in the databaseFunctions.py file.<br />
<br />
===CreateEvent===<br />
Used to create premis events related to an object in the METS.xml file produced by archivematica.</div>
Joseph