Как узнать значение записи и поля в пакете приложения при запуске ядра приложения? - PullRequest
0 голосов
/ 06 июня 2019

Итак, у меня есть этот Application Engine, который вызывает этот пакет приложений, этот пакет приложений имеет оператор CreateSql(Select...), а некоторые записи и поля являются динамическими.

Мой вопрос: как я могу узнать, какое значение имеют эти динамические записи и поля?

Я попытался сделать MessageBox для пакета приложения, но он не отображается в журналах сообщений в Application Engine.

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 07 июня 2019

Если вы используете MessageBox в Application Engine, сообщение должно появиться в файле stdout.Этот файл отформатирован следующим образом:

AE_(appEngine name)_(process instance).stdout

Этот файл должен быть виден через Process Monitor> Details> View Log / Trace.Сообщения в этом файле также отправляются в Process Monitor> Подробно> Журнал сообщений.Единственная причина, по которой он там не появляется, заключается в том, что вы явно меняете назначение вывода через класс ProcessRequest / SCHED_INFO / ReportDefn.Если нет, то ваша конфигурация испорчена.

Если вы не можете заставить это работать, можно настроить собственную регистрацию:

Local string &sFileLoc = "C:\TEMP"; /* File location */
Local File &fileLog = GetFile(&sFileLoc , "A", %Exec_Synchronous + %FilePath_Absolute);
Local SQL &oSQL = CreateSQL("Select ...");

&fileLog.WriteLine("LOG FOR SQL STRING: " | &oSQL.Value);
While &oSQL.Fetch(&oOut)
/* Handle row returned by &oSQL */ 
    &fileLog.WriteLine("...");
End-While;
&fileLog.WriteLine();
&fileLog.Close();
...