App Customization Specialist Trailhead's Superbadge - VarLev/Salesforce GitHub Wiki

Подготовка

Устанавливаем новый playground

Сбрасываем пароль Setup -> Users -> Users

Переходим по ссылке в письме и создаем новый пароль Скачиваем и устанавливаем unmanaged package используя логин с паролем, который только что создали.

1. Create record type and access rights

Setup -> Object Manager-> Account -> Field and Relationship -> New Выбираем тип данных piklist Открываем только что созданное поле, и проставляем значение default Переходим в настройки Page layout и создаем новое представление с именем Volunteer Organization Account Page Layout Переходим в Compact Layout создаем представление с именем Volunteer Organization Account compact layout Переходим в Record Types и создаем новый с именем Volunteer Organization Account Переходим в Compact Layaut и жмем на Compact Layout Assignment далее проставляем значения Переходим в Permission Sets, создаем новый с именем Volunteerism Board Заходим в Object Settings и в Accounts настраиваем Volunteer Organization Status

2. Create app fields

Setup -> Object Manager -> Volunteer Shift Worker -> Fild and Relationship -> New Создаем поле Master-Detail c именем Volunteer Shift и привязываемся к Volunteer Shift Создаем поле Lookup с именем Volunteer и привязываемся к User Создаем поле Piklist с именем Status и списком:

  • Unconfirmed
  • Pending Approval
  • Confirmed
  • Completed
  • No-Show
  • Canceled Unconfirmed - ставим по умолчанию Setup -> Object Manager -> Volunteer Shifts -> Fild and Relationship -> New Создаем поле Master-Detail c именем Volunteer Job и привязываемся к Volunteer Jobs Создаем поле Date/Time c именем Shift Start Time и ставим как обязательное к заполнению Создаем поле Date/Time c именем Shift End Time и ставим как обязательное к заполнению Создаем поле Formula с типом Number и именем Shift Hours HOUR(TIMEVALUE(Shift_End_Time__c))-HOUR(TIMEVALUE(Shift_Start_Time__c)) Переходим в раздел Validation Rules и создаем новое правило с именем Start before End и обязательным текстовым сообщением при ошибке No time travel allowed during volunteering! Shift Start Time must be before Shift End Time. Создаем поле Number c именем Desired # of Volunteers Создаем поле Roll-Up Summary c именем Shifts Taken Создаем поле Formula с типом Number и именем **# of Volunteers Still Needed ** IF(Desired_of_Volunteers__c - Shifts_Taken__c<0, 0, Desired_of_Volunteers__c - Shifts_Taken__c)

Setup -> Object Manager -> Volunteer Jobs -> Fild and Relationship -> New Создаем поле Lookup с именем Volunteer Activity и привязываемся к Volunteer Activity, проставляем галочку Always require a value in this field in order to save a record Создаем поле Roll-Up Summary c именем Number of Shifts Создаем поле Roll-Up Summary c именем Cumulative Volunteers Needed

Setup -> Object Manager -> Volunteer Activity -> Fild and Relationship -> New Создаем поле Master-Detail c именем Volunteer Organization и привязываемся к Account, и устанавливаем настройки фильтрации Setup -> Object Manager -> Volunteer Shift Workers -> Fild and Relationship -> New Создаем поле Formula c типом Number и именем Shift Hours, в формулу вставляем Volunteer_Shift__r.Shift_Hours__c Setup -> Object Manager -> Volunteer Shift -> Fild and Relationship -> New Создаем поле Formula c типом Number и именем Total Vol Hours for Shift, в формулу вставляем Shifts_Taken__c * Shift_Hours__c Setup -> Object Manager -> Volunteer Job-> Fild and Relationship -> New Создаем поле Roll-Up Summary c именем Attributed Volunteer Hours Setup -> Quick find -> Volunteer Job-> Picklist Value Sets Создаем новый набор Picklist с именем Volunteer Skills Values Setup -> Object Manager -> Users-> Fild and Relationship -> New Создаем поле Picklist (Multi-Select) c именем Volunteer Skills Setup -> Object Manager -> Volunteer Job-> Fild and Relationship -> New Создаем такое же поле Picklist (Multi-Select) c именем Volunteer Skills, как и в предыдущем шаге Создаем такое же поле Text Area (Rich) c именем Job Description Setup -> Object Manager -> Volunteer Shift Workers -> Fild and Relationship -> New Создаем поле Formula c типом Checkbox и именем IsShiftVolunteer, в формулу вставляем $User.Id == Volunteer__r.Id Для Volunteer Job, Volunteer Shift, and Volunteer Shift Worker, создаем поле с типом Formela и именем Volunteer Organization, с возвращаемым типом Text, в формуле прописываем следующее $Organization.Name Для Volunteer Shift, and Volunteer Shift Worker, создаем поле с типом Formula и именем Volunteer Activity, с возвращаемым типом Text, в формуле прописываем следующее Volunteer_Shift__r.Volunteer_Job__r.Volunteer_Activity__r.Name Для Volunteer Shift Worker, создаем поле с типом Formula и именем Volunteer Job, с возвращаемым типом Text, в формуле прописываем следующее Volunteer_Shift__r.Volunteer_Job__r.Name

3. Build a shift approval tool

Setup -> Quick find -> Users Создаем нового пользователя с учетом условий из задания Setup -> Quick find -> Approval Processes Создаем новый процесс для объекта Volunteer Shift Worker с именем Confirm Volunteer Shift Активируем процесс Setup -> Quick find -> Processe Builder Создаем новый процесс с любым названием Активируем процесс Setup -> Object Manager -> Buttons, Links, and Actions -> New Action

4. Build Volunteer Tracker app reports

В Reports создаем новую папку с именем Volunteer Reports В Dashboards создаем новую папку с именем Volunteer Dashboards Setup -> Quick find -> Report Types Создаем новый тип отчета Users with Volunteer Shift Worker Records Создаем новый тип отчета Accounts with Vol Activities with Vol Jobs Жмем на Edit Layout Создаем новую секцию с именем Volunteer Jobs, перетаскиваем в неё поле Volunteer Job Name, два раза кликаем на него и делаем это поле значением по умолчанию Создаем отчеты:

My Top Volunteer Organizations

Top Volunteer Organizations

My Shifts Pending Approval

My Upcoming Shifts

Top Volunteers

Создаем Dashboard My Volunteer Information

Согласно заданию Настраиваем Title, Footer, Сортировку и размер

5. Surface the Volunteer Tracker app

Setup -> App Manager -> New Создаем новое приложение Volunteer Tracker используя указания из задания Создаем App Page и размещаем на ней Dashboard, Reports и Recent Items