/// <summary> /// After Save. /// </summary> /// <param name="newRecord">new record</param> /// <param name="success">success</param> /// <returns>true if save complete (if not overwritten true)</returns> protected override bool AfterSave(bool newRecord, bool success) { log.Fine("Success=" + success); if (success && newRecord) { // save all nodes -- Creating new Workflow MWFNode[] nodes = GetNodesInOrder(0); for (int i = 0; i < nodes.Length; i++) { nodes[i].Save(Get_Trx()); } } if (newRecord) { int AD_Role_ID = GetCtx().GetAD_Role_ID(); MWorkflowAccess wa = new MWorkflowAccess(this, AD_Role_ID); wa.Save(); } // Menu/Workflow else if (Is_ValueChanged("IsActive") || Is_ValueChanged("Name") || Is_ValueChanged("Description") || Is_ValueChanged("Help")) { MMenu[] menues = MMenu.Get(GetCtx(), "AD_Workflow_ID=" + GetAD_Workflow_ID()); for (int i = 0; i < menues.Length; i++) { menues[i].SetIsActive(IsActive()); menues[i].SetName(GetName()); menues[i].SetDescription(GetDescription()); menues[i].Save(); } X_AD_WF_Node[] nodes = MWindow.GetWFNodes(GetCtx(), "AD_Workflow_ID=" + GetAD_Workflow_ID()); for (int i = 0; i < nodes.Length; i++) { bool changed = false; if (nodes[i].IsActive() != IsActive()) { nodes[i].SetIsActive(IsActive()); changed = true; } if (nodes[i].IsCentrallyMaintained()) { nodes[i].SetName(GetName()); nodes[i].SetDescription(GetDescription()); nodes[i].SetHelp(GetHelp()); changed = true; } if (changed) { nodes[i].Save(); } } } return(success); }