Set Up Project Setup Wizard


This page covers:


Introduction to the Project Setup Wizard

The Project Setup Wizard is a powerful tool that guides users through the process of setting up the Project record and the related records that are necessary to start using features such as indicator management, activity planning, and budgeting on the Project. It guides users to create the required records while maintaining data integrity. 

 Implementor Note: Please refer to the Project Setup Wizard user guide to know about the features of Project Setup Wizard in detail and how to use it. 

Why Use the Project Setup Wizard?

The Project Setup Wizard has these benefits: m

  • It provides a step-by-step experience to set up records related to the Project record;

  • It helps with controlling data integrity by restricting the user to create records from the catalog, providing duplicate warnings;

  • Implementors can create multiple versions of the Project Setup Wizard to set up different related records and conditionally display them on the Project record. This helps in guiding users to understand what records need to be set up based on the project stage/ type of Project.

  • Implementors can customize and expand the Project Setup Wizard to meet the client’s unique use cases, such as:

    • Add client-specific guidelines to the sub-flows;

    • Add/ edit/ remove set up of related objects as required;

    • Add custom sub-flows to auto-setup related records;

    • Add custom sub-flows to clone related records from another project;

    • Use Many2Many for tagging records to the project inside the Project Setup Wizard.

 Implementor Note: While using the wizard with Many2Many, ensure that the lookup on the junction records is populated with the ID of the tag settings record for them to show up on the M2M component. Please refer to the Many2Many setup guide for guidelines on how to use Many2Many tagging component inside a flow. If you are creating records outside of the M2M component, you have to set up another mechanism (such as a before-save flow) to default the value

Project Setup Wizard Use Cases

Add Reporting Periods to the Project

Users can add reporting periods to the Project by specifying Start Date, End Date, and Reporting Frequency. They can optionally specify the Due Dates and whether they want to create a Baseline Reporting Period.

Tag Records from a Catalog

Users can quickly create junction records between Project and a catalog object such as Geographic Areas and Thematic Areas by specifying the catalog records for which the junction records should be created

Users can quickly create related records on the Project such as Frameworks, Implementation Plans, and Budgets by specifying the values for the fields in the Project Setup Wizard.


Understanding the Project Setup Wizard Flow

 Implementor Note: To know what each flow element does, you can read the description by hovering over the description icon.

Main Flow (Handler Flow) 

The flow Project Setup Wizard [API Name: ampi__Project_Setup_Wizard] is the handler flow. 

  1. It calls sub-flows for each object whose records are created via the Project Setup Wizard. 

  2. Once the called sub-flow ends, the next one is called by the handler flow.

Sub-flow: Create Reporting Periods

The flow Create Reporting Periods [ampi__Create_Reporting_Periods]creates Reporting Period records based on inputs by the user. 

  1. The user can input  Start Date, End Date, and Reporting Frequency. They can optionally specify the Due Dates and whether they want to create a Baseline Reporting Period. 

  2. Once the user inputs are taken, the flow assigns the user inputs to variables for creating the Reporting Period records.

  3. It then checks if the user skipped creating the records

    1. Flow ends (and goes back to the handler flow) if the user has clicked on the Skip button

  4. Checks if all the required fields are filled

    1. If required fields are not filled, the flow shows an error message to the user

  5. Checks if duplicate reporting periods are already present on the Project

    1. Warns users if duplicate records are present

  6. Creates the Reporting Period records based on user input

    1. Shows a success message if records are created

    2. Shows an error message if records are not created

Sub-Flow: Create Project Geographic Areas

The flow Create Project Geographic Areas [ampi__Create_Geographic_Areas] allows users to create the Project Geographic Area junction records by selecting the corresponding catalog Geographic Area records from the dropdown.

Once the user inputs are taken, the flow

  1. Checks if the user skipped creating the records

    1. Flow ends (and goes back to the handler flow) if the user has clicked on the Skip button

  2. Checks if duplicate Project Geographic Area records are already present on the Project

  3. Checks if the user has selected any catalog record

    1. Shows a message that no records have been selected if no catalog records have been selected

  4. Checks if duplicates were identified in Step 2

    1. Warns users if duplicate records are present

5. Creates the junction records based on user selection

a. Shows a success message to the user if records are created

b. Shows an error message to the user if records are not created

Sub-Flow: Create Frameworks

  1. The flow Create Frameworks [ampi__Create_Frameworks] allows users to quickly create related Framework records by providing inputs to the fields displayed on the screen. 

Once inputs are taken

2. The LWC component displayFieldsUpsertRecords on  Create_Frameworks screen identifies 

a. If user has clicked on Skip button

b. If user checked the Create Another Framework checkbox on the screen

c. Creates the record based on user inputs

3. The flow then checks if the user skipped creating the records

a. Flow ends (and goes back to the handler flow) if user has clicked on Skip button

4. Checks if the user wants to create additional record

a. Goes back to the Create_Frameworks screen flow element if user wants to create additional Framework record

Lightning Web Components Used in the Flows

showToastMessageForFlow

Used in
  • Create Reporting Period

What does it do
  • Displays a toast error message if the user leaves required fields as blank 

Design Attributes

Name

Description

Expected Values 

Example

API Name

API name of the flow element for the LWC component 

Text value that can only contain underscores and alphanumeric characters.

toastMessageForReportingPeriodErrors

Mode

Determines how persistent the toast message is. 

dismissible, pester, sticky

(ℹ️ Dismissble toast is closable by the user or auto-closes after 3 seconds. Pester toast auto-closes after 3 seconds. Sticky toast closes only after the user clicks on cross icon)

dismissible

Show Toast?

Determines whether toast will be displayed

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

(ℹ️ If the value is {!$GlobalConstant.True}, the toast is displayed) 

{!showToastMessageForErrors}

(ℹ️ where {!showToastMessageForErrors} variable stores a TRUE/ FALSE value)

Toast Header

Controls the heading of the toast

Text string

Fill in required fields

Toast Message

Controls the body of the toast

Text string

Please check if you have filled all the required fields

Variant

Controls the appearance of the toast

info, success, warning, error

error

Output Variables

Name

Description

Where is the output used? 

Expected Value (Data Type and Format)

Show Toast?

Indicates if a toast message was displayed on the Reporting Period screen by passing a TRUE/ FALSE value in {!showToastMessageForErrors} variable. 

If all required fields are present, then the variable {!showToastMessageForErrors} is set to FALSE by Set_Toast_Message_Error_Flag_To_False element in the sub-flow

Boolean

displayFieldsUpsertRecords

Used in
  • Create Frameworks

  • Create Implementation Plans

  • Create Budgets

What does it do
  • Shows fields from the specified fieldset on the object

  • Creates a record when user clicks on Next

Design Attributes

Name

Description

Expected Values

Example

API Name

API name of the flow element for the LWC component 

Text value that can only contain underscores and alphanumeric characters.

frameworksToBeCreated

Input Type

The object being used in the LWC component

Object Name

Framework

API Name of FieldSet

API Name of the fieldset that controls the fields to be displayed

Fieldset API Name

ampi__FRAMEWORK_SETUP

API Name of Lookup to Parent

API Name of the lookup field to the parent object from which the Project Setup Wizard is fired (e.g. Project)

Field API Name

ampi__xx_Project__c

API Name of Object

API Name of the object being set up

Object API Name

ampi__xx_Framework__c

Create Another Record?

This is set to {!$GlobalConstant.True} if user clicks on the checkbox to create another record

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

 

{!$GlobalConstant.False}

Insufficient Access Error Message

This message is displayed to users if they don’t have sufficient access to create a record for this object

Text string

This record will not be created since you don’t have access to the object. Please click on the Skip button to move to the next screen.

Last Screen of Flow?

Set this to {!$GlobalConstant.True} if you want to set the current screen as last screen of the Project Setup Wizard flow. 

 

If this is set to {!$GlobalConstant.True} and Create Another Record is TRUE, then the label of the Done button is updated to Next 

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

{!$GlobalConstant.False}

Record ID of the Parent

Record ID of the parent record from which the Project Setup Wizard is fired (e.g. Project record)

Salesforce Record ID

{!recordId}

(ℹ️ where {!recordId} variable stores the record ID of Project from which Project Setup Wizard is fired)

Record Insert Flag

This is set to {!$GlobalConstant.True} if the record is created successfully. The default value is {!$GlobalConstant.False}.

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

{!$GlobalConstant.False}

Record to be Created

This flow variable stores the Record ID of created record

Record Variable (Single)

{!frameworkToBeCreated}

(ℹ️ where {!frameworkToBeCreated} is a record variable in the flow

Output Variables

Name

Description

Where is the output used? 

Expected Value (Data Type and Format)

Create Another Record?

Indicates if user checked the option to create another record on screen by passing a TRUE/ FALSE value in {!createMultipleRecords} variable. 

The output is used by decision element Multiple_Records_To_Be_Created to check if user checked the option to create another record

Boolean

Is Skip Button Pressed?

Indicates if the Skip button was pressed on the screen by passing a TRUE/ FALSE value in {!isSkipButtonPressed} variable. 

The output is used by the decision element is_Skipped_Button_Clicked to check if the user clicked on the Skip button

Boolean

Record Insert Flag

Indicates if the record was successfully created by passing a TRUE/ FALSE value in {!isRecordInserted} variable. 

The output is used by the LWC itself to display a toast to the user confirming record creation.

Boolean

Record to be Created

Stores the created record in {!frameworkToBeCreated} variable

This output variable is used by the LWC itself to store the record details of the most recently created variable. This is done to retain the details when the user navigates back to the screen using the Previous button.

Record Variable (Single)

existingRecordsList

Used in
  • Create Reporting Periods

  • Create Project Geographic Areas

  • Create Project Thematic Areas

  • Create Frameworks

  • Create Implementation Plans

  • Create Budgets

What does it do
  • Shows existing records of the object on the parent object (from which the Project Setup Wizard is fired. e.g Project)

Design Attributes

Name

Description

Expected Values

Example

API Name

API name of the flow element for the LWC component 

Text value that can only contain underscores and alphanumeric characters.

displayExistingProjectGeographicAreas

API Name of Object

API Name of the object whose existing records are displayed

Object API Name

ampi__Project_Geographic_Area__c

API Name of Lookup to Parent

API Name of the lookup field to the parent object from which the Project Setup Wizard is fired (e.g. Project)

Field API Name

ampi__Project__c

Record ID of the Parent 

Record ID of the parent record from which the Project Setup Wizard is fired (e.g. Project record)

Salesforce Record ID

{!recordId}

(ℹ️ where {!recordId} variable stores the record ID of Project from which Project Setup Wizard is fired)

Is Display Field on a Parent?

If {!$GlobalConstant.True}, it indicates that the display field is on a related parent object

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

TRUE

API Name of lookup to Parent for Display Field

API name of the lookup field to the parent object that has display field

Field API Name

ampi__Geographic_Area__c

API Name of Display Field 

API name of the field whose values are displayed in the existing records list

Field API Name

ampi__Name_Translated__c

Label

This text will appear above the list of existing records as the label

Text string

This project already has the following Project Geographic Area records

Character Limit

The max character limit of the string of records displayed. After the specified character limit, the string will display ellipses (...)

Numbers

1000

flowNavigationFooter

Used in
  • Create Reporting Periods

  • Create Project Geographic Areas

  • Create Project Thematic Areas

  • Create Frameworks

  • Create Implementation Plans

  • Create Budgets

What does it do 
  • Shows Next, Previous, and Skip buttons for navigation on the screen

  • Displays Done instead of Next on the last screen

Design Attributes

Name

Description

Expected Values

Example

API Name

API name of the flow element for the LWC component 

Text value that can only contain underscores and alphanumeric characters.

displayExistingProjectGeographicAreas

Hide Next Button

If {!$GlobalConstant.True}, the Next button will be hidden 

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

FALSE

Hide Pause Button

If {!$GlobalConstant.True}, the Pause button will be hidden 

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

TRUE

Hide Previous Button

If {!$GlobalConstant.True}, the Previous button will be hidden

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

FALSE

Hide Skip Button

If {!$GlobalConstant.True}, the Skip button will be hidden

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

FALSE

Next Button Label

The label for Next button. By default, the Label is “Next”

Text string

Create Records

Pause Button Label

The label for Next button. By default, the Label is “Pause”

Text string

Wait

Previous Button Label

The label for Previous button. By default, the Label is “Previous”

Text string

Back

Skip Button Label

The label for Skip button. By default, the Label is “Skip”

Text string

Go to Next Screen

Prevent Default Behavior?

Prevents the default phase execution for this event and will rely on the dedicated order according to the logic of the flow.

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

FALSE

Output Variables

Name

Description

Where is the output used? 

Expected Value (Data Type and Format)

Is Skip Button Pressed?

Indicates if the Skip button was pressed on the screen by passing a TRUE/ FALSE value in {!isSkipButtonPressed} variable. 

The output is used by decision element is_Skipped_Button_Clicked to check if user clicked on Skip button

Boolean

APEX Action used in the Flows

Used in

Function

Used in sub-flow

Action Element

Checking if the junction records for selected catalog records already exist on the parent record

ampi__Create_Project_Geographic_Areas

Check_for_Duplicate_Project_Geographic_Areas

ampi__Create_Project_Thematic_Areas

Check_for_Duplicate_Project_Thematic_Areas

Creation of junction records based on selected catalog record

ampi__Create_Project_Geographic_Areas

Proceed_With_PGA_Creation

ampi__Create_Project_Thematic_Areas

Proceed_With_Project_Thematic_Area_Creation

Input Values

Name

Description

Where does this input come from?

Expected Value (Data Type and Format)

checkIfDuplicatesPresent

If TRUE, the APEX action checks if the records in the collection have duplicates on the parent object. If FALSE, the APEX action creates records from the collection on the parent object. 

This is populated using a global constant in the flow Action Element

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

ignoreDuplicatesForInsertion

 

If TRUE, the APEX action creates all the records (including duplicates) specified by the user. If FALSE, the APEX action doesn’t create the duplicate records.

This is populated using a global constant in the flow Action Element

{!$GlobalConstant.True}/ {!$GlobalConstant.False}

junctionObjectName

Used to pass the API name of junction object (whose records are to be inserted) to the APEX action 

This is populated in the flow Action Element

Object API Name

parentLookupOnJunction

Used to pass the API name of lookup field on junction object for the parent object from which the Project Setup wizard is fired (e.g. Project lookup field on Project Geographic Area)

This is populated in the flow Action Element

Field API Name

parentId

Used to pass the record ID of the parent object from which the Project Setup wizard is fired

Record ID of the parent object is passed from handler flow to sub-flow and stored in {!recordId} variable 

Record ID

recordLookupOnJunction

Used to pass the API name of lookup field on junction object for the catalog object (e.g. Geographic Area lookup field on Project Geographic Area)

This is populated in the flow Action Element

Field API Name

recordDisplayField

Used to pass the field on catalog object that’s displayed to users on successful insertion of records and on the duplicate warning screen

This is populated in the flow Action Element

Field API Name

recordIds

Used to pass the record IDs of records user selected 

This is populated in the selection screen flow element 

(e.g. Select_Thematic_Areas screen element in ampi__Create_Project_Thematic_Areas sub-flow)

Record Collection Variable

Output Values

Name

Description

Where is the output used? 

Expected Value (Data Type and Format)

duplicatesPresent

Stored in {!duplicatesPresent} variable. If TRUE, then duplicates have been detected by the APEX action

The output is used by the decision element Are_Duplicates_Identified to decide whether to display the duplicates warning screen or not

Boolean

isSuccess

Stored in {!isSuccessful} variable. If TRUE, then records have been successfully inserted by the APEX action

The output is used by APEX action itself to control the text stored in variable {!messageDisplayToUser}

Boolean

message

Stores the message to be displayed to the user in {!messageDisplayToUser} variable 

The output is used by result screen (e.g resultScreenForPTAInsertOperation screen element in ampi__Create_Project_Thematic_Areas sub-flow)

Text string

noRecordsPresent

Stored in {!noRecordsPresent} variable. If TRUE, then the user didn’t select any records on the selection screen

The output is used by the decision element Are_Records_Selected_By_User to decide whether to check for duplicates or end the sub-flow

Boolean


Customizing the Project Setup Wizard Flow

Adding an Object’s Setup

Tag records from a catalog

  1. Clone the ampi__Create_Project_Geographic_Areas sub-flow

  2. Open the cloned sub-flow

    1. Add the API Name, Flow Label, and Description as needed

  3. Update the collection variable selectedGeographicAreas

    1. Update the API Name and Description as needed

  4. Update the Select_Geographic_Areas screen element

    1. Update the API Name, Label, and Description as required

  5. Click on the Display Text element

    1. Update the API Name and resource value as needed 

  6. Click on the Lookup element selectGeographicAreas 

    1. Update the API Name as needed

    2. Update the Object API Name to add the API name of junction object

    3. Update the Field API Name to add the API Name of the lookup field to the catalog object

    4. Update the Label as needed

    5. Click on Advanced accordion and update the Record ID Collection to add the updated API name of the collection variable you updated in Step#3

  7. Click on the LWC Component existingRecordsList and edit the following Design Attributes:

    1. Update the API Name as needed

    2. Update the API Name of Object to add the API Name of object being set up

    3. Update the API Name of Lookup to Parent to add the API Name of the lookup field on the junction object that looks up to the parent object (e.g. ampi__Project__c on object ampi__Project_Geographic_Area__c) 

    4. If the field that should be displayed in the existing records list is on a parent object

      1. Enter {!$GlobalConstant.True} for Is Display Field on a Parent?

      2. Update API Name of lookup to Parent for Display Field to add the API name of the lookup field to the parent object that has display field

    5. Update API Name of Display Field  to add the API name of the field whose values are displayed in the existing records list

  8. Click on the LWC Component flowNavigationFooter and edit the following Design Attributes:

    1. Update the API Name as needed

  9. Click on the APEX Action element Check_for_Duplicate_Project_Geographic_Areas

    1. Update the Label, API Name, and Description as needed

    2. Update the input value junctionObjectName to add the API Name of the junction object

    3. Update the input value parentLookupOnJunction to add the API Name of object from which the Project Setup Wizard is fired (e.g. Project)

    4. Update the input value recordDisplayField to specify the API Name of field that should be displayed on duplicates warning screen

    5. Update the input value recordIds to specify the updated API name of the collection variable you updated in Step#3

    6. Update the input value recordLookupOnJunction to specify the API Name of lookup field to the catalog object on the junction object

  10. Click on the APEX Action element Proceed_With_PGA_Creation

    1. Update the input values with the same values as in Step#8 

11. Click on the screen element resultScreenForPGAInsertOperation

a. Update the Label and API Name as needed

12. Clone the handler flow ampi__Project_Setup_Wizard

13. Edit the cloned flow to add a sub-flow element in the order you want the user to view and create objects for the object

a. Set the Referenced Flow to the one you created in Step#1

14. Click on the screen element PSW_Intro_Screen 

a. Update the Display Text element to add the new object 

15. Save the cloned flow and activate it

16. Deactivate the packaged handler flow ampi__Project_Setup_Wizard

17. Navigate to the ampi__Project__c object (or the object you want to fire the Project Setup Wizard from)

18. Remove the quick action ampi__Project_Setup_Wizard from page layout

19. Create a new quick action

a. Select Action Type as Flow

b. Select Flow as the cloned handler flow (created on step#11)

c. Specify Name, Label, and Description as needed

20. Add the new quick action to the ampi__Project__c (or the object you want to fire the Project Setup Wizard from)page layout

  1. Create a Fieldset on the object that you need to set up. This fieldset will control the fields displayed in the Project Setup Wizard screen. 

  2. Clone the ampi__Create_Frameworks sub-flow

  3. Open the cloned sub-flow

  4. Add the API Name, Flow Label, and Description as needed

  5. Create a new record variable same as  the record variable frameworkToBeCreated

    1. Add the API Name as required

    2. Select Object and select the object you want to set up

  6. Update the Create_Frameworks screen element

    1. Update the API Name, Label, and Description as required

  7. Add another LWC component displayFieldsUpsertRecords to the screen 

    1. Select the Input Type and select the Object you want to set up

    2. Add the API Name as needed

    3. Add the API Name of Object to add the API Name of the object being set up

    4. Add the API Name of FieldSet to add the API Name of fieldset created in Step#1

    5. Add the API Name of Lookup to Parent to add the API Name of the lookup field to the parent object from which the Project Setup Wizard is fired (e.g. Project)

    6. Copy the value of other design attributes from the existing displayFieldsUpsertRecords LWC component

    7. Remove the existing LWC component displayFieldsUpsertRecords from the screen.

  8. Click on the LWC Component existingRecordsList and edit the following Design Attributes:

    1. Update the API Name as needed

    2. Update the API Name of Object to add the API Name of the object being set up

    3. Update API Name of lookup to Parent for Display Field to add the API name of the lookup field to the parent object that has display field

    4. Update API Name of Display Field  to add the API name of the field whose values are displayed in the existing records list

  9. Click on the LWC Component flowNavigationFooter and edit the following Design Attributes:

    1. Update the API Name as needed

  10. Clone the handler flow ampi__Project_Setup_Wizard

  11. Edit the cloned flow to add a sub-flow element in the order you want user to view and create records for the object

    1. Set the Referenced Flow to the one you created in Step#2

  12. Click on the screen element PSW_Intro_Screen 

    1. Update the Display Text element to add the new object

  13. Save the cloned flow and activate it

  14. Deactivate the packaged handler flow ampi__Project_Setup_Wizard

  15. Navigate to the ampi__Project__c object (or the object you want to fire the Project Setup Wizard from)

  16. Remove the quick action ampi__Project_Setup_Wizard from page layout

  17. Create a new quick action

    1. Select Action Type as Flow

    2. Select Flow as the cloned handler flow (created on step#10)

    3. Specify Name, Label, and Description as needed

Add the new quick action to the ampi__Project__c (or the object you want to fire the Project Setup Wizard from)page layout

Editing an Object’s Setup

Adding guidelines to the sub-flow

  1. Clone the sub-flow that you want to add guidelines to

  2. Open the cloned sub-flow

  3. If you want to add guidelines, add a Display Text element and add the guidelines in that element

  4. Save the cloned flow and activate it

  5. Clone the handler flow ampi__Project_Setup_Wizard

  6. Edit the cloned flow to add a sub-flow element in the order you want the users to view and create objects for the object

    1. Set the Referenced Flow to the one you created in Step#1

  7. Deactivate the packaged handler flow ampi__Project_Setup_Wizard

  8. Navigate to the ampi__Project__c object (or the object you want to fire the Project Setup Wizard from)

  9. Remove the quick action ampi__Project_Setup_Wizard from page layout

  10. Create a new quick action

    1. Select Action Type as Flow

    2. Select Flow as the cloned handler flow (created on step#5)

    3. Specify Name, Label, and Description as needed

  11. Add the new quick action to the ampi__Project__c (or the object you want to fire the Project Setup Wizard from)page layout

Editing packaged labels in the sub-flow

The labels for fields and headers used in the project setup wizard sub-flows are controlled by field labels, display text elements in the flow. If you want to edit them you can directly update the field label or the display text resource. 

There are a few field labels, error messages, and button labels that are displayed using the Lightning Web Components. These labels are controlled by:

  1. Design attributes: The details of design attributes that control field labels, button labels, and error messages can be found under the design attributes section of individual Lightning Web Components.

  2. Custom labels: The details of field labels or error messages that are controlled by custom labels are given in the table below.

Custom Label

Value

Used In

PROJECT_SETUP_MORE_RECORD_CHECKBOX_LABEL

Check this if you want to create another {0}

Frameworks, Implementation Plan, and Budget screens

DUPLICATE_RECORDS_FOUND

Duplicate Records Found :

Duplicate warning screen

NO_DUPLICATES_FOUND

No Duplicate Records Found

Duplicate warning screen

NO_RECORDS_SELECTED

No records were selected

Record insertion confirmation screen after Thematic Areas, Geographic Areas screens

RECORDS_INSERT_SUCCESS

Records Successfully Inserted

Record insertion confirmation screen after Thematic Areas, Geographic Areas screens

 

RECORD_INSERT_SUCCESS

Record Successfully Inserted

Record insertion confirmation screen after Frameworks, Implementation Plan, and Budget screens

RECORD_UPDATE_SUCCESS

Record Successfully Updated

Record insertion confirmation screen after Frameworks, Implementation Plan, and Budget screens

NO_CREATE_ACCESS

You do not have create access to this object

Error message when user doesn’t have access to the object

Dynamically display object labels on the introduction screen

  1. Prior to the display screen, insert Get Record flow elements for each object whose label you want to retrieve.

  2. In each Get Record element, query the EntityDefinition object. Under “Filter Entity Definition Records” select field QualifiedApiName, operator equals, and value as API Name of the Object

  3. It is recommended to configure the Get Records element as shown in the image below. You can choose fields and let Salesforce decide or choose fields and assign variables. It’s not necessary to store all fields.

  4. Once all Get Records elements are created, display them on PSW_Intro_Screen. An example is shown in the image below.

Adding or Removing Fields from Setup

Users can quickly create related records on the Project such as Frameworks, Implementation Plans, and Budgets by specifying the values for the fields in the Project Setup Wizard. 

The fields displayed in the Project Setup Wizard screen are controlled by a fieldset on the object being set up. For packaged objects, the fieldsets are as follows:

Object Name

Fieldset for Project Setup Wizard

ampi__xx_Framework__c

ampi__FRAMEWORK_SETUP

ampi__Implementation_Plan__c

ampi__IMPLEMENTATION_PLAN_SETUP

ampi__Budget__c

ampi__BUDGET_SETUP

Removing an Object’s Setup

  1. Clone the handler flow ampi__Project_Setup_Wizard

  2. Delete the relevant sub-flow element from cloned handler flow

  3. Deactivate the corresponding sub-flow

  4. Activate the cloned handler flow

  5. Deactivate the handler flow ampi__Project_Setup_Wizard

  6. Navigate to the ampi__Project__c object (or the object you want to fire the Project Setup Wizard from)

  7. Remove the quick action ampi__Project_Setup_Wizard from page layout

  8. Create a new quick action

    1. Select Action Type as Flow

    2. Select Flow as the cloned handler flow (created on step#5)

    3. Specify Name, Label, and Description as needed

  9. Add the new quick action to the ampi__Project__c (or the object you want to fire the Project Setup Wizard from)page layout

Changing the Order of Sub-flows

  1. Clone the handler flow ampi__Project_Setup_Wizard

  2. Change the order of sub-flow elements to reflect the order as needed

  3. [Optional] If you want the last sub-flow to be other than Budget, follow these steps:

    1. For the last sub-flow, open the screen element (e.g. Select_Thematic_Areas, Create_Frameworks, etc)

      1. Click on the LWC component flowNavigationFooter

      2. Update the Next button’s label to Done

      3. Set the design attribute Prevent Default Behavior? To TRUE

      4. Click on the LWC component displayFieldsUpsertRecords (if it’s on the screen)

      5. Set the design attribute Last Screen of Flow? To TRUE

    2. Clone the sub-flow ampi__Create_Budgets

      1. In the cloned flow, click on the LWC component flowNavigationFooter

      2. Update the Next button’s label to Next

      3. Set the design attribute Prevent Default Behavior? To FALSE

      4. Click on the LWC component displayFieldsUpsertRecords 

      5. Set the design attribute Last Screen of Flow? To TRUE

      6. Activate the cloned Budget sub-flow

      7. Deactivate the sub-flow ampi__Create_Budgets

      8. In the cloned handler sub-flow (created in step#1), refer to the cloned Budget flow instead of the packaged one in the Create_Budgets sub-flow element

  4. Activate the cloned handler flow

  5. Deactivate the handler flow ampi__Project_Setup_Wizard

  6. Navigate to the ampi__Project__c object (or the object you want to fire the Project Setup Wizard from)

  7. Remove the quick action ampi__Project_Setup_Wizard from page layout

  8. Create a new quick action

    1. Select Action Type as Flow

    2. Select Flow as the cloned handler flow (created on step#5)

    3. Specify Name, Label, and Description as needed

  9. Add the new quick action to the ampi__Project__c (or the object you want to fire the Project Setup Wizard from)page layout