Ошибка SAP B1: «Таблица данных – неверный уникальный идентификатор [66000-138]»C#

Место общения программистов C#
Ответить
Anonymous
 Ошибка SAP B1: «Таблица данных – неверный уникальный идентификатор [66000-138]»

Сообщение Anonymous »

Я создаю надстройку для SAP B1 версии 10.
У меня есть форма с текстовым полем. У меня есть список выбора элементов в этом текстовом поле.
Когда я запускаю дополнение, в первый раз, когда я открываю форму, нажимаю на список выбора и выбираю и элемент, я Я могу без проблем добавить данные. Когда я закрываю форму, открываю ее снова и выбираю код элемента из CFL, я получаю сообщение об ошибке: «Таблица данных — неверный уникальный идентификатор [66000-138]». Что может быть причиной этого?
См. код ниже:
if (
pVal.FormTypeEx == "ContinuousProduction.TapelineGoodsIssue"
&& pVal.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST
&& pVal.ColUID == "Col_0"
&& pVal.BeforeAction == false
)
{
SAPbouiCOM.IChooseFromListEvent oCFLEvento = null;
oCFLEvento = ((SAPbouiCOM.IChooseFromListEvent)(pVal));
string sCFL_ID = null;
sCFL_ID = oCFLEvento.ChooseFromListUID;
oForm = Application.SBO_Application.Forms.Item(FormUID);

SAPbouiCOM.ChooseFromList oCFL = null;
oCFL = oForm.ChooseFromLists.Item(sCFL_ID);

if (oCFLEvento.BeforeAction == false)
{
SAPbouiCOM.DataTable oDataTable = null;
oDataTable = oCFLEvento.SelectedObjects;

oForm.Freeze(true);
if (oDataTable.IsEmpty == false)
{
string itemCode = null;
string itemName = null;
string inStock = null;
string factor = null;

if (oDataTable.UniqueID == "CFL_Item")
{
itemCode = System.Convert.ToString(oDataTable.GetValue(0, 0), null);

oRecordSet.DoQuery(
"SELECT T0.\"ItemName\", T0.\"IWeight1\" FROM OITM T0 WHERE T0.\"ItemCode\" = '"
+ itemCode
+ "'"
);
oRecordSet.MoveFirst();

if (oRecordSet.RecordCount > 0)
{
itemName = oRecordSet.Fields.Item("ItemName").Value.ToString();
factor = oRecordSet.Fields.Item("IWeight1").Value.ToString();
}

oRecordSet.DoQuery(
"SELECT T0.\"OnHand\" FROM OITW T0 WHERE T0.\"ItemCode\" = '"
+ itemCode
+ "' AND T0.\"WhsCode\" = '"
+ ComboBox1.Value
+ "'"
);
oRecordSet.MoveFirst();

if (oRecordSet.RecordCount > 0)
inStock = oRecordSet.Fields.Item("OnHand").Value.ToString();

(
(SAPbouiCOM.EditText)Matrix0.Columns.Item("Col_0").Cells.Item(pVal.Row).Specific
).Value = itemCode;
(
(SAPbouiCOM.EditText)Matrix0.Columns.Item("Col_1").Cells.Item(pVal.Row).Specific
).Value = itemName;
(
(SAPbouiCOM.EditText)Matrix0.Columns.Item("Col_2").Cells.Item(pVal.Row).Specific
).Value = inStock;
(
(SAPbouiCOM.EditText)Matrix0.Columns.Item("Col_4").Cells.Item(pVal.Row).Specific
).Value = ComboBox1.Value;
(
(SAPbouiCOM.EditText)Matrix0.Columns.Item("Col_5").Cells.Item(pVal.Row).Specific
).Value = factor;
//oDataTable.Rows.Clear();
}
}
oForm.Freeze(false);
}
}

Здесь выдается ошибка:
itemCode = System.Convert.ToString(oDataTable.GetValue(0, 0), null);


Подробнее здесь: https://stackoverflow.com/questions/791 ... -66000-138
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»