从代码创建DirPartyTable上的记录?

时间:2015-10-16 14:20:46

标签: axapta dynamics-ax-2012 x++ sequences

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

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

//或没有partynumber

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

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

如何创建记录而不在序列数字中创建孔?

我尝试使用另一个代码:

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

但不创造记录。

谢谢, 享受!

2 个答案:

答案 0 :(得分:2)

DirPartytable是地址簿框架的基础表,是表继承层次结构的顶级,请参阅Implementing the Global Address Book Framework (White paper)中的引用

您不应该尝试直接创建一个聚会,而是从实现DirParty框架的实体创建。创建供应商时,您不需要创建DirParty(带有herited表),然后创建VendTable并将它们全部链接在一起。创建供应商将直接进行。

然后,如果您仍然遇到两次Party号码呼叫,请在Microsoft支持中记录案例。

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

答案 1 :(得分:0)

试试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