public class EmployeeTriggerHandler extends TriggerHandler {
public override void BeforeInsert(List<SObject> newList) {
// 対象データを取得する
List<Employee__c> employeeList = (List<Employee__c>)newList;
// アドレス設定
addressSetting(employeeList);
}
public override void BeforeUpdate(Map<Id, SObject> oldMap, Map<Id, SObject> newMap) {
// 対象データを取得する
List<Employee__c> employeeList = (List<Employee__c>)newMap.values();
// アドレス設定
addressSetting(employeeList);
}
private void addressSetting(List<Employee__c> employeeList) {
// 関連の住所コードを取得する
Set<String> addressCDSet = new Set<String>();
for (Employee__c item : employeeList){
If (!String.IsBlank(item.AddressCD__c)) {
addressCDSet.add(item.AddressCD__c);
}
}
// 住所マスタから住所情報を取得する
List<AddressMaster__c> addressMasterList = [select id,Name, Address__c from AddressMaster__c where Name IN :addressCDSet];
// 住所コードマップ作成(マップ<住所コード,住所詳細>)
Map<String, String> mapAddress = new Map<String, String>();
for (AddressMaster__c item : addressMasterList) {
mapAddress.put(item.name, item.Address__c);
}
// 社員マスタの住所1を設定する
for (Employee__c item : employeeList){
if (!String.IsBlank(item.AddressCD__c)) {
if (mapAddress.containsKey(item.AddressCD__c)) {
item.Address1__c = mapAddress.get(item.AddressCD__c);
} else {
item.Address1__c.adderror('関連の住所コードが存在しません。');
}
}
}
}
}
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme