5Data Filtering for Siebel Mobile Disconnected Applications

Data Filtering for Siebel Mobile Disconnected Applications

This chapter describes how to develop data filters for your Siebel Mobile disconnected application. It includes the syntax for constructing business component filters, as well as some useful information on managing your filters. It includes the following topics:

Developing Data Filters for Siebel Mobile Disconnected Applications

The following general steps are recommended for developing synchronization filters for Siebel Mobile disconnected applications:

  1. Identify the screens and views of your application. Then identify the business components that are required to support each screen and view, noting the areas where each business component occurs. For example, identify the form, list, or pick applets that are based on each business component.

  2. Within Siebel Tools, establish the base parent-child relationships and any reverse relationships at the component level.

  3. Review the business components that occur in picklists, and consider creating business component filters for those that will cause large numbers of records to synchronize with the mobile application. For each business component, determine whether it is possible to apply a search specification to all instances of the business component within the Siebel Mobile disconnected application. Develop a set of suitable business component filters in the Administration - Siebel Mobile, Application Administration view.

    Common examples of business components that are suitable for global business component filters include:

    • Employees (for large organizations)

    • Activities (for example, filter for current activities or activities of only certain kinds)

    • Accounts (for example, by geography)

    • Products (for example, active, or orderable products)

    • Orders (for example, open or closed in the last three months)

  4. Create appropriate business object synchronization filters for each business object, and make sure that each business object includes a default filter. Default filters make sure that users avoid downloading too many records accidentally. Business object filters are created and maintained in the Administration - Siebel Mobile, Application Administration view.

    Note: In a multilingual environment, default filters are created for the primary language only. If your environment is multilingual, then you must configure additional filters for each additional language that you want to run.

Constructing Business Component Filters for Siebel Mobile Disconnected Applications

Business component filters are used to restrict the size of extractions that otherwise might be too big. They suppress the extraction of business component records. Use business component filters with discretion because too much filtering can cause data-integrity problems on the server.

You can specify business component filters at either the application level or the user level. Do not specify business component filters at the user level outside of your test environment. After testing your business component filters, migrate them to the application level.

Information about the following is included in this topic:

    Example Syntax of Business Component Filter

    Business component filters are used to limit the extraction of a business component for every context in which it is extracted. Business component filters use query by example (QBE) syntax:

    [Status] = "Not Started" OR [Status] = "In Progress" OR ([Status] IS NULL) OR 
    [Status] = "On Hold" OR ([Status] = "Done" AND [Done] >= Today() - 7)
    

    For more information about QBE syntax, see Siebel Developer's Reference. Example business component filters, specific to the Siebel Mobile application for Siebel Pharma, are shown in the tables in Setting Business Component Filters for Siebel Mobile Disconnected Applications.

      Setting Business Component Filters for Siebel Mobile Disconnected Applications

      You use the Business Components Filters tab in the Administration - Siebel Mobile screen, Application Administration view to configure or change synchronization filter settings for business components. The following procedure shows you how to set a business component filter for Siebel Mobile disconnected applications. There is no naming convention for business component filters.

      Note: You can access the Administration - Siebel Mobile screen through either the Siebel Web Client or Siebel Mobile Web Client.

      To set a business component filter

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

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

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

        Field

        Comments

        Owner

        Read only. Indicates the Siebel Mobile disconnected application to which the business component will be associated. For example: Siebel ePharma Mobile.

        Business Component

        Text box. Indicates the business component name.

        Name

        Text box. Indicates the business component filter name. For example: Filter 1.

        Query

        Text box. Indicates the syntax for the query, for example:

        [Start Date] <=Today()
      4. In the Query field, define the filter for each business component as required.

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

      The following table shows some example business component filters for the Siebel Mobile application for Siebel Pharma, including the table to which the business component filter belongs, the filter specification, and whether the filter can be modified or not.

      Table Siebel Mobile Application for Siebel Pharma: Key Business Component Filters

      Business Component

      Table

      Filter Description

      Filter Specification

      Enabled

      Pharma Professional Call - Mobile

      S_EVT_ACT

      My Calls scheduled within the last (plus or minus) 7 Days.

      ([Start Date] > Today() - 8) AND ([Start Date] < Today() + 8) AND EXISTS [Owned By Id]= LoginId()

      Yes

      Contact

      S_CONTACT

      DOCK_FLG='Y' is the Dock Flag to be set for all Contacts who are part of My Calls in the last (plus or minus) days.

      [My Position Id] = PositionId() AND [Dock Flag]='Y'

      Yes

      Account

      S_ORG_EXT

      My Accounts

      ([My Position Id] = PositionId ())

      Yes

      Account

      S_ORG_EXT

      My active accounts of type Hospital.

      ([Account Status]=LookupValue("ACCOUNT_STATUS","Active") AND [My Position Id] = PositionId() AND [Type] = LookupValue("ACCOUNT_TYPE","Hospital"))

      Yes

      The following table shows some example business component filters that drive picklists for the Siebel Mobile application for Siebel Pharma.

      Table Siebel Mobile Application for Siebel Pharma: Business Component Filters that Drive Picklists

      Business Component

      Table

      Filter Description

      Filter Specification

      Pharma Professional - Primary Speciality

      S_MED_SPEC

      Filter all specialities in My Organization.

      (EXISTS [XYZ Organization Id] = OrganizationId())

      CUT Address - CE

      S_ADDR_PER

      Filter addresses linked to My Contacts or My Accounts.

      (EXISTS ([Account Position Id]=PositionId())) OR (EXISTS ([Contact Position Id]=PositionId()))

      Pharma Address Inter Table - CE

      S_CON_ADDR

      Filter addresses linked to Contacts.

      [Professional Position Id] = PositionId() AND [Dock Flag]='Y'

      Pharma Internal Product (Brands)

      S_PROD_INT

      Filter the products owned by the user.

      [Owned By Id] = LoginId()

      LS Pharma My Products List

      S_EMP_PRDINT

      Filter the products allocated to the user.

      [Owned By Id] = LoginId() AND ([Alloc Start Date] <= Today() AND ([Alloc End Date] IS NULL OR [Alloc End Date] >= Today()))

      LS Pharma My Sample Lots List

      S_EMP_PRDINT

      Filter the samples allocated to the user.

      [Owned By Id] = LoginId() AND ([Alloc Start Date] <= Today() AND ([Alloc End Date] IS NULL OR [Alloc End Date] >= Today()))

      LS Pharma My Promotional Items List

      S_EMP_PRDINT

      Filter the promotional items allocated to the user.

      [Owned By Id] = LoginId() AND ([Alloc Start Date] <= Today() AND ([Alloc End Date] IS NULL OR [Alloc End Date] >= Today()))

      List Of Values

      S_LST_OF_VAL

      Filter the list of values.

      None.

      Picklist Generic

      S_LST_OF_VAL

      Filter the list of values.

      None.

        Removing a Business Component Filter Setting

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

        To remove a business component filter setting

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

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

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

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

          Configuring Business Component Filters for Pop-up Applets

          For business components that are related to pop-up applets, such as picklists and associated applets, you can prevent potentially large volumes of records from being downloaded by applying an additional filter condition called PopupSearch to the data extraction for the business component. If you do not use PopupSearch to filter the data extraction for business components that are related to pop-up applets, then all records are downloaded without any filter. The PopupSearch filter condition is applied in addition to any other filters that are also specified for the business component.

          Business Component Filter Syntax for Pop-up Applets

          The syntax for configuring filters for pop-up applets is as follows:

          PopupSearch(<searchspec>)
          

          The business component filters shown in the following table include the PopupSearch condition. When you use the PopupSearch condition to filter the data extraction for business object components, only records that satisfy the condition are downloaded.

          Table Example Business Component Filters for Pop-up Applets

          Application

          Business Component

          Name

          Query

          Siebel Mobile application for Siebel Pharma

          Contact

          ContactFilter

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

          Siebel Mobile application for Siebel Pharma

          Contact

          ContactFilter

          PopupSearch([Dock Type] = "Y")

          Related Topic

          About Filter Application During Chained Data Extraction

            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 upper 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 upper 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 the following table 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 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 the previous table 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 shown in the table in Example Business Object Filters by adding additional parameters for chained data extraction. In the following table, the additional parameters added for chained data extraction are highlighted in bold. Note the following:

                          Table 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 this table, 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 the following table.

                            Table Example Business Component Filter During Chained Data Extraction

                            Application

                            Business Component

                            Name

                            Query

                            Siebel CRM 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

                              Server Synchronization Deployments

                              For server synchronization deployments, administrators can create business object and business component filters. Both application-level and user-level filters can be used in this deployment. The application-level filters are managed in the Administration - Siebel Mobile, Application Administration view. The user-level filters are managed in the Administration - Mobile, User Administration view. Changes to any filters will be effective on your next synchronization session, without having to restart the Siebel Application Object Manager’s synchronization component for the mobile application. Filters are available to all users. Therefore, define the filters with the needs of all users in mind. For more information about creating filters, see the following:

                                Examples of Default Business Object Declarations

                                You can configure the extraction of business components from business objects, which are not exposed as part of an applet. You set default business object declarations under Settings in the Administration - Siebel Mobile, Application Administration view as described in the following examples.

                                Default Business Object Declaration Example 1

                                The following example of a default business object declaration extracts the Action and Action Employee business components where they occur with the visibility set to zero (0) by using the filter indicated:

                                Action|0||Action||Action Employee|
                                

                                Business object filters are generally used only for extracting business components that do not correspond to any views or applets. Business object declarations identify specific business components within the business object to be extracted. Business object filters normally give a query that is based on the primary business component in the business object. They force the extraction of any business components mentioned in the query when there is no corresponding applet within the application that can cause the extraction to occur.

                                Default Business Object Declaration Example 2

                                In the following example, the declaration is used to extract all the Price List Line Items under the Order Entry (Sales) business object.

                                DefaultBusObjs13=  Order Entry (Sales)|0||Price List Item|
                                

                                This declaration does not have an associated QBE clause. When this is the case, all of the records available to the user for the given visibility are extracted.

                                Note: Be careful when modifying a default business object setting for pick applets, and do so only with the support of a skilled configurator of Siebel Business Applications.

                                  When to Use Default Business Object Declarations

                                  Use default business object declarations to force the extraction of data for a given business component in the context of a given business object and Visibility type. The default business object extractions are performed in the first phase of data extraction. For more information about visibility designations, see Determining the Correct Visibility.

                                  You use these declarations most often to extract additional data that is not extracted as part of the user-interface extraction. This feature can be useful for business components that are referenced programmatically by other business components but are not exposed in the user interface. The default business object declarations are used to force the extraction of a subset of data to the mobile application that might not have been otherwise extracted or, most commonly, to filter the data downloaded for dynamic drop-down lists or pick applets.

                                  All pick data is not downloaded to the mobile application because of the memory constraints on the device. Only pick data for fields that are editable is downloaded. Therefore, if you are doing a query on a pick field, then you might not be able to display the drop-down list. If a pick field is read-only when viewing a record in an applet, then its pick button is disabled.

                                    Determining the Correct Visibility

                                    You must use the correct visibility designation in the default business object declarations. The visibility code entered must be the visibility that governs the data displayed for the business component within the context of the business object specified in the declaration. For example, the visibility code 3 corresponds to All Visibility, which is the visibility that applies to the Account business component when it is used in a pick applet.

                                    To determine the correct visibility

                                    1. Log in to Siebel Tools.

                                    2. Examine the view and business component properties, and do the following:

                                      1. When creating a default business object declaration to restrict the volume of data extracted for a pick applet, begin by examining the Popup Visibility field in Business Component Properties.

                                      2. Cross-reference the visibility type with the visibility code in the following table, and enter the appropriate visibility code in the declaration.

                                      If the Popup Visibility type for the business component is null, then the default value is All.

                                    The following table summarizes the Popup Visibility types and the corresponding visibility codes.

                                    Table Popup Visibility Types and Codes

                                    Popup Visibility Type

                                    Visibility Code

                                    Sales Representative

                                    0

                                    Manager

                                    1

                                    Personal

                                    2

                                    All

                                    3

                                    None

                                    4

                                    Organization

                                    5

                                    Contact

                                    6

                                    Note: Do not use the Group, Catalog, or Sub Organization Popup Visibility types. These visibility types are not supported in the Siebel Mobile disconnected application.

                                      Overriding the Popup Visibility Type

                                      If the Popup Visibility type is not sufficiently restrictive (for example, All Visibility), then this setting can lead to a large number of records being extracted when the picklist is processed during synchronization. Making the pop-up visibility more restrictive reduces the number of records extracted for picklists. The OverridePopupVisibility user property for an applet overrides the Popup Visibility type on a business component. Use this property when the visibility that you want differs from the business component’s Popup Visibility type, and you do not want to change the Popup Visibility type. If several picklists use the same business component, then you can also use the OverridePopupVisibility user property to vary the visibility of the picklists in the different applets.

                                      About Restrictions That Apply When Several Applications Share the Same Repository

                                      Consider the following restrictions if multiple applications are sharing the same repository:

                                      • Changing the Popup Visibility type has a global effect on all instances where the business component is used. If multiple applications share the same repository and use the same business components, then changing the Popup Visibility type for a common business component might have an undesirable effect on another application.

                                      • If multiple applications share the same applet, then the picklist in each applet shares the same visibility as defined by the OverridePopupVisibility property. This is because the OverridePopupVisibility property is set on the containing applet.

                                      To override the pop-up visibility

                                      • In Siebel Tools, navigate to Applet, then Applet User Properties, and define the OverridePopupVisibility user property on the applet containing the control that opens the pick applet.

                                        If OverridePopupVisibility is used, then the picklist and pick applet search specifications are ignored during the synchronization when the records for the picklist are extracted.

                                        It is recommended that you use the condition filter PopUpSearch as described in Configuring Business Component Filters for Pop-up Applets to restrict data download rather than the OverridePopupVisibility user property.

                                        About Multiple Visibility Methods

                                        When a record is extracted by using different visibilities, the record is tagged with each visibility. For example, if an individual contact record is extracted under Org visibility, and if the same contact record is extracted later under Salesrep visibility, then the visibility field on the record contains a bitmask indicating that the two visibilities apply to this record. The synchronization of mobile applications extracts data in the following order:

                                        1. DefaultBusObjs

                                        2. Views

                                        3. PickList

                                          About Visibility on the Siebel CRM Client

                                          Each record downloaded to the Siebel CRM client is sampled with a visibility number. The visibility number is used to determine which views the record must display. The visibilities supported and the corresponding visibility codes are shown in the table in Determining the Correct Visibility.

                                          Note: Group, Catalog, or Sub Organization visibility are not supported. For each BC Table in the local storage, there is a column called _PdaVisibilityTypes which holds the visibility information. The value in this field is calculated using the following formula: The sum of the power of 2 to the n, where n is the visibility code indicating the visibility of the record. For example, if a record is configured with the Sales Representative and All visibility types, then the value in the _PdaVisibilityTypes field would be (2^0 + 2^3) = (1+8) = 9.