Siebel Analytics Applications Installation and Administration Guide > Integrated Security for Analytics Applications >

Position and Organization Initialization Variables in Analytics Applications


The Siebel Analytics repository contains two preconfigured initialization blocks for Position-based and Organization-based security. These initialization blocks populate the variables PRIMARY_POSTN_ID and ORGANIZATION.

About the Row-Wise Initialized Variable ORGANIZATION

Organization-based security has been implemented using the row-wise initialized variable ORGANIZATION. This implementation is slightly different from that of the position-based security, because the number of organizations is usually limited, compared to the number of positions in a given environment. Therefore, using the row-wise initialized variable ORGANIZATION to filter data using a WHERE IN clause is efficient. However, joining the dimension with the W_PARTY_LOGIN is more efficient, because the number of positions used for filtering the data can be large.

For more information about security groups and filters as well as on how to set up joins in the repository, see Siebel Analytics Server Administration Guide.

Creating a Row-Wise Initialized Variable Combining All User Positions and Organizations

You can create a similar variable that is a union of all the positions and organizations that the user has access to. There are two methods for creating a union variable, as shown below.

Creating a row-wise initialized union variable using the W_PARTY_LOGIN table in the data warehouse

  • Create an additional join between W_PARTY_LOGIN and W_[DimensionName]_PARTY instead of using the row-wise initialization.

    In the case of Opportunities, for example, set up the joins as shown:

    W_PARTY_LOGIN.LOGIN = valueof(NQ_SESSION.USER)

    W_OPTY_PARTY.PARTY_ID = W_PARTY_LOGIN.PARTY_ID

    W_OPTY_PARTY.OPTY_ID = W_OPTY_ID.ROW_ID

    These two joins have the same effect as the row-wise initialization variable solution, but contain an additional table join.

Creating a row-wise initialized union variable by getting this variable directly from the Siebel transactional database for a real-time list

  • For each user login, the W_PARTY_LOGIN table uses a recursive list of all positions and organizations.

    The logical equivalent of this setup is:

    W_PARTY_LOGIN.PARTY_ID = valueof(NQ_SESSION.POSTN_ORG_UNION)

    W_OPTY_PARTY.PARTY_ID = W_PARTY_LOGIN.PARTY_ID

    W_OPTY_PARTY.OPTY_ID = W_OPTY_ID.ROW_ID

For more information about the Siebel data model and security, see Siebel Data Warehouse Data Model Reference and Siebel Data Warehouse Data Model Reference for Industry Applications.

Siebel Analytics Applications Installation and Administration Guide