“Project Management” object is exposed as a Service Type Object from SAP Business One Version 9.2 PL03. It is yet to be implemented in DTW.

Here is how to use the Project Management object using DI API:

1. Add a Project using DI API:

int absEntryOfCreatedProject = -1; SAPbobsCOM.CompanyService oCompServ = null; SAPbobsCOM.ProjectManagementService pmgService = null; try { oCompServ = (SAPbobsCOM.CompanyService)oCompany.GetCompanyService(); pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(SAPbobsCOM.ServiceTypes.ProjectManagementService); SAPbobsCOM.PM_ProjectDocumentData project = (SAPbobsCOM.PM_ProjectDocumentData)pmgService.GetDataInterface(SAPbobsCOM.ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentData); project.ProjectName = "ProjectByDI_01"; project.Owner = 1; project.StartDate = new DateTime(2016, 2, 1); project.DueDate = new DateTime(2016, 11, 30); project.ClosingDate = new DateTime(2016, 12, 31); project.ProjectType = SAPbobsCOM.ProjectTypeEnum.pt_External; project.BusinessPartner = "C20000"; project.ContactPerson = 2; project.Territory = 1; project.SalesEmployee = 5; project.AllowSubprojects = SAPbobsCOM.BoYesNoEnum.tYES; project.ProjectStatus = SAPbobsCOM.ProjectStatusTypeEnum.pst_Started; project.FinancialProject = "PRJ01"; project.RiskLevel = SAPbobsCOM.RiskLevelTypeEnum.rlt_High; project.Industry = 1; project.Reason = "Test comment"; project.AttachmentEntry = 1; SAPbobsCOM.PM_ProjectDocumentParams projectParam = pmgService.AddProject(project); absEntryOfCreatedProject = projectParam.AbsEntry; } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (pmgService != null) { MessageBox.Show(absEntryOfCreatedProject.ToString()); System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); } }

2. Update a Project by adding ‘Documents’ to ‘Stages’ using DI API:

SAPbobsCOM.CompanyService oCompServ = (SAPbobsCOM.CompanyService)oCompany.GetCompanyService(); SAPbobsCOM.ProjectManagementService pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(SAPbobsCOM.ServiceTypes.ProjectManagementService); SAPbobsCOM.PM_ProjectDocumentParams projectToUpdateParam = pmgService.GetDataInterface(SAPbobsCOM.ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); try { projectToUpdateParam.AbsEntry = 1; SAPbobsCOM.PM_ProjectDocumentData project = pmgService.GetProject(projectToUpdateParam); SAPbobsCOM.PM_StagesCollection stagesCollection = project.PM_StagesCollection; SAPbobsCOM.PM_StageData stage = stagesCollection.Add(); stage.StageType = 1; stage.StartDate = DateTime.Now; stage.CloseDate = stage.StartDate.AddDays(30); stage.Task = 1; stage.Description = "StageWithDocByDI_01"; stage.ExpectedCosts = 150; stage.PercentualCompletness = 7; stage.IsFinished = SAPbobsCOM.BoYesNoEnum.tNO; stage.StageOwner = 5; stage.AttachmentEntry = 1; stage = stagesCollection.Add(); stage.StageType = 2; stage.StartDate = DateTime.Now.AddMonths(1); stage.CloseDate = stage.StartDate.AddDays(30); stage.Task = 2; stage.Description = "StageWithDocByDI_02"; stage.ExpectedCosts = 250; stage.PercentualCompletness = 8; stage.IsFinished = SAPbobsCOM.BoYesNoEnum.tNO; stage.StageOwner = 5; stage.DependsOnStage1 = 1; stage.StageDependency1Type = SAPbobsCOM.StageDepTypeEnum.sdt_Project; stage.DependsOnStageID1 = 1; SAPbobsCOM.PM_DocumentsCollection documentsCollection = project.PM_DocumentsCollection; SAPbobsCOM.PM_DocumentData document = documentsCollection.Add(); document.StageID = 1; document.DocType = SAPbobsCOM.PMDocumentTypeEnum.pmdt_APCreditMemo; document.DocEntry = 7; pmgService.UpdateProject(project); MessageBox.Show("OK"); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (pmgService != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); } }

3. Cancelling a Project using DI API:

SAPbobsCOM.CompanyService oCompServ = null; SAPbobsCOM.ProjectManagementService pmgService = null; try { oCompServ = (SAPbobsCOM.CompanyService)oCompany.GetCompanyService(); pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); SAPbobsCOM.PM_ProjectDocumentParams projectToCancelParam = pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); projectToCancelParam.AbsEntry = 1; pmgService.CancelProject(projectToCancelParam); } catch (Exception ex) { throw new Exception(string.Format("Call PMG failed with error code: {0}", ex.Message)); } finally { if (pmgService != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); } }

4. Adding a SubProject using DI API:

try { CompanyService oCompServ = (SAPbobsCOM.CompanyService)oCompany.GetCompanyService(); ProjectManagementService phaService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); PM_SubprojectDocumentData subProject = phaService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_SubprojectDocumentData); subProject.Owner = 4; subProject.SubprojectName = "SubProjectNameByDI_01_01"; subProject.StartDate = new DateTime(2016, 5, 1); subProject.DueDate = new DateTime(2016, 5, 15); subProject.SubprojectEndDate = new DateTime(2016, 5, 31); subProject.ProjectID = 1; subProject.SubprojectType = 1; subProject.SubprojectContribution = 15; subProject.SubprojectStatus = SubprojectStatusTypeEnum.sst_Open; subProject.ActualCost = 50; subProject.PlannedCost = 200; SAPbobsCOM.PM_SubprojectDocumentParams subprojectParam = phaService.AddSubproject(subProject); } catch (Exception ex) { throw new Exception(string.Format("Call failed with error code: {0}", ex.Message)); } finally { if (pmgService != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); } }

New NetWeaver Information at SAP.com

Very Helpfull

User Rating: Be the first one !