FAQ: SFM Designer
This section contains frequently asked questions regarding SFM Designer and SFM Configuration.
Which objects are allowed/blocked in the SFM Process? How is this determined?
Only specific Salesforce standard objects are supported in the SFM Process. To know more about which Salesforce standard objects are supported in an SFM Process and what ServiceMax custom objects are blocked in an SFM Process, refer to the section Supported Objects.
What is the minimum set of fields that a user should have access to for any object?
Since your objects could have any number of fields and all might not be required for the end-user to carry out his transactions, you would want to limit access by restricting field-level permissions. However, when adjusting the field-level permissions for any object, do take care to grant permissions to fields that need to be accessible to the user based on the SFM transactions that will be available to the user.
They are:
1. Fields included in SFM page layouts (and associated lookup configuration search, display, bubble, pre-filter, context, advanced filter, and form-fill fields) and document templates
2. Fields included in Qualifying Criteria
3. Fields included in Field and Value maps
4. Fields included in Source or Target Object Update
5. Fields included in Sorting configuration in the Advanced Options tab in SFM Designer
6. Fields included in SFM Data Validation Rules
7. Fields included in SFM Wizard or Wizard Step Criteria expressions
8. Fields included in SFM Search configuration as a filter, search result display, search, or sort fields
9. Fields included in Mobile Configuration Download and Advanced Download Criteria expressions if using mobile apps
The product lookup field is not displayed in the list of fields for the Opportunity Product object. How do I make it visible?
This is because Product is not an actual field in the Salesforce data model for the Opportunity Line object. So, customization as described in the section Using Product from Opportunity Line in SFM Transactions Using Product from Opportunity Line in SFM Transactions is required to address this.
How can an SFM transaction be translated?
Object names, field labels, record type, and picklist values are translated using Salesforce Translation Workbench.
SFM transaction name, description, page help text, header and child section titles, link titles in Linked SFM Processes, and Data Validation Rule error/confirmation messages are translated using ServiceMax Translation Workbench.
What are the literals supported in SFM? Are there any limitations?
SFM Literals are special keywords supported in SFM. These are also known as Field Attributes or Functions or Constants. These are supported in various contexts such as expressions, maps, source / target object updates, lookup filters, data validation rules, and custom actions.
Some of these are presented as picklist values, enabling the admin to select the required value in the SFM Designer. Examples of these are Date / Datetime literals 'Now', 'Today', 'Tomorrow', and 'Yesterday' and the Location lookup field function 'User Trunk' in Advanced Lookup Filter. Some of these need to be manually entered. Examples of these are the User lookup field literal 'SVMX.CURRENTUSERID' and literals 'SVMX.CURRENTRECORD' and 'SVMX.CURRENTRECORDHEADER' that are used with Field API Names appended to them. This section describes each of these literals and the contexts in which each literal is supported, with examples.
How can an SFM transaction be invoked from a Salesforce button?
An SFM transaction can be configured to be executed in background instead of interactively. This configuration for Mode of Execution is available in SFM Wizard configuration screen, at the wizard step level. For more information, see
SFM Wizard Configuration.
Can formula and rollup summary fields be used in SFM Data Validation rules?
Yes, they can be used when existing records are updated, as long as their values do not depend on the values of other fields entered/expected to be entered by the user in the current SFM screen.
How can a lookup field in a child record be limited based on a header section field?
How can a lookup field in a child record be limited based on a header section field?
How can lookup search results be constrained based on multiple context fields?
It can be achieved using the lookup configuration basic filter (pre-filter). The basic filter supports the literal SVMX.CURRENTRECORD and SVMX.CURRENTRECORDHEADER (this literal is only for SFM transactions of type Standalone Edit and Source to Target to create Child records only). One limitation of the basic filter is that it cannot be overridden by the end-user; it is always applied. For more details, refer to the section Defining a Basic Filter.
How to display the Name field value of a related lookup field when it is configured as a Display Field in Lookup Configuration?
When you select a lookup field as a Display Field, the Salesforce ID of the looked-up record is displayed. To display the Name field value of the looked-up record, create a formula field that points to the name field of the looked-up record, and configure this formula field as the Display Field.
For example, the configuration of the lookup field Included Service in the standard SFM transaction Manage Custom Coverage is defined as follows.
• A formula is defined for the Service Name custom field which points to the name field of the looked-up record. Service Name formula definition
• In the lookup configuration defined for Included Service, the Display Field is set to Service Name.
• Included Service Lookup field Display Name set to Service Name
• Run the Manage Custom Coverage SFM transaction. The SFM Delivery page displays the name instead of the Salesforce Id.
How to set the Contract Start Date on renewal to the original Contract End Date + 1 day?
SFM Mapping does not provide an option to do this. However, you can create a formula field of Date type in the Service/Maintenance Contract object named Renewal Start Date with the formula SVMXC__End_Date__c+1, and then map Start Date to Renewal Start Date instead of End Date.
Are there any limitations with source object updates?
Each target field mapped to a source field in Source Object Update must be included in the page layout or the field/value map.
Does SFM support linking multiple Installed Products to a single Work Order?
Yes, it is supported through the Linked SFM Process. As the number of installed products is not fixed, these should be associated with Work Detail records instead of Work Orders. You can add these as Products Serviced, using the standard SFM 'Add/Edit Products Serviced'. For each such Product Serviced record added in SFM, you can invoke the Linked SFM Process 'Add/Modify Work Details' to add Parts, Labor, Expense, and Travel lines. For more details, refer to the section How to link multiple Installed Products to a single Work Order.
Is there an SFM Literal for a Work Detail SFM map, which can be used to populate a technician lookup field with the current technician name (technician associated with the logged-in Salesforce user)?
There is no such literal. To auto-populate, a technician lookup field in a Work Detail record with the technician associated with the Salesforce user who creates the work detail record, a before insert trigger is required to be defined on the Work Detail object.
| The business context for the above question is as follows: Where a Work Order has multiple assignments, there is a need to identify the technician on the labor line, who is technically the current user on any mobile app / online. Information about multiple assigned Technician names is NOT stored on the Work Order. Only the primary technician's name is stored in the Work Order in the Technician field. The other assigned technicians’ names are not stored. Only events are created for the other technicians and these events are assigned to the Salesforce users associated with the assigned technicians. |
How can I create a child IB with the same product as the parent IB? I get the error 'Cannot create a child-installed product that has the same product name as a parent' when I try to do this.
The standard SFM transaction Create Child Installed Product (TDM001) has Before Save/Insert web service SVMXC__INTF_WebServicesDef.INTF_IB_PopulateName_WS configured. This validates the Product field value and displays the error 'Cannot create child installed product that has the same product name as a parent' if the parent and child IBs are of the same product type.
This web service also does the following:
• Auto-populates the Installed Product ID (Name) field of the target record with the Serial/Lot Number field value (if this is not done, the Installed Product ID field will be populated by Salesforce with the SFID of the record).
• If the global setting SET003 under the Installed Product module, Create child installed product submodule is set to True (default value), it makes the Serial Number field mandatory. Else, it allows the field to be left blank.
To create a child IB with the same product as the parent IB, you can clone the standard SFM transaction Create Child Installed Product and then change the page layout to a custom page layout without any web service. Make sure that the Event Type picklist value is set to None for the Before Save/Insert event.
To ensure that the technician correctly populates the Installed Product ID field, include it in the custom page layout as a mandatory field, and define an SFM Data Validation Rule with the error expression "Installed Product ID Not Equal Field Serial/Lot Number".
If you need the Installed Product ID to be auto-populated, you need to write a custom web service and configure it as a Before Save/Insert web service for the custom page layout.
How do I assign a field as a required field in the SFM?
To assign a field as a required field:
1. Go to ServiceMax Setup > Service Flow Manager > Transaction Designer. The Transaction list view is displayed.
2. Edit an existing SFM transaction and click the Layout Editor tab. The Layout Editor tab is displayed.
3. Click the required field. The Field Properties are displayed on the right.
4. Enable the Required field property toggle button.
5. Click Save.
Is it possible to hide a mandatory or required field on the SFM screen?
Yes, to hide a mandatory field use the Salesforce field-level permissions. The SFM screen only displays fields that the user has permission to view or edit.
Does Work Order Counter Reading History count for data storage?
Work Order Counter Reading History and Work Order Histories do not count for data storage.
How to edit the related list section and add the required fields?
An object's Page Layout can be edited to rearrange and remove fields on the record detail page.
To add fields on the record detail page:
1. Click the gear icon in the top right corner.
2. Click Setup.
3. Click the Object Manager Tab.
4. Select the object that you would like to make a change to.
5. Click Page Layouts on the left pane.
6. Navigate to the page layout that you want to update.
7. Go to the Related List where you want to add a field.
8. Click on the Wrench icon to open its related list properties.
9. Select the custom fields you have deployed from the Available Fields box, and click Add to add them to the Selected Fields box.
10. Click Save.