Last active
July 15, 2019 09:49
-
-
Save 402332509/0f96ff386348f1dea545bd3a98021947 to your computer and use it in GitHub Desktop.
Truly delete all Apex logs in your org.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var loadScript = (src)=>{ | |
return new Promise( (resolve, reject)=>{ | |
var script = document.createElement('script'); | |
script.type = 'text/javascript'; | |
script.src = src; | |
script.onload = resolve; | |
script.onerror = reject; | |
document.head.appendChild(script); | |
} ); | |
} | |
var loadScripts = (urls)=>{ | |
return Promise.all(urls.map(url=>{return loadScript(url);})); | |
} | |
var queryRows = async (query)=>{ | |
return new Promise ((resolve,reject)=>{ | |
sforce.connection.query(query,{ | |
onSuccess: resolve, | |
onFailure: reject, | |
} ); | |
}); | |
} | |
var queryMoreRows = async (queryLocator)=>{ | |
return new Promise((resolve, reject)=>{ | |
sforce.connection.queryMore(queryLocator, { | |
onSuccess: resolve, | |
onFailure: reject, | |
}); | |
}); | |
} | |
var queryLogs = async (query)=>{ | |
console.log(query); | |
var logs= []; | |
result = await queryRows(query); | |
console.log(result); | |
result.records.map(row=>logs.push({ | |
Id: row.Id | |
})); | |
while(result.queryLocator){ | |
result = await queryMoreRows(result.queryLocator); | |
console.log(result); | |
result.records.map(row=>logs.push({ | |
Id: row.Id | |
})); | |
} | |
return logs; | |
} | |
var deleteLog = (id)=>{ | |
return axios.delete(`/services/data/v44.0/sobjects/ApexLog/${id}`,{ | |
headers: {'Authorization': 'Bearer ' + sforce.connection.sessionId}, | |
}); | |
} | |
var chunk = (arr, count) => { | |
var newArray = []; | |
while (arr.length > 0) { | |
newArray.push(arr.splice(0, count)); | |
} | |
return newArray; | |
} | |
loadScripts([ | |
'/soap/ajax/44.0/connection.js', | |
'https://unpkg.com/axios/dist/axios.min.js' | |
]) | |
.then(()=>{ | |
sforce.connection.sessionId = window.getCookie('sid'); | |
console.log(sforce.connection.sessionId); | |
var apexlogs = []; | |
var query = ` | |
select Id from ApexLog | |
`; | |
(async (query)=>{ | |
var result = await queryLogs(query); | |
console.log(result); | |
var acc = 0 ; | |
total = result.length; | |
chunk(result,50).reduce((promise,chunk)=>{ | |
return promise.then(response=>{ | |
acc += chunk.length; | |
console.log('deleted ', acc, '/', total, chunk); | |
return Promise.all(chunk.map(row=>{ | |
return deleteLog(row.Id); | |
})); | |
}); | |
},Promise.resolve()); | |
})(query); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
登录后在任意SF页面将代码粘贴到 chrome console 里运行即可