Promoting Document Versions into Documents

Promoting Document Versions into Documents


  1. --The following playbook is a TEMPLATE that you can use to promote all document versions into actual documents.

  2. --When a document has a category, append the folder with the document category ID.
  3. UPDATE 
  4.     __M_Documents_Digital_Files
  5. SET
  6.     --Prepend the Category
  7.     Final_Folder_RelativePath = CONCAT(Final_Folder_RelativePath, Final_DocumentCategory_Id, '\')
  8. FROM
  9.     __M_Documents_Digital_Files V1
  10. WHERE 1=1


  11. --Replace \\ with \
  12. UPDATE
  13.     __M_Documents_Digital_Files
  14. SET
  15.     Final_Folder_RelativePath = REPLACE(Final_Folder_RelativePath, '\\', '\')

  16. select top 100 * from __M_Documents_Digital_Files_Versions

  17. --Update all versions to have a 3-digit version number
  18. UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3
  19. UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3
  20. UPDATE __M_Documents_Digital_Files_Versions SET Final_ReferenceCode = CONCAT('0', Final_ReferenceCode) WHERE LEN(Final_ReferenceCode) < 3


  21. --Create a document entry for each version
  22. INSERT INTO __M_Documents_Digital_Files (
  23. Id, 
  24. Final_Status, 
  25. Final_Parent_Id, 
  26. Final_Parent_Type, 
  27. Final_Folder_RelativePath, 
  28. Final_File_Name, 
  29. Final_File_Extension, 
  30. Final_Created_At, 
  31. Final_Updated_At,

  32. Original_Status, 
  33. Original_Parent_Id, 
  34. Original_Parent_Type, 
  35. Original_Folder_RelativePath, 
  36. Original_File_Name, 
  37. Original_File_Extension, 
  38. Original_Created_At, 
  39. Original_Updated_At
  40. )
  41. SELECT
  42. CONCAT('PROMOTED --- ', Versions.Id),

  43. Files.Final_Status,
  44. Files.Final_Parent_Id, 
  45. Files.Final_Parent_Type, 
  46. Files.Final_Folder_RelativePath, 
  47. CONCAT(Files.Final_File_Name,  '_v', Versions.Final_ReferenceCode),
  48. COALESCE( NULLIF(Versions.Final_File_Extension,''), NULLIF(Files.Final_File_Extension,''), ''),
  49. COALESCE( Versions.Final_Created_At, Files.Final_Created_At),
  50. COALESCE( Versions.Final_Updated_At, Files.Final_Updated_At),

  51. Files.Original_Status,
  52. Files.Original_Parent_Id, 
  53. Files.Original_Parent_Type, 
  54. Files.Original_Folder_RelativePath, 
  55. CONCAT(Files.Original_File_Name,  '_v', Versions.Original_ReferenceCode),
  56. COALESCE( NULLIF(Versions.Original_File_Extension,''), NULLIF(Files.Original_File_Extension,''), ''),
  57. COALESCE( Versions.Original_Created_At, Files.Original_Created_At),
  58. COALESCE( Versions.Original_Updated_At, Files.Original_Updated_At)

  59. FROM
  60. __M_Documents_Digital_Files Files,
  61. __M_Documents_Digital_Files_Versions Versions
  62. WHERE 1=1
  63. AND Files.Id = Versions.Final_DocumentFile_Id
  64. AND Versions.Id NOT LIKE 'PROMOTED --- %'
  65. AND Files.Id NOT LIKE 'PROMOTED --- %'



  66. INSERT INTO __M_Documents_Digital_Files_Versions(
  67. Id, 

  68. Final_Status, 
  69. Final_ReferenceCode, 
  70. Final_DisplayOrder, 
  71. Final_Content_FromPath, 
  72. Final_File_Name, 
  73. Final_File_Extension, 
  74. Final_Created_At, 
  75. Final_Updated_At,
  76. Final_DocumentFile_Id,

  77. Original_Status, 
  78. Original_ReferenceCode, 
  79. Original_DisplayOrder, 
  80. Original_Content_FromPath, 
  81. Original_File_Name, 
  82. Original_File_Extension, 
  83. Original_Created_At, 
  84. Original_Updated_At,
  85. Original_DocumentFile_Id
  86. )
  87. SELECT
  88. CONCAT('PROMOTED --- ', Id),

  89. Final_Status,
  90. Final_ReferenceCode,
  91. Final_DisplayOrder,
  92. Final_Content_FromPath,
  93. Final_File_Name,
  94. Final_File_Extension,
  95. Final_Created_At,
  96. Final_Updated_At,
  97. CONCAT('PROMOTED --- ', Id),

  98. Original_Status,
  99. Original_ReferenceCode,
  100. Original_DisplayOrder,
  101. Original_Content_FromPath,
  102. Original_File_Name,
  103. Original_File_Extension,
  104. Original_Created_At,
  105. Original_Updated_At,
  106. CONCAT('PROMOTED --- ', Id)
  107. FROM
  108. __M_Documents_Digital_Files_Versions
  109. WHERE 1=1
  110. AND Id NOT LIKE 'PROMOTED --- %'



  111. -- Mark all files to be not produced
  112. UPDATE __M_Documents_Digital_Files SET Final_Status = 'Deleted'

  113. -- Mark these clients (6digit) to produce their files (note, original status is used so we  do not produce files that were deleted in netdocs)
  114. -- We can add as many clients to the production as we would like, just replicate the line.
  115. UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '030487 --- %'
  116. UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '064263 --- %'
  117. UPDATE __M_Documents_Digital_Files SET Final_Status = Original_Status WHERE Id like 'PROMOTED --- %' AND Final_Parent_Id LIKE '063990 --- %'

  118. UPDATE __M_Documents_Digital_Files_Versions SET Final_DocumentFile_Id = Id, Original_DocumentFile_Id = Id where Id like 'PROMOTED%'

  119. UPDATE __M_Documents_Digital_Files SET Action_Group = 0, Result_Id = ''
  120. UPDATE __M_Documents_Digital_Files_Versions SET Action_Group = 0, Result_Id = ''

  121. --RESTORE SETTINGS:
  122. --RESTORE TO: \\samds\netdocs\FOR HUMANS
  123. --RESTORE METHOD: By Copying Files
  124. --MATTER PATH TEMPLATE: {Contact_ReferenceCode} --- {Contact_FullName}\{Matter_ReferenceCode} --- {Matter_Subject}