📚 SAP Business One SDK Help

ProjectManagementService Object
See Also  Members  Example

Description

This service is for project management in SAP Business One.

Source table: OPMG.

Object Model
















































Example

Adding a Project (C#)Copy Code
public int AddProject() 

    int absEntryOfCreatedProject = -1; 
 
    SAPbobsCOM.CompanyService oCompServ = null; 
    SAPbobsCOM.ProjectManagementService pmgService = null; 
             
    try 
    { 
        // Company service 
        oCompServ = (SAPbobsCOM.CompanyService)g_Company.GetCompanyService(); 
 
        // ProjectManagementService 
        pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); 
 
        // Add project 
        SAPbobsCOM.PM_ProjectDocumentData project = (SAPbobsCOM.PM_ProjectDocumentData)pmgService.GetDataInterface(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 = ProjectTypeEnum.pt_External; 
        project.BusinessPartner = "Customer_01"; 
        project.BusinessPartnerName = "BP Name_01"; 
        project.ContactPerson = 2; 
        project.Territory = 1; 
        project.SalesEmployee = 5; 
        project.AllowSubprojects = BoYesNoEnum.tYES; 
        project.ProjectStatus = ProjectStatusTypeEnum.pst_Started; 
        project.FinancialProject = "FinProj_01"; 
        project.RiskLevel = RiskLevelTypeEnum.rlt_High; 
        project.Industry = 3; 
        project.Reason = "Test comment"; 
        project.AttachmentEntry = 1; 
 
        SAPbobsCOM.PM_ProjectDocumentParams projectParam = pmgService.AddProject(project); 
        absEntryOfCreatedProject = projectParam.AbsEntry; 
    } 
    catch (System.Exception ex) 
    { 
        throw new Exception(string.Format("Call PMG failed with error code: {0}", e.Message)); 
    } 
    finally 
    { 
        if (pmgService != null) 
        { 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); 
        } 
    } 
 
    return absEntryOfCreatedProject; 






Updating a Project (C#)Copy Code
public void UpdateProject() 

    SAPbobsCOM.CompanyService oCompServ = null; 
    SAPbobsCOM.ProjectManagementService pmgService = null; 
 
    try 
    { 
        oCompServ = (SAPbobsCOM.CompanyService)g_Company.GetCompanyService(); 
 
        // ProjectManagementService 
        pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService);    
               
        // Update project 
        SAPbobsCOM.PM_ProjectDocumentParams projectToUpdateParam = pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); 
        projectToUpdateParam.AbsEntry = 1; 
        SAPbobsCOM.PM_ProjectDocumentData project = pmgService.GetProject(projectToUpdateParam); 
        project.ProjectName = project.ProjectName + " Updated"; 
 
        pmgService.UpdateProject(project); 
    } 
    catch (Exception e) 
    { 
        throw new Exception(string.Format("Call PMG failed with error code: {0}", e.Message)); 
    } 
    finally 
    { 
        if (pmgService != null) 
        { 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); 
        } 
    } 

Canceling a Project (C#)Copy Code
public void CancelProject(int absEntry) 

    SAPbobsCOM.CompanyService oCompServ = null; 
    SAPbobsCOM.ProjectManagementService pmgService = null; 
 
    try 
    { 
        oCompServ = (SAPbobsCOM.CompanyService)g_Company.GetCompanyService(); 
 
        // ProjectManagementService 
        pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService);   
                
        // Cancel project 
        SAPbobsCOM.PM_ProjectDocumentParams projectToCancelParam = pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); 
        projectToCancelParam.AbsEntry = 1; 
             
        pmgService.CancelProject(projectToCancelParam); 
    } 
    catch (Exception e) 
    { 
        throw new Exception(string.Format("Call PMG failed with error code: {0}", e.Message)); 
    } 
    finally 
    { 
        if (pmgService != null) 
        { 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); 
        } 
    } 
}
Add Document to Stage (C#)Copy Code
public void AddDocumentToStage() 

    try 
    { 
        CompanyService oCompServ = (SAPbobsCOM.CompanyService)g_Company.GetCompanyService(); 
        ProjectManagementService pmgService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); 
 
        SAPbobsCOM.PM_ProjectDocumentParams projectToUpdateParam = pmgService.GetDataInterface(ProjectManagementServiceDataInterfaces.pmsPM_ProjectDocumentParams); 
        projectToUpdateParam.AbsEntry = 1; 
        SAPbobsCOM.PM_ProjectDocumentData project = pmgService.GetProject(projectToUpdateParam); 
 
        // add stage to the project 
        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 = 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 = BoYesNoEnum.tNO; 
        stage.StageOwner = 5; 
        stage.DependsOnStage1 = 1; 
        stage.StageDependency1Type = StageDepTypeEnum.sdt_Project; 
        stage.DependsOnStageID1 = 1; 
 
        // add document to the stage 
        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 e) 
    { 
        throw new Exception(string.Format("Call PMG failed with error code: {0}", e.Message)); 
    } 
    finally 
    { 
        if (pmgService != null) 
        { 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); 
        } 
    } 

Adding a SubProject (C#)Copy Code
public void AddSubProject() 

    try 
    { 
        CompanyService oCompServ = (SAPbobsCOM.CompanyService)g_Company.GetCompanyService(); 
 
        // ProjectManagementService 
        ProjectManagementService phaService = (SAPbobsCOM.ProjectManagementService)oCompServ.GetBusinessService(ServiceTypes.ProjectManagementService); 
 
        // Add subproject 
        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 e) 
    { 
        throw new Exception(string.Format("Call PHA failed with error code: {0}", e.Message)); 
    } 
    finally 
    { 
        if (pmgService != null) 
        { 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pmgService); 
        } 
    } 

See Also