Posting with Limited Users ? NO.
Posting with Limited Users? NO.
Some questions about “posting with limited users”
Why this post?
In forums there are several posts on this topic, what can I do with light users? can you post transactions with these type of users?
The answer is “NO”, you can not use light users to post transactions, even with indirectly access to tables, always you need a FULL user to post transactions.
About NAV Limited User (license type)
“If i use a limited user to write in Item Journal Line (T83) and then this same user posts this line, would this work? (assuming that codeunit 22 -Item Journal post line– will write in more than 3 extra tables).
If i use a limited user, do I have to specify somewhere which 3 tables he/she can write on, or this limitation is only valid in each different transaction he/she may perform?”
https://community.dynamics.com/nav/f/34/t/234686
“People wants to configure what three additional application tables these limited users canuse. Base on the standard NAV, this is not possible. These users get write access to a maximum of three application tables in the object range 0 – 99,999,999 other than the General Ledger Entry table. But system will count the first three used application tables beside the default tables. This is counted by the session. That means, users can use different three application tables in different sessions.”
However you can limit it by setting up additional user permissions to shorten the list of tables to access.”
https://community.dynamics.com/nav/f/34/t/241266
My old post https://robertostefanettinavblog.com/2015/12/02/about-nav-2016-limited-users/
QUESTIONS ABOUT LEGAL NOTICES
Nice question on Forum by Tina Menezes about this topic.
https://community.dynamics.com/nav/f/34/t/241266
“Writing the transactions of a Limited User to a temporary table then having a Full User (or a system process) post those transactions to table 17 is an example of indirect write access to table 17, which is not permitted.”
“Best way would be only write to item journal from external app with limited user without posting the lines. Create a Job queue entry which is run by a full User and posts periodically these Job journal lines.”
NICE QUESTIONS… BUT… DOGMA: Light User “IS NOT For Posting”….. buy a FULL USER to Post !!! is a License Violation posting with Light User !
Some WORKAROUNDS (only for knowledge, not legals !)
#1 – WORKAROUND: Use Web Services to Post with a FULL USER (WS Service)
#2 – WORKAROUND: Use NAV NAS Service to Post with a FULL USER
#3 – WORKAROUND: Use Limited Users to write on Temporary Tables (others than available tables and selected tables on Security SETS)
#4 – WORKAROUND: Use an external NAV Addon or Application with limited usersother types of license: ex: MOBILE NAV etc,
“HOW TO CONFIGURE” LIMITED USERS
NAV 2017 Limited Users Pre-Assigned Tables
Take a look to this post to configure Limited User: https://totovic.com/2016/03/02/how-to-configure-limited-users-in-nav/
Limited User (License Type), User Card
Permissions SETS
Example for Limited User PERMISSON SET
PERMISSIONS
READ: example: READ for ALL Tables
WRITE: example: WRITE only on my tables (5 tables defined on this SET -3 standard + 2 of addon)
SAMPLES: “HOW-TO POST” SCENARIOS
You can use limited user to insert data on item journal (BOT NOT POSTING!), after you can post in 3 ways:
1- Post with Jobqueue using a Full User (NOT LEGAL – SYSTEM PROCESS)
Very Simple
Example: create and schedule a job that runs a Posting Codeunit (with one by one posting routine if you don0t want to block all posting when an error is detected).
EXAMPLE
2- Post using Exposed Web Service page called by NAV using Vjeko C/AL WebService Wrapper tool (NOT LEGAL)
It’s my best method because is NAV on NAV technology; in this case I call a page exposed as web services that onOpen trigger launch directly a Posting Codeunit.
VJEKO TECHNOLOGY
LIMITED USERS POSTING WITH VJEKO CODEUNIT – SCHEMA
![]() |
WEB SERVICE (NOT LEGAL)
o Sample page exposed as Web Services http://navsrv:7048/SERVICE/WS/COMPANY/Page/WSPostOutput
Example: (CRONUS)
WITH WebService DO BEGIN
CONNECT(‘http://localhost:7047/DynamicsNAV70/WS/CRONUS%20International%20Ltd/Page/Customer’);
SETFILTER(‘Balance_LCY’,’>0′);
SETFILTER(‘Name’,’A*’);
IF READMULTIPLE THEN
REPEAT
MESSAGE(‘Customer %1 %2 has balance of %3’,GETVALUE(‘No’),GETVALUE(‘Name’),GETVALUE(‘Balance_LCY’));
UNTIL NEXT = 0;
END;
EXIT;
Actually is not possible to call Codeunits (only Pages)
http://vjeko.com/web-services-black-belt-consuming-nav-web-services-using-pure-cal/
You can donwload from here: https://mibuso.com/downloads/generic-web-services-client-v2-for-microsoft-dynamics-nav
VJEKO CODEUNIT (WRAPPER)
CODEUNIT
PAGE
WEB SERVICES (EXPOSED PAGE)
OnOpenPage Trigger
Call Web Service Wrapper codeunit
3- Use external app (c#, Visual .NET) to post (external technology)
Many links about these methodologies, nice but outside of NAV.
EXAMPLE
Walkthrough: Creating and Using a Codeunit Web Service (SOAP)
https://msdn.microsoft.com/en-us/library/dd339004(v=nav.90).aspx
NICE TUTORIALS and POSTS
Here:
“Consuming Web Service from inside NAV”
“TUTORIAL”: “Basic Tutorial of using NAV WebServices (Customer WebService)”
http://moodle2.karelia.fi/mod/page/view.php?id=85476
Have a nice posting ! ….. ALWAYS WITH A FULL USER !!!
Interesting blog but unfortunately what you are describing (the workarounds) go against Microsoft’s licensing terms for limited user. This is an extract from Microsoft’s licensing guide…
“Writing the transactions of a Limited User to a temporary table then having a Full User (or a system process) post those transactions to table 17 is an example of indirect write access to table 17, which is not permitted”
Please see the document for more details… https://mbs.microsoft.com/files/partner/NAV/Deployment/Documentation/Userguides/NAV2016LicensingGuide.pdf