Guest User

Untitled

a guest
Oct 19th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. USE [UMBPRM]
  2.  
  3. DECLARE @Num INT
  4. DECLARE @CountSQL NVARCHAR(150)
  5. DECLARE @CountOUTSQL NVARCHAR(150)
  6. DECLARE @Where NVARCHAR(250)
  7. DECLARE @Object NVARCHAR(150)
  8. DECLARE @DelObject NVARCHAR(150)
  9. DECLARE @SQL NVARCHAR(800)
  10. DECLARE db_cursor CURSOR FOR
  11. SELECT Name
  12. FROM SALESFORCE...sys_sfobjects
  13. WHERE LTRIM(RTRIM(Deletable)) = 'true' AND LTRIM(RTRIM(Queryable)) = 'true' ORDER BY Name DESC
  14.  
  15. OPEN db_cursor
  16. FETCH NEXT FROM db_cursor INTO @Object
  17.  
  18. WHILE @@FETCH_STATUS = 0
  19. BEGIN
  20. PRINT 'Processing ' + @Object
  21.  
  22. SET @DelObject = @Object + '_Delete'
  23.  
  24. -----------------------------------------------------
  25. -- DROP OLD TABLES
  26. -----------------------------------------------------
  27. SET @SQL = 'IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo'' AND TABLE_NAME = ''' + @DelObject + '''))
  28. BEGIN
  29. DROP TABLE ' + @DelObject + '
  30. END'
  31.  
  32. PRINT 'Dropping old table'
  33. EXEC (@SQL)
  34.  
  35. -----------------------------------------------------
  36. -- GENERATE LOAD TABLE FOR BULK INSERT & DELETE
  37. -----------------------------------------------------
  38. SET @SQL = 'EXEC sf_generate ''Delete'', ''SALESFORCE'', ''' + @DelObject + ''''
  39.  
  40. PRINT 'Generating load table'
  41. EXEC (@SQL)
  42.  
  43. -- OBJECTS IGNORED AND WHY
  44. -- ContentDocumentLink: Implementation restriction: ContentDocumentLink requires a filter by a single Id, ContentDocumentId or LinkedEntityId using the equals operator
  45. -- Vote: Implementation restriction: When querying the Vote object, you must filter using the following syntax: ParentId = [single ID], Parent.Type = [single Type], Id = [single ID], or Id IN [list of ID's].
  46.  
  47. -- CHECK IF ID COLUMN EXISTS
  48. IF (COL_LENGTH(@DelObject,'Id') IS NOT NULL) AND (@Object NOT IN ('ContentDocumentLink', 'Vote'))
  49. BEGIN
  50.  
  51. -----------------------------------------------------
  52. -- INSERT ALL DATA FROM SF INTO LOCAL DEL TABLE
  53. -----------------------------------------------------
  54. IF (@Object = 'Case')
  55. BEGIN
  56. SET @Object = '[' + @Object + ']'
  57. END
  58.  
  59. IF (@Object = 'Group')
  60. BEGIN
  61. SET @Object = '[' + @Object + ']'
  62. END
  63.  
  64. SET @SQL = 'INSERT INTO ' + @DelObject + ' (Id)
  65. SELECT Id FROM SALESFORCE...' + @Object
  66.  
  67. PRINT 'Populating load table'
  68. EXEC (@SQL)
  69.  
  70. IF (@Object = '[Case]')
  71. BEGIN
  72. SET @Object = REPLACE(REPLACE(@Object, '[', ''), ']', '')
  73. END
  74.  
  75. IF (@Object = '[Group]')
  76. BEGIN
  77. SET @Object = REPLACE(REPLACE(@Object, '[', ''), ']', '')
  78. END
  79.  
  80. SET @CountSQL = N'SELECT @NumOUT = COUNT(*) FROM ' + @DelObject
  81. SET @CountOUTSQL = N'@NumOUT INT OUTPUT'
  82.  
  83. EXEC sp_executesql
  84. @CountSQL,
  85. @CountOUTSQL,
  86. @NumOUT=@Num OUTPUT
  87.  
  88. IF (@Num IS NOT NULL) AND (@Num > 0)
  89. BEGIN
  90. -----------------------------------------------------
  91. -- EXECUTE DELETION
  92. -----------------------------------------------------
  93. IF (@Object = 'Account')
  94. BEGIN
  95. SET @SQL = 'DELETE FROM SALESFORCE...' + @Object + ' WHERE Name <> ''GBHEM Constituent'''
  96. END
  97. ELSE
  98. BEGIN
  99. SET @SQL = 'EXEC SF_BulkOps ''HardDelete:bulkapi'', ''SALESFORCE'', ''' + @DelObject + ''''
  100. END
  101.  
  102. PRINT 'Deleting records : ' + @SQL
  103. EXEC (@SQL)
  104.  
  105. -----------------------------------------------------
  106. -- VERIFY
  107. -----------------------------------------------------
  108. SET @SQL = 'IF(NOT EXISTS (SELECT * FROM ' + @DelObject + ' WHERE LTRIM(RTRIM(Error)) <> ''Operation Successful.''))
  109. BEGIN
  110. PRINT ''ERROR: ' + @DelObject + '''
  111. END'
  112.  
  113. PRINT 'Verifying deletion'
  114. EXEC (@SQL)
  115. END
  116. ELSE
  117. BEGIN
  118. PRINT 'No records to delete'
  119. END
  120. END
  121.  
  122. FETCH NEXT FROM db_cursor INTO @Object
  123. END
  124.  
  125. CLOSE db_cursor
  126. DEALLOCATE db_cursor
  127.  
  128. INSERT INTO SALESFORCE...Global_App_Settings__c
  129. (Developers_Chatter_Group_Default_Member__c, Developers_Chatter_Group_Name__c) VALUES
  130. ('rassad.sfadmin@gbhem.org.qa', 'Developers')
Add Comment
Please, Sign In to add comment