Guest User

Untitled

a guest
Oct 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. USE [UMBPRM]
  2.  
  3. -- ##################################################
  4. -- Rocky Assad (running time : 4 minutes)
  5. -- 1/2/2012
  6. -- Purpose: Migrate chaplains
  7. -- Note: All load tables are cleaned up only if
  8. -- the script completes. If it fails, you may have
  9. -- to manually delete the tables priop to exec the
  10. -- script again. It all depends on where it stopped.
  11. -- ##################################################
  12.  
  13. PRINT '### Migrate chaplains - START ###'
  14.  
  15. -----------------------------------------------------
  16. -- LOCAL VARS
  17. -----------------------------------------------------
  18. DECLARE @OrgNames TABLE
  19. (
  20. OldName VARCHAR(200),
  21. NewName VARCHAR(200),
  22. PersonId INT
  23. )
  24. DECLARE @LocalContacts TABLE
  25. (
  26. Id VARCHAR(25),
  27. GBHEM_DataCenter_Person_ID__c VARCHAR(25)
  28. )
  29. DECLARE @LocalAccounts TABLE
  30. (
  31. Id VARCHAR(25),
  32. Name VARCHAR(255),
  33. Status__c VARCHAR(255)
  34. )
  35. DECLARE @RecordTypeId VARCHAR(25)
  36. DECLARE @RecordTypeId_Default VARCHAR(25)
  37.  
  38. SET @RecordTypeId_Default = (SELECT Id FROM SALESFORCE...RecordType WHERE SObjectType = 'Account' AND Name = 'Default')
  39. SET @RecordTypeId = (SELECT Id FROM SALESFORCE...RecordType WHERE Name = 'Chaplain Positions' AND SObjectType = 'Position__c')
  40.  
  41. INSERT INTO @OrgNames
  42. SELECT DISTINCT Organization, [Value], Person_Id FROM RDS_Boardwide_Clean_OrgNames
  43.  
  44. INSERT INTO @LocalAccounts
  45. SELECT Id, Name, Status__c FROM SALESFORCE...Account WHERE RecordTypeId = @RecordTypeId_Default
  46.  
  47. INSERT INTO @LocalContacts
  48. SELECT Id, GBHEM_DataCenter_Person_ID__c FROM SALESFORCE...Contact WHERE GBHEM_DataCenter_Person_ID__c IN (SELECT person_id FROM chaplain)
  49.  
  50. -----------------------------------------------------
  51. -- DROP LOAD TABLES IF ALREADY EXISTS
  52. -----------------------------------------------------
  53. IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Position__c_Load'))
  54. BEGIN
  55. DROP TABLE Position__c_Load
  56. END
  57.  
  58. IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Position__c_Delete'))
  59. BEGIN
  60. DROP TABLE Position__c_Delete
  61. END
  62.  
  63. IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Account_Load'))
  64. BEGIN
  65. DROP TABLE Account_Load
  66. END
  67.  
  68. IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Account_Delete'))
  69. BEGIN
  70. DROP TABLE Account_Delete
  71. END
  72.  
  73. -----------------------------------------------------
  74. -- GENERATE LOAD TABLE FOR BULK INSERT & DELETE
  75. -----------------------------------------------------
  76. EXEC sf_generate 'Insert', 'SALESFORCE', 'Position__c_Load'
  77. EXEC sf_generate 'Delete', 'SALESFORCE', 'Position__c_Delete'
  78. EXEC sf_generate 'Insert', 'SALESFORCE', 'Account_Load'
  79. EXEC sf_generate 'Delete', 'SALESFORCE', 'Account_Delete'
  80.  
  81. -----------------------------------------------------
  82. -- DROP PROBLEM COLUMNS (NON-NULLS)
  83. -----------------------------------------------------
  84. ALTER TABLE Position__c_Load
  85. DROP COLUMN OwnerId
  86.  
  87. ALTER TABLE Account_Load
  88. DROP COLUMN UM_Study__pc, OwnerId, Advance_Course_Of_Study__pc, Course_of_Study__pc
  89.  
  90. -----------------------------------------------------
  91. -- COMPARE LOAD TABLE WITH SF OBJECT
  92. -----------------------------------------------------
  93. EXEC SF_ColCompare 'Insert', 'SALESFORCE', 'Position__c_Load'
  94. EXEC SF_ColCompare 'Delete', 'SALESFORCE', 'Position__c_Delete'
  95. EXEC SF_ColCompare 'Insert', 'SALESFORCE', 'Account_Load'
  96. EXEC SF_ColCompare 'Delete', 'SALESFORCE', 'Account_Delete'
  97.  
  98. -----------------------------------------------------
  99. -- INSERT ALL CONTACTS FROM SF INTO LOCAL DEL TABLE
  100. -----------------------------------------------------
  101. INSERT INTO Position__c_Delete (Id)
  102. SELECT Id FROM SALESFORCE...Position__c WHERE RecordTypeId = @RecordTypeId
  103.  
  104. INSERT INTO Account_Delete (Id)
  105. SELECT Id FROM SALESFORCE...Account WHERE Migration_Key__c = 'positions.chaplain'
  106.  
  107. -----------------------------------------------------
  108. -- DELETE ALL FROM SF
  109. -----------------------------------------------------
  110. EXEC SF_BulkOps 'Delete', 'SALESFORCE', 'Position__c_Delete'
  111. EXEC SF_BulkOps 'Delete', 'SALESFORCE', 'Account_Delete'
  112.  
  113. -----------------------------------------------------
  114. -- INSERT
  115. -----------------------------------------------------
  116. INSERT INTO Account_Load (Name, RecordTypeId, Migration_Key__c, Status__c)
  117. select
  118. distinct organization AS Name,
  119. @RecordTypeId_Default AS RecordTypeId,
  120. 'positions.chaplain' AS Migration_Key__c,
  121. 'Active' AS Status__c
  122. from
  123. chaplain
  124. where
  125. organization is not null
  126. and
  127. organization <> ''
  128. and
  129. organization not in (select distinct a.name from @LocalAccounts a)
  130.  
  131. EXEC SF_BulkOps 'Insert', 'SALESFORCE', 'Account_Load'
  132.  
  133. DELETE FROM @LocalAccounts
  134. INSERT INTO @LocalAccounts
  135. SELECT Id, Name, Status__c FROM SALESFORCE...Account WHERE RecordTypeId = @RecordTypeId_Default
  136.  
  137. INSERT INTO Position__c_Load (Contact__c, Position_Title__c, Preferred_Title__c, Start_Date__c, RecordTypeId, Organization_Name__c, Employment_Status__c)
  138. SELECT
  139. C.Id AS Contact__c,
  140.  
  141. CASE
  142. WHEN ((ENDORSEMENT = 1 AND SETTING IN ('PC', 'PO', 'PR', 'SP')) OR (SETTING IN ('CH', 'CPE','GH','HO','LC','MFT','MH','RC','SA','VA','WP'))) THEN 'Civilian Endorsement'
  143. WHEN (((APPROVAL = 1 AND SETTING IN ('PO', 'SP', 'PC', 'PR')) OR (SETTING IN ('CAP', 'FI', 'TIMS')) OR (SETTING IN ('AR', 'NA') AND SETTING_STATUS = 'Vol'))) THEN 'Civilian Approval'
  144. WHEN ((SETTING IN ('AF', 'AR', 'NA') AND (SETTING_STATUS IN ('Active', 'Pending FT', 'Pending PT', 'Reserve', 'Guard', 'Applicant', 'Inactive') OR (SETTING_STATUS IS NULL)))) THEN 'Military Endorsement'
  145. WHEN (SETTING IN ('CC/AF', 'CC/AR', 'CC/NA')) THEN 'Military Chaplain Candidate'
  146. END AS Position_Title__c,
  147. LTRIM(RTRIM(ISNULL(B.POSITION_TITLE, ''))) AS Preferred_Title__c,
  148. A.EMPLOY_DATE AS Start_Date__c,
  149. @RecordTypeId AS RecordTypeId,
  150. D.Id AS Organization_Name__c,
  151. CASE
  152. WHEN (SETTING IN ('AF', 'AR', 'NA'))THEN
  153. (CASE
  154. WHEN SETTING_STATUS = 'Full' THEN 'Full Time'
  155. WHEN SETTING_STATUS = 'Part' THEN 'Part Time'
  156. WHEN SETTING_STATUS = 'Pend' THEN 'Pending'
  157. WHEN SETTING_STATUS = 'Pend-FT' THEN 'Pending Full Time'
  158. WHEN SETTING_STATUS = 'Pend-PT' THEN 'Pending Part Time'
  159. WHEN SETTING_STATUS = 'Vol' THEN 'Volunteer'
  160. END)
  161. END AS Employment_Status__c
  162. FROM
  163. CHAPLAIN_SETTING A
  164. JOIN CHAPLAIN B ON A.PERSON_ID = B.PERSON_ID
  165. JOIN @LocalContacts C ON A.person_id = C.GBHEM_DataCenter_Person_ID__c
  166. LEFT JOIN @LocalAccounts D ON B.organization = D.Name
  167.  
  168. -----------------------------------------------------
  169. -- INSERT
  170. -----------------------------------------------------
  171. EXEC SF_BulkOps 'Insert', 'SALESFORCE', 'Position__c_Load'
  172.  
  173. -----------------------------------------------------
  174. -- CLEAN UP
  175. -----------------------------------------------------
  176. IF(NOT EXISTS (SELECT * FROM Position__c_Load WHERE LTRIM(RTRIM(Error)) <> 'Operation Successful.'))
  177. BEGIN
  178. DROP TABLE Position__c_Load
  179. END
  180.  
  181. IF(NOT EXISTS (SELECT * FROM Position__c_Delete WHERE LTRIM(RTRIM(Error)) <> 'Operation Successful.'))
  182. BEGIN
  183. DROP TABLE Position__c_Delete
  184. END
  185.  
  186. PRINT '### Migrate chaplains - END ###'
  187.  
  188. EXEC roc_GrowlNotify 'Migration', 1, 'R002000', 0, 'positions_chaplain.sql'
Add Comment
Please, Sign In to add comment