Синтаксические ошибки C# CS1003 и CS1026
У меня есть следующий код для дизайнера рабочих процессов BPM (Управление бизнес-процессами) в разделе Предварительная обработка для Epicor ERP System.
using Ice.Memo;
foreach (var ttJobHead_xRow in (from ttJobHead_Row in ttJobHead where
ttJobHead_Row.RowMod == IceRow.ROWSTATE_UPDATED select ttJobHead_Row))
{
var Memo_Row = (from IM in Db.Ice.Memo where IM.Key1 == ttJobHead_xRow.PartNum select IM);
if (Memo_Row != null)
{
callContextBpmData.ShortChar04 = ttJobHead_xRow.MemoText.ToString();
callContextBpmData.ShortChar05 = ttJobHead_xRow.MemoDesc.ToString();
}
}
Цель этого кода - создать условие, основанное на обновлении строки в таблице, JobHead. А затем, в некотором смысле, связать две таблицы (ttJobHead и Memo). А позже в операторе if назначьте короткий символ определенным полям для последующего ввода в электронное письмо.
При компиляции я получаю две следующие ошибки:
Ошибка CS1003: синтаксическая ошибка, '(' ожидается [Update.Pre.New_Job_with_Par.cs(86,19)]
Ошибка CS1026:) ожидается [Update.Pre.New_Job_with_Par.cs(86,27)]
Что происходит не так? Кроме того, есть ли лучший способ сделать это?
1 ответ
Предполагая, что вы используете Epicor 10 и создаете действие для JobEntry.Update.
Вы не можете использовать оператор использования непосредственно в BPM, я уверен, что это ваша проблема, которую нужно добавить, нажав "Использование и ссылки" в форме "Ввод пользовательского кода".
Я предполагаю, что он хочет использовать оператор, а не директиву, и для этого нужны парены.
using(MyDisposable d = new MyDisposable())
{
...
}
Тем не менее, если вы зайдете на свой сервер, вы сможете увидеть исходный код BPM (например, c:\inetpub\wwwroot\E10_Test\Server\BPM\Sources\BO\JobEntry.Update). Это поможет вам в отладке, потому что номера строк совпадают с этим исходным кодом.