Синтаксические ошибки 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). Это поможет вам в отладке, потому что номера строк совпадают с этим исходным кодом.

Другие вопросы по тегам