Мне нужно создать новую запись на DirPartyTable. Я использовал этот код:

DirPartyTable _myDirPartyTable;
myPartyNumber = DirPartyTable::getNewPartyNumber((webSession() == null));
myDirPartyTable = DirPartyTable::createNew(myPartyType , myName, myPartyNumber);

// или без партномер

myDirPartyTable = DirPartyTable::createNew(myPartyType , myName);

Но в обоих случаях стандартный метод генерирует два Sequence ParyNumber. В режиме Debu я увидел, что система удвоила PartyNumber.

Как я могу создать запись, не создавая дыр в числовой последовательности?

Я попытался использовать этот другой код:

select forupdate myDirPartyTable;
myDirPartyTable.name = ....;
//etc
myDirPartyTable.insert();

Но не создает запись.

Спасибо, наслаждайтесь!

2
ulisses 16 Окт 2015 в 17:20

2 ответа

Лучший ответ

DirPartytable - это базовая таблица структуры адресной книги и верхний уровень иерархии наследования таблиц, см. Ссылки в Внедрение концепции глобальной адресной книги (Белая книга)

Вы не должны пытаться создать партию напрямую, а создайте из своей сущности, которая реализует структуру DirParty. Когда вы создаете поставщика, вы не создаете DirParty (с унаследованными таблицами), а затем создаете VendTable и связываете их все вместе. Создание поставщика сделает это напрямую.

Затем, если вы по-прежнему сталкиваетесь с двукратным вызовом по партийному номеру, зарегистрируйте обращение в службу поддержки Microsoft.

Ulisses: Я решил проблему, мне нужно создать до PartyType (Organization или Person и т. д.) и после обновления созданного DirPartyTable.

2
Ped7g 30 Сен 2016 в 14:09

Просто попробуйте AxDirPartyTable Class, например:

AxDirPartyTable       axDirPartyTable;

axDirPartyTable = AxDirPartyTable::construct();
axDirPartyTable.parmName(myName);
axDirPartyTable.parmPartyNumber(myPartyNumber);
axDirPartyTable.save();

Примеры можно найти здесь: Как создать запись в глобальной адресной книге через код .

0
ztirom 1 Дек 2015 в 19:55