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,您不太可能如果它不起作用的任何反饋