我有一个自定义类,我们称之为 FileProcessUpload,它扩展了 RunBaseBatch。它或多或少会创建一个 CSV 文件,然后将其上传到 FTP 服务器。当类手动运行时,一切正常。但是,当作为批处理作业提交时,信息日志中会出现错误,指出“AsciiIO 对象未初始化”。
这里需要注意的最重要的事情可能是这个批处理作业被委派给不同的 AOS。
这是违规代码的裁剪版本:
void CreateFiles()
{
#File
AsciiIO asciiio;
FileIOPermission permission;
ATable aTable;
str outputFile;
str directory;
;
directory = @'C:\Uploads';
ouptutFile = directory + @'\output.csv';
if (!WinAPI::folderExists(directory))
{
WinAPI::createDirectory(directory);
}
// Try to assert the appropriate file access mode
permission = new FileIOPermission(outputFile, #io_write);
permission.assert();
// Try to open the file for writing
asciiio = new AsciiIO(outputFile, #io_write);
if (asciiio != null)
{
while select aTable
{
// Write the necessary lines into the file
asciiio.write(aTable.field1 + ',' + aTable.field2);
}
}
else
{
error('Could not create file: ' + outputFile);
}
// Close file and release permission assertion
asciiio = null;
CodeAccessPermission::revertAssert();
}