You can create threads in X++ to perform tasks in the background. Here is a vey simple class that demonstrates the basics.
static server void main()
//BP Deviation Documented
t = new Thread();
t.run(classnum(ThreadDemo), staticmethodstr(ThreadDemo, run));
static server void run(Thread t)
// Change this to some path that your server will have access to
str fileName = '\\t\\HelloWorld.txt';
new FileIOPermission(fileName, 'w').assert();
ai = new AsciiIo(fileName, 'w');
I use the directory d:\t for temporary files. You will have to either create the directory or change the example to point to some other directory. In either case make sure that SYSTEM has read/write permission to the directory.
Create and run a simple job like this:
static void ThreadDemoJob(Args _args)
When you run the job it will return immediately. Monitor the output directory and notice that the output file is created five seconds later.