SAP S/4HANA项目与组合管理指南

需积分: 13 3 下载量 136 浏览量 更新于2024-07-18 收藏 1.35MB PDF 举报
"Master Guide for SAP Portfolio and Project Management 1.0 for SAP S/4HANA,这是一份关于在SAP S/4HANA环境中实施和管理项目组合的详细指南,版本为1.1,发布日期为2017年2月22日。文档涵盖了SAP PPM(项目和项目管理)的关键信息,包括软件组件、系统架构、实施序列等,并与SAP Solution Manager进行了关联讨论。" 本文档是SAP Portfolio and Project Management在SAP S/4HANA平台上的主指南,旨在帮助用户理解和实施项目管理和投资组合管理的各项功能。以下是该指南的主要内容和关键知识点: 1. **开始**: - **关于此文档**:介绍了文档的目的、适用范围和相关信息的获取途径。 - **相关信息**:提供了其他相关的学习资源和资料链接。 - **重要的SAP笔记**:列出了对实施至关重要的SAP笔记,这些笔记通常包含解决常见问题和优化配置的指导。 2. **SAP S/4HANA中的项目和项目管理概述**: - **软件单元**:详细列出了SAP PPM for S/4HANA的软件组件,包括应用组件和技术组件,以及额外的技术支持。 - **应用组件**:这部分解释了组成PPM的核心应用程序,如项目规划、成本和收入管理等。 - **技术组件**:描述了支持PPM的后台技术,如数据库、服务器和接口技术。 - **附加技术**:提到了与PPM集成的其他技术解决方案,如大数据处理、分析工具等。 - **软件组件矩阵**:展示了各个组件之间的关系和依赖,对于理解和配置系统至关重要。 - **系统景观**:概述了PPM在不同环境下的部署模型,包括生产、开发和测试系统。 - **整体实施序列**:提供了实施PPM的推荐步骤和顺序,指导用户如何逐步搭建和配置。 3. **SAP S/4HANA中的应用**: - 这一部分详细阐述了PPM在S/4HANA环境中的具体应用场景,如战略规划、项目执行、资源管理等。 4. **解决方案范围内的主题**: - **SAP Solution Manager**:作为SAP的系统管理和变更管理工具,它在PPM中的角色是确保业务流程的合规性,监控系统的健康状态,并协助实施和升级过程。 5. **附录**: - **文档列表**:包含了相关文档的参考信息,便于进一步研究和查阅。 这份指南对于那些计划或正在实施SAP PPM for S/4HANA的企业来说,是不可或缺的参考资料,它不仅提供理论知识,还提供了实践操作的指导,确保用户能够有效地管理和优化他们的项目组合和项目。在实施过程中,及时更新和参照最新的文档版本是至关重要的,以确保遵循最佳实践并充分利用SAP S/4HANA的最新特性。
2023-05-15 上传

分析封装。 private final String name; private double liquidity; private Set<MarketProperty> portfolio; //constructors //Creating an empty portfolio of assets and zero liquidity. public PropertyManagementCompany(String name, double liquidity) { this.name = checkName(name); this.liquidity = liquidity; this.portfolio = createEmptyPortfolio(); } private Set<MarketProperty> createEmptyPortfolio() { return new TreeSet<>(Comparator.comparingDouble(MarketProperty::getCurrentValuation).reversed()); } //creating a portfolio and liquidity with parameters such as company name, liquidity, and portfolio list public PropertyManagementCompany(String name, double liquidity, List<MarketProperty> portfolio) { this.name = checkName(name); this.liquidity = liquidity; this.portfolio = createEmptyPortfolio(); this.portfolio.addAll(portfolio); } //validators private String checkName(String name) { //The aim of this method is to ensure the type of category. if (name.isEmpty() ) { throw new IllegalArgumentException("The company name can't be empty!"); } else { return name; } } //Purchase a real estate asset with the purchase price. public void buyProperty(MarketProperty property, double price) { if (liquidity >= price) { if (portfolio.contains(property)) { throw new IllegalArgumentException("The property has been held."); } else { //MarketProperty marketProperty = new MarketProperty(property.getID(), property.getCategory(), property.getSize(), property.getInitialPrice()); portfolio.add(property); liquidity -= price; } } else { throw new IllegalArgumentException("Insufficient liquidity to purchase the property. "); } } //Sell a real estate asset with the current valuation. public void sellProperty(MarketProperty property) { if (portfolio.contains(property)) { liquidity += property.getCurrentValuation(); portfolio.remove(property); } else { throw new IllegalArgumentException("Property not found in portfoliio!"); } } //getters public String getName() { return name; } public double getLiquidity() { return liquidity; } public List<MarketProperty> g

2023-05-15 上传