2013-05-03 106 views
1

我注意到当你删除一个工人时,Person记录仍然存在于DirPerson,DirPersonName,DirPartyTable(和一堆其他相关表)中。如何删除Ax2012中的DirParty记录?

我认为这是由于整个DirParty工程在Ax2012中的复杂性;可能要确保可能包含数据的相关表格在没有父记录的情况下不会留下。 但是为什么然后DirParty类中有一个函数检查是否可以删除一个参与方(DirParty :: canDeleteParty)。我也尝试过使用DirParty :: autoDeleteParty方法,但没有成功。没有从DirPartyTable中删除。

例子:

static void myLittleDirPartyDeleteJob(Args _args) 
{ 
    DirPartyTable  dirPartyTable; 
    DirPerson   dirPerson; 
    Common    partyRecord; 
    DirParty   dirPartyClass; 
    DirPersonRecId  personRecId; 
    ; 

    select firstOnly * from dirPerson where dirPerson.name == "BONANI VIRGINIA NENGWEKHULU"; 
    personRecId = DirPerson.RecId; 

    //This is after the worker has been deleted on the HcmWorkerListPage form on HRM 
    dirPartyTable = DirPartyTable::findRec(DirPerson::find(personRecId).RecId); 

    if (dirPartyTable) 
    { 
     partyRecord = dirPartyTable; 
     dirPartyClass = new DirParty(partyRecord); 

     if (DirParty::canDeleteParty(dirPartyClass.getPartyRecId(),true)) 
     { 
      DirParty::autoDeleteParty(dirPartyTable.RecId); 
     }    
    } 
} 

上面的代码不会删除任何东西,也没有击中调试任何错误。我试过把它放在事务块(ttsbegin,ttscommit)中;选择记录forupdate;我甚至试过强迫与DirPartyTable.doDelete()一删除

当试图上述任何我收到以下错误:”您试图添加或减去值创建一个无效utcdatetime”

所以我的主要问题是:是否可以删除DirParty(和关联的DirPerson; DirPersonName等)表,或者即使从HRModule中删除雇员之后,聚会记录是否仍然会保存在Dir *表中?

+0

你确定在通讯录参数下的组织管理中打开参数'没有角色的删除党'?不知道,但检查此[链接](http://technet.microsoft.com/en-us/library/gg731966.aspx) – 2013-05-05 22:29:27

+0

已检查参数,但DirParty记录仍然不会被删除。 – Celeste 2013-06-10 13:07:50

回答

2

请注意,在autoDeleteParty方法中,检查AutoDeleteParty参数是在删除之前设置的,还是可以在作业中使用代码。

问候, 塞巴斯蒂安

+0

如果您在'DirParameters'表中勾选AutoDeleteParty字段,只需删除客户端上的Worker in worker列表,即可从所有这些表中删除记录。 如果你在这些表中留下了一些乱七八糟的数据,你仍然需要按照'DirParty :: autoDeleteParty(_recId)''方法的顺序勾选该字段。 – Donatas 2015-04-14 14:41:02

0

假设你有DirParameters :: find()方法。AutoDeleteParty ==真

也许尝试运行

DirParty::canDeleteParty(this.RecId,_showInfoLog) 

从工作,传递真实的_showInfolog

由于'autoDeleteParty'方法在调用partyTable.delete()之前调用此方法,但通过false,您不太可能如果它不起作用的任何反馈