Здравствуйте! Я только начал изучать salesforce и столкнулся с вопросом как удалить запись по значению из поля? Я написал простой метод deleteRecord(), где записи удаляются по конкретному значению, а как его переделать в соответствии с вопросом? Объясните, пожалуйста. Спасибо.
public class StockController
{
public List<Stock__c> stocks {get; set;}
public Stock__c newItem {get;set;}
public Stock__c delItem{get;set;}
public StockController(){
this.newItem = new Stock__c();
this.refreshStocks();
}
public PageReference refreshStocks() {
this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
LIMIT 1000];
return null;
}
public PageReference save() {
insert this.newItem;
this.newItem = new Stock__c();
this.refreshStocks();
return null;
}
public PageReference sortByName() {
this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
ORDER BY Name
LIMIT 1000];
return null;
}
public PageReference sortByAmount(){
this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
ORDER BY StockAmount__c
LIMIT 1000];
return null;
}
public void deleteRecord(){
delItem = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
WHERE Name = 'erfe'
];
delete delItem;
this.refreshStocks();
}
}
Много не совсем понятного кода! Если вы еще не проходили обучение на игровой площадке Trailhead, то советую пройти, там такие вопросы будут разобраны. И нужно повнимательнее искать информацию, в этом форуме такие вопросы уже разбирались ранее и есть много почти готовых решений. Можете попробовать вариант предложенный ниже. Если это поможет то попробуйте разобраться что делает данный код.
public class StockController {
public List<Stock__c> stocks{get;set;}
public String SelectedProductId { get; set; }
private void LoadData() {
stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
LIMIT 10000];
}
public void DeleteRowProduct(){
if (SelectedProductId == null) {
return;
}
Stock__c tobeDeleted = null;
for(Stock__c a : stocks)
if (a.Id == SelectedProductId) {
tobeDeleted = a;
break;
}
if (tobeDeleted != null) {
Delete tobeDeleted;
}
LoadData();
}
}