You can create threads in X++ to perform tasks in the background. Here is a vey simple class that demonstrates the basics.
class ThreadDemo
{
static server void main()
Thread t;
;
new ExecutePermission().assert();
//BP Deviation Documented
t = new Thread();
t.run(classnum(ThreadDemo), staticmethodstr(ThreadDemo, run));
}
static server void run(Thread t)
AsciiIo ai;
// Change this to some path that your server will have access to
str fileName = '\\t\\HelloWorld.txt';
sleep(5000);
new FileIOPermission(fileName, 'w').assert();
ai = new AsciiIo(fileName, 'w');
ai.write('Hello World!');
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)
ThreadDemo::main();
print 'Ok';
pause;
When you run the job it will return immediately. Monitor the output directory and notice that the output file is created five seconds later.