> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fusioncore.us/llms.txt
> Use this file to discover all available pages before exploring further.

# Roster Settings

> Understand the FS Roster accelerator and the Roster_Setting__c records that drive a member's portal order and payment lists, then create those records with Apex.

## Overview

The portal order page lets a logged-in member see their orders and payments — and act on them — without leaving the portal. Each row can surface action links that take the member straight to checkout, to an installment payment, or to a billing document.

The order and payment lists are driven by **roster settings** — `Roster_Setting__c` records read by the **FS Roster accelerator**. This page explains what those settings are, the key fields that define each list, and how the order action links are assembled. It then walks you through the Apex scripts that create the records. After your records exist, you add the roster component to a portal page and style it — see [Portal Order Page](/end-user-guides/portal/portal-order-page-roster-settings/portal-order-page).

## What Renders the Table

The order list is rendered by the **FS Roster accelerator** (`unmanaged-package-roster-accelerator`), a separate unmanaged package with no namespace prefix. The roster table is **not** part of the managed Portal package, so it must be installed in the org separately before any of the steps on this page will work.

Two pieces work together:

* A **`Roster_Setting__c`** record (from the FS Roster accelerator) defines what the table shows — which object, which records, and which fields and columns.
* The portal **Order** carries the action links the table surfaces. The `Order.FS_Portal_Actions__c` field (shipped by the Portal Components package) is a formula that bundles the checkout, installment, and view-document links into a single column you can drop into the roster.

<Info>
  Grant your community users access to the roster before configuring it. Roster access is set up as described in the FS Roster accelerator's own user guide.
</Info>

## Roster Setting Fields

A `Roster_Setting__c` record tells the FS Roster accelerator what to show in a roster table. For the portal order page you create one record per list you want to display.

The key fields on each record are:

* `Object_to_Display__c` — the API name of the object the table queries. For order lists this is `Order`; for payment lists it is the Financial Event object `FCORE_PAY__Financial_Event__c`.
* `Where_Query__c` — a raw SOQL `WHERE` clause that scopes the rows. Use the `:usrObj` bind variable to reference the logged-in portal user, so each member sees only their own records (for example, `BillToContactId = :usrObj.ContactId`).
* `Fields_Settings__c` — a JSON definition of the columns (header label, field API name, and per-column options).

## The Order Action Links

To surface the order action links, add the `Order.FS_Portal_Actions__c` field as a column. This field (shipped by the Portal Components package) is a formula that bundles the **checkout**, **installment checkout**, and **view-document** links into a single column.

<Warning>
  The action links in `FS_Portal_Actions__c` only resolve when the Business Unit has all three URL fields set: `FCORE_PORTAL__Portal_URL__c`, `FCORE_PORTAL__Portal_Checkout_Page_Path__c`, and `FS_Portal_Installments_Page_Path__c`. If any are blank, the affected links render empty with no error. Set these on the Business Unit before creating your roster records.
</Warning>

## How to Create the Roster Setting Records

<Steps>
  <Step title="Open the Execute Anonymous window">
    In Setup, open the **Developer Console**, click **Debug**, then **Open Execute Anonymous Window**.

    <Frame>
      <img src="https://mintcdn.com/fusionspan/dgaf-BkijdfqhSNr/images/end-user-guides/4860117113/Screenshot_2025-01-07_at_8.45.55-PM.png?fit=max&auto=format&n=dgaf-BkijdfqhSNr&q=85&s=043a1b24f05b8934d2167d3010aebe68" alt="The Developer Console Debug menu with Open Execute Anonymous Window" width="1042" height="240" data-path="images/end-user-guides/4860117113/Screenshot_2025-01-07_at_8.45.55-PM.png" />
    </Frame>
  </Step>

  <Step title="Run each script">
    Paste each script below into the window and click **Execute**. Run the snippets one at a time, in order.

    <Frame>
      <img src="https://mintcdn.com/fusionspan/dgaf-BkijdfqhSNr/images/end-user-guides/4860117113/Screenshot_2025-01-07_at_8.46.06-PM.png?fit=max&auto=format&n=dgaf-BkijdfqhSNr&q=85&s=3f5f655c2fb506352b618fa6da439b74" alt="The Execute Anonymous window with a Roster Setting insert script" width="1124" height="832" data-path="images/end-user-guides/4860117113/Screenshot_2025-01-07_at_8.46.06-PM.png" />
    </Frame>

    ```apex theme={null}
    List<Roster_Setting__c> rosterSettings = new List<Roster_Setting__c>{
            new Roster_Setting__c(
                    Name = 'Individual Pending Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order Number","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><strong style="font-size: 16px;">Individual Pending Orders</strong><span style="font-size: 16px;"><span class="ql-cursor">﻿</span></span></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c > 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' ' +
                    'AND FCORE_PAY__Customer_Type__c = \'Individual\' '
            ),
            new Roster_Setting__c(
                    Name = 'Company Pending Payments',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;">Company Pending Payments</span></p><p><br></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'FCORE_PAY__Bill_To_Contact__c = :usrObj.ContactId AND FCORE_PAY__Status__c =\'Pending\' AND FCORE_PAY__Type__c= \'Payment\' AND FCORE_PAY__Order__r.FCORE_PAY__Customer_Type__c =\'Organization\''
            ),
            new Roster_Setting__c(
                    Name = 'Company Pending Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;"><span class="ql-cursor">﻿</span>Company Pending Orders</span></p><p><br></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c > 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' ' +
                    'AND FCORE_PAY__Customer_Type__c = \'Organization\''
                    )
                    };
    insert rosterSettings;
    ```

    ```apex theme={null}
    List<Roster_Setting__c> rosterSettings = new List<Roster_Setting__c>{
    new Roster_Setting__c(
                    Name = 'Company Completed Payments',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p>Completed Company Payments</p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'FCORE_PAY__Bill_To_Contact__c = :usrObj.ContactId AND FCORE_PAY__Status__c =\'Succeeded\' AND FCORE_PAY__Type__c= \'Payment\' AND FCORE_PAY__Order__r.FCORE_PAY__Customer_Type__c =\'Organization\''
            ),
            new Roster_Setting__c(
                    Name = 'All Pending Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order Number","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;">All Pending Orders</span><span style="font-size: 14px;">﻿</span></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c > 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' '
            ),
            new Roster_Setting__c(
                    Name = 'All Completed Payments',
                    FS_Display_Type__c = 'Tile',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><strong style="font-size: 16px;">All Completed Payments</strong></p>',
                    Show_Add_Record_Button__c = false
                    )
                    };
    insert rosterSettings;
    ```

    ```apex theme={null}
       List<Roster_Setting__c> rosterSettings = new List<Roster_Setting__c>{
       new Roster_Setting__c(
                    Name = 'All Pending Payments',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;">All Pending Payments</span></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'FCORE_PAY__Bill_To_Contact__c = :usrObj.ContactId AND FCORE_PAY__Status__c =\'Pending\' AND FCORE_PAY__Type__c= \'Payment\''
            ),
            new Roster_Setting__c(
                    Name = 'Individual Pending Payments',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;">Individual Pending Payments</span></p><p><br></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'FCORE_PAY__Bill_To_Contact__c = :usrObj.ContactId AND FCORE_PAY__Status__c =\'Pending\' AND FCORE_PAY__Type__c= \'Payment\' AND FCORE_PAY__Order__r.FCORE_PAY__Customer_Type__c =\'Individual\''
            ),
            new Roster_Setting__c(
                    Name = 'All Completed Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order Number","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><strong style="color: rgb(23, 43, 77); font-family: -apple-system, Arial; font-size: 16px;">All Completed Orders</strong></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c <= 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' AND ' +
                    'Status = \'Activated\''
                    )
                     };
    insert rosterSettings;
    ```

    ```apex theme={null}

         List<Roster_Setting__c> rosterSettings = new List<Roster_Setting__c>{  
            new Roster_Setting__c(
                    Name = 'Individual Completed Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order Number","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><strong style="font-size: 16px;">Individual Completed Orders</strong></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c <= 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' ' +
                    'AND FCORE_PAY__Customer_Type__c = \'Individual\' AND Status = \'Activated\''
            ),
            new Roster_Setting__c(
                    Name = 'Company Completed Orders',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Order Number","api":"OrderNumber","useType":"Display/Add","editable":false,"required":false},{"header":"Status","api":"Status","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":false,"otherFieldsList":"[]"},{"header":"Order Start Date","api":"EffectiveDate","useType":"Display/Add","editable":false,"required":false},{"header":"Balance Due","api":"FCORE_PAY__Total_Balance_Due__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order Amount","api":"TotalAmount","useType":"Display/Add","editable":false,"required":false}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'Order',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><strong style="font-size: 16px;">Company Completed Orders</strong></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'BillToContactId = :usrObj.ContactId ' +
                    'AND FCORE_PAY__Total_Balance_Due__c <= 0 ' +
                    'AND FCORE_PAY__Order_Status__c != \'Draft\' ' +
                    'AND FCORE_PAY__Customer_Type__c = \'Organization\' AND Status = \'Activated\''
            ),
            new Roster_Setting__c(
                    Name = 'Individual Completed Payments',
                    FS_Display_Type__c = 'Table',
                    FS_Sharing_Control__c = 'Without Sharing',
                    Add_Record_Button_Text__c = null,
                    Additional_Fields__c = null,
                    All_at_Once_Text__c = null,
                    All_at_Once__c = false,
                    Deletable_Row__c = false,
                    Empty_Table_Message__c = null,
                    Fields_Settings__c = '{"fields":[{"header":"Business Unit","api":"FCORE_PAY__Business_Unit__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"Name","lookupDisplayFieldTable":"Name","lookupFieldAPIs":"Name"},{"header":"Status","api":"FCORE_PAY__Status__c","useType":"Display/Add","editable":false,"required":false,"searchable":false,"notChooseOne":true,"otherFieldsList":"[]"},{"header":"Amount","api":"FCORE_PAY__Total_Amount__c","useType":"Display/Add","editable":false,"required":false},{"header":"Order","api":"FCORE_PAY__Order__c","useType":"Display/Add","editable":false,"required":false,"lookupDisplayField":"OrderNumber","lookupDisplayFieldTable":"OrderNumber","lookupFieldAPIs":"OrderNumber","otherFieldsList":"[]"}]}',
                    Generate_User__c = false,
                    Highlight_Edits__c = false,
                    Object_to_Display__c = 'FCORE_PAY__Financial_Event__c',
                    Profile_of_Users__c = null,
                    Rich_Text_Above_Roster_List__c = '<p><span style="font-size: 16px;">Individual Completed Payments</span></p>',
                    Show_Add_Record_Button__c = false,
                    Where_Query__c = 'FCORE_PAY__Bill_To_Contact__c = :usrObj.ContactId AND FCORE_PAY__Status__c =\'Succeeded\' AND FCORE_PAY__Type__c= \'Payment\' AND FCORE_PAY__Order__r.FCORE_PAY__Customer_Type__c =\'Individual\''
            )
    };
    insert rosterSettings;
    ```
  </Step>

  <Step title="Confirm the records were created">
    Running all of the scripts creates the following `Roster_Setting__c` records, which you point portal pages at next:

    * **Pending**
      * <u>Orders</u>
        * All Pending Orders
        * Individual Pending Orders
        * Company Pending Orders
      * <u>Payments</u>
        * All Pending Payments
        * Individual Pending Payments
        * Company Pending Payments
    * **Completed**
      * <u>Orders</u>
        * All Completed Orders
        * Individual Completed Orders
        * Company Completed Orders
      * <u>Payments</u>
        * All Completed Payments
        * Individual Completed Payments
        * Company Completed Payments
  </Step>
</Steps>

## Limitations and Common Pitfalls

* **The roster table is a separate package.** `Roster_Setting__c` and the roster component belong to the FS Roster accelerator (`unmanaged-package-roster-accelerator`), not the managed Portal package. If the accelerator is not installed in the org, these scripts fail and the roster component has nothing to render. Install it first.
* **No order or payment roster record ships out of the box.** fusionCore does not include a packaged order/payment `Roster_Setting__c`. You create the records yourself with the scripts above; nothing appears until you do.
* **`Where_Query__c` is raw SOQL you write — a missing user filter leaks records.** The clause runs without sharing, so if you omit a `:usrObj` filter (for example, `BillToContactId = :usrObj.ContactId`), the table returns every matching record across all members, not just the logged-in user's. Always scope each query to the current user.
* **Half-configured Business Units produce blank action links.** The `FS_Portal_Actions__c` links render empty — with no error — unless the Business Unit's `FCORE_PORTAL__Portal_URL__c`, `FCORE_PORTAL__Portal_Checkout_Page_Path__c`, and `FS_Portal_Installments_Page_Path__c` are all set.
* **The installment link is conditional.** The installment portion of the action links only appears when the order's next installment is populated (`FCORE_PAY__Next_Installment__c`). A blank installment link on an order with no upcoming installment is expected.
