Сообщения

Сообщения за январь, 2013

Первое приложение на salesforce - библиотека

Чтобы охватить все основы программирования в salesforce давайте сделаем первое рабочее приложение. Практической пользы оно иметь наверное не будет, но на его основе я постараюсь охватить все стороны практической работы с платформой. Тем более мне так проще будет последовательно затронуть все моменты, о которых я пытаюсь написать в отдельных статьях. По мере продвижения вперед приложение будет усложнятся и обрастать новыми возможностями. Точно по такому же пути идет и сам salesforce, предлагая новичкам замечательный workbook . Так что любителей английского отправляю к документации. Ну а те, кто хочет почитать о личном опыте и потолковать об этом, задать вопросы прошу читать дальше. Подробнее об этом и еще больше здесь

Условный вывод информации на Visualforce странице (rendered attribute)

Сразу начну с небольшого рассуждения. Согласно требованиям salesforce, для создания Visualforce page нужно максимально использовать собственные теги <apex: ...></apex:...>. Список этих тегов достаточно внушительный и они позволяют перекрыть все потребности программиста и верстальщика. Но как показывает практика даже программисты с опытом не знают всех apex тегов, тем более что говорить про верстальщиков, привыкших работать с html. Поэтому я советую, использовать теги apex только при необходимости получить нужный функционал от salesforce. Впоследствии это очень помогает, если появится необходимость допилить страницу с помощью javascript или jquery.

Testing apex code - создание тест методов

Изображение
Написание тест методов в Salesforce занимает важное место не только потому что так надо или просит заказчик. Потому что без минимального покрытия кода тестами вы не сможете запаковать ваш код в пакет или перенести код с development org на production org. Минимальное покрытие кода составляет 75%, хотя надо стремиться к совершенству. Написание тестов по сложности можно сопоставить с написанием самого приложения, а порой и выше. Есть много особенностей, без знания которых трудно будет написать тесты быстро. Тест методы можно размещать как в самом классе с тестируемым кодом, так и в отдельном тестовом классе.

Удобная навигация (приемчики в работе)

Изображение
Хочу показать несколько полезных приемов, которые помогают мне ускорить свою работу.

Redirect на стороне контроллера

Редирект на стороне контроллера можно выполнить с помощью класса PageReference. Для начала необходимо получить экземпляр данного класса с указанием страницы, куда мы хотим перейти. Сделать это можно следующими способами:

Работа с GET параметрами в контроллере

Чтобы получить доступ к GET параметрам, которые пришли на страницу нужно воспользоваться замечательных классом PageReference. Среди прочих вкусностей он предоставляет метод getParameters, который возвращает map параметров. Получить объект PageReference текущей страницы можно так - ApexPages.currentPage(). А теперь все это только короче:

Salesforce debugger - отладка кода

Изображение
Salesforce предоставляет разработчику ряд инструментов для отладки приложения. Здесь я покажу как я пользуюсь этими инструментами, распишу ряд методик, которые выработал для себя. Кому интересно почитать первоисточник прощу сюда  Understanding the Debug Log

Контекст триггера - trigger runtime context

Класс System.Trigger предоставляет возможность получить доступ к контексту выполнения. Ниже приведен список переменных и коллекций, без использования которых работа любого триггера невозможна.

Apex Trggers - проверка предыдущего значения поля при изменении записи

Apex trigger предоставляет замечательную возможность узнать предыдущее значение поля при изменении записи. Часто приходится сталкиваться с необходимостью узнать какое значение содержалось в базе данных при изменении значения конкретного поля в записи или отследить факт изменения поля при попытке сохранить запись в базе данных