Go to primary content
Siebel CRM Siebel Mobile Guide: Disconnected
Siebel Innovation Pack 2015, Rev. D
E52427-01
  Go to Documentation Home
Home
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
 
Next
Next
    View PDF

Constructing Business Object Filters for Siebel Mobile Disconnected Applications

Business object filters are applied to a specified business object, and they can contain search and sort specifications for business components that are part of the business object.

There must be a default filter for each business object name. Default filters make sure that users avoid downloading too many records accidentally. It is not recommended that you set more than one filter as the default for a business object.

You can specify business object filters at either the application level or the user level, but not at the component level. Business object filters specified at the user level override a filter specified at the application level, provided the application-level filter has the identical values for the business object name and filter name. The list of filter options presented to the user is the merged list of all application filters except those overridden at the user level, plus all user filters.

Information about the following is included in this topic:

Example Syntax of Business Object Filter

Business object filters use the following predefined query (PDQ) syntax:

'Account'.Search = "[State] = LookupValue ( ""STATE_ABBREV"", ""CA"" )" 'Account'.Sort = "Name, Location"

where:

  • Account is the business component name.

  • Search is the key word.

  • "[State] = LookupValue ( ""STATE_ABBREV"", ""CA"" )" is the search specification where:

    • State is the field name.

    • LookupValue is the function for find and the LOV value.

    • STATE_ABBREV is the LOV type.

    • CA is the LOV value.

  • 'Account'.Sort = "Name, Location" is the sort specification for sorting the returned list.


    Note:

    The normal syntax applies for search and sort specifications. However, quotes must be escaped using double quotes in the search specification because the search specification itself is enclosed in double quotes.

PDQ syntax rules are as follows:

  • The business component name must be a valid business component in the business object on which the PDQ is based.

  • Search and Sort can be specified for all active buscomps in the business object on which the view is based, appended to each other in any order using space as delimiter.

For more information about PDQ syntax, see Siebel Developer's Reference.

Setting Business Object Filters for Siebel Mobile Disconnected Applications

You use the Business Objects Filters tab in the Administration - Siebel Mobile, Application Administration view to define business object level filters, which restrict data that is downloaded to the Siebel Mobile client upon synchronization. The following procedure shows you how to set a business object filter for Siebel Mobile. There is no naming convention for business object filters.

To set a business object filter 

  1. Navigate to the Administration - Siebel Mobile screen, then the Application Administration view.

  2. Select the appropriate mobile application in the top applet, and then click the Business Object Filters tab.

    The fields in the Business Object Filters view are described in the following table.

    Field Comments
    Owner Read only. Indicates the mobile application to which the business object will be associated. For example: Siebel ePharma Mobile.
    Default Indicates what filter to use by default if a user does not make a selection. Be sure to define a default filter for each business object in Siebel Mobile. If no filters are applied during the synchronization process, then an unacceptably high volume of data will be downloaded to the mobile device.
    Business Object Text box. Indicates the business object name.
    Name Text box. Indicates the business object filter name. For example: Filter 1.
    Query Text box. Indicates the syntax for the query, for example:
    'Account'.Search = "[Account Status] = LookupValue (""ACCOUNT_STATUS"", ""Active"" )" 'Account'.Sort = "Name, Location"
    

  3. In the Query field, define the filter for each business object as required.

  4. To add a new business object filter, click New, and then enter the required information.

Removing a Business Object Filter Setting

The following procedure shows you how to remove a business object filter setting.

To remove a business object filter setting  

  1. Navigate to the Administration - Siebel Mobile screen, then the Application Administration view.

  2. Select the appropriate mobile application in the top applet, and then click the Business Object Filters tab.

  3. Select the filter setting record that you want to remove.

  4. From the Business Object Filters menu, choose Delete Record.

Business Object Filter Chaining

Business object filter chaining refers to the process of downloading a business objects's dependent or child business component records (buscomps), as defined by the business object filter. To ensure that you download all the dependent or child business component records for a business object, you must enhance the business object filter by adding extra parameters to it for chained data extraction.

Syntax for Business Object Filter Chaining

The syntax for configuring chained data extraction for business object filters is as follows:

AddSearch((<SourceLocation1>,< DestinationLocation 1>),(<SourceLocation2>,< DestinatinLocation 2>),. . . )

where:

  • <SourceLocation> can be specified in one of the following ways:

  • <BCName>.<FieldName>

    <BCName> is the name of the business component (Buscomp) in the source business object. That is, the business object in which this configuration is added. <FieldName> is the field name in the business component whose value will be mapped to the records in the destination.

  • <BCName>

    The field from the source business component, which is mapped to the records in the destination business component, is "Id" by default.

  • <DestinationLocation> can be specified in the following ways:

  • <DestinationBOFilterName>.<BCName>.<FieldName>

    Here <DestinationBOFilterName> refers to the filter name of the destination business object, <BCName> is the business component name in the destination business object, and <FieldName> is the field in that business component which has to match the source business component's field value.

  • <DestinationBOFilterName>.<BCName>

    The field from the source business component, which is mapped to records in the destination business component, is "Id" by default.

  • <BCName>

    If only the business component name is specified, then the records from the source will be mapped to the Id value of the business component, as specified by the source business object.

Overview of Filtering Options

Before starting to configure business object filters for Siebel Mobile, note that the following filtering options are available:

  • Business Object Filters. You can configure different business object filters for different views in Siebel Mobile as shown in "Example Business Object Filters". Business object filters have the following limitations:

    • Dependent business component records are not downloaded as part of business object filters.

    • Business object filters do not apply to pop-up applets.

  • Business Object Filter Chaining. To ensure that all dependent business component records are downloaded for a business object, you can configure business object filters with business object chaining as shown in "Example Business Object Filters With Chained Data Extraction".

  • Filters for Pop-up Applets. To restrict the data downloaded in a pop-up applet, you can use the PopupSearch filter condition to filter the data extraction as shown in the example in "Configuring Business Component Filters for Pop-up Applets". If a filter is specified for a business component at both the business component and business object level, then you can use the IncludeInBOIterations keyword in your query to specify to apply the business object filter, otherwise neither filter condition will be applied. For more information, see the example in "About Filter Application During Chained Data Extraction".

Example Business Object Filters

The example business object filters in Table 5-4 are explained as follows:

  • Pharma Professional Call - Mobile business object filter. Download all Calls along with their child business component records (including the products detailed, promotional items, and samples disbursed records) which fall within the date range plus or minus 5 days from today.

  • Contact business object filter. Download all My Contacts along with their child business component records, including the calls within the date range plus or minus 10 days from today.

  • Account business object filter. Download all My Accounts of type Hospital along with the calls for those accounts within the date range plus or minus 10 days from today, and other child objects.

Table 5-4 Example Business Object Filters

Default Business Object Name Query

Yes

Pharma Professional Call - Mobile

PH1

'Pharma Professional Call - Mobile'.Search = "(([Start Date] >= Today() - 5) AND ([Start Date] <= Today() + 5))"

Yes

Contact

PH2

'Contact'.Search = "[My Position Id] = PositionId()" 'Pharma Professional Call - Mobile'.Search = "([Start Date] >= Today() - 10) AND ([Start Date] <= Today() + 10)"

Yes

Account

PH3

'Account'.Search = "[Type] = LookupValue ( ""ACCOUNT_TYPE"", ""Hospital"" ) AND [My Position Id] = PositionId()" 'Pharma Professional Call - Mobile'.Search = "(([Start Date] >= Today() - 10) AND ([Start Date] <= Today() + 10))"


The business object filters in Table 5-4 do not include chained data extraction and, as a result, have the following limitations:

  • If you want to see the call details (products detailed, promotional items, and samples disbursed records) for all Contact calls, then you will be unable to do so. For example, you will be unable to see the call details for Contact calls where the date is greater than 5 days but less than 10 days.

  • If there is an account of type Pharmacy (not of type Hospital) to which a call is scheduled within the date range plus or minus 5 days from today, then even though the call is visible in the Calls list, you will be unable to review the account details for the call because the record was not downloaded as part of the account business object. Only account records of type Hospital were downloaded.

Example Business Object Filters With Chained Data Extraction

To ensure that all relevant and dependent data is downloaded and available to users in offline mode, you must enhance the example business object filters in Table 5-4 by adding additional parameters for chained data extraction. In Table 5-5, the additional parameters added for chained data extraction are highlighted in bold. Note the following:

Table 5-5 Example Business Object Filters with Chained Data Extraction

Default Business Object Name Query

Yes

Pharma Professional Call - Mobile

PH1

'Pharma Professional Call - Mobile'.Search = "([Start Date] >= Today() - 5) AND ([Start Date] <= Today() + 5)" AddSearch(("Pharma Professional Call - Mobile.Contact Id","PH2.Contact"),("Pharma Professional Call - Mobile.Account Id","PH3.Account"))

Yes

Contact

PH2

'Contact'.Search = "[My Position Id] = PositionId()" 'Pharma Professional Call - Mobile'.Search = "([Start Date] >= Today() - 10) AND ([Start Date] <= Today() + 10)" AddSearch(("Pharma Professional Call - Mobile","PH1.Pharma Professional Call - Mobile"))

Yes

Account

PH3

'Account'.Search = "[Type] = LookupValue ( ""ACCOUNT_TYPE"", ""Hospital"" ) AND [My Position Id] = PositionId()" 'Pharma Professional Call - Mobile'.Search = "([Start Date] >= Today() -10) AND ([Start Date] <= Today() + 10)" AddSearch(("Pharma Professional Call - Mobile","PH1.Pharma Professional Call - Mobile"),("Contact","PH2.Contact"),("Affiliated Account.Party Id","Account"))


In Table 5-5, the example business object filters with chained data extraction are explained as follows:

  • Pharma Professional Call - Mobile business object filter. Specifies to download:

    • All Contact business component records and their children in the Contact business object whose Id matches the Contact Id of the Pharma Professional Call - Mobile buscomp, which was downloaded as part of the Pharma Professional Call - Mobile business object.

    • All Account business component records and their children in the Account business object whose Id matches the Account Id of the Pharma Professional Call - Mobile buscomp, which was downloaded as part of the Pharma Professional Call - Mobile business object.

  • Contact business object filter. Specifies to download all Pharma Professional Call - Mobile records and their children in the Pharma Professional Call - Mobile business object whose Id matches the Id of the Pharma Professional Call - Mobile buscomp, which was downloaded as a child of the Contact business component in the Contact business object.

  • Account business object filter. Specifies to download:

    • All Pharma Professional Call - Mobile records and their children in the Pharma Professional Call - Mobile business object whose Id matches the Id of the Pharma Professional Call - Mobile buscomp, which was downloaded as a child of the Account business component in the Account business object.

    • All Contact records and their children whose Id matches the Id of the child Contacts, which were downloaded as part of the Account business object.

    • All the child records of the Accounts which are affiliated to the downloaded Accounts.

About Filter Application During Chained Data Extraction

If there is a filter specified for a business component at both the business component filter level and the business object filter level, then neither filter conditions are applied to the records being downloaded during a chained data extraction. During a chained data extraction, all flat business component and business object filters that are configured for a business component are not applied by default. To override this, you must use the IncludeInBOIterations keyword set to Y in your query, which specifies to apply the business object filter, as shown in the example in Table 5-6.

Table 5-6 Example Business Component Filter During Chained Data Extraction

Application Business Component Name Query

Siebel Mobile application for Siebel Pharma

Contact

ContactFilter

[My Position Id] = PositionId () PopupSearch([Dock Type] = "Y") IncludeInBOIterations = 'Y'


Related Topic

"Configuring Business Component Filters for Pop-up Applets"