У меня есть собственный класс, мы назовем его 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();
}