21Managing Product Group Visibility

About Product Group Visibility

The purpose of product group visibility is to allow one product group, also known as a business product line, to control the sharing of information with other product groups, especially among corporate and investment banks. This functionality for matrix-based organizations is fundamental to such banks because of the need to follow regulatory requirements and to maintain privacy between select product groups. As preconfigured, product group visibility applies to the following Siebel Finance objects:

  • Opportunity

  • Contact

  • Call Report

  • Activity

  • Opportunity Note

  • Account Team

  • Contact Team

Product group visibility has important characteristics:

  • Product group visibility is an additional visibility type that sits on top of existing visibility control rules and permits visibility to be applied properly to matrix-based organizations.

  • Two types of views show product group visibility:

    • “My Product Group's Record" (where Record is Opportunity, Contact, Call Report, or Activity) are read-only views and show only objects that are directly related to my product group. Some views let you drill-down to detail views.

    • Detail views (such as Opportunity Notes View, Contact Coverage Team, and Account Coverage Team) show all objects for which you have product group visibility permissions (you are on the product group associated to the object, in a product group that has shared visibility with one of the object's product groups, or the object is Public). Detail views are editable.

  • When a product group is associated with an object and that product group has specified that its information is to be shared with other product groups, then these other product groups can access or view the object. Currently this feature is available in 3LN Views namely FINS CI Opportunity Note View, FINS CI Contact Coverage Team View & FINS CI Account Coverage Team View. This feature does not cascade. It is single-level sharing. For example, if product group FX shares with product group Equity, and Equity shares with product group Cash, then adding FX to an opportunity note gives access to Equity but does not give access to Cash. For the Opportunity, Contact, Call Report and Activity objects, product group visibility is operational only when the product group that you are sharing the object with is physically added to the Product Group field of the object. For example, to share an Opportunity with a specific product group, that product group must be added to the Product Group field of the Opportunity.

  • Product groups are assigned to positions. An employee's product group is the product group associated with the employee's primary position.

  • Activity, Call Report, Opportunity, and Opportunity Note records have Public Flag, which is a field associated with each object of these types. Product group visibility rules apply only when Public Flag is not selected. The default value of Public Flag is derived from Confidential Flag of the creator's product group when the object is created. While upgrading, all existing records have the flag value of Y. The value of Confidential Flag in a product group is examined only to default Public Flag at the time of creation of the object. Afterwards only Public Flag is used for determining the visibility.

  • For Account Team and Contact Team, product group visibility applies when the creator’s product group has selected Suppress Flag. No flag is at the record level, in contrast with the case of Activities and the other objects. Instead, here Suppress Flag of the product group of the creator determines the visibility.

  • The product group information associated with a certain object is created when a new record of that object is committed. This is done through a Business Service call invoked by Runtime Events.

Process of Managing Product Group Visibility

This topic details sample tasks often performed by administrators and end-users when managing product group visibility. Your company might follow a different process according to its business requirements.

Procedures Common to Administrators and End Users

Administrators and end users can perform these procedures:

  1. Activating Run-Time Events and Workflows

Procedures for Administrators

Administrators can use these procedures:

  1. Creating Positions and Users

  2. Creating Associated Product Groups

Procedures for End Users

These procedures illustrate product group visibility and do not cover similar visibility of other objects.

  1. Sharing Opportunity Information (End User)

  2. Sharing Notes (End User)

Activating Run-Time Events and Workflows

When you activate workflows, your runtime events automatically reload. However, administrators and other users can use the following procedure if they need to manually reload workflows, or if they need to activate run-time events.

To activate run-time events and workflows related to product group visibility

  1. Activate run-time events:

    1. Navigate to the Administration - Runtime Events screen, and then the Action Sets view.

    2. Query for FINS CI * On Login.

    3. Verify that all retrieved records have Active Flag selected.

    4. From the Menu, choose Reload Runtime Events.

  2. Activate all workflows for the FINS product group:

    1. Navigate to the Admin - Business Process screen, Workflow Deployment view, Repository Workflow Processes view, and then the Active Workflow Processes view.

    2. Query for FINS Product Group.

    3. Select all the FINS Product Group workflows, and click Activate.

Creating Positions and Users

If positions do not already exist for a product visibility group, then an administrator must create them and set the corresponding users as primary.

To create positions and related users

  1. Create the required positions:

    • Navigate to the Administration - Group screen, and then the Positions view.

    • Create the positions needed to define the product group. For more information on creating positions, see Siebel Applications Administration Guide.

    • Assign corresponding users to the positions, and set a primary user for each position.

  2. Set positions for these users as primary.

    • Navigate to the Administration - User screen, and then the Employees view.

    • Set the positions for the employees defined in step 1 to primary.

Creating Associated Product Groups

It is also necessary to create associated product groups.

To create associated product groups

  1. Navigate to the Administration - Data screen, and then the Product Groups view.

  2. Create the product groups that you want.

  3. Add shared product group information to the product groups that you created in step 2.

    A typical value to select from the query box for the Shared Product Group column is something like Corporate Banking.

  4. Associate positions among the shared product groups:

    1. Select a product group.

    2. Click in the Primary Position column for the selected product group.

      This displays the query icon for the column.

    3. Click the icon.

    4. Click Associate.

    5. Use the Associate window to select the position names that you want to associate with the product group.

Sharing Opportunity Information (End User)

This topic illustrates the sharing of opportunity information by product group visibility. The principles illustrated here also apply to activities and call reports.

To share opportunity information

  1. Log in as a member of a product visibility group.

  2. Navigate to the Opportunities screen, and then the Opportunities List view.

  3. Choose My Opportunities. From the applet menu, select Columns Displayed. Move the Public Flag and Product Group fields to the list of selected columns (if they are not already selected). Click Save and close the dialog box.

  4. Create a new opportunity.

    Notice the following:

    • The value of Product Group defaults to yours because you are the creator of the opportunity.

    • Public Flag is not selected if your product group has selected Confidential Flag.

    • In the Product Group field of the opportunity, add a product group that you want this opportunity to be shared with. When other members of this product group log in, they can see the newly created opportunity in the My Product Group’s Opportunities view.

Sharing Notes (End User)

This topic illustrates the control of note visibility by product group visibility.

To share notes

  1. Log in as a member of a product visibility group.

  2. Navigate to the Opportunities screen, and then the All Opportunities Across Organizations view.

  3. Locate the opportunity that you created in Sharing Opportunity Information (End User).

  4. Drill down on the opportunity.

  5. Navigate to Notes, and then the Public Notes. Two views have that title. Use the view with the title FINS CI Opportunity Note View, which exposes the Product Group and Public Flag fields.

  6. Create a note record here.

  7. Log in as another member of the same product group, and confirm that the new record is visible.

  8. Log in as a member of a different product group. Confirm that the record is not visible (unless the second product group is shared through the Product Group Administration view).

Implementing Product Group Visibility by Configuration and Scripts

This topic provides information on implementing product group visibility for new applets through configuration and scripting. It includes the following topics:

About the Logic for Product Group Visibility

Product group visibility can be set for an object in either of two modes, Confidential or Suppress. A user property set at the applet level determines the mode for an applet.

The logic for Confidential mode objects is based on the value of the Public Flag field at the record level:

  • If this flag is checked, then the record is public.

  • When a new record is created, the default value is set according to the following rules:

    • If Confidential Flag of the product group of the creator is checked, then Public Flag of the new record is False.

    • If Confidential Flag of the product group is unchecked, then Public Flag of the new record is True.

For Suppress mode objects, a record is considered public if the creator’s product group has its Suppress Flag unchecked. Otherwise the record is considered nonpublic.

For each object, views with product group visibility are available. At the time of implementation, if customers want product group visibility for these objects, then they can enable or disable views based on view licensing and setting appropriate responsibilities to different users appropriately. Views that are preconfigured with product group visibility are described in the following table.

View Object Description

FINS CI Opportunity View

Opportunity

Navigate to the Opportunity List, and then My Product Group’s Opportunities view. New Applets:

  • FINS CI Opportunity List Applet

  • FINS CI Opportunity Form Applet

These applets are based on the FINS CI Opportunity business component.

This view is read-only.

FINS CI Opportunity Note View

Opportunity Note

Navigate to the Opportunity, Notes, and then the Public Notes view.

Two views have the same caption. Make sure that the view is the correct one through Help, and then the About View.

New Applet: FINS CI Opportunity Note Applet

FINS CI Activity View

Activity

Navigate to the Activity List, and then the My Product Group’s Activities view.

New Applets:

  • FINS CI Activity List Applet

  • FINS CI Activity Form Applet

These applets are based on the FINS CI Action business component.

This view is read-only.

FINS CI Call Report View

Call Report

Navigate to the Call Report List, and then My Product Group’s Call Reports view.

New Applets:

  • FINS CI Call Report List Applet

  • FINS CI Call Report Entry Applet

These applets are based on the FINS CI Call Report business component.

This view is read-only.

FINS CI Contact List View

Contact

Navigate to the Contacts List, and then My Product Group’s Contacts view.

New Applets:

  • FINS CI Contact List Applet

  • FINS CI Contact Form Applet

These applets are based on the FINS CI Contact business component.

Detail views: Contact Team.

This View is read-only.

FINS CI Contact Coverage Team View

Contact Team

Navigate to the Contact, and then the Coverage Team view.

Two views have the same caption. Make sure that the view is the correct one through Help, and then the About View.

New Applet: FINS CI Contact Team List Applet

This a detail view from Account and is Suppress mode.

FINS CI Account Coverage Team View

Account Team

Navigate to the Account, Coverage Team, Coverage Team view, and then the Coverage Team.

New Applet: FINS CI Account Team List Applet

This is a detail view from Contact and is Suppress mode.

Read-Only and Editable Views

The main list views in the views shown in the table in About the Logic for Product Group Visibility are read-only while others are editable. This is because the applets of these views are based on intersection tables between Product Group and the corresponding object for performance purposes (for example, FINS Product Group’s Opportunities view is based on the business component, FINS CI Opportunity, which is sitting on table S_OPTY_PGROUP).

The new intersection table-based business components are FINS CI Opportunity, FINS CI Call Report, FINS CI Action and FINS CI Contact. The applets of these views have user property FINS PGV UseBaseTable set to N.

These read-only views show only records that have the current user’s Product Group associated. Sharing between Product Groups doesn’t work on these views. Also, public records are not shown unless they have the current user’s Product Group associated with them.

Viewing a List of Primary Product Group Members

You can view a list of primary product group members.

To view a list of primary product group members

  1. On the Account screen, click Coverage Team View, and then the Primary Product Group Members View.

Process for Establishing Confidential Mode Visibility

To create new applets and views with product group visibility using the Confidential mode, perform the following tasks:

  1. Changing the Data Model for Confidential Mode Visibility

  2. Changing the Buscomp Layer for Confidential Mode Visibility

  3. Changing the View Layer for Confidential Mode Visibility

Changing the Data Model for Confidential Mode Visibility

This step is part of Process for Establishing Confidential Mode Visibility.

To change the data model for Confidential mode visibility

  1. Let MyApplet be the applet that requires product group visibility. Let MyObject be the business component of MyApplet. Please note that if you are following intersection table mode, then MyObject has to be a clone of the original business component of the applet, and you will change the value of ‘Table’ property of the business component in the next topic.

    For example, for applet ‘FINS CI Opportunity List Applet’, the business component is ‘FINS CI Opportunity’ which is a clone of the ‘Opportunity’ business component.

  2. Find the base table of MyObject, for example, S_OPTY for Opportunity.

  3. Add the following column to the base table:

    PGROUP_PUBLIC_FLG Character(1)
    
  4. Create a new intersection table in between the base table and S_PGROUP.

  5. Add the following foreign key columns to the new intersection table:

    PGROUP_ID Varchar(15) references S_PGROUP
    
    <SomeName> Varchar(15) references <BaseTable>
    

Changing the Buscomp Layer for Confidential Mode Visibility

This step is part of Process for Establishing Confidential Mode Visibility.

To change the Buscomp layer for Confidential mode visibility

  1. If you are going to follow intersection table mode, then change the table property of the MyObject business component to the intersection table, created in Changing the Data Model for Confidential Mode Visibility. If you are following base table mode, skip this step.

  2. Create a new Link Object from MyObject business component to the FINS Product Group business component through the intersection table. This could be, for example, link Opportunity/FINS Product Group.

  3. In MyObject, create a new MVL to the FINS Product Group business component.

  4. Create the following new fields:

    • FINS Product Group Public Flag

    • FINS Product Group Public Flag Calculate

    • FINS Product Group Id

    • FINS Product Group Name as implemented in the Opportunity business component

Changing the View Layer for Confidential Mode Visibility

The CSSSWEFAFramePGVisibility and CSSSWEFAFrameListPGVisibility classes implement the product group visibility logic.

The following user properties described in this procedure are supported for these two classes and support product group visibility functionality.

  • FINS PGV Confidential Flag. If the value is Y, the product group visibility functionality is enabled in confidential mode and the visibility is determined using the public flag. The FINS PGV Confidential Flag is used for Opportunity, Call Report, Opportunity Notes, and Activities. If the value is N, the product group visibility is not enabled in confidential mode.

  • FINS PGV Suppress Flag. If the value of this field is Y, the product group visibility functionality is enabled in the suppress mode and the visibility is determined using the suppress flag field of the creator's product group. If the value of this field is N, the product group visibility is not enabled in confidential mode.

    The product group visibility works in two different ways, confidential mode and suppress mode. In confidential mode, there is a public flag field, FINS Product Group Public Flag, in the business component of the object and if the flag value of a given record is Y, then the record is public and there are no visibility restrictions that apply to the record. If the flag value is N, then the record is visible only to the associated product groups. In suppress mode, a given record is public if the product group of the creator of the record has the Suppress Flag field set to N. If the flag is set to Y, then only the users of the associated product groups of the record can see the record.

    In order to get the suppress flag value of the creator's product group, there should a join field, FINS Creator Product Group Suppress Flag, in the business component of the corresponding object.

    Note: If both the FINS PGV Confidential Flag and the FINS PGV Suppress Flag are given, the FINS PGV Confidential Flag is used and the FINS PGV Suppress Flag is ignored.
  • FINS PGV Public Flag Field. The value of this field is the name of the public flag field for the confidential type or the join field which joins to the Suppress Flag field of the creator's product group for the Suppress type. The default values include:

    • FINS Creator Product Group Suppress Flag for suppress mode

    • FINS Product Group Public Flag for confidential mode

  • FINS PGV Sales Team Visibility. For this field:

    <SalesTeamType> : <SalesTeamFieldName>
    <SalesTeamType> => valid values are "Position", "User"
    

    For <SalesTeamFieldName> =>, this is the business component multivalue field name which corresponds to the Position Id or the User Id. This user property specifies whether the business component that the position is based on or the user based visibility, and this field corresponds to the sales team. If this property is not given or is invalid, then the user will not have visibility to the record even though the user is part of sales team, unless the user’s product group is associated with the record.

  • FINS PGV Visibility Field. The value of this field is the multivalue field name of the business component, which corresponds to the Product Group Id. If this property is not given, the default value is the same as the FINS Product Group Id value.

  • FINS PGV ShowMyPGRecordsOnly. When this user property value is set to Y, then you will not get the shared product groups while generating the product group visibility searchspec.

This step is part of Process for Establishing Confidential Mode Visibility.

To change the View layer for Confidential mode visibility

  1. Add fields Product Group and Public Flag to MyApplet.

  2. Add the following user properties:

    Name: FINS PGV Confidential Flag, Value: Y
    Name: FINS PGV UseBaseTable, Value: Y / N
    

    Use Y if you are using base table mode.

    Use N if you are using intersection table mode.

    Name: FINS PGV ShowMyPGRecordsOnly, Value: Y / N
    
  3. Choose whether you want to use PGV Frame Classes or to write a script. If you want to use PGV Frame Classes, then go to step 4. If you want to use a script, then go to step 5.

  4. Using PGV Frame Classes, set the class of the applet to CSSSWEFAFrameListPGVisibility or CSSSWEFAFramePGVisibility, depending on whether it is a List applet or a Form applet.

    These classes are derived from classes CSSSWEFrameListFINSBase and CSSSWEFrameFINSBase respectively.

    Do not proceed to step 5. Steps 4 and 5 are mutually exclusive.

  5. Write PGV Scripts. In some cases, you might want to use another class instead of the PGV-specific classes named in step 4. In that situation, attach the script given in the following to your applet. To associate the script:

    1. Right-click MyApplet and choose Edit ServerScripts.

    2. Select eScript as the language.

    3. Copy and paste the following script into the WebAppletLoad event:

      var opropset;
      
      opropset = TheApplication().NewPropertySet();
      
      var searchspec;
      
      
      var Inputs;
      
      Inputs = TheApplication().NewPropertySet();
      
      
      
      Inputs.SetProperty("FINS PGV Confidential Flag", "Y");
      
      Inputs.SetProperty("FINS PGV Suppress Flag",  "N");
      
      //In case of Suppress Mode, reverse the Y/N values in the previous two statements.
      
      
      
      var servicename = TheApplication().GetService("FINS Product Group Visibility 
      
      Service");
      
      Inputs.SetProperty("FINS PGV Sales Team Visibility", "Position : Position 
      
      Id");
      
      servicename.InvokeMethod("getPGVisibilitySearchSpec", Inputs, opropset);
      
      var searchspec = opropset.GetValue();
      
      
      
      var servicename;
      
      var searchname = "FINS PGV Search";
      
      
      
      this.BusComp().SetNamedSearch(searchname,searchspec);
      
      var sConfidentialFlag = Inputs.GetProperty("FINS PGV Confidential Flag");
      
      var sSuppressFlag = Inputs.GetProperty("FINS PGV Suppress Flag");
      
      
      
      //If we are in "Suppress" mode
      if ( sConfidentialFlag != "Y" && sSuppressFlag == "Y" )
      {
        var sPublicFlagField = Inputs.GetProperty("FINS PGV Public Flag Field");
          if (sPublicFlagField == "")
          {
           sPublicFlagField = "FINS CI Creator Product Group Suppress Flag";
          }
      
      
      
       this.BusComp().ActivateField ("FINS CI Created By Position Id");
       this.BusComp().ActivateField ("FINS CI Created By Product Group Id");
       this.BusComp().ActivateField (sPublicFlagField);
      }
      

Process for Establishing Suppress Mode Visibility

To create new applets and views with product group visibility using the Suppress mode, perform the following tasks:

  1. Changing the Data Model for Suppress Mode Visibility

  2. Changing the Buscomp Layer for Suppress Mode Visibility

  3. Changing the View Layer for Suppress Mode Visibility

Changing the Data Model for Suppress Mode Visibility

This step is part of Process for Establishing Suppress Mode Visibility.

To change the data model for Suppress mode visibility

  1. Create a new intersection table between the base table and S_PGROUP.

  2. Add the following columns:

    PGROUP_ID Varchar(15) references S_PGROUP
    <SomeName> Varchar(15) references <BaseTable>
    

Changing the Buscomp Layer for Suppress Mode Visibility

This step is part of Process for Establishing Suppress Mode Visibility.

To change the Buscomp layer for Suppress mode visibility

  1. If you are following intersection table mode, then change the base table of the business component you are configuring to the new table you created in Changing the Data Model for Suppress Mode Visibility.

  2. Create a new Link object from MyObject business component to the FINS Product Group business component through the intersection table. This can be, for example, link Contact/FINS Product Group.

  3. In MyObject, create a new MVL to the FINS Product Group business component.

  4. Create the following new fields:

    • FINS Product Group Public Flag Calculate

    • FINS Product Group Id

    • FINS Product Group Name as implemented in the Contact business component.

  5. Create the following joins:

    • FINS CI Created By User

    • FINS CI Created By Position

    • FINS CI Creator Product Group as implemented in the Contact business component.

      These joins get the Suppress Flag value for the record, which is ultimately used in the searchspec.

  6. Create the following new fields:

    • FINS CI Created By Position Id

    • FINS CI Created By Product Group Id

    • FINS CI Creator Product Group Suppress Flag

For an example of base table mode, see the Contact business component; for an example of intersection table mode, see FINS CI Contact.

Changing the View Layer for Suppress Mode Visibility

This step is part of Process for Establishing Suppress Mode Visibility.

To change the View layer for Suppress mode visibility

  1. Add the field Product Group to MyApplet.

  2. Add the following user properties:

    Name: FINS PGV Suppress Flag, Value: Y
    Name: FINS PGV UseBaseTable, Value: Y / N
    Name: FINS PGV ShowMyPGRecordsOnly, Value: Y / N
    
  3. Add a PGV Frame class or a script to the applet. As explained in Changing the View Layer for Confidential Mode Visibility, you can use either the preconfigured frame classes or the applet script, but not both. If you choose a script, then make the indicated changes to the following script:

    Inputs.SetProperty("FINS PGV Confidential Flag", “Y");
     Inputs.SetProperty("FINS PGV Suppress Flag", “N");
     //In case of Suppress Mode, reverse the Y/N values in the previous two statements.
    
    
     Modify these lines by exchanging the Y/N values, as follows:
     Inputs.SetProperty("FINS PGV Confidential Flag", “N");
     Inputs.SetProperty("FINS PGV Suppress Flag", “Y");
     //In case of Suppress Mode, reverse the Y/N values in the previous two statements