Difference between revisions of "Creating Custom Workflows 0.8 alpha"
Line 1: | Line 1: | ||
[[Main Page]] > [[Development]] > [[Creating Custom Workflows]] | [[Main Page]] > [[Development]] > [[Creating Custom Workflows]] | ||
− | = | + | =Read First= |
=Creating your first workflow= | =Creating your first workflow= | ||
− | Make sure you read the section " | + | Make sure you read the section "Read First" (above) first. |
+ | |||
+ | == The mock situation == | ||
+ | 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). | ||
+ | |||
+ | == To start == | ||
+ | gedit /usr/share/archivematica/mysql | ||
+ | view -> highlight mode -> source -> SQL | ||
+ | |||
+ | I find it easier to work back chronologically. | ||
+ | The chronological order is: | ||
+ | Watched directory watched | ||
+ | Move to processing directory | ||
+ | Remove .bmp files. | ||
+ | Set permissions | ||
+ | Move to regular processing watched directory. | ||
+ | |||
+ | So reverse is: | ||
+ | Move to regular processing watched directory. | ||
+ | Remove .bmp files. | ||
+ | Move to processing directory | ||
+ | Set permissions | ||
+ | Watched directory watched | ||
[http://youtu.be/haotj_NlbX0 video] | [http://youtu.be/haotj_NlbX0 video] | ||
Line 93: | Line 115: | ||
=using choices= | =using choices= | ||
+ | ==Continuing the example using choices == | ||
=using magic links= | =using magic links= |
Revision as of 01:19, 28 February 2012
Main Page > Development > Creating Custom Workflows
Read First
Creating your first workflow
Make sure you read the section "Read First" (above) first.
The mock situation
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).
To start
gedit /usr/share/archivematica/mysql view -> highlight mode -> source -> SQL
I find it easier to work back chronologically. The chronological order is: Watched directory watched Move to processing directory Remove .bmp files. Set permissions Move to regular processing watched directory.
So reverse is: Move to regular processing watched directory. Remove .bmp files. Move to processing directory Set permissions Watched directory watched
- Paths may be different
- patch from video video
Index: src/MCPServer/share/mysql =================================================================== --- src/MCPServer/share/mysql (revision 2328) +++ src/MCPServer/share/mysql (working copy) @@ -2774,12 +2774,62 @@ +-- Move to regular processing watched directory. -- +INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments) + VALUES + (NULL, NULL, NULL, FALSE, NULL, NULL, 'moveTransfer_v0.0', '"%SIPDirectory%" "%sharedPath%watchedDirectories/activeTransfers/standardTransfer/." "%SIPUUID%" "%sharedPath%" "%SIPUUID%" "%sharedPath%"'); +INSERT INTO TasksConfigs (taskType, taskTypePKReference, description) + VALUES + (0, LAST_INSERT_ID(), 'Move to standard transfer directory'); +INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) + VALUES (@microserviceGroup, LAST_INSERT_ID(), NULL); +set @MicroServiceChainLink = LAST_INSERT_ID(); +INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) + VALUES (@MicroServiceChainLink, 0, NULL); +set @NextMicroServiceChainLink = @MicroServiceChainLink; +-- Remove .bmp files. -- +INSERT INTO StandardTasksConfigs (filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments) + VALUES + ('.bmp', NULL, 'objects', TRUE, NULL, NULL, 'remove_v0.0', '"%relativeLocation%"'); +SET @AssignfileUUIDstoobjects = LAST_INSERT_ID(); +INSERT INTO TasksConfigs (taskType, taskTypePKReference, description) + VALUES + (1, @AssignfileUUIDstoobjects, 'Remove .bmp files'); +INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) + VALUES (@microserviceGroup, LAST_INSERT_ID(), @defaultNextChainLink); +set @MicroServiceChainLink = LAST_INSERT_ID(); +INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) + VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink); +set @NextMicroServiceChainLink = @MicroServiceChainLink; +-- Move to processing directory -- +-- move to processing directory -- +INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) + VALUES (@microserviceGroup, @moveToProcessingDirectoryTaskConfig, @defaultNextChainLink); +set @MicroServiceChainLink = LAST_INSERT_ID(); +INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) + VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink); +set @NextMicroServiceChainLink = @MicroServiceChainLink; +-- Set permissions -- +INSERT INTO MicroServiceChainLinks (microserviceGroup, currentTask, defaultNextChainLink) + VALUES (@microserviceGroup, @setFilePermissionsTaskConfig, @defaultNextChainLink); +set @MicroServiceChainLink = LAST_INSERT_ID(); +INSERT INTO MicroServiceChainLinksExitCodes (microServiceChainLink, exitCode, nextMicroServiceChainLink) + VALUES (@MicroServiceChainLink, 0, @NextMicroServiceChainLink); +set @NextMicroServiceChainLink = @MicroServiceChainLink; +/* +Watched directory watched +/var/archivematica/sharedDirectory/watchedDirectories/example1 +*/ +INSERT INTO MicroServiceChains (startingLink, description) VALUES (@MicroServiceChainLink, 'Remove .bmp\'s before processing'); +set @MicroServiceChain = LAST_INSERT_ID(); +INSERT INTO WatchedDirectories (watchedDirectoryPath, chain, expectedType) + VALUES ('%watchDirectoryPath%example1', @MicroServiceChain, @expectedTypeTransfer); @@ -2803,6 +2853,11 @@ + + + + + -- DSPACE TRANSER -- -- transfer processing complete -- SET @microserviceGroup = 'Complete transfer';