You need to sign in to do that
Don't have an account?
carramrod81
building on leadDuplicatePreventer
I'm using the leadDuplicatePreventer example in the cookbook to prevent a user from duplicating a product/serial number in assets. I've gotten it to work with only checking for unique serial number, but i'm stuck on getting it to check the Product2Id field as well. Could use a helping hand :)
trigger assetPreventDuplicateSerial on Asset (before insert, before update) {
Map<String, Asset> assetMap = new Map< String, Asset>();
for(Asset asset : System.Trigger.new){
if((asset.SerialNumber != null) &&
(System.Trigger.isInsert || (asset.SerialNumber != System.Trigger.oldMap.get(asset.id).SerialNumber))) {
if (assetMap.containsKey(asset.SerialNumber) && assetMap.containsKey(asset.Product2ID)){
asset.SerialNumber.addError('Another Asset has the same serial number');
}
else{
assetMap.put(asset.SerialNumber,asset);
}
}
}
for(Asset asset : [SELECT SerialNumber FROM Asset
WHERE SerialNumber IN :assetMap.KeySet() AND
Asset.Product2Id IN :assetMap.KeySet()]) {
Asset newAsset = assetMap.get(asset.SerialNumber);
newAsset.SerialNumber.addError('An asset with this serial number already exists.');
}
}
trigger assetPreventDuplicateSerial on Asset (before insert, before update) {
Map<String, Asset> assetMap = new Map< String, Asset>();
for(Asset asset : System.Trigger.new){
if((asset.SerialNumber != null) &&
(System.Trigger.isInsert || (asset.SerialNumber != System.Trigger.oldMap.get(asset.id).SerialNumber))) {
if (assetMap.containsKey(asset.SerialNumber) && assetMap.containsKey(asset.Product2ID)){
asset.SerialNumber.addError('Another Asset has the same serial number');
}
else{
assetMap.put(asset.SerialNumber,asset);
}
}
}
for(Asset asset : [SELECT SerialNumber FROM Asset
WHERE SerialNumber IN :assetMap.KeySet() AND
Asset.Product2Id IN :assetMap.KeySet()]) {
Asset newAsset = assetMap.get(asset.SerialNumber);
newAsset.SerialNumber.addError('An asset with this serial number already exists.');
}
}
Xmike
Did you ever get a resolution for this? I do not know enough about the code to help debug, but would love to add the same functionality. If you happen to have working code, please post.