从代码在 DirPartyTable 上创建记录?

Create a record on DirPartyTable from code?

我必须在 DirPartyTable 上创建一条新记录。 我使用了这段代码:

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

// 或没有派对号码

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

但是在这两种情况下,标准方法都会生成两个序列 ParyNumber。 在 Debu 模式下,我看到系统获得两倍的 PartyNumber 。

如何在不在数字序列中创建空洞的情况下创建记录?

我尝试使用另一个代码:

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

但不创建记录。

谢谢, 享受吧!

DirPartytable 是地址簿框架的基础 table 并且是 table 继承层次结构的顶层参见 Implementing the Global Address Book Framework (White paper)

中的参考资料

您不应尝试直接创建派对,而应从实现 DirParty 框架的实体创建。当您创建一个供应商时,您不会创建一个 DirParty(具有继承的 tables),然后创建一个 VendTable 并将它们一起 link。创建供应商将直接进行。

然后,如果您仍然遇到两次 Party number 调用,请在 Microsoft 支持上记录一个案例。

ulisses:我解决了问题,我必须在 PartyType(组织或个人等)之前创建并在更新我创建的 DirPartyTable 之后创建。

只需尝试 AxDirPartyTable Class,例如:

AxDirPartyTable       axDirPartyTable;

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

示例可在此处找到:How to create a record in Global address book throgh code