Whats this all about ??
Consider a scenario where a company has different work locations/branches across the country like where each location handles their own Sales Operation. Ideally from an end user perspective the requirement would be in a way where users from one location should only see the related records & documents from his/her location and not the Sale Orders from other Locations.
How this can be achieved?
The concept of Responsibility center plays a major role in Dynamics NAV where you can set up users in their daily routines so that the program retrieves only the documents relevant for their particular work areas. Users are usually associated with one responsibility center and work only with documents related to specific application areas at that particular center.
To set this up, you assign responsibility centers to users in three basic functional areas: Purchase & Payables, Sales & Receivables and Service Management.
Company named “ABC” has its branches across 3 different locations/branches namely ABC Loc1, ABC Loc2 and ABC Loc3 where each of the company handles its Sales operations individually and users from one location/branch must be restricted in viewing details of other branch
Keeping the above scenario in mind first we need to create all the branches of Company as responsibility centers
1. Create the Responsibility centers for the ABC Loc1, ABC Loc2 and ABC Loc3 like below
2. Open the User Setup window.
3. Select the user you want to assign a responsibility center to. If the user not is on the list, you must enter a user ID in the User ID field.
4. In the Sales Resp. Ctr. Filter field, enter the responsibility center where the user will have tasks related to Sales & Receivables.
Now for each and every Sales related screen\form we need to write the Code on “On Open Form” Trigger
Here I have created two functions to achieve this functionality.
Which are used to invoke the related responsibility filters (here ABC Locations)
Function to filter the sales order with responsibility center
Finally function call to initialize the Responsibility center during OnOpenForm()
To create the new Sale orders by End users with in their respective locations, we need to call the function GetSalesFilter() from User Setup Management Code unit on
Form - OnNewRecord() Trigger.
With this we can able to full fill the requirement.
So that the users assigned to ABC Loc1 can only see ABC Loc1 Sale Orders and can create the Sale orders of same.
This is how we can achieve the functionality of accessing related documents to the related users.
Note: Users will still be able to view all posted documents and ledger entries across all the locations. This can be customized to restrict as how a responsibility center behaves.