Promoting Document Versions into Documents
- --The following playbook is a TEMPLATE that you can use to promote all document versions into actual documents.
- --When a document has a category, append the folder with the document category ID.
- UPDATE
- __M_Documents_Digital_Files
- SET
- --Prepend the Category
- Final_Folder_RelativePath = CONCAT(Final_Folder_RelativePath, Final_DocumentCategory_Id, '\')
- FROM
- __M_Documents_Digital_Files V1
- WHERE 1=1
- --Replace \\ with \
- UPDATE
- __M_Documents_Digital_Files
- SET
- Final_Folder_RelativePath = REPLACE(Final_Folder_RelativePath, '\\', '\')
- select top 100 * from __M_Documents_Digital_Files_Versions
- --Update all versions to have a 3-digit version number
- UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3
- UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3
- UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3
- --Create a document entry for each version
- INSERT INTO __M_Documents_Digital_Files (
- Id,
- Final_Status,
- Final_Parent_Id,
- Final_Parent_Type,
- Final_Folder_RelativePath,
- Final_File_Name,
- Final_File_Extension,
- Final_Created_At,
- Final_Updated_At,
- Original_Status,
- Original_Parent_Id,
- Original_Parent_Type,
- Original_Folder_RelativePath,
- Original_File_Name,
- Original_File_Extension,
- Original_Created_At,
- Original_Updated_At
- )
- SELECT
- CONCAT('PROMOTED --- ', Versions.Id),
- Files.Final_Status,
- Files.Final_Parent_Id,
- Files.Final_Parent_Type,
- Files.Final_Folder_RelativePath,
- CONCAT(Files.Final_File_Name, '_v', Versions.Final_ReferenceCode),
- COALESCE( NULLIF(Versions.Final_File_Extension,''), NULLIF(Files.Final_File_Extension,''), ''),
- COALESCE( Versions.Final_Created_At, Files.Final_Created_At),
- COALESCE( Versions.Final_Updated_At, Files.Final_Updated_At),
- Files.Original_Status,
- Files.Original_Parent_Id,
- Files.Original_Parent_Type,
- Files.Original_Folder_RelativePath,
- CONCAT(Files.Original_File_Name, '_v', Versions.Original_ReferenceCode),
- COALESCE( NULLIF(Versions.Original_File_Extension,''), NULLIF(Files.Original_File_Extension,''), ''),
- COALESCE( Versions.Original_Created_At, Files.Original_Created_At),
- COALESCE( Versions.Original_Updated_At, Files.Original_Updated_At)
- FROM
- __M_Documents_Digital_Files Files,
- __M_Documents_Digital_Files_Versions Versions
- WHERE 1=1
- AND Files.Id = Versions.Final_DocumentFile_Id
- AND Versions.Id NOT LIKE 'PROMOTED --- %'
- AND Files.Id NOT LIKE 'PROMOTED --- %'
- INSERT INTO __M_Documents_Digital_Files_Versions(
- Id,
- Final_Status,
- Final_ReferenceCode,
- Final_DisplayOrder,
- Final_Content_FromPath,
- Final_File_Name,
- Final_File_Extension,
- Final_Created_At,
- Final_Updated_At,
- Final_DocumentFile_Id,
- Original_Status,
- Original_ReferenceCode,
- Original_DisplayOrder,
- Original_Content_FromPath,
- Original_File_Name,
- Original_File_Extension,
- Original_Created_At,
- Original_Updated_At,
- Original_DocumentFile_Id
- )
- SELECT
- CONCAT('PROMOTED --- ', Id),
- Final_Status,
- Final_ReferenceCode,
- Final_DisplayOrder,
- Final_Content_FromPath,
- Final_File_Name,
- Final_File_Extension,
- Final_Created_At,
- Final_Updated_At,
- CONCAT('PROMOTED --- ', Id),
- Original_Status,
- Original_ReferenceCode,
- Original_DisplayOrder,
- Original_Content_FromPath,
- Original_File_Name,
- Original_File_Extension,
- Original_Created_At,
- Original_Updated_At,
- CONCAT('PROMOTED --- ', Id)
- FROM
- __M_Documents_Digital_Files_Versions
- WHERE 1=1
- AND Id NOT LIKE 'PROMOTED --- %'
- -- Mark all files to be not produced
- UPDATE __M_Documents_Digital_Files SET Final_Status = 'Deleted'
- -- Mark these clients (6digit) to produce their files (note, original status is used so we do not produce files that were deleted in netdocs)
- -- We can add as many clients to the production as we would like, just replicate the line.
- UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '030487 --- %'
- UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '064263 --- %'
- UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '063990 --- %'
- UPDATE __M_Documents_Digital_Files_Versions SET Final_DocumentFile_Id = Id, Original_DocumentFile_Id = Id where Id like 'PROMOTED%'
- UPDATE __M_Documents_Digital_Files SET Action_Group = 0, Result_Id = ''
- UPDATE __M_Documents_Digital_Files_Versions SET Action_Group = 0, Result_Id = ''
- --RESTORE SETTINGS:
- --RESTORE TO: \\samds\netdocs\FOR HUMANS
- --RESTORE METHOD: By Copying Files
- --MATTER PATH TEMPLATE: {Contact_ReferenceCode} --- {Contact_FullName}\{Matter_ReferenceCode} --- {Matter_Subject}