Вам нужно будет проанализировать CSV, чтобы извлечь из него данные. Чтобы сделать это проще, вы можете использовать этот простой класс синтаксического анализатора CSV, написанный Николасом Галлером . Посмотрите код, чтобы понять, как он работает, но все, что вы будете использовать, - это конструктор и метод readLine()
, который возвращает список значений из каждой строки вашего CSV в виде строк. Вам нужно будет скопировать и вставить код из этой ссылки в апекс-класс с именем «SSSCsvReader», чтобы иметь возможность использовать его, тогда в вашем коде вы будете ...
1. получите статический CSV-ресурс в виде строки
StaticResource sr = [SELECT ID, body FROM StaticResource WHERE Name = 'EMailServicesLead' LIMIT 1];
String csvData = sr.body.toString();
2. Создайте экземпляр SSSCsvReader
, вызвав конструктор, передающий в качестве аргумента строку CSV (и, необязательно, второй аргумент разделителя, но запятая используется по умолчанию)
SSSCsvReader csvR = new SSSCsvReader(csvData);
3. Используйте readLine()
на вашем объекте SSSCsvReader , чтобы получить значения полей CSV в списке строк. (если в вашем файле есть строка заголовка, не забудьте сначала удалить его, один раз вызвав readLine()
, прежде чем получить список данных).
csvR.readLine() //Removing header (optional)
String[] line = csvR.readLine();
if(line == null){return null} //No line in the file or there was no header so return
4. Присвойте каждое поле в возвращаемом списке от readLine()
соответствующему полю в вашем объекте продаж.
Lead l = new Lead();
l.firstName = line[0]; //If your file is laid out like you said FirstName will be index [0]
l.lastName = line[1]; //LastName will be index [1]
.... //And so on
....
....
И у вас есть объект Lead с полями из файла статических ресурсов CSV. Если у вас больше строк в CSV и вы хотите создать много отведений, чем просто настроить цикл while, который получает каждую строку из CSV с помощью readLine()
, создайте новое отведение из этой строки и добавьте его в список.