}       //	prepare

        /// <summary>
        /// Perrform Process.
        /// </summary>
        /// <returns>Message (clear text)</returns>
        protected override String DoIt()
        {
            _C_Project_ID = GetRecord_ID();
            log.Info("doIt - C_Project_ID=" + _C_Project_ID + ", C_ProjectType_ID=" + _C_ProjectType_ID);
            //
            MProject project = new MProject(GetCtx(), _C_Project_ID, Get_Trx());

            if (project.GetC_Project_ID() == 0 || project.GetC_Project_ID() != _C_Project_ID)
            {
                throw new ArgumentException("Project not found C_Project_ID=" + _C_Project_ID);
            }

            if (project.GetC_ProjectType_ID_Int() > 0)
            {
                throw new ArgumentException("Project already has Type (Cannot overwrite) " + project.GetC_ProjectType_ID());
            }
            //
            MProjectType type = new MProjectType(GetCtx(), _C_ProjectType_ID, Get_Trx());

            if (type.GetC_ProjectType_ID() == 0 || type.GetC_ProjectType_ID() != _C_ProjectType_ID)
            {
                throw new ArgumentException("Project Type not found C_ProjectType_ID=" + _C_ProjectType_ID);
            }
            //	Set & Copy if Service
            project.SetProjectType(type);
            if (!project.Save())
            {
                return(GetRetrievedError(project, "@Error@"));
                // throw new Exception("@Error@");
            }
            //
            return("@OK@");
        } //	doIt