2017-07-29 83 views
0

我試圖創建活動創建一個項目後,我收到以下錯誤Acumatica如何以編程方式創建項目活動?

ProjectTaskID沒有找到該項目(限於:假,外部:真,值:管理)
該項目ContractID被未找到(限制:假,外部:假,值:2285)

代碼位置在RowUpdating該項目已經被創建之後。

    var projTask = (PMTask)PXSelect<PMTask, 
        Where<PMTask.taskCD, Equal<Required<PMTask.taskCD>>, 
       And<PMTask.projectID, Equal<Required<PMTask.projectID>>>>> 
        .SelectSingleBound(Base, new object[] { }, "Management", Base.Project.Current.ContractID); 
       int projTID = projTask.TaskID.Value; 
         CRActivityMaint ent1 = PXGraph.CreateInstance<CRActivityMaint>(); 
         CRActivity fold1 = new CRActivity(); 
         fold1 = ent1.Activities.Insert(fold1); 
         fold1.Subject = "Drawings"; 
         fold1.Type = "FC"; 

         fold1.ContactID = Base.Project.Current.ContractID; 
         ent1.Activities.Update(fold1); 
         PMTimeActivity t1 = new PMTimeActivity(); 
         t1.ContractID = Base.Project.Current.ContractID; 
         t1.Summary = "Drawings"; 

         t1.TrackTime = true; 
         t1.ProjectID = Base.Project.Current.ContractID; 
         t1.ProjectTaskID = projTID; 


         ent1.TimeActivitiesOld.Insert(t1); 
         ent1.TimeActivity.Current = t1; 

         ent1.Actions.PressSave(); 
+0

我會做的運行從Visual Studio調試會話將斷點上PressSave,當你打它檢查是否有匹配ProjectTaskID和ContractID在數據庫中使用數據庫管理實用程序(如SQL Server Management Studio)。 –

回答

0

的問題是,因爲TimeActivity未正確初始化

     CRActivityMaint ent1 = PXGraph.CreateInstance<CRActivityMaint>(); 
         CRActivity fold1 = new CRActivity(); 
         fold1 = ent1.Activities.Insert(fold1); 
         fold1.Subject = "Drawings"; 
         fold1.Type = "FC"; 
         fold1.OwnerID = Base.Project.Current.CreatedByID; //change to proj manager item.UsrProjectMan get guid 
         ent1.Activities.Update(fold1); 
         ent1.TimeActivity.Current.Summary = "Drawnings"; 
         ent1.TimeActivity.Current.TrackTime = true; 
         ent1.TimeActivity.Current.IsBillable = false; 
         ent1.TimeActivity.Current.ProjectID = Base.Project.Current.ContractID; 
         ent1.TimeActivity.Current.ProjectTaskID = projTID;   
         ent1.Actions.PressSave();