D365/AX7:Create Project/ProjTable Records Using Standard Data Entity and X++

Purpose & Requirement

Create Project/ProjTable Records Using Data Entity and X++.In this requirement, i am using standard data entity called “ProjectEntity” for creating new projects.

Sample Code

[code language = “cpp”]
ProjectEntity projectEntity;
ProjId RFJobNumber;
ProjTable projTable;
projTable = ProjTable::find(_projId);
projectEntity.initValue();
projectEntity.ProjectID = ProjTable::generateNextSubProjectId(projTable.ProjId);
projectEntity.AllowNegativeBudgetsToBeCarriedForward = NoYes::No;
projectEntity.BankDocumentType = projTable.BankDocumentType;//BankLGDocumentType::None;
projectEntity.BudgetControlInterval = projTable.ProjBudgetInterval;//ProjBudgetInterval::TotalBudget;
projectEntity.BudgetOverrunDefault = projTable.ProjBudgetOverrunOption;//ProjBudgetOverrunOption::AllowOverruns;
projectEntity.CanCarryForwardRemainingBudgets = NoYes::No;
projectEntity.CanUseAlternateProjectBudget =NoYes::No;
projectEntity.CanUseBudgetControl =NoYes::No;
projectEntity.CanVerifyCostAgainstRemainingForecast = NoYes::No;
projectEntity.Category = NoYes::No;
projectEntity.CertifiedPayroll = NoYes::No;
projectEntity.CustomerAccount = projTable.CustAccount;
projectEntity.DateOfCreation = today();
projectEntity.DeliveryName = DirPartyTable::findRec(CustTable::find(projTable.CustAccount).Party).Name;
projectEntity.DurationDeterminesEndDate = NoYes::No;
projectEntity.DurationInDays = 1;
projectEntity.Header = NoYes::No;
projectEntity.InvoiceCost = NoYes::No;
projectEntity.IsActivityRequiredForExpenseForecast = NoYes::No;
projectEntity.IsActivityRequiredForExpenseTransaction = NoYes::No;
projectEntity.IsActivityRequiredForHourForecast = NoYes::No;
projectEntity.IsActivityRequiredForHourTransaction = NoYes::No;
projectEntity.IsActivityRequiredForItemForecast = NoYes::No;
projectEntity.IsActivityRequiredForItemTransaction = NoYes::No;
projectEntity.JobIdentification = projectEntity.ProjectID;
projectEntity.JobPayType = projTable.JobPayType;//JmgJobPayTypeEnum::Empty;
projectEntity.LedgerPostingSortPriority = projTable.ProjLedgerPosting;//ProjLedgerPosting::Categories;
projectEntity.LocationID = LogisticsLocation::find(projTable.DeliveryLocation).LocationId;
projectEntity.ParentProject = projTable.ProjId;
projectEntity.PostingLevel = projTable.TimePostDetailSummary;//DetailSummary::Detail;
projectEntity.ProjectBudgetManagement = projTable.ProjBudgetManagement;//ProjBudgetManagement::None;
projectEntity.ProjectContractID = projTable.ProjInvoiceProjId;
projectEntity.ProjectedStartDate = today();
projectEntity.ProjectGroup = projTable.ProjGroupId;
projectEntity.ProjectName = acxCMRNDetails.ComponentName;
projectEntity.ProjectStage = projTable.Status;//ProjStatus::InProcess;
projectEntity.ProjectTemplate = NoYes::No;
projectEntity.ProjectType = projTable.Type;
projectEntity.PSASchedIgnoreCalendar = NoYes::No;
projectEntity.ScheduleStatus = projTable.PSAResSchedStatus;//PSAResSchedStatus::NoRequirements;
projectEntity.SearchPriority = projTable.ProjLinePropertySearch;//ProjLinePropertySearch::Project;
projectEntity.SubprojectIDFormat = projTable.Format;
projectEntity.TaskCompletelyScheduled = NoYes::No;
projectEntity.TemplateApplied = NoYes::No;
projectEntity.TransactionTypesControlled = projTable.ProjBudgetaryControlOn;//ProjBudgetaryControlOn::RevenuesAndCosts;
projectEntity.insert();
[/code]