public class CaseHelper {
public static List<String> getOpenCasesWithAccountPhone() {
List<String> result = new List<String>();
// Query open Case records, sorted by LastModifiedDate in descending order, limited to 100 records
List<Case> openCases = [
SELECT Subject, Account.Phone
FROM Case
WHERE Status = 'Open'
ORDER BY LastModifiedDate DESC
LIMIT 100
];
// Process each case and format the output
for (Case c : openCases) {
String accountPhone;
if (c.Account == null) {
accountPhone = 'No Account';
} else if (c.Account.Phone == null) {
accountPhone = 'No Phone';
} else {
accountPhone = c.Account.Phone;
}
result.add('Case Subject: ' + c.Subject + ', Account Phone: ' + accountPhone);
}
return result;
}
}
cHVibGljIGNsYXNzIENhc2VIZWxwZXIgewogICAgcHVibGljIHN0YXRpYyBMaXN0PFN0cmluZz4gZ2V0T3BlbkNhc2VzV2l0aEFjY291bnRQaG9uZSgpIHsKICAgICAgICBMaXN0PFN0cmluZz4gcmVzdWx0ID0gbmV3IExpc3Q8U3RyaW5nPigpOwoKICAgICAgICAvLyBRdWVyeSBvcGVuIENhc2UgcmVjb3Jkcywgc29ydGVkIGJ5IExhc3RNb2RpZmllZERhdGUgaW4gZGVzY2VuZGluZyBvcmRlciwgbGltaXRlZCB0byAxMDAgcmVjb3JkcwogICAgICAgIExpc3Q8Q2FzZT4gb3BlbkNhc2VzID0gWwogICAgICAgICAgICBTRUxFQ1QgU3ViamVjdCwgQWNjb3VudC5QaG9uZSAKICAgICAgICAgICAgRlJPTSBDYXNlIAogICAgICAgICAgICBXSEVSRSBTdGF0dXMgPSAnT3BlbicgCiAgICAgICAgICAgIE9SREVSIEJZIExhc3RNb2RpZmllZERhdGUgREVTQyAKICAgICAgICAgICAgTElNSVQgMTAwCiAgICAgICAgXTsKCiAgICAgICAgLy8gUHJvY2VzcyBlYWNoIGNhc2UgYW5kIGZvcm1hdCB0aGUgb3V0cHV0CiAgICAgICAgZm9yIChDYXNlIGMgOiBvcGVuQ2FzZXMpIHsKICAgICAgICAgICAgU3RyaW5nIGFjY291bnRQaG9uZTsKCiAgICAgICAgICAgIGlmIChjLkFjY291bnQgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgYWNjb3VudFBob25lID0gJ05vIEFjY291bnQnOwogICAgICAgICAgICB9IGVsc2UgaWYgKGMuQWNjb3VudC5QaG9uZSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBhY2NvdW50UGhvbmUgPSAnTm8gUGhvbmUnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYWNjb3VudFBob25lID0gYy5BY2NvdW50LlBob25lOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXN1bHQuYWRkKCdDYXNlIFN1YmplY3Q6ICcgKyBjLlN1YmplY3QgKyAnLCBBY2NvdW50IFBob25lOiAnICsgYWNjb3VudFBob25lKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9Cn0K