Implementing User-Specific Access Control in Sage X3 for the Receipt Line Inquiry Screen

By | May 30, 2025

In Sage X3, the Receipt Line Inquiry screen allows users to view and manage detailed information about receipt transactions, including inventory receipts, supplier deliveries, and other related data. By default, all users have access to view all records in this screen. However, due to a client requirement, we need to restrict access such that:

  • Regular users can only view their own created entries.
  • Administrative users retain the ability to view all records.

To achieve this, the following steps were implemented:

Step 1: Create a Miscellaneous Table (19100)

  • Create a miscellaneous table (e.g., 19100) to list the user IDs who should have access to view all records.

New Stuff: How to Change Screen Title Using Code in Sage X3

fig1 Misc Table
fig1 Misc Table

Step 2: Search for the Script Code Related to the Receipt Line Inquiry Screen

Navigate to:
All → Development → Script Dictionary → Windows → FCNSCPS

Open the CONSCPS2 screen and search for the standard script, i.e., CNSCPSSTD.

fig2 CONSCPS2 screen
fig2 CONSCPS2 screen

Step 3: Apply the Access Control Logic

In the LOAD_FILTER event, add the following code:

Fig3 Script Code
Fig3 Script Code

Explanation of the Code:
-> CHECK Variable: Initializes to 0.
-> Loop through Table 19100: Checks if the current user (GUSER) exists in the table.
-> If the user is found, CHECK is incremented.
-> Access Restriction:
-> If the user is not found in table 19100 (CHECK < 1), the filter condition is applied to restrict records to those created by the current user (CREUSR = GUSER).

-> If the user is found, they can view all records.

Output:

By following these steps, you can efficiently manage user access, ensuring compliance with business rules and enhancing data integrity within Sage X3.

[about_us_blog_common]