Job Queue for Unlimited Company
Comments
-
Hi ara3n,
Great solution. Works fine with SQL version.
Has anyone got this working for native version?
I have tried to get it working for native version, by modifying trigger RunNasForOtherCompany in Codeunit 50000 Run NAS Accross Company as follows:
...
//Server variable does not exist
//Server.SETRANGE("My Server",TRUE);
//Server.FINDFIRST;
.....
//txtCommand := 'NASSQL servername=' + Server."Server Name" + ','+
txtCommand := 'NAS servername=' + 'SERVER01' + ','+
'company=' + JobQueueEntry."Company Name" + ','+
'nettype=TCP,startupparameter=' + 'JOBQUEUE2|'+COMPANYNAME+'|'+FORMAT(JobQueueEntry.ID);
...
Unfortunately, this does not work; the second NAS session is not created.
Running this code in command prompt did not give a result either, as the JobQueueEntry.ID does not exist.
Anyone have an idea?0 -
change JobQueueEntry.ID to the PK of a JobQueueEntry Card.0
-
Hi ara3n,
Thank you for your help.
I have tried these 2 options:
....
'nettype=TCP,startupparameter=' + 'JOBQUEUE2|'+COMPANYNAME+'|'+FORMAT('{60BC78D8-DE83-42F4-B872-999D663DF62B}');
OR
'nettype=TCP,startupparameter=' + 'JOBQUEUE2|'+COMPANYNAME+'|'+'{60BC78D8-DE83-42F4-B872-999D663DF62B}';
but the 2nd NAS session is never made; cu50000 is not run; I have put several messages in codunit 1 and codeunit 50000, but they are not called.
Other options?
Best regards,
William0 -
Can you try and start nas from command prompt with just jobqueue parameter?0
-
Hi ara3n,
I just got it working.
I have put the following in cmd prompt:
NAS servername=XBI-LAP106, company="CRONUS Nederland BV",nettype=TCP,startupparameter="JOBQUEUE2|"CRONUS Nederland BV"|"{60BC78D8-DE83-42F4-B872-999D663DF62B}"
Then I got the message that an EXIT was done in CU 50000:
....
IF NOT Company.GET(txtFromCompany) THEN BEGIN
MESSAGE(txtFromCompany);
EXIT;
END;
....
which means that company "CRONUS Nederland BV" does not exist.
I have changed the companyname to UPPERCASE "CRONUS NEDERLAND BV" and it works.
How to solve uppercase problem?
In Codeunit 1, the parameter is converted to uppercase.
ParamStr := UPPERCASE(NASID);
Then it is passed to codeunit 50000, as uppercase
CU50000.SetParameter(Parameter);
Then in codunit 50000 OnRun, the uppercase company is never found, and exit is called
IF NOT Company.GET(txtFromCompany) THEN BEGIN
MESSAGE(txtFromCompany);
EXIT;
END;
I have modified codunit 1 to get it working with lowercase:
//MOD01 Start
IF (COPYSTR(Parameter,1,9) = 'JOBQUEUE2') THEN BEGIN
//CU50000.SetParameter(Parameter);
CU50000.SetParameter(NASID);
CU50000.RUN;
CGNASStartedinLoop := TRUE;
END;
//MOD01 End
This works fine.
Thank you very much.
Best regards,
William0 -
That's great that you got it solved.0
-
Hi ara3n,
Have you tried second NAS for running (complex) reports?
Or did you only test codeunits?
We noticed that the second NAS cannot run reports with multiple indent, like for example:
Job
...Job Ledger Entry
Simple reports without indent work well with second NAS (for example adding an Item in table 27).
It is not clear why.
Do you have any idea?
Best regards,
William0 -
That is odd. Try to run it from cprompt as before do you get the same results?
Are you specifying some specific printer? Do you get the same result on on NASSQL as on native?0 -
Hi All,
I am getting confused..
1. I have installed NAS.
2. I have 12+1 [one dummy company] companies.. data for all 12+1 companies will be available in one table in NAV. I have to move them to the respective company's General Journal. I have few [based on Transaction Type] reports to do the same. Now i need to schedule the same on NAS.
3. I have imported the above customized objects. But getting confused with the setup.
a) In which company I have to do the Job Queue Setup.
b) In the Job Queue Entries, which object to run.. my customized reports or the CU 448??
c) What about the Job Queue in the other companies??
What i did..
1. After installing NAS, imported the customized Job Queue objects.
2. In the dummy company i created one Job Queue Entry to run a customized 50001 report and the company i selected was Company1.
3. In the Event Viewer i am getting an error
The value of COPYSTR parameter 3 is outside of the permitted range.
The current value is: -1.
The permitted range is: from 0 to 2147483647
I saw that in the Codeunit 50000 [Run NAS Accross Company], the
txtFromCompany := COPYSTR(strParamemter,1,STRPOS(strParamemter,'|')-1);
is returning this error..
So please let me know, whats the mistake i am doing.. ](*,)
Thanx in advance..Sandeep B0 -
We are using Native 5.0 SP1. I have downloaded and imported the objects into the database from the given link. I tried to compile the codeunit 50000. I am getting the error message “Table data 2000000047 doesn’t exist”. I think the virtual table number 2000000047 works for SQL server. Could you please tell me what should I use the table number for Server in Native?
Thank you for your help!Administrator wrote:Job Queue for Unlimited Company
The Job Scheduler 4.0 has been replaced in in 5.0 by Job Queue. You can use Job Queue to schedule to run reports, Codeunits, as adjust cost. Job Queue uses NAS to run the job. As you might know NAS can only run for one company. Thus if you have multiple companies, you need one instance of NAS per Company. The following modification allows you to run Job Queue in unlimited companies. Using two license instances of NAS. You only need to install one NAS. The code run NAS itself as second instance connecting to different companies. The only difference Setup wise is the new field "Company Name" in Job Queue Entry Code, where you can select other Companies.
You could run with one instance of NAS and a Navision client, by running CU 448 directly from a client where NAS is installed. NAS service should be stopped. NAS uses windows authentication so make sure have windows authentication.
Feedback is welcome.
Enjoy.
http://www.mibuso.com/dlinfo.asp?FileID=924
Discuss this download here.0 -
that table is the server table. I just need to know what the server name is. You can have it as a setup or get it from wherever NAV classic gets it in file->datbase->information0
-
Hi,
My requirements are something like that. Client has multiple companies with 2 NAS license. Now I want one NAS will call Master Company and thru Job scheduler and other NAS will call all other companies one by one. Like Job scheduler will call one company, process the code kill the session and call 2nd company and like that.
I gone thru the code design for multiple companies but I am not sure if this will solve my problem. I cannot see anywhere in the code where its looping all the company one by one. Please let me know if I understand wrong.
Your help and quick response will be highly appreciated.
Regards
Mini0 -
There is a new field on Job Queue Entry table called Company Name and the job would run for that company.
If you have multiple companies, you would create one job queue entry for each company.0 -
Hi,
Thanks for prompt reply. But I am little confused. Did you meant that in each company, define a compnay name in new field "Company Name", in Job Queue entry card?
If yes then how the NAS will switch one compant from other since only 2nd instance of NAS will run per company. Do I need to schedule different time for diffrent company to run the Job queue or the system will smart enoghu if process one by one company.
Please advice.
Regards
Mini0 -
you will setup the job queue in one company only. For each job queue entry record in that one company you can specify in which company that object will run I just looked at my blog and it looks like the company name is specified in
So one NAS will look only in one company. and will call the second NAS based on Job queue entry card new field company name.0 -
I have the same issue as sandy_bsil have.
Event Type: Warning
Event Source: GGHAPP01-SQL
Event Category: None
Event ID: 20010
Date: 8/24/2010
Time: 3:24:28 PM
User: N/A
Computer: GGHAPP01
Description:
The value of COPYSTR parameter 3 is outside of the permitted range.
The current value is: -1.
The permitted range is: from 0 to 2147483647.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
This error message is comming due the code written in CU50000
txtFromCompany := COPYSTR(strParamemter,1,STRPOS(strParamemter,'|')-1);
strParameter = JOBQUEUE2
Please advice.0 -
I guess there is a problem with how the Parameter is being passed to the CU when NAS starts. Put a breakpoint and solve it.
//MOD01 Start
IF (COPYSTR(Parameter,1,9) = 'JOBQUEUE2') THEN BEGIN
CU50000.SetParameter(Parameter);
CU50000.RUN;
CGNASStartedinLoop := TRUE;
END;
//MOD01 End0 -
I have a qurey regarding NAS license. My company bought 1 more NAS license so total 2 new sessions. I amk geeting the error message :
Event Type: Warning
Event Source: GGHAPP01-SQL
Event Category: None
Event ID: 20010
Date: 8/25/2010
Time: 4:18:26 PM
User: N/A
Computer: GGHAPP01
Description:
Your program license does not permit more users to work simultaneously.
Wait until another user has stopped using the program.
Contact your system administrator if you want to allow more simultaneous users on your system.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Is that mean, somehow 2nd NAS session is not existing in license? If I can see the License granules it shows that:
1415 - Application Server Each 1
Is that mean License has 2nd NAS session or just one seesion come by default?
If this is 2nd NAS session license then why I ma getting the above error message?
Regards
Mini0 -
Did you upload the license on sql server?0
-
I uploaded the license under C:\Program Files\Microsoft Dynamics NAV\60\Classic(SQL Server) and C:\Program Files\Microsoft Dynamics NAV\60\Application Server (Application server). Do i need to upload the license any other place?0
-
The license is stored in Master database.
To Upload.
Tools->License Information ->Upload button.0 -
Yes license is already uploded in Master DB.
Now I am getting one more issue. I installed 2 NAS some weeks ago. Both are working fine at a time( not simultaneously for sure). I am not sure what happend today, I cannot see second NAS in NASMSnapIN under Appilcation Server for Microsoft Dynamics NAV Manager. However I can see both NAS in Services.( I can even start both the NAS).
Under Appilcation Server for Microsoft Dynamics NAV im getting the error message :
Unable to locate Application Server 'GGHAPP01-SQL' running on computer '10.243.105.176'.
I can see the first NAS though. How can I see second NAS?
Regards,
Madhavi0 -
Add it to MMC right click on Application Server for Microsoft Dyanmics NAV manager and select New and add the service.0
-
Getting same error message from MMC.0
-
I suggest to contact your partner and let them test your license and make it works with two NASes.0
-
2 NAS working simultaneoulsy if I define 2 two different companies manully. With Multicompnay and Job queue its not working.
2 NAS installed under the name HHJ-SQL1 and HHJ-SQL2
What I did:
1) Assign all the info manually for one company(Master Company) thru MMC with following parameters in HHJ-SQL1:
Database Server Name:
Company Name: MASTER
Start-UP Parameter := JOBQUEUE|MASTER|{2BFEC4EE-D6FF-4BC0-8A8F-FBE51C21C41D}
Net Tpe:TCP
Cache: 8000
2) Master company - Jobqueue Entry Card
Object Type to run : Codeunit
Object ID to run: 50062(Custom define codeunit - allow to add some data in table)
Parameter String : JOBQUEUE
Company Name : Atlanta
3) Master company - Jobqueue Entry Card
Object Type to run : Codeunit
Object ID to run: 50062(Custom define codeunit - allow to add some data in table)
Parameter String : JOBQUEUE
Company Name : Orlendo
Now when I run HHJ-SQL1, its run codeunit 50062 for Master Company and the stooped. Never run for Atlanta and Orlendo company.
What I am expecting that Master company will runs First NAS(HHJ-SQL1) and thru code written in 50001(RunNASforMultiple Comp) will run second NAS(HHJ-SQL2) for Atlanta and Orlendo and will execute codeunit 50062.
But it not wroking like that.
Please let me know if my understanding is wrong. Or I am doing something wrong stepwise.0 -
minicanada wrote:2 NAS working simultaneoulsy if I define 2 two different companies manully. With Multicompnay and Job queue its not working.
2 NAS installed under the name HHJ-SQL1 and HHJ-SQL2
What I did:
1) Assign all the info manually for one company(Master Company) thru MMC with following parameters in HHJ-SQL1:
Database Server Name:
Company Name: MASTER
Start-UP Parameter := JOBQUEUE|MASTER|{2BFEC4EE-D6FF-4BC0-8A8F-FBE51C21C41D}
Net Tpe:TCP
Cache: 8000
2) Master company - Jobqueue Entry Card
Object Type to run : Codeunit
Object ID to run: 50062(Custom define codeunit - allow to add some data in table)
Parameter String : JOBQUEUE
Company Name : Atlanta
3) Master company - Jobqueue Entry Card
Object Type to run : Codeunit
Object ID to run: 50062(Custom define codeunit - allow to add some data in table)
Parameter String : JOBQUEUE
Company Name : Orlendo
Now when I run HHJ-SQL1, its run codeunit 50062 for Master Company and the stooped. Never run for Atlanta and Orlendo company.
What I am expecting that Master company will runs First NAS(HHJ-SQL1) and thru code written in 50001(RunNASforMultiple Comp) will run second NAS(HHJ-SQL2) for Atlanta and Orlendo and will execute codeunit 50062.
But it not wroking like that.
Please let me know if my understanding is wrong. Or I am doing something wrong stepwise.
Try to remove the bold+underline entries
1. |MASTER|{2BFEC4EE-D6FF-4BC0-8A8F-FBE51C21C41D}
2+3. JOBQUEUERegards
Dan Lindström
NCSD Navision 2.00 since 1999 (Navision Certified Solution Developer)
MBSP Developer for Microsoft Dynamics NAV 20090 -
If I removed |MASTER|{2BFEC4EE-D6FF-4BC0-8A8F-FBE51C21C41D} I am getting the below error message:
Event Type: Warning
Event Source: GGHAPP01-SQL-2
Event Category: None
Event ID: 20010
Date: 8/27/2010
Time: 11:14:06 AM
User: N/A
Computer: GGHAPP01
Description:
The value of COPYSTR parameter 2 is outside of the permitted range.
The current value is: -1.
The permitted range is: from 1 to 2147483647.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
This error comes due the code written in 50001
strParamemter := COPYSTR(strParamemter,STRPOS(strParamemter,'|')+1);
txtFromCompany := COPYSTR(strParamemter,1,STRPOS(strParamemter,'|')-1);
strParamemter := COPYSTR(strParamemter,STRPOS(strParamemter,'|')+1);0 -
My code only gets called if startup parameter is JOBQUEUE2 not JOBQUEUE.
Check your code.0 -
Getting the same error message eve if I change from JOBQUEUE to JOBQUEUE2
Event Type: Warning
Event Source: GGHAPP01-SQL-2
Event Category: None
Event ID: 20010
Date: 8/27/2010
Time: 12:56:20 PM
User: N/A
Computer: GGHAPP01
Description:
The value of COPYSTR parameter 3 is outside of the permitted range.
The current value is: -1.
The permitted range is: from 0 to 2147483647.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
And reson I am gettin this if you see in the code:
strParamemter := COPYSTR(strParamemter,STRPOS(strParamemter,'|')+1);
txtFromCompany := COPYSTR(strParamemter,1,STRPOS(strParamemter,'|')-1);
strParamemter := COPYSTR(strParamemter,STRPOS(strParamemter,'|')+1);
since strParamemter in NAS1 = JOBQUEUE2, there is no value wheich will filter for STRPOS(strParamemter,'|').
and that is the reason COPYSTR in txtFromCompany is failed.
Any idea?0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions