Keeping Users away from a Table

We are implementing an EDI billing infrastructure that allows the import of data into Navision via ADO 2.7. That data is then populated into Sales Header / Sales Lines to create auto-generated invoices. This all works very well so far, the only problem is that there are times when we are pushing 3000 - 4000 invoices in at a time. Users who are attempting to create Sales Lines or Post invoices experience delays. Additionally, I am getting some deadlock issues. (we are on SQL Server Option). This doesn’t prevent them from doing other work. I would like to find a way to flag that this process is running and just warn users that there will be a delay if they attempt to post. Anything would be better than the users getting hanging processes, or verbally warning users to be on the lookout for this. This process cannot be run overnight. I have thought of a few methods, but I would welcome some feedback. 1. Create Boolean in the Company Information, when the process starts the Boolean is turned on. A small label on the Main Menu lights up while the process is running. The value is polled on the form with Timer event. The flag is turned off when the process is finished running. Additionally, in the On Open Form event of the Unposted Invoice form, users receive a message (not an error)‘This process is running, you may experience delays in posting, blah, blah’ 2. Find a way to test if the form object or codeunit is open or running and throw the warning at the users. 3. Perform locktable on Sales Line table and then check for the locking status of the table??? Not sure if I can even do that. 4. Update the Status Bar (can you do this in Nav 2.6) We are running Navision Financials 2.60 code / objects, with Attain 3.60 executable. Any ideas? Thanks[^]

  1. I would go for a boolean on S&R Setup. Switch on. Call a function from wherever you need to, showing the message. 2. If you are using the job scheduler from Service, you might be able to do so. 3. Locking (record locking in your case) is difficult to control and is not a valid “variable” for your aim I think. 4. I do not think you can alter the status bar.

If you run on 3.60 executables the functions you’re able of running and the limitations are the ones on 3.60, no matter if your objects are 2.60 ones (example… on 2.60 text variables are limited to 260 chars, but if you’re using 3.60 executables you can always modify your 2.60 database to use text variables up to 1024 characters. Another option could be having a couple temporary tables (one for lines and one for headers) where you import the data and then running a process when people ends his work time for creating the invoices using the data on those tables… Regards