![]() |
#11 |
Участник
|
Давно известно, что когда код вынужденно разбит на кучу процедур и потому состоит из одних вызов, он вызывает только вопросы.
Ну, попробуем: X++: AxaptaRecord axRecord = AX.CreateAxaptaRecord("PST_Inventory_ItemProperties"); Int64 RecId = 0; // определить тип данных InventoryDataTypes DataType = GetInventoryDataType(PropertyType); // конвертировать значение из строки (если нужно) и установить в нужное поле string FieldName; object DBPropertyValue = ConvertToInventoryDataType(PropertyType, PropertyValue, AssociatedLink, out FieldName); if (DBPropertyValue == null) return 0; axRecord.set_Field(FieldName, DBPropertyValue); if (FieldName != "Link" && AssociatedLink != null) axRecord.set_Field("Link", AssociatedLink); else if (FieldName != "StringValue" && Convert.ToString(DBPropertyValue) != PropertyValue) axRecord.set_Field("StringValue", PropertyValue); // заполнить прочие нужные поля записи axRecord.set_Field("ItemType", (int)ItemType); axRecord.set_Field("ItemRecId", ItemRecId); axRecord.set_Field("DataSourceId", DataSourceId); axRecord.set_Field("PropertyType", PropertyType.ID); // поскольку мы не получаем группы отдельно (только вместе с элементами), // то указываем группу, только если она только что загружена PropertyTypeGroup PropertyGroup = (PropertyTypeGroup)PropertyGroups[Convert.ToInt64(PropertyGroupId)]; if (PropertyGroup != null) { axRecord.set_Field("PropertyGroupId", PropertyGroup.RecordID); } axRecord.set_Field("LanguageId", LanguageId); try { if (axRecord.ValidateWrite()) { axRecord.Write(); RecId = (Int64)axRecord.get_Field("RecId"); } } catch (Exception ExceptionData) { throw ExceptionData; } Комментарии это код из отдельной процедуры, метод TTSBegin вызывается До нее, а TTSCommit -после. При ошибке сообщается, что она произошла в ValidateWrite(), но на таблице нет ни отношений, ни уникальных индексов, ни перекрытого метода ValidateWrite(). Обязательные поля заполнены все. Последний раз редактировалось Evgenius; 03.05.2011 в 16:08. |
|
Теги |
business connector, com connector |
|
|