System Data

System data includes tables that configure security (users, permissions etc.) and scheduling system-wide settings. See the Scheduling System Schema Guide for more detail in the latest IFS Planning and Scheduling Optimization (PSO) documentation.

A system data scheduling model called 'Users.scheduling' exists to map Users and Roles related to IFS Scheduling Workbench. If the scheduling model is scheduled to run regularly, each user that has a role of 'FNDSCH_RUNTIME' (either directly or grantees of this global scheduling role) will be mapped to IFS PSO. This will then allow the user to log in to the Scheduling Workbench with all the default permissions a user has in IFS Scheduling.

If the administrator wishes to create a user with admin permissions on Scheduling Workbench, the user can be granted the 'FNDSCH_ADMIN' role (or a grantee of this role). This will grant the user the following extra permissions:

 

The mappings between IFS Applications Security configuration and IFS PSO configuration are the following:

For detailed configuration of permissions, e.g. workspace, view, columns view or edit permissions, the administrator has to configure this via the 'Permissions' view in the Administration Workspace of the Scheduling Workbench.

There are two roles created as part of the installation (see FndschInstallation utility model in fndsch):

fndsch roles

The Users.scheduling file can be found in the FNDSCH module. The model contains selects on tables such as fnd_user, fnd_role_role. An example is:

groups Groups {

changedetection {

trigger on FND_ROLE_TAB {

objkey OBJKEY;

}

}

// Select all roles (granted roles) from fnd_role_role table, filtered by the granted_role

// - grantee_type of 'ROLE' and granted_role of 'FNDSCH_RUNTIME' (or any child roles of this).

// these will form the groups in IFS Scheduling, which are used to define 'groups of permissions' that users can be linked to (via UserGroup) - these

// can be viewed as a similar notion to roles in IFS Apps

SELECT

'FNDSCH_RUNTIME' id,

NULL group_id

FROM dual

UNION

SELECT

grantee id,

granted_role group_id

FROM fnd_role_role

WHERE grantee_type='ROLE'

START WITH granted_role = 'FNDSCH_RUNTIME'

CONNECT BY PRIOR grantee = granted_role;

}

Note that in the above example of a data fetch within the security scheduling model 'Users.scheduling', there is a 'changedetection' section. This is added so that roles can be updated automatically in the scheduling environment, when updated in EE.

However, for granted roles to users change detection is a bit different. A 'fulldiffonchange' needs to be implemented so that we make sure we send to the Scheduling environment the correct matching of users to roles/groups. The reason for using 'fulldiffonchange' in this particular case is because the table 'SECURITY_SYS_ROLE_TREE_TAB' doesn't have an objkey. Using triggers based on objkey is recommended, however if not possible 'fulldiffonchange' can be used as a

 

usergroup UserGroups {

changedetection {

trigger on FND_USER_ROLE_TAB {

objkey OBJKEY;

}

trigger on SECURITY_SYS_ROLE_TREE_TAB {

fulldiffonchange

}

}

 

For more detail of how this works please see section Change Detection.

 

Tables & Rules Mapped

Table Rule
Entry Entry
External_Task_Parameter ExternalTaskParameter
Groups Groups
List List
Org_Validation_Value OrgValidationValue
Organisation_Permission OrganisationPermission
Polygon Polygon
Polyline Polyline
Profile Profile
System_Data_Update SystemDataUpdate
Travel_Time_Profile TravelTimeProfile
Group_List GroupList
Group_Permission GroupPermission
List_Entry ListEntry
Org_Schedule_Exception_Type OrgScheduleExceptType
Organisation_List OrganisationList
Polyline_Point PolylinePoint
Profile_Parameter ProfileParameter
Travel_Time_Barrier TravelTimeBarrier
Travel_Time_Weighting TravelTimeWeighting
Users Users
Well_Known_Area WellKnownArea
Travel_Time_Barrier_Blockage TravelTimeBarrierBlock
Travel_Time_Polygon TravelTimePolygon
User_External_Task UserExternalTask
User_Group UserGroup
User_List UserList
User_Parameter UserParameter
User_Permission UserPermission