Invoice Item Builder Setup (Deprecated)

The Invoice Item Builder functionality in FieldFX has been deprecated and no longer supported.

Configure the FX Item Picker Lightning Component Options for adding Invoice Items to a ticket in Back Office.

You should switch to the Lightning Experience and use the tools FieldFX has there instead.

Prerequisites

To set up the Invoice Item Builder, you need to:

Have these user licenses Have these permissions Complete these tasks
and review these topics
before continuing

Setting Up the Invoice Item Builder

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter static in the Quick Find box, then select Static Resources.

  4. Complete one of the following:

  5. Download the en_US file.

  6. Extract the file and save it to your local computer.

  7. Move back to FieldFX Back Office.

  8. Click New.

  9. Complete the following:

    1. In Name, enter en_US.

    2. In Cache Control, select "Public".

    3. Click Choose File.

    4. Select the en_US file you downloaded.

  10. Click Save.

  11. Configure the Invoice Details fields.

  12. Configure the Item grid.

  13. Configure the Item picker.

Invoice Details

The Invoice Details section displays basic invoice information.

Screenshot of the Invoice Details section
The user’s default page layout for the Invoice object must include the recordType field for the Invoice Details section to display.

Selecting the Fields to Display

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic

  3. From Setup, enter object in the Quick Find box, then select Objects.

  4. Click Invoice.

  5. Under Compact Layouts, click New.

  6. Complete the following:

    1. In Label, enter Invoice Details.

    2. In Available Fields, select the fields to include.

    3. Click Add.

    4. In Selected Fields, change the order.

    5. Click Save.

  7. Click Compact Layout Assignment.

  8. Complete the following:

    1. Click Edit Assignment.

    2. In Primary Compact Layout, select "Invoice Details".

    3. Click Save.

Item Grid

The Item grid displays the items on an invoice.

Screenshot of an example Invoice Item Grid

Selecting the Fields to Display

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter object in the Quick Find box, then select Objects.

  4. Click Invoice Item.

  5. Under Page Layouts, click Edit next to Invoice Item Layout.

  6. Change the fields.

  7. Click Save.

Configuring a Field to Display Read-Only

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter object in the Quick Find box, then select Objects.

  4. Click Invoice Item.

  5. Under Custom Fields & Relationships, click the field name.

  6. Click Set Field-Level Security.

  7. Select Read-Only next to the user profiles on which to impose the read-only restriction.

  8. Click Save.

Fields use a combination of page layout and field-level security settings and the most restrictive field setting always applies.

For example, if you make a field required in the page layout security settings and read-only in the field-level security settings, the field displays read-only for the user profiles specified in the field-level security settings.

Item Picker

Search Filters

Search filters display at the top of the Item picker.

Use search filters to change the items available for selection on the Item picker.

Screenshot of the Price Book Search Filters
Figure 1. Search filters on the Price Book Items tab

Selecting the Fields for Search Filters

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter object in the Quick Find box, then select Objects.

  4. Complete one of the following:

    • Click Credit Memo to select fields for credit memo search filters.

    • Click Job to select fields for job search filters.

    • Click Price Book Item to select fields for price book item search filters.

    • Click Ticket to select fields for ticket search filters.

    • Click Ticket Item to select fields for ticket item search filters.

  5. Under Field Sets, click Edit next to IIBSearchFields.

  6. Drag fields into the In the Field Set list.

  7. Click Save.

  8. Repeat for other objects as needed.

Search Results

Search results display at the bottom of the Item picker.

You can add items in the search results to an invoice.

Screenshot of search results in Price Book Items
Figure 2. Search results on the Price Book Items tab

Selecting the Fields for Search Results

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter object in the Quick Find box, then select Objects.

  4. Complete one of the following:

    To select fields for these search results…​ Do this…​

    Click Credit Memo.

    Click Price Book Item.

    Click Ticket.

    Click Ticket Item.

  5. Complete the following:

    In these fields…​ Do this…​

    Search Layouts

    Click Edit next to Search Results.

    Available Fields

    1. Select the fields to include.

    2. Click Add.

    Selected Fields

    1. Select the fields to remove and click Remove.

    2. Change the order.

    3. Select Override the search result column customizations for all users.

    4. Click Save.

  6. Repeat these two steps for other objects as needed.

Picker Width

You can set the width of the Item picker to control how far it displays across the page.

Setting the Picker Width

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter custom setting in the Quick Find box, then select Custom Settings.

  4. Click Manage next to FX Settings.

  5. Click Edit.

  6. In InvItemBldr PBI MaxFlyoutWidth, specify the picker’s width when it flies across the page.

    Use a width between 500-1000.

  7. Click Save.

Customize the Invoice Item Picker

  1. Use Custom Settings to disable certain features of the Invoice Item Picker to hide them from users.

  2. Add values to the pageSettings_IIB FXSetting in Custom Settings.

  3. Enter multiple values separated by commas.

Custom Lookups

The Custom Lookups feature improves how lookups work on the Item grid and Item picker.

This powerful feature gives you the ability to:

  • Limit the records that display available in lookups

  • Define the fields that display in lookups

  • Define the fields analyzed for keyword searches in lookups

Examples

Contact Lookup

Here’s an example of how you can configure a Contact lookup.

Table 1. Configuring a Contact lookup
Setting Value Impact

QueryFilter

(LastName=NULL OR LastName LIKE 'S%')

Only contacts with a blank last name or a last name starting with the letter "S" display available for selection.

QueryFields

FirstName, LastName, FX5__Office__r.Name

The listed fields display for contacts in search results.

KeywordSearchFields

LastName

Keyword searches analyze the last name of contacts.

OrderBy

LastName

Contacts sort in alphabetical order by last name.

Equipment Lookup

Here’s an example of how you can configure an Equipment lookup.

Table 2. Configuring an Equipment lookup
Setting Value Impact

QueryFilter

(FX5__Office__r.Name LIKE 'H%')

Only equipment cross-referenced to offices starting with the letter "H" displays available for selection.

QueryFields

Name, FX5__Description__c, FX5__Office__r.Name

The listed fields display for equipment in search results.

KeywordSearchFields

Name, FX5__Description__c

Keyword searches analyze the name and description of equipment.

OrderBy

Name

Equipment sorts in alphabetical order by name.

Configuring Custom Lookups

Scenario

As an example, we will show you how to configure a Contact lookup.

The code examples walkthrough adds a section of code each time. Each new step includes all of the previous code entries as well as the new part.
Copy the code from the last step to select the entire code block.
  1. Add a CSF_Settings static resource:

    1. Open a text editor.

    2. Enter the following to name the static resource:

      window.csf_settings = {
      }
    3. Enter the identifying code for the Invoice Item Builder and Item grid:

      window.csf_settings = {
        iib: {
          maingrid: {
          }
        }
      }
    4. Enter the API name of the lookup:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
              "Contact__c": {
              }
            }
          }
        }
      }
    5. Enter a SOQL query to restrict the records that display available for selection in the lookup:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
              }
            }
          }
        }
      }
    6. Enter the fields to display for records in search results:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
              }
            }
          }
        }
      }
      • In this example, the First Name, Last Name, and Office fields display for records.

    7. Enter the fields to analyze in keyword searches:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
              }
            }
          }
        }
      }
      • In this example, keyword searches analyze values in the Last Name field.

    8. Enter the field by which to sort records:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }}}}}
      • In this example, records sort in alphabetical order by last name.

    9. Add braces { } to end the code for the Item grid:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
                "Contact__c": {
                    "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                    "QueryFields": "FirstName, LastName, FX5__Office__r.Name";
                    "KeywordSearchFields": "LastName",
                    "OrderBy": "LastName"
                }}}}}
    10. Add code for the Available Tickets tab on the Item picker.

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
                "Contact__c": {
                    "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                    "QueryFields": "FirstName, LastName, FX5__Office__r.Name";
                    "KeywordSearchFields": "LastName",
                    "OrderBy": "LastName"
                  }
              }
          },
          atipicker: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }
            }
          }
        }
      }
    11. Add code for the Price Book Items tab on the Item picker.

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
                "Contact__c": {
                    "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                    "QueryFields": "FirstName, LastName, FX5__Office__r.Name";
                    "KeywordSearchFields": "LastName",
                    "OrderBy": "LastName"
                  }
              }
          },
          atipicker: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }
            }
          },
          apbipicker: {
            "Contact__c": {
              "Contact__c": {
                  "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }
            }
          }
        }
      }
    12. Add braces { } to end the lookup configuration:

      window.csf_settings = {
        qib: {
          maingrid: {
            "Contact__c": {
                "Contact__c": {
                    "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                    "QueryFields": "FirstName, LastName, FX5__Office__r.Name";
                    "KeywordSearchFields": "LastName",
                    "OrderBy": "LastName"
                  }
              }
          },
          atipicker: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }
            }
          },
          apbipicker: {
            "Contact__c": {
              "Contact__c": {
                "QueryFilter": "(LastName=NULL OR LastName LIKE 'S%')",
                "QueryFields": "FirstName, LastName, FX5__Office__r.Name",
                "KeywordSearchFields": "LastName",
                "OrderBy": "LastName"
              }
            }
          }
        }
      }

      Every left brace { should have a matching right brace }.

    13. Save the file with "CSF_Settings" as the file name.

  2. Upload the CSF_Settings file to FieldFX Back Office:

    1. Access FieldFX Back Office.

    2. Switch to Salesforce Classic.

    3. From Setup, enter static in the Quick Find box, then select Static Resources.

    4. Click New.

    5. In Name, enter CSF_Settings.

    6. In Cache Control, select "Public".

    7. Click Choose File.

    8. Select the CSF_Settings file.

      When you upload a new CSF_Settings file, the lookup configurations in the new file replace any existing lookup configurations.

  3. Test the Contact lookup.

    1. Open the Invoice Item Builder.

    2. Open the Contact lookup.

    3. Verify that the lookup works as configured.

Invoice Item Builder Button

The Invoice Item Builder button displays at the top of an invoice in FieldFX Back Office.

Screenshot of the Invoice Item Builder button highlighted

Changing the Name of the Invoice Item Builder Button

  1. Access FieldFX Back Office.

  2. Switch to Salesforce Classic.

  3. From Setup, enter translation in the Quick Find box, then select Override.

  4. In Package, select "FieldFX Base Package".

  5. In Language, select "English".

  6. In Setup Component, select "Button and Link Label".

  7. In Object, select "Invoice".

  8. Double-click the Button or Link Label Override column next to Invoice Item Builder.

  9. Enter a new button name.

  10. Click Save.