How to use subsystem job?

doman

Member
Hello Freinds,

I want to call an UBE from a interactive application and but i don't want to show the screen of 'On Screnn' 'To Printer' 'Export to CSV' .
What should i do about it ?
Can i use subsystem job ?

Thanx in advance
 
No. Call from a BSFN using jdeLaunchUBEEx. This is in the archives on the jdelist.com forums for more details.
 
We are using subsystem job (AS400 V5R2, Xe) not only to avoid ‘Printer Screen’ but also to use ‘Print Immediate’ without of user intervention. Since subsystem job runs (almost) immediately it is really useful to print documents for waiting customer.

Hope this helps,

Bojan.
 
Subsystem jobs do work well, but you have to start and stop them (well, someone has to), you have to write a C business function that uses the correct API to add jobs to F986113 (subsystem job queue) and passes the interconnect information correctly. There are plenty of examples.

Also, before you can even try it out in development, you have to promote a dummy UBE to PD and deploy it to the enterprise server (at least that it what I found, could be wrong...). This is because the middleware that handles the subsystem API checks that the report exists against one pathcode, and that is usually PD. You get errors in the log if it doesn't find it, even if you are in development.

I've done all this quite happily, but if all you need is a job submission, go with the BSFN. Another thing you need to consider is whether you need to have easy access to each PDF created. With subsystem jobs, you can only see the last one.
 
hi
Will R00460 (Outbound Subsystem Batch Process) will be called autmatically when records are inserted into F986113 (Subsystem Data Queue) OR we have to call that explicitly through our custom UBE?

Regards
Bal
 
The way subsytem works:

You start the subsystem UBE - it goes to a 'P' status and starts to poll the F986113 for records at the time interval you specified in the report design.

Your app insert records into F986113.

The UBE picks up the records and processes them, and goes back to polling after it finds no more to process - staying at a 'P' status.

From "Work with Subsystem Jobs" you send "End Subsystem" when you wat to shut it down.

The job then stops polling and goes to a 'D' status in "Work with Server Jobs"

So, just inserting the records isn't enough - you have to start the subsystem UBE (Batch versions works for most) to begin the process of polling the F986113.

Note that this ties up one of your jdequeue process for the entire duration of the subsystem.
 
hi Segfault
Thank you.
What you have given is for Inbound. But for Outbound, the legacy program insert Subsystem Queue record into F986113 and R00460(Generic Outbound Batch Process) will have to process this record to invoke Custom DLL through B0000192.
My doubt is whether that R00460 will be called automatically when records getting inserted into F986113?

Regards
Bal
 
Hi
As mentioned in an earlier post, inserting to F986113 is not enough, you must have the job you want to 'kick off' already running as a subsystem job. All it does is monitor the F986113 for entries matching its own report name and version, and if one is found, maps the report interconnect info from the BLOB field as parameters. It then processes what it's asked to and waits for the next entry.

A report VERSION is set up as a subsystem job in design mode: on the Report Properties, Advanced tab. You tick 'Subsystem' and then a specify Wait Time in milliseconds. Once you submit this version, it will start running and wait for entries in F986113, checking evey 'n' milliseconds.
 
Hi Simmons
Yes simmons I agree with you in terms of INBOUND Process. When you want to send data from JDE to Legacy (Outbound), records will be inserted into F986113 through B0000176 using API. Now it is upto the Outbound Subsystem Batch Process - R00460 to take those records from F986113 and send it to Custom DLL using B0000192. (Incase of CUSTOM DLL). So in this case we can not create a subsystem batch application version.
R00460 requires input data's like UserId,batchno,TYransaction Number,Transaction type and Order Type for processing records from F986113, that cannot be supplied by our subsystem Batch VERSION.
In case of INBOUND, yes I agree we have to create a BATCH VERSION to process records from F986113.

Regards
Bal
 
Back
Top