I need to create a job with a for loop (I think) that goes through all available companies and checks for a specific value. I\'m just not familiar with how I would get it to
The functionality you're looking for is called "Cross Company" data access. MSDN has a great bit of code samples here:
X++ code: http://msdn.microsoft.com/en-us/library/cc518738.aspx
Main article: http://msdn.microsoft.com/en-us/library/cc634544.aspx
Please bear in mind to reset your table variables in the changecompany scope, otherwise you will get strange or no result at all. A colleague was to do a task as yours and he got absolutely no results for the code inside the changecompany scope. I googled and found this blogpost: http://dynamics-ax-live.blogspot.se/2011/10/what-not-to-forget-when-using.html
I use the following technique in a job:
static void CountIt(Args _args)
{
DataArea DataArea;
void doIt()
{;
info(int2str((select Count(RecId) from CustTable).RecId));
}
setPrefix("Counting");
while select DataArea where !DataArea.isVirtual
{
print(DataArea.Id);
setPrefix(DataArea.Id);
changecompany (DataArea.Id)
{
doIt();
}
}
}