development toolkit guide

60
Developer Guide | PUBLIC 2020-10-07 Development Toolkit Guide SAP Product, Quotation, and Underwriting Management 2.0 © 2021 SAP SE or an SAP affiliate company. All rights reserved. THE BEST RUN

Upload: others

Post on 08-Apr-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Development Toolkit Guide

Developer Guide | PUBLIC2020-10-07

Development Toolkit GuideSAP Product, Quotation, and Underwriting Management 2.0

© 2

021 S

AP S

E or

an

SAP affi

liate

com

pany

. All r

ight

s re

serv

ed.

THE BEST RUN

Page 2: Development Toolkit Guide

Content

1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1 About This Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Audience. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1 Prerequisites for Installing the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52.2 Understanding the FS-QUO Development Toolkit Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Source Code Terms and Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Supported Clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Substitution Variable Placeholders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Updating the Toolkit to FS-QUO 2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Installing the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.1 FS-QUO Runtime Database Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.2 Installing and Configuring Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3 Installing and Configuring TomEE+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.4 Installing and Configuring the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Unzipping the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Setting up a Development Profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37Initializing the FS-QUO Toolkit Workspace in Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Validating the Initial Configuration of the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.5 Configuring the Toolkit for Content Management Systems (CMS). . . . . . . . . . . . . . . . . . . . . . . . . . 424.6 Configuring the FS-QUO Toolkit for FS-QUO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Configuring the Runtime Administrative Console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Updating Configuration Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Enabling the Business Partner Setting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.7 Downloading and Deploying a Published Product Jar to the FS-QUO Toolkit. . . . . . . . . . . . . . . . . . . 474.8 Installing and Configuring Standalone SAP JCo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Configuring JCo Standalone Settings in FS-QUO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48Testing RFC Destinations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.9 Creating a User and Assigning Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.10 Setting up a Personal Development Subaccount on SAP Cloud Platform Neo. . . . . . . . . . . . . . . . . . 514.11 Setting Up Connectivity to the FS-QUO Front-End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Importing and Deploying Apps to the Fiori Launchpad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Setting Up App-to-App Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.12 Copying the <CSI_HOME> Artifacts to the Development Profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.13 Building the Custom FS-QUO MTA on the XSA server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

2 PUBLICDevelopment Toolkit Guide

Content

Page 3: Development Toolkit Guide

4.14 Deploying a Custom FS-QUO MTAR File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5 Changing Default Error Report Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Development Toolkit GuideContent PUBLIC 3

Page 4: Development Toolkit Guide

1 Introduction

1.1 About This Document

This document describes to how to install and configure the SAP Product, Quotation, and Underwriting Management FS-QUO development toolkit to create an FS-QUO development environment.

1.2 Audience

This document is intended for technical consultants and developers who modify FS-QUO functionality. It's assumed that you have experience developing applications using UI5 and Java.

4 PUBLICDevelopment Toolkit Guide

Introduction

Page 5: Development Toolkit Guide

2 Prerequisites

2.1 Prerequisites for Installing the FS-QUO Toolkit

This topic details the software that is required before you can install the FS-QUO toolkit.

Before you install the toolkit, download the following software:

Oracle Java Development Kit SE8 for Windows x86_64

This is required to run Eclipse.

Download the software here .

Eclipse Oxygen IDE for Java EE Developers Windows 64 bit

Download the software here .

Apache Maven 3.2.3 Download the software here .

Apache TomEE+ 1.7.5 Download the software here .

SAP HANA Client 2.0, revision 003

Use the SAPCAR tool to extract the HANA client SAR file, then extract ngdbc.jar from SAP_HANA_CLIENT/client/JDBC.TGZ.

Download the client here

You can download the SAPCAR utility here .

SAP Java Connector (JCo) 2.x and 3.x

Download SAP JCo by searching for "SAP JCo" in the Software Download Center

For SAP JCo 2.1, patch 10 is required and can be downloaded here .

SAP Cloud Platform Cloud Connector

Download the Windows 64-bit x86 software available in the Cloud Connector area here.

SAP HANA XS Advanced Command-Line Client (XS CLI)

If you don't already have the XS CLI installed, download it here . Go to SAP HANA PLATFORM EDITION 2.0 XS RUNTIME 1 and choose the

client version that matches your platform needs and your server version.

2.2 Understanding the FS-QUO Development Toolkit Contents

The development environment consists of all the required software and source code to help you extend FS-QUO functionality.

CautionBefore you work with the FS-QUO source code, see the Source Code Terms and Conditions [page 7].

Development Toolkit GuidePrerequisites PUBLIC 5

Page 6: Development Toolkit Guide

The FS-QUO development toolkit is a ZIP file that contains the pre-configured FS-QUO-toolkit-extensions Maven project and modules:

● Custom modules● Standard OData modules● Standard underwriting modules

All custom modules in FS-QUO-toolkit-extension project contain only custom artifacts. Therefore, standard FS-QUO modules which are not included in toolkit extensions project will be part of Maven dependencies.

The following modules are provided in the toolkit:

Custom-FS-QUO-dev-webapp

The web container to build local development artifacts as a WAR file.No web.xml files are allowed. They will be ignored in this module.

Custom-FS-QUO-mta The MTA container to build MTAR files for XSA deployment.The xs-app.json and xs-security.json files that control authorization of URL patterns with defined scope and role templates can be modified in this module.

NoteThe two files listed above must be merged manually after an FS-QUO upgrade.

CustomServiceLibrary The custom implemented service APIs.

● The custom-app-manifest.xml file holds the flow ID and location definition for custom flow registration in Application Context.

● The custom-services.xml file hosts Spring XML definition for this module, which can define the base-package of custom services package for component scanning on @CustomService annotation that overrides standard implementation. The base-package definition also defines the scanning package of @CustomSearchResult annotation for custom search result bean that overrides standard SearchResult or SearchDomainData for the search functions.

In order to override the standard implementation:

● A custom service implementation should be annotated by @CustomService within the component scan package.

● The custom implementation class should follow naming convention as standard: <interfaceClassName>ImplExt

● The custom class should be either extended from the standard <interfaceClassName>Impl class or implemented of an interface <interfaceClassName> class and extended QuoCovModelServiceBase class in order to access domain data APIs.

CustomWebLibrary The custom web module for custom controllers and custom servlets by annotation basis.

6 PUBLICDevelopment Toolkit Guide

Prerequisites

Page 7: Development Toolkit Guide

● The custom-servlets.xml resource file provides base-package definition for a component scan to Spring controllers of this module. The URL pattern should contain an extension of .cdo to be registered in the Spring context.

● For a JEE servlet like @WebServlet, it will accept any URL pattern.

apidoc The javadocs for the public FS-QUO APIs.

dependencies The compiled JAR files and 3rd party libraries.

FS-QUO-dev The local development-required artifacts, such as the local <CSI_HOME>, the local TomEE server related configuration and required libraries.

com.sap.fs.quo.cov.web The OData services for coverage-based products in FS-QUO.

QUOODataLibrary The common OData services for FS-QUO.The OData services that consume business services of FS-QUO.

UWCMSService The Content Management System functionality used by the FS-IPW My Underwriting Worklist app.The default implementation uses SAP Mobile Documents for content management and Netweaver VSI for virus scanning of file attachments.

UWLibrary Business and data access services specific to FS-QUO underwriting.The business services contained within this module are primarily consumed by the OData processors in UWODataLibrary.

UWModel The central location for underwriting bean definitions.

UWODataLibrary The OData services for underwriting.The OData processors consume quotation and underwriting business services, respectively.

Related Information

Source Code Terms and Conditions [page 7]

2.3 Source Code Terms and Conditions

The FS-QUO source code described in this guide is the intellectual property (IP) of SAP SE. The source code is available for customers to support extension.

Any changes that you make to the core source code voids part of the warranty or the entire warranty.

For more information about IP terms and conditions, see the license agreement.

Development Toolkit GuidePrerequisites PUBLIC 7

Page 8: Development Toolkit Guide

2.4 Supported Clients

The FS-QUO client is browser-based.

For information about the browsers that are supported, see the Client System Requirements.

2.5 Substitution Variable Placeholders

The following table defines the substitution variables used in this guide. Gather the information listed prior to beginning.

Substitution Variable Description

<rel> The FS-QUO release version that you are installing.

<sp> The support package version you are installing or upgrading.

<pl> The patch level of you are installing or upgrading.

<CSI_HOME> The installation directory of the file system portion of an FS-PRO or FS-QUO installation.

<eclipse_dir> The local directory where the Eclipse application is installed.

<toolkit_dir> The local directory where the FS-QUO toolkit is installed.

<jdk_dir> The installation directory of the JDK.

<dev_profile_name> The name of your FS-QUO development profile.

<quo_toolkit_url> The URL to the FS-QUO Design Time approuter application corresponding to your local FS-QUO development setup - "localhost:8080".

<FS-PM_dest_name> The destination name for connectivity with FS-PM.

<BP_dest_name> The destination name for connectivity with SAP GP-FS.

8 PUBLICDevelopment Toolkit Guide

Prerequisites

Page 9: Development Toolkit Guide

3 Updating the Toolkit to FS-QUO 2.0

If you are updating an existing local FS-QUO development environment to version 2.0 or later, you need to be aware of the structural changes to class paths and file names that are detailed in the topic below.

If you have made changes directly on the toolkit classes, you will need to compare your existing customizations to the new class structures. You will then have to apply your customizations to the new class structures.

Service APIs Change Log:

From Class Replaced by / Merged To Class

com.sap.fs.quo.core.service.CBCPaymentIntegrationService

(Merged to) com.sap.fs.quo.cov.service.api.CashBeforeCoverService

com.sap.fs.quo.cov.service.api.BPIntegrationService

com.sap.fs.quo.cov.service.api.BusinessPartnerIntegrationService

com.sap.fs.quo.cov.service.api.CovProductService

(Merged to) com.sap.fs.quo.cov.service.api.ProductRuleService

com.sap.fs.quo.cov.service.api.FSPMApplicationService

(Merged to) com.sap.fs.quo.cov.service.api.IssuedPolicyIntegrationService

com.sap.fs.quo.cov.service.api.FSPMIntegrationService

com.sap.fs.quo.cov.service.api.PolicyManagementIntegrationService

com.sap.fs.quo.cov.service.api.FSPMIntegrationServiceBase

(Merged to) com.sap.fs.quo.cov.service.impl.PolicyManagementIntegrationServiceFSPMImplBase

com.sap.fs.quo.cov.service.api.FSPMPolicyService

com.sap.fs.quo.cov.service.api.IssuedPolicyIntegrationService

com.sap.fs.quo.cov.service.api.GroupBusinessValidationService

com.sap.fs.quo.cov.service.api.GroupInsuranceValidationServiceBase

com.sap.fs.quo.cov.service.api.GroupEAppService

com.sap.fs.quo.cov.service.api.GroupInsuranceAndMultiIndividualEAppService

com.sap.fs.quo.cov.service.api.MasterPolicyMappingGIAService

com.sap.fs.quo.cov.service.api.MultiIndividualMasterPolicyMappingService

com.sap.fs.quo.cov.service.api.MasterPolicyMappingService

com.sap.fs.quo.cov.service.api.GroupInsuranceMasterPolicyMappingService

com.sap.fs.quo.cov.service.api.MasterPolicyTransformationGIAService

com.sap.fs.quo.cov.service.api.MultiIndividualMasterPolicyTransformationService

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 9

Page 10: Development Toolkit Guide

From Class Replaced by / Merged To Class

com.sap.fs.quo.cov.service.api.MasterPolicyTransformationService

com.sap.fs.quo.cov.service.api.GroupInsuranceMasterPolicyTransformationService

com.sap.fs.quo.cov.service.api.MasterSubmissionService

com.sap.fs.quo.cov.service.api.MultiIndividualMasterSubmissionService

com.sap.fs.quo.cov.service.api.StatusService

com.sap.fs.quo.cov.service.api.StatusServiceBase

com.sap.fs.quo.core.service.impl.CBCPaymentIntegrationServiceImpl

(Merged to) com.sap.fs.quo.cov.service.impl.CashBeforeCoverServiceImpl

com.sap.fs.quo.cov.service.impl.BPIntegrationServiceImpl

com.sap.fs.quo.cov.service.impl.BusinessPartnerIntegrationServiceImpl

com.sap.fs.quo.cov.service.impl.CovProductServiceImpl

(Merged to) com.sap.fs.quo.cov.service.impl.ProductRuleServiceImpl

com.sap.fs.quo.cov.service.impl.FSPMApplicationServiceImpl

(Merged to) com.sap.fs.quo.cov.service.impl.IssuedPolicyIntegrationServiceImpl

com.sap.fs.quo.cov.service.impl.FSPMCashBeforeCoverServiceImpl

com.sap.fs.quo.cov.service.impl.CashBeforeCoverServiceImpl

com.sap.fs.quo.cov.service.impl.FSPMIntegrationServiceBaseImpl

com.sap.fs.quo.cov.service.impl.PolicyManagementIntegrationServiceFSPMImplBase

com.sap.fs.quo.cov.service.impl.FSPMIntegrationServiceGIAImpl

com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyIntegrationServiceFSPMImpl

com.sap.fs.quo.cov.service.impl.FSPMIntegrationServiceImpl

com.sap.fs.quo.cov.service.impl.PolicyManagementIntegrationServiceFSPMImpl

com.sap.fs.quo.cov.service.impl.FSPMPolicyServiceImpl

com.sap.fs.quo.cov.service.impl.IssuedPolicyIntegrationServiceFSPMImpl

com.sap.fs.quo.cov.service.impl.GroupBusinessInsuredObjectValidationServiceImpl

com.sap.fs.quo.cov.service.impl.GroupInsuranceInsuredObjectValidationServiceImpl

com.sap.fs.quo.cov.service.impl.GroupBusinessInsuredPersonValidationServiceImpl

com.sap.fs.quo.cov.service.impl.GroupInsuranceInsuredPersonValidationServiceImpl

com.sap.fs.quo.cov.service.impl.GroupEAppServiceImpl

com.sap.fs.quo.cov.service.api.GroupInsuranceAndMultiIndividualEAppService

com.sap.fs.quo.cov.service.impl.MasterPolicyMappingGIAServiceImpl

com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyMappingServiceImpl

com.sap.fs.quo.cov.service.impl.MasterPolicyMappingServiceImpl

com.sap.fs.quo.cov.service.impl.GroupInsuranceMasterPolicyMappingServiceImpl

com.sap.fs.quo.cov.service.impl.MasterPolicyTransformationGIAServiceImpl

com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyTransformationServiceImpl

10 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 11: Development Toolkit Guide

From Class Replaced by / Merged To Class

com.sap.fs.quo.cov.service.impl.MasterPolicyTransformationServiceImpl

com.sap.fs.quo.cov.service.impl.GroupInsuranceMasterPolicyTransformationServiceImpl

com.sap.fs.quo.cov.service.impl.MasterSubmissionServiceImpl

com.sap.fs.quo.cov.service.impl.MultiIndividualMasterSubmissionServiceImpl

New Named Classes

● com.sap.fs.quo.common.annotation.CustomSearchResult● com.sap.fs.quo.common.annotation.CustomService● com.sap.fs.quo.cov.service.api.BusinessPartnerIntegrationService● com.sap.fs.quo.cov.service.api.CashBeforeCoverIntegrationService● com.sap.fs.quo.cov.service.api.GroupInsuranceAndMultiIndividualEAppService● com.sap.fs.quo.cov.service.api.GroupInsuranceInsuredObjectValidationService● com.sap.fs.quo.cov.service.api.GroupInsuranceInsuredPersonValidationService● com.sap.fs.quo.cov.service.api.GroupInsuranceMasterPolicyIntegrationService● com.sap.fs.quo.cov.service.api.GroupInsuranceMasterPolicyMappingService● com.sap.fs.quo.cov.service.api.GroupInsuranceMasterPolicyTransformationService● com.sap.fs.quo.cov.service.api.GroupInsuranceSubmissionService● com.sap.fs.quo.cov.service.api.GroupInsuranceValidationServiceBase● com.sap.fs.quo.cov.service.api.IssuedPolicyIntegrationService● com.sap.fs.quo.cov.service.api.MasterPolicyMappingServiceBase● com.sap.fs.quo.cov.service.api.MasterPolicyTransformationServiceBase● com.sap.fs.quo.cov.service.api.MultiIndividualMasterPolicyIntegrationService● com.sap.fs.quo.cov.service.api.MultiIndividualMasterPolicyMappingService● com.sap.fs.quo.cov.service.api.MultiIndividualMasterPolicyTransformationService● com.sap.fs.quo.cov.service.api.MultiIndividualMasterSubmissionService● com.sap.fs.quo.cov.service.api.PolicyManagementIntegrationService● com.sap.fs.quo.cov.service.api.RenewalService● com.sap.fs.quo.cov.service.api.StatusServiceBase● com.sap.fs.quo.cov.service.api.SubmissionWorkListService● com.sap.fs.quo.cov.service.api.error.CompositeKeyNotDefinedError● com.sap.fs.quo.cov.service.api.error.IncompleteCompositeKeyValueError● com.sap.fs.quo.cov.service.api.error.ManualCompleteRequiredError● com.sap.fs.quo.cov.service.api.error.ManualProcessRequiredError● com.sap.fs.quo.cov.service.api.error.NotWorkingUserError● com.sap.fs.quo.cov.service.api.error.QuoCovServiceGenericTechnicalError● com.sap.fs.quo.cov.service.api.error.RenewalSubmissionAlreadyExistError● com.sap.fs.quo.cov.service.api.error.UnderwritingNotApprovedError● com.sap.fs.quo.cov.service.impl.BusinessPartnerIntegrationServiceImpl

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 11

Page 12: Development Toolkit Guide

● com.sap.fs.quo.cov.service.impl.CashBeforeCoverIntegrationServiceFSPMImpl● com.sap.fs.quo.cov.service.impl.CashBeforeCoverServiceImpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceAndMultiIndividualEAppServiceImpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceInsuredObjectValidationServiceImpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceInsuredPersonValidationServiceImpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceMasterPolicyIntegrationServiceFSPM

Impl● com.sap.fs.quo.cov.service.impl.GroupInsuranceMasterPolicyMappingServiceImpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceMasterPolicyTransformationServiceI

mpl● com.sap.fs.quo.cov.service.impl.GroupInsuranceSubmissionServiceImpl● com.sap.fs.quo.cov.service.impl.IssuedPolicyIntegrationServiceFSPMImpl● com.sap.fs.quo.cov.service.impl.MasterPolicyIntegrationServiceFSPMImplBase● com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyIntegrationServiceFSP

MImpl● com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyMappingServiceImpl● com.sap.fs.quo.cov.service.impl.MultiIndividualMasterPolicyTransformationService

Impl● com.sap.fs.quo.cov.service.impl.MultiIndividualMasterSubmissionServiceImpl● com.sap.fs.quo.cov.service.impl.PolicyManagementIntegrationServiceFSPMImpl● com.sap.fs.quo.cov.service.impl.PolicyManagementIntegrationServiceFSPMImplBase● com.sap.fs.quo.cov.service.impl.RenewalServiceImpl● com.sap.fs.quo.cov.service.impl.SubmissionDataServiceImplBase● com.sap.fs.quo.cov.service.impl.SubmissionWorkListServiceImpl● com.sap.fs.quo.cov.service.impl.helper.SearchDomainDataInterceptor● com.sap.fs.quo.cov.service.impl.helper.SearchDomainDataUtil● com.sap.fs.quo.cov.service.impl.stem.CoverageBasedSubmissionStem● com.sap.fs.quo.cov.service.impl.stem.CoverageBasedSubmissionStemImpl● com.sap.fs.quo.cov.service.impl.stem.ProductWebServiceStemImplBase● com.sap.fs.quo.domain.model.data.CustomDomainData● com.sap.fs.quo.domain.model.data.PolicyHolderData● com.sap.fs.quo.domain.model.data.constant.ContractDataConst● com.sap.fs.quo.domain.model.data.constant.CoverageDataConst● com.sap.fs.quo.domain.model.data.constant.PolicyHolderDataConst

Modified Classes

Removes unnecessary dependencies of ServiceRequestInfo.

12 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 13: Development Toolkit Guide

com.sap.fs.quo.cov.service.api.AccessControlService

From API To API

retrieveAccessControlData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

retrieveAccessControlData(java.lang.String,java.lang.String)

fetchGrantees(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String,java.lang.String)

fetchGrantees()

getAccessControlArguments(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String)

getAccessControlArguments(java.lang.String)

dispatchAccessControlData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String,java.lang.String)

dispatchAccessControlData(java.lang.String,java.lang.String,java.lang.String)

updateAccessControlData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.AccessControlData)

updateAccessControlData(com.sap.fs.quo.domain.model.data.AccessControlData)

com.sap.fs.quo.cov.service.api.AccountDataService

From API To API

createNewAccountData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createNewAccountData() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewAccountDataFromSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewAccountDataFromSubmission(com.sap.fs.quo.domain.model.data.SubmissionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewAccount(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.AccountData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewAccount(com.sap.fs.quo.domain.model.data.AccountData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateAccountData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.AccountData

updateAccountData(com.sap.fs.quo.domain.model.data.AccountData)

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 13

Page 14: Development Toolkit Guide

com.sap.fs.quo.cov.service.api.ApplicationConfigService

From API To API

getMasterProductByProdNameAndVersion(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

getMasterProductByProdNameAndVersion(java.lang.String,java.lang.String)

getProductConfigDataForProdNameAndVersion(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

getProductConfigDataForProdNameAndVersion(java.lang.String,java.lang.String)

getSalesProductByProdCodeAndVersion(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

getSalesProductByProdCodeAndVersion(java.lang.String,java.lang.String)

getSalesProductByTemplateIdAndLangCode(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

getSalesProductByTemplateIdAndLangCode(java.lang.String,java.lang.String)

getAllCSRGroups(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

getAllCSRGroups()

getRolePermissons(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String)

getRolePermissons(java.lang.String)

getAllRoles(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

getAllRoles()

com.sap.fs.quo.cov.service.api.CashBeforeCoverService

From API To API

deriveCBCRelevant(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

deriveCBCRelevant(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

deriveCBCRelevantForNGTA(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

deriveCBCRelevantForNGTA(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

requestCashBeforeCoverAmount(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

requestCashBeforeCoverAmount(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

14 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 15: Development Toolkit Guide

com.sap.fs.quo.cov.service.api.ContractService

From API To API

getContractsForQuoteOption(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

getContractsForQuoteOption(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CoverageService

From API To API

getCoveragesForContractDataObject(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.camilion.dataobject.publicapi.DataObject) throws java.lang.Exception

getCoveragesForContractDataObject(com.sap.fs.quo.domain.model.data.ContractData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.EAppService

From API To API

validateQuoteOptionInEApp(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

validateQuoteOptionInEApp(java.lang.Long,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.DocumentDataService

From API To API

createDocumentData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.DocumentData)

createDocumentData(com.sap.fs.quo.domain.model.data.DocumentData)

getDocumentDataById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getDocumentDataById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeDocumentData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createDocumentData()

initializeEvidenceData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createEvidenceData()

addEvidenceToDocumentData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.EvidenceData,com.sap.fs.quo.domain.model.data.DocumentData)

addEvidenceToDocumentData(com.sap.fs.quo.domain.model.data.EvidenceData,com.sap.fs.quo.domain.model.data.DocumentData)

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 15

Page 16: Development Toolkit Guide

From API To API

deleteDocumentById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteDocumentById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateDocumentData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.DocumentData)

updateDocumentData(com.sap.fs.quo.domain.model.data.DocumentData)

com.sap.fs.quo.cov.service.api.GroupAgreementService

From API To API

updateStartAndEndDate4GroupAgreemnt(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateStartAndEndDate4GroupAgreement(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateGroupAgreementData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

updateGroupAgreementFromSubmission(com.sap.fs.quo.domain.model.data.SubmissionData)

issueGroupAgreement(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

issueGroupAgreement(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

viewQuoteLetter(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

viewQuoteLetter(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

retrieveGroupAgreementList(java.lang.Long)

Removed

updateGroupAgreement(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupAgreementData)

updateGroupAgreement(com.sap.fs.quo.domain.model.data.GroupAgreementData

updateStatus2Working(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateStatus2Working(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

16 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 17: Development Toolkit Guide

com.sap.fs.quo.cov.service.api.GroupMemberDataService

From API To API

createGroupMemberInsuredObj(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createGroupMemberInsuredObj(java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createGroupMember(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String)

createGroupMember(com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String)

createGroupMember4Manually(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createGroupMember4Manually(com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createGroupMember4MassUpload(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberUploadData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData,com.sap.fs.quo.domain.model.data.SubmissionData,com.sap.fs.quo.domain.model.data.GroupAgreementData)

createGroupMember4MassUpload(com.sap.fs.quo.domain.model.data.GroupMemberUploadData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData,com.sap.fs.quo.domain.model.data.SubmissionData,com.sap.fs.quo.domain.model.data.GroupAgreementData)

massUpload(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberUploadData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

massUpload(com.sap.fs.quo.domain.model.data.GroupMemberUploadData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

massUploadInsuredObj(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberUploadData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

massUploadInsuredObj(com.sap.fs.quo.domain.model.data.GroupMemberUploadData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteGroupMember(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long)

deleteGroupMember(java.lang.Long)

deleteGroupMembersUnderPlan(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteGroupMembersUnderPlan(java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 17

Page 18: Development Toolkit Guide

From API To API

updateGroupMember(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData)

updateGroupMember(com.sap.fs.quo.domain.model.data.GroupMemberData)

updateGroupMemberDirtyFlag(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.String)

updateGroupMemberDirtyFlag(java.lang.Long,java.lang.String)

updateGroupMemberPlanId(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long,java.lang.String)

updateGroupMemberPlanId(java.lang.Long,java.lang.Long,java.lang.String)

updateGroupMemberValidateStatus(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.String)

updateGroupMemberValidateStatus(java.lang.Long,java.lang.String)

com.sap.fs.quo.cov.service.api.GroupPlanDataService

From API To API

createGroupPlan(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupPlanData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createGroupPlan(com.sap.fs.quo.domain.model.data.GroupPlanData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

copyGroupPlan(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.String,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

copyGroupPlan(java.lang.Long,java.lang.String,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteGroupPlan(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteGroupPlan(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.MultiIndividualSubmissionService

From API To API

issueMultiIndiPolicy(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

issueMultiIndiPolicy(java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

18 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 19: Development Toolkit Guide

From API To API

associateMasterPolicyIntoMultiIndivSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

associateMasterPolicyIntoMultiIndivSubmission(com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.NoteContextDataService

From API To API

createNoteContextData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

createNoteContextData(java.util.Map<java.lang.String, java.lang.Object>)

getNoteContextDataById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getNoteContextDataById(java.lang.Long) throws getNoteContextDataById(java.lang.Long) com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

findNoteContexts(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

findNoteContexts(java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateNoteContextData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.NoteContextData)

updateNoteContextData(com.sap.fs.quo.domain.model.data.NoteContextData)

com.sap.fs.quo.cov.service.api.NoteDataService

From API To API

getDocumentDataById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getDocumentDataById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createNoteData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

createNoteData(java.util.Map<java.lang.String, java.lang.Object>)

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 19

Page 20: Development Toolkit Guide

From API To API

addNoteRecipientDataToNote(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.NoteData,java.util.Map<java.lang.String, java.lang.Object>)

addNoteRecipientDataToNote(com.sap.fs.quo.domain.model.data.NoteData,java.util.Map<java.lang.String, java.lang.Object>)

getDocumentIdByAttachment(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

getDocumentIdByAttachment(java.util.Map<java.lang.String, java.lang.Object>)

addNoteAttachmentDataToNote(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.NoteData,java.util.List<java.util.Map<java.lang.String, java.lang.Object>>)

addNoteAttachmentDataToNote(com.sap.fs.quo.domain.model.data.NoteData,java.util.List<java.util.Map<java.lang.String, java.lang.Object>>)

com.sap.fs.quo.cov.service.api.PolicyEvidenceDataService

From API To API

getPolicyEvidenceById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getPolicyEvidenceById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializePolicyEvidence(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createPolicyEvidenceData()

createPolicyEvidence(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.PolicyEvidenceData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createPolicyEvidence(com.sap.fs.quo.domain.model.data.PolicyEvidenceData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

findPolicyEvicenceResults(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

findPolicyEvicenceResults(java.util.Map<java.lang.String, java.lang.Object>) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

copyPMDEvidence(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

copyPMDEvidence(java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

20 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 21: Development Toolkit Guide

From API To API

deleteEvidence(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

deleteEvidence(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateEvidence(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.PolicyEvidenceData)

updateEvidence(com.sap.fs.quo.domain.model.data.PolicyEvidenceData)

com.sap.fs.quo.cov.service.api.ProducerContactDataService

From API To API

createNewProducerContactData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createNewProducerContactData()

com.sap.fs.quo.cov.service.api.ProducerDataService

From API To API

createNewProducerData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createNewProducerData() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewProducerData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.ProducerData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

initializeNewProducerData(com.sap.fs.quo.domain.model.data.ProducerData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateProducerData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.ProducerData)

updateProducerData(com.sap.fs.quo.domain.model.data.ProducerData)

com.sap.fs.quo.cov.service.api.ProductBusinessService

From API To API

calculatePremiumForFlow(com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

calculatePremiumForFlow(com.sap.fs.quo.domain.model.data.QuoteOptionData)

getContractDisplayName(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception

getContractDisplayName(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 21

Page 22: Development Toolkit Guide

From API To API

getCoverageDisplayName(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception

getCoverageDisplayName(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception

getEappLayoutNameForEappTouchpoint(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception throws java.lang.Exception

getEappLayoutNameForEappTouchpoint(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception

getMultiCurrencyCategory(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String) throws java.lang.Exception

getMultiCurrencyCategory(java.lang.String,java.lang.String) throws java.lang.Exception

getQuoteLetterBeforeUnderwritingConfig(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String,java.lang.String)

getQuoteLetterBeforeUnderwritingConfig(java.lang.String,java.lang.String)

getQuoteLetterServiceClass(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

getQuoteLetterServiceClass(com.sap.fs.quo.domain.model.data.QuoteOptionData)

calculatePremium(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

calculatePremium(com.sap.fs.quo.domain.model.data.QuoteOptionData)

convertQuote(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.quo.domain.model.data.QuoteOptionData)

convertQuote(com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.quo.domain.model.data.QuoteOptionData)

createInsuredObjectIntoFSPM(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createInsuredObjectIntoFSPM(com.sap.fs.quo.domain.model.data.GroupMemberData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

populateGroupMemberDataByPartnerID(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

populateGroupMemberDataByPartnerID(com.sap.fs.quo.domain.model.data.GroupMemberData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

22 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 23: Development Toolkit Guide

From API To API

populateGroupMemberPolicyDataFromSpreadsheetRow(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

populateGroupMemberPolicyDataFromSpreadsheetRow(com.sap.fs.quo.domain.model.data.GroupMemberData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

populateIndividualPolicyDataFromMasterPolicy(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.quo.domain.model.data.QuoteOptionData)

populateIndividualPolicyDataFromMasterPolicy(com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.quo.domain.model.data.QuoteOptionData)

populateInsuredObjectDataFromSpreadsheetRow(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupMemberData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

populateInsuredObjectDataFromSpreadsheetRow(com.sap.fs.quo.domain.model.data.GroupMemberData,com.sap.fs.quo.domain.model.data.GroupMemberUploadRowData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runInitializationRuleForQuoteOption(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runInitializationRuleForQuoteOption(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

setAgreementValuesFromMembers(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.GroupAgreementData,java.lang.String,java.lang.String)

setAgreementValuesFromMembers(com.sap.fs.quo.domain.model.data.GroupAgreementData,java.lang.String,java.lang.String)

com.sap.fs.quo.cov.service.api.QuoteLetterService

From API To API

generateQuoteLetter(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

generateQuoteLetter(com.sap.fs.quo.domain.model.data.QuoteOptionData)

getQuoteLetterUrl(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

getQuoteLetterUrl(com.sap.fs.quo.domain.model.data.QuoteOptionData)

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 23

Page 24: Development Toolkit Guide

com.sap.fs.quo.cov.service.api.QuoteOptionDataService

From API To API

convertQuickQuoteToFullQuote(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

convertQuickQuoteToFullQuote(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

copyQuoteOptionData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

copyQuoteOptionData(com.sap.fs.quo.domain.model.data.QuoteOptionData)

copyQuoteOptionData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean)

Removed

createCounterOffer(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

createCounterOffer(com.sap.fs.quo.domain.model.data.QuoteOptionData)

createNewQuoteOptionData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createNewQuoteOptionData()

getQuoteOptionById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getQuoteOptionById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

setQuoteOptionNeedsInfo(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

setQuoteOptionNeedsInfo(com.sap.fs.quo.domain.model.data.QuoteOptionData)

setQuoteOptionNotTaken(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

setQuoteOptionNotTaken(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

setStatusFromUnderwritingDecision(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.uw.model.UnderwritingDecision)

setStatusFromUnderwritingDecision(com.sap.fs.quo.domain.model.data.QuoteOptionData,com.sap.fs.uw.model.UnderwritingDecision)

unsetQuoteOptionNeedsInfo(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData)

unsetQuoteOptionNeedsInfo(com.sap.fs.quo.domain.model.data.QuoteOptionData)

24 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 25: Development Toolkit Guide

From API To API

viewQuoteLetter(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

viewQuoteLetter(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

bindAndIssueIndividualQuoteOptionToPolicy(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

bindAndIssueIndividualQuoteOptionToPolicy(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

removeQuoteOption(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long)

removeQuoteOption(java.lang.Long)

runInitializationRules(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runInitializationRules(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runInitializationRulesIndiv(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

Removed

com.sap.fs.quo.cov.service.api.SubmissionDataService

From API To API

checkExpirationAndUpdateStatus(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

checkExpirationAndUpdateStatus(com.sap.fs.quo.domain.model.data.SubmissionData)

discardSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

discardSubmission(com.sap.fs.quo.domain.model.data.SubmissionData)

isAuthorized(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

isAuthorized(com.sap.fs.quo.domain.model.data.SubmissionData)

isSubmissionDeletable(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

isSubmissionDeletable(com.sap.fs.quo.domain.model.data.SubmissionData)

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 25

Page 26: Development Toolkit Guide

From API To API

isSubmissionLevelDataReadOnly(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

isSubmissionLevelDataReadOnly(com.sap.fs.quo.domain.model.data.SubmissionData)

setSubmissionAsNotTaken(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

setSubmissionAsNotTaken(com.sap.fs.quo.domain.model.data.SubmissionData)

updateWorkingUser(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateWorkingUser(java.lang.Long,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

addNewQuoteOptionDataToSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

addNewQuoteOptionDataToSubmission(com.sap.fs.quo.domain.model.data.SubmissionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

addQuoteOptionDataToSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

Removed

addQuoteOptionDataToSubmissionIndiv(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

addQuoteOptionDataToSubmissionIndiv(com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createNewSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

createNewSubmission()

createNewSubmissionByTypeCode(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

createNewSubmissionByTypeCode(java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getSubmissionDataById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getSubmissionDataById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

26 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 27: Development Toolkit Guide

From API To API

searchSubmissionWorklist(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

searchSubmissionWorklist(java.util.Map<java.lang.String, java.lang.Object>)

reactivateSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

reactivateSubmission(com.sap.fs.quo.domain.model.data.SubmissionData)

updateBusinessStatus(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

updateBusinessStatus(com.sap.fs.quo.domain.model.data.SubmissionData)

updateBusinessStatus(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateBusinessStatus(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateBusinessStatusFromOption(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateBusinessStatusFromOption(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

updateStatus(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.String)

updateStatus(com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.String)

updateSubmissionData(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

updateSubmissionData(com.sap.fs.quo.domain.model.data.SubmissionData)

com.sap.fs.quo.cov.service.api.TaskDataService

From API To API

hasMandatoryOpenTasks(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long)

hasMandatoryOpenTasks(java.lang.Long)

createNewTask(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

createNewTask(java.util.Map<java.lang.String, java.lang.Object>)

getTaskById(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

getTaskById(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 27

Page 28: Development Toolkit Guide

From API To API

findTasks(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.util.Map<java.lang.String, java.lang.Object>)

findTasks(java.util.Map<java.lang.String, java.lang.Object>)

updateTask(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.TaskData)

updateTask(com.sap.fs.quo.domain.model.data.TaskData)

com.sap.fs.quo.core.service.UnderwriterIntegrationService

From API To API

runUnderwritingRules(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.Long,boolean) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runUnderwritingRules(com.sap.fs.quo.domain.model.data.SubmissionData,java.lang.Long,boolean) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

runGroupUnderwritingRules(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,java.lang.Long,java.lang.Long,boolean)

runGroupUnderwritingRules(java.lang.Long,java.lang.Long,boolean)

com.sap.fs.quo.core.stem.impl.DisplayIllustrationServiceImpl

From API To API

getIllustrationEligiblity(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.camilion.rdbms.UpdateableResultSet) throws java.lang.Exception

getIllustrationEligiblity(com.camilion.rdbms.UpdateableResultSet) throws java.lang.Exception

Moved/Changed APIs

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.AccountDataService.populateAccountDataFromPolicyHolder(com.sap.fs.quo.domain.model.data.AccountData,com.camilion.dataobject.publicapi.DataObject)

com.sap.fs.quo.cov.service.api.AccountDataService.populateAccountDataFromPolicyHolder(com.sap.fs.quo.domain.model.data.AccountData,com.sap.fs.quo.domain.model.data.PolicyHolderData)

com.sap.fs.quo.cov.service.api.BookingService. unscaleCurrencyData(com.camilion.rdbms.UpdateableResultSet) throws java.lang.Exception

Moved to an internal API.

28 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 29: Development Toolkit Guide

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.determineCashBeforeCoverCategory(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverIntegrationService.determineCashBeforeCoverCategory(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.processPaymentExpired(java.lang.String) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.processPaymentExpired(java.lang.String) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.processPaymentReceived(java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.processPaymentReceived(java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.ChangeBusinessService. startChangeBusiness(java.lang.String,java.util.Date,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError, com.sap.fs.quo.base.service.api.error.ObjectNotFoundError, com.sap.fs.quo.base.service.api.error.SearchError, com.sap.fs.quo.cov.service.api.error.ChangeBusinessHasExistedError, com.sap.fs.quo.cov.service.api.error.FSPMRemoteFunctionCallError, com.sap.fs.quo.cov.service.api.error.UnsupportedSaleProductError, com.sap.fs.quo.base.service.api.error.ProductServiceApiExecutionError

com.sap.fs.quo.cov.service.api.ChangeBusinessService.startChangeBusiness(java.lang.String,java.util.Date,java.lang.String) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError, com.sap.fs.quo.base.service.api.error.SearchError, com.sap.fs.quo.cov.service.api.error.ChangeBusinessHasExistedError, com.sap.fs.quo.cov.service.api.error.FSPMRemoteFunctionCallError, com.sap.fs.quo.cov.service.api.error.UnsupportedSaleProductError, com.sap.fs.quo.base.service.api.error.ProductServiceApiExecutionError,com.sap.fs.quo.cov.service.api.error.QuoCovServiceGenericTechnicalError

com.sap.fs.quo.cov.service.api.ProductBusinessService.deriveCBCRelevant(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.deriveCBCRelevant(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.ProductBusinessService.deriveCBCRelevantForNGTA(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.CashBeforeCoverService.deriveCBCRelevantForNGTA(com.sap.fs.quo.domain.model.data.QuoteOptionData,boolean) throws java.lang.Exception

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 29

Page 30: Development Toolkit Guide

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.ProductBusinessService.isNGTARelevant(java.lang.String,java.lang.String,java.lang.String)

com.sap.fs.quo.cov.service.api.PolicyManagementIntegrationService.isNGTARelevant(java.lang.String,java.lang.String,java.lang.String)

com.sap.fs.quo.cov.service.api.ProductBusinessService.isQuoteOptionReadOnly(java.lang.String)

com.sap.fs.quo.cov.service.api.QuoteOptionDataService. isQuoteOptionReadOnly(java.lang.Long)

com.sap.fs.quo.cov.service.api.ProductBusinessService.issueApplication(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.PolicyManagementIntegrationService.issueApplication(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws java.lang.Exception

com.sap.fs.quo.cov.service.api.ProductBusinessService.runInitializationRuleForQuoteOptionIndiv(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.ProductBusinessService.runInitializationRuleForQuoteOption(QuoteOptionData quoteOption) throws ObjectNotFoundError

com.sap.fs.quo.cov.service.api.ProductBusinessService.sendLocalBpsForMemberPolicy(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.impl.GroupMemberDataServiceImpl.sendLocalBpsForMemberPolicy(com.sap.fs.quo.domain.model.data.QuoteOptionData) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.QuotePolicyDataService.getMainPolicyHolder(com.camilion.dataobject.publicapi.DataObject)

com.sap.fs.quo.cov.service.api.QuotePolicyDataService.getMainPolicyHolder(com.sap.fs.quo.domain.model.data.QuotePolicyData)

com.sap.fs.quo.cov.service.api.SubmissionDataService.addGroupAgreementDataToSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

com.sap.fs.quo.cov.service.api.GroupInsuranceSubmissionService.addGroupAgreementDataToSubmission(com.sap.fs.quo.domain.model.data.SubmissionData)

30 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 31: Development Toolkit Guide

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.SubmissionDataService.createAndUnderwriteNewSubmissionFromApi(java.lang.String,com.camilion.dataobject.publicapi.DataObject) throws com.sap.fs.quo.base.service.api.error.MultiServiceError, com.sap.fs.quo.cov.service.api.error.InvalidAgentUserIdError, com.sap.fs.quo.base.service.api.error.ProductServiceApiExecutionError, com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.createAndUnderwriteNewSubmissionFromApi(java.lang.String,com.sap.fs.quo.domain.model.data.QuotePolicyData) throws com.sap.fs.quo.base.service.api.error.MultiServiceError, com.sap.fs.quo.cov.service.api.error.InvalidAgentUserIdError, com.sap.fs.quo.base.service.api.error.ProductServiceApiExecutionError, com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewGroupSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo)

com.sap.fs.quo.cov.service.api.GroupInsuranceSubmissionService.createNewGroupSubmission()

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewMasterSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.MultiIndividualMasterSubmissionService.createNewMasterSubmission() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewMasterSubmissionDataForFlow() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.MultiIndividualMasterSubmissionService.createNewMasterSubmissionDataForFlow() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.searchSalesProductInMasterSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo,com.sap.fs.quo.domain.model.data.SubmissionData)

com.sap.fs.quo.cov.service.api.MultiIndividualMasterSubmissionService.searchSalesProductInMasterSubmission(com.sap.fs.quo.domain.model.data.SubmissionData)

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewMultiIndividualSubmissionDataForFlow() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.MultiIndividualSubmissionService.createNewMultiIndividualSubmissionDataForFlow() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewMultiIndividualSubmission(com.sap.fs.quo.cov.service.api.bean.ServiceRequestInfo) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.MultiIndividualSubmissionService.createNewMultiIndividualSubmission() throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 31

Page 32: Development Toolkit Guide

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.SubmissionDataService.createMasterPolicy(java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.GroupInsuranceSubmissionService. createMasterPolicyForGroup (java.lang.Long) throws com.sap.fs.quo.base.service.api.error.ObjectNotFoundError

com.sap.fs.quo.cov.service.api.SubmissionDataService.createNewGroupSubmissionDataForFlow()

com.sap.fs.quo.cov.service.api.GroupInsuranceSubmissionService.createNewGroupSubmissionDataForFlow()

com.sap.fs.quo.cov.service.api.SubmissionDataService.retrieveSubmissionWorklist(com.sap.fs.quo.base.service.api.search.criteria.SearchCriteria) throws com.sap.fs.quo.base.service.api.error.SearchError

com.sap.fs.quo.cov.service.api.SubmissionWorkListService. retrieveSubmissionWorklist(com.sap.fs.quo.base.service.api.search.criteria.ODataSearchCriteria) throws com.sap.fs.quo.base.service.api.error.SearchError

com.sap.fs.quo.cov.service.api.SubmissionDataService.countSubmissionWorkList(com.sap.fs.quo.base.service.api.search.criteria.SearchCriteria) throws com.sap.fs.quo.base.service.api.error.SearchError

com.sap.fs.quo.cov.service.api.SubmissionWorkListService.countSubmissionWorkList(com.sap.fs.quo.base.service.api.search.criteria.ODataSearchCriteria) throws com.sap.fs.quo.base.service.api.error.SearchError

com.sap.fs.quo.cov.service.api.SubmissionDataService.getColumnName(java.lang.String)

Removed

com.sap.fs.quo.cov.service.api.SubmissionStatusService.addDeletableStatusToSubmissionMap(java.util.Map<java.lang.String, java.lang.String>,java.util.List<com.sap.fs.quo.domain.model.data.QuoteOptionData>)

Removed

Helper Classes

1. The standard services can be retrieved by explicit service name.

Example: getSubmissionDataService();

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.QuoCovServicesManager.getServiceByClass(java.lang.Class)

com.sap.fs.quo.cov.service.api.QuoCovServicesManager getXxxService();

2. The standard services can be retrieved by explicit service name. i.e: getSubmissionDataService();

32 PUBLICDevelopment Toolkit Guide

Updating the Toolkit to FS-QUO 2.0

Page 33: Development Toolkit Guide

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.QuoCovServicesManager.getServiceByBeanName(java.lang.String);

com.sap.fs.quo.cov.service.api.QuoCovServicesManager getXxxService();

3. ServiceCommand, User Context, Request Context related APIs have been moved to QuoCovModelServiceBase, which should be the parent/base class of any service class.

From Class/API To Class/API

com.sap.fs.quo.cov.service.api.QuoCovServicesManager

com.sap.fs.quo.cov.service.impl.QuoCovModelServiceBase

Development Toolkit GuideUpdating the Toolkit to FS-QUO 2.0 PUBLIC 33

Page 34: Development Toolkit Guide

4 Installing the FS-QUO Toolkit

This topic describes, at a high-level, the steps involved in installing the FS-QUO toolkit.

You need to perform the following steps in order to install the FS-QUO toolkit:

● Connecting to the FS-QUO Runtime Database● Installing and Configuring Eclipse● Installing and Configuring TomEE+● Installing and Configuring the FS-QUO Toolkit● Copying and Deploying Insurance Product JAR Files from the Product Modeler● Configuring the FS-QUO Toolkit for FS-QUO● Installing and Configuring Standalone SAP JCo (Optional)● Validating the Complete FS-QUO Toolkit Installation

4.1 FS-QUO Runtime Database Connection

Using the steps described in the Installation Guide, the solution architect in the FS-QUO development team is responsible for setting up the FS-QUO development infrastructure for the first time in the XSA environment. The FS-QUO database will be shared by the development team, who must have the necessary access to the XSA environment.

The instructions to create the environment are contained in the Installation Guide.

NoteRecord the JDBC information including the JDBC URL and development database user credentials to configure the FS-QUO toolkit database connection.

34 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 35: Development Toolkit Guide

4.2 Installing and Configuring Eclipse

This topic details the steps required to install and configure Eclipse for use with the FS-QUO toolkit.

Context

Perform the following steps to install Eclipse:

Procedure

1. Unzip eclipse-jee-oxygen-3a-win32-x86_64.zip to a local directory, which will be referred to as <eclipse_dir> in this guide.

2. Edit eclipse.ini to configure Eclipse to use the JDK as the default VM.

a. Open <eclipse_dir>\eclipse.ini with a text editor.b. Add the following lines to the beginning of the file:

-vm <jdk_dir>\bin\javaw.exe

c. Save your changes and close the file in the editor.3. In Windows Explorer, open Eclipse by browsing to <eclipse_dir> and running eclipse.exe.

4. When prompted to select a workspace, either use the default path or provide a temporary path to open Eclipse.

5. If you are working behind a network proxy, configure Eclipse with the proxy server information as follows:

a. Select Window Preferences in the top menu bar.

b. Expand the left menu tree to General Network Connections .c. Select the Manual proxy configuration option in the configuration pane and enter the HTTP proxy and

SSL proxy details.If you don't have this information, contact your system or network administrator.

d. Choose OK.Your changes are saved.

6. Install any other Eclipse features, such as for source control, as appropriate for your development environment.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 35

Page 36: Development Toolkit Guide

4.3 Installing and Configuring TomEE+

The FS-QUO toolkit uses Apache TomEE+ 1.7.5 as the local application server, which must be installed and configured.

Context

The SAP Java Buildpack, bundled in SAP HANA XS Advanced, provides TomEE as one of the Java runtime environments which FS-QUO uses. For local development, FS-QUO toolkit uses a stand-alone installation of TomEE+. While on SAP HANA XS Advanced the TomEE installation is configured as the FS-QUO application is deployed, the local TomEE installation for the FS-QUO toolkit must be manually configured to adopt to FS-QUO’s requirements.

Procedure

1. Unzip apache-tomee-1.7.5-plus.zip to a local directory, which will be referred to as <tomee_dir> throughout this document.

2. Make a backup copy of the following files in <tomee_dir>\conf, both of which will be customized for FS-QUO later:○ system.properties○ tomee.xml

3. Customize <tomee_dir>\conf\system.properties as follows:

a. Open <tomee_dir>\conf\system.properties in a text editor.b. Add the # character in front of the following line in the file to comment it out:

tomee.serialization.class.blacklist = *

c. Add the following lines to the bottom of the file:

openejb.classloader.forced-load=org.apache.commonsorg.apache.activemq.SERIALIZABLE_PACKAGES=*

d. Save your changes and close the file in the text editor.

Results

TomEE+ is now installed and configured for integration with Eclipse for use by the FS-QUO toolkit.

36 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 37: Development Toolkit Guide

4.4 Installing and Configuring the FS-QUO Toolkit

After the initial Eclipse and TomEE application server setup is complete, you can set up the FS-QUO toolkit as an Eclipse workspace by following the instructions in this section.

4.4.1 Unzipping the FS-QUO Toolkit

The FS-QUO toolkit is provided in the form of an Eclipse workspace directory.

Unzip FS-QUO-toolkit-<rel>.<sp>.<pl>-backend.zip to a local directory, referred to as <toolkit_dir>.

NoteDon't use a directory containing spaces in its path.

4.4.2 Setting up a Development Profile

Context

To provide a consistent development environment to all developers, the FS-QUO toolkit introduces a concept called development profile. A development profile contains artifacts that are common across the development project, including the following items:

● JDBC driver and data source XML file● TomEE data source XML file

Perform the following steps to set up a development profile:

Procedure

1. Create a new directory called <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\src\profiles\<dev_profile_name>.

2. Create the following subdirectories under the newly created development profile:○ server\conf○ server\lib

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 37

Page 38: Development Toolkit Guide

3. Copy the SAP HANA JDBC driver file (ngdbc.jar) that you downloaded as a prerequisite to <toolkit_dir>\FS-QUO-toolkit\FS-QUO-dev\src\profiles\<dev_profile_name>\server\lib.

4. Copy the sample TomEE configuration file in <toolkit_dir>/FS-QUO-dev/src/profiles/sample/server/conf/tomee.xml to <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\src\profiles\<dev_profile_name>\server\conf.

5. Open the new <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\src\profiles\<dev_profile_name>\server\conf\tomee.xml file with a text editor.

6. Replace the placeholder texts surrounded by ### signs with information specific to the FS-QUO Runtime database that you created earlier in the XML file.

7. Save your changes.8. Close the file in the text editor.

4.4.3 Initializing the FS-QUO Toolkit Workspace in Eclipse

Prerequisites

● You have JDK 1.8 installed● Unzip and install the Apache Maven version 3.2.3 package that you downloaded.

Context

Now the workspace is configured in the file system, perform the following steps to initialize the workspace within Eclipse by importing projects and creating a TomEE server:

Procedure

1. Create a parent directory for the <toolkit_dir> directory, which will be your Eclipse workspace location.

2. Open Eclipse and provide the parent directory created in the previous step as the workspace location when prompted.

3. Configure and verify the JRE and compiler settings:

a. Choose Window Preferences from the menu bar.

b. Select Java Installed JREs and then choose Add.c. Select Standard VM on the popup window and choose Next.d. Choose Directory, select JDK_DIR/jre and choose Finish.

38 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 39: Development Toolkit Guide

e. Select Java Installed JREs Execution Environments JavaSE-1.8 and confirm that the 1.8 JDK that was previously added.

f. Select Java Compiler JDK Compliance from the menu tree and set your compiler level by selecting 1.8 from the dropdown.

g. Select Maven Installations in the menu tree.h. Ensure the apache-maven-3.2.3 installation is selected.

i. Select Maven Java EE Integration in the menu tree.j. Under Select active Java EE configurators, deselect all three configurator options.k. Choose Apply.

Your changes are saved.

4. Select Window Open Perspective Other… from the menu bar, then select Java EE to open the Java EE perspective.

5. Import the projects into the workspace as follows:

a. In the menu bar, select File Import… , then select Maven Existing Maven Projects into Workspace… and choose Next.

b. Choose Browse… for the Select root directory field and select <toolkit_dir> (which should be selected by default).

c. Choose OK.d. Ensure that Select All has been chosen by default and choose Finish.

NoteImmediately after import, the workspace will contain numerous build path errors. The next few steps will provision Maven dependencies properly and resolve these errors.

There are also errors in the following categories that will persist but can be ignored:○ WSDL Problem○ XML Schema Problem○ XSL Problem

6. In the Project Explorer view, select FS-QUO-toolkit-extensions and right-click.

7. Choose Run As... Maven Clean from the popup menu.

8. Choose Run As... Maven Install from the popup menu.Maven will install binary artifacts from the FS-QUO toolkit to your local Maven repository as part of the initialize phase, compiling, running unit tests, and installing artifacts on all projects.

When the update has completed, ensure that there are no Java problems in the Markers view. Warnings are ok, but errors other than those stated in the note above must be resolved. To remove Java problems 'related to build path errors' after a successful Maven installation, run the Maven Update project again and it should remove those errors.

9. Choose Maven Update Project... from the popup menu. In the new dialog, choose OK, then wait for the workspace to be updated and built.

10. Initialize the <CSI_HOME> directory and the development profile as follows:

a. In the Project Explorer view, select FS-QUO-dev, right-click and choose Run As... Maven build...from the popup menu.

b. Enter compile in the Goals field.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 39

Page 40: Development Toolkit Guide

c. Add the following parameters:

tomee.dir: <tomee_dir> profile: <dev_profile_name>

d. Choose Run to run the Maven configuration.11. Perform the following steps to generate an encryption key required by FS-QUO:

a. Ensure system variable JAVA_HOME is set in your system properties to point to a Java directory.b. Open the following file with a text editor and change the properties according to the file comments to

set a passphrase: <toolkit_dir>\FS-QUO-toolkit\FS-QUO-dev\target\home\bin\genkey.propertiesThe key will be generated by converting characters to a series of numbers in 0-255 range.

The passphrase can be of any length and contain any characters (including Unicode). The recommended size is at least 16 characters for a 128-bit key.

c. Run the <toolkit_dir>\FS-QUO-toolkit\FS-QUO-dev\target\home\bin\genkey.bat command and follow the displayed instructions to generate a key.The key.config file is generated in <toolkit_dir>\FS_QUO-toolkit\FS-QUO-dev\target\home\system\config.

12. In the Project Explorer view, select FS-QUO-toolkit-extensions and choose Maven Update Project...from the popup menu. In the new dialog, choose OK, then wait for the workspace to be updated and built. At this point, all Java build path problems should be resolved.

13. If you don't already have a server defined, create one in the Servers view:

a. Right-click on the Servers view area and choose New Server from the popup menu.b. On the Define a New Server wizard page, select Tomcat v7.0 Server in the Apache folder as the server

type and choose Next.

This server type is compatible with TomEE 1.7.

NoteTo better identify the server type, you can change the default name Tomcat v7.0 Server at localhost to TomEE+ v1.7.5 Server at localhost or a similar name for the server.

c. On the Tomcat Server wizard page, enter the <tomee_dir> in the Tomcat installation directory field and then choose Next.

d. In the Add and Remove wizard page, choose Finish.14. Configure the server JVM system properties for FS-QUO as follows:

a. In the Servers view, open the server in the server editor.b. Expand Server Locations and select Use Tomcat installation (takes control of Tomcat installation).c. Expand Timeout and increase the value of Start (in seconds) to 90, and Stop (in seconds) to 30

respectively.

d. Finally, in the top menu bar, select File Save to save the settings.e. While still in the Overview tab, choose the Open launch configuration link in the General Information

section.f. Select the Arguments tab on the Edit Configuration dialog.g. In the VM arguments field, ensure the following arguments are present:

40 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 41: Development Toolkit Guide

-DCSI.home=<toolkit_dir>/FS-QUO-toolkit-extensions/FS-QUO-dev/target/home -Dfile.encoding=UTF-8

Ensure that you use '/' as the file separator for the CSI.home value.

15. Choose OK.Your changes are saved.

16. Close the server editor.17. Add the WAR module to the TomEE server for deployment.

a. Right-click TomEE+ v1.7.5 Server at localhost in the Servers view and choose Add and Remove... from the popup menu.

b. Select Custom-FS-QUo-dev-webapp(Custom-FS-QUO-dev-webapp-<project.version>.war)) from the Available list and choose Add.

c. Choose Finish.Your changes are saved.

d. Go to the Modules tab and select the newly added module.e. Select Edit... and change the Path to /csiroot.f. Select OK to close the dialog.

g. Select File Save from the menu bar to save your changes.h. Right-click TomEE+ v1.7.5 Server at localhost in the Servers view and choose Publish from the popup

menu.

You may get a popup informing you that the context root of the module has changed and asking if you want to update the server configuration to match it. Select No.

To verify, open <tomee_home>\apache-tomee-plus-1.7.5\conf\server.xml in the editor and go to the end. Ensure that the path has been changed to /csiroot. If the change is not present, close the server editor and reopen it. Repeat steps 17 d-h.

4.4.4 Validating the Initial Configuration of the FS-QUO Toolkit

Context

With the initial configuration completed, start the server and verify that the FS-QUO application is running:

Procedure

1. In the Servers view, select TomEE+ v1.7.5 Server at localhost and choose Start from the popup menu.

Note the port number that will be used to connect to the Administrative Console. The default port for TomEE is 8080.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 41

Page 42: Development Toolkit Guide

2. Wait for the server to start.When the start process is completed, check the Administrative Console view to ensure that the application starts without errors.

3. Go to the shared XSA instance that local development has referred to the database and reset the admin user password from the Runtime Administrative Console of the XSA URL.

NoteThe database may be shared by other local development instances.

4. Launch Internet Explorer and and log in to the Runtime Administrative Console at the following location: <quo_toolkit_url>/csiroot/admin/.

5. Log in as admin and enter the password that you reset in step 3.

The application has started successfully if you can access the Runtime Administrative Console.6. Choose Logout.

4.5 Configuring the Toolkit for Content Management Systems (CMS)

To enable evidence uploads in your development environment, you need to configure settings for your CMS.

TipWhen doing custom FS-QUO development and connecting to a new CMS Server, a certificate change may be needed on the machine hosting the runtime application.

Changing the binding type and other session parameters

The default implementation is using "BROWSER" binding type when connecting to the CMS Server. When connecting to a different CMS, that value may have to be changed. Other common values are ATOMPUB and WEBSERVICES. The value can be changed through the override of the following class and method:

Class: SmdRepositoryConnector

Method: getSessionParams

42 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 43: Development Toolkit Guide

Code to override: sessionParams.put(SessionParameter.USER, userName); sessionParams.put(SessionParameter.PASSWORD, password); sessionParams.put(SessionParameter.BROWSER_URL, serverUrl); sessionParams.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value()); sessionParams.put(SessionParameter.COOKIES, "true");

Getting the right repository on the CMS Server

The default implementation uses the "My Documents" repository of the CMS Server. The value is set in the code, and can be changed through the override of the following class and method:

Class: SmdRepositoryConnector

Method: createSession

Code to override: Repository repository = repositories.get(i); if(repository.getName().trim().equals("My Documents"))

Changing the upload folder within repository

The default implementation is using the "/<CMSServerUser> folder within the repository for file upload. This means all the uploads are stored in the folder with the same name as the CMS user account. This logic can be customized through the overrides of the following code:

Class: SAPMobileDocumentsService

Method: uploadContent

Code to override: String mobileDocUserName = SystemConfig.getInstance().getProperty("CMSServerUser"); String fullFolderPath = "/" + mobileDocUserName + folderPath;

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 43

Page 44: Development Toolkit Guide

Guide to main implementation classes of evidence upload and download

SAPMobileDocumentsService Orchestrates connection to CMS Server and file upload/download

CMSUploadProcessor Invokes upload logic through CMSServiceFactory

CMSDownloadProcessor Invokes download logic through CMSServiceFactory

SmdRepositoryConnector Manages session with the CMS Server.

CMSServiceFactory Creates an instance of CMSService through reflection.

4.6 Configuring the FS-QUO Toolkit for FS-QUO

Context

At this point, the FS-QUO development environment is only set up as the Runtime engine, but it doesn't yet have the complete setup necessary for underwriting. You still need to update the configuration settings.

If your product requires FS-PM and SAP GP-FS integration, refer to the Integration Guide for Coverage-based Insurance Solutions for instructions to configure integration settings in the FS-QUO Administrative Console.

4.6.1 Configuring the Runtime Administrative Console

Context

Procedure

1. Launch Internet Explorer and log in to the Runtime Administrative Console.2. Configure the ICM application ID in FS-PM:

a. Go to System Edit Configuration Settings .

b. Go to Configuration Application AuthoritySuite Env FS-PM Integration Setting .c. Enter value for icm.application.id in the Override field

44 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 45: Development Toolkit Guide

d. Save your changes.

e. Go to System Reload Configuration SettingsA list of options appears in the tree panel.

f. Select the configuration setting type that you want to reload, or choose Reload All Config to reload all the settings.

3. If your solution includes an integration with a Content Management System (CMS) you will need to configure the following settings:

a. Go to System Edit Configuration Settings .

b. Go to Configuration System Env Content Management System Setting .c. Enter values in the Override columns for CMSServerUrRL, CMSServerUser and

CMSServerPassword.d. Save your changes.

e. Go to System Reload Configuration SettingsA list of options appears in the tree panel.

f. Select the configuration setting type that you want to reload, or choose Reload All Config to reload all the settings.

4. Configure the Virus Scan Interface (VSI) setting:

a. Go to System Edit Configuration Settings .

b. Go to System Env Virus Scan Interface Setting .c. Enter com.sap.fs.uw.cms.service.impl.VirusScanServiceForMock in the Override field for

VirusScanService.d. Save your changes.

e. Go to System Reload Configuration SettingsA list of options appears in the tree panel.

f. Select the configuration setting type that you want to reload, or choose Reload All Config to reload all the settings.

4.6.2 Updating Configuration Settings

The configuration settings need to be updated as part of the FS-QUO installation process.

Context

To update the configuration settings, perform the following steps:

Procedure

1. Launch Internet Explorer and log in to the Runtime Administrative Console at the following location: <quo-toolkit-url>/csiroot/admin/.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 45

Page 46: Development Toolkit Guide

The Runtime Administrative Console will open after a short delay.2. When prompted, log in as <admin_user>.

3. Choose System Edit Configuration Settings from the menu bar.

4. Go to Configuration Application AuthoritySuite Env Application Environment .The Application Environment settings display.a. In the Override field for the FSPMBookingServiceEnabled row, enter YES.b. Save your changes.

5. Go to Configuration System Env Content Setting .

The Content Setting settings display.

a. Confirm that your Application Data Model Product is present in the Override field for the ApplicationDataModelProduct row. If it is not present, enter it.

b. Save your changes.

6. Choose System Reload Configuration Settings from the menu bar.7. Choose Reload All Config.

4.6.3 Enabling the Business Partner Setting

You can enable the business partner setting in the Administrative Console.

Procedure

1. Launch Internet Explorer and log in to the Runtime Administrative Console at the following location: <pro_runtime_app_url>/csiroot/admin/.The Runtime Administrative Console will open after a short delay.

2. Navigate to Configuration System Env Business Partner Setting .3. Locate the BusinessPartnerEnabled row and set the Override attribute to Yes.

4. Reload the configuration settings.

a. Choose System Reload Configuration Settings from the menu bar.b. Choose Reload All Config.

46 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 47: Development Toolkit Guide

4.7 Downloading and Deploying a Published Product Jar to the FS-QUO Toolkit

The FS-QUO toolkit requires insurance products to be deployed to provide meaningful contents in Runtime. You will need to deploy the products to the FS-QUO toolkit.

Prerequisites

Your organization should already have a Product Modeler instance set up and insurance products imported or developed.

Context

Procedure

1. Launch Internet Explorer and log into the FS-QUO Runtime XSA server that is shared by local development.2. Execute the Download Published Product service.

For more information, see Download Published Product.3. Execute the Deploy Product service.

For more information, see Deploy Product.4. Verify that the product JAR files are deployed and registered successfully by validating that the same set of

insurance product JAR files now exist in <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\target\home\ps\product.

4.8 Installing and Configuring Standalone SAP JCo

NoteSAP JCo is only releveant for FS-PM and SAP GP-FS integrations.

SAP JCo is required by FS-QUO to make RFC and APIF calls to FS-PM and SAP GP-FS in an integrated landscape. For an insurance product requiring integration, such as the Sample Household Product, you must install SAP JCo and make it available to the standalone server to write new business.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 47

Page 48: Development Toolkit Guide

For information about the required versions of SAP JCo, see Prerequisites for Installing the FS-QUO Toolkit [page 5].

After you have downloaded the software, install it by unzipping the file to a local directory and copying the sapjco3.jar, sapjco3.dll, sapjco2.jar and sapjco2.dll files to the <tomee_dir>\lib directory. Then restart the TomEE Server from Eclipse.

Related Information

Prerequisites for Installing the FS-QUO Toolkit [page 5]

4.8.1 Configuring JCo Standalone Settings in FS-QUO

In a standalone development enviroment, you will need to define standalone JCo settings to connect to integrated SAP systems.

Prerequisites

Confirm the name of the destination used for S/4HANA RFC connectivity that's defined in the RFC reference object in FS-PRO.

For more information, see Configuring RFC Destinations in Products.

Procedure

1. Create a properties file for the S/4HANA connection.a. Open a text editor.b. Add the following text to the file and add the appropriate JCo client settings in the file with connection

details for the S/4HANA system:

jco.destination.clientId=jco.destination.systemNumber=jco.destination.host=jco.destination.systemId=jco.client.lang=jco.destination.repository.user=

where:

clientIDSpecifies the SAP client number.

48 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 49: Development Toolkit Guide

Three-digit client number; preserve leading zeros if they appear in the number.

systemNumberIndicates the SAP system number.

hostIdentifies the SAP application server.

Host name of a specific SAP application server.

systemIdSpecifies the SID or system ID of the S/4HANA FS-PM server.

langSpecifies a login language.

CautionUse the SAP-specific single-character language code.

repository.userSpecifies the login user ID.

User name for logging in to the SAP system.

Ensure that the User ID entered here has all of the required permissions in FS-PM.

This is a technical user account. This value is not used for SSO/Principal Propagation.c. Save the file as S4HANA_DEST.jcoDestination to a local directory.

2. Launch Internet Explorer and log in to the Runtime Administrative Console at the following location: <quo-toolkit-url>/csiroot/admin/.

3. Log in as the <admin_user>.The Runtime Administrative Console will open after a short delay.

4. Upload the files to the file system.

a. Go to System Edit File System .

A list of folders appears in the tree, and the folders and files in the selected folder appear in the details panel.

b. From the Path dropdown list, select PA - Custom Web Root (Write).c. Expand the resource folder in the tree and go to the rfcdestination folder.d. Move your mouse to the window pane on the right, right click and choose Upload.

The Upload Files dialog appears.e. Upload the destination properties files.

You can upload a maximum of eight files at one time.

5. Select System Reload Configuration Setting from the menu bar and choose Reload All Config for the new password settings to take effect.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 49

Page 50: Development Toolkit Guide

4.8.2 Testing RFC Destinations

You need to verify that the connectivity defined in the destinations is functional.

Procedure

1. Log in to the Administrative Console.

The Administrative Console will open after a short delay.

2. Select System Test SAP Server Connectivity .3. Go to the Test JCo3 Feature tab, select the S4HANA_RFC_ENDPOINT destination and choose Connect to

test the connection.A dialog opens.

4. Enter the name of the user that you used to log into the FS-QUO system.5. Choose Next.

If an incorrect user name was entered, an error message from FS-PM will be displayed.

Results

A pop up message showing connection and permission details is displayed. The message also indicates whether or not the connection was successful.

4.9 Creating a User and Assigning Authorization

You will require a user for your local development environment and assign it the necessary authorizations to access the platform and the apps.

NoteDevelopers who are customizing Fiori apps should have taken an Open SAP course on Fiori application developments, or are working closely with developers who have experience with Fiori application development experience.

You will need to create a user in the Administrative Console Role Painter specifically for FS-QUO. This user is required to authenticate the session established between the Cloud Platform account and the on-premise FS-QUO application server.

Ensure that the user has been assigned the following roles in Role Painter:

● QUO_UW_HO_LOB_PNC● SAP_UW_HOUSEHOLD

50 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 51: Development Toolkit Guide

● SAP_UW_LIFE● UWFullAccess● UWSUBMISSION_DATA_ENTRY● UW_User_RC● assignSubmission● uwCaseMassReassign● uwSimulate● uwSubmissionListQuery

For more information about Role Painter, see Product Web Services User and Authorization Management.

4.10 Setting up a Personal Development Subaccount on SAP Cloud Platform Neo

You need to create a personal development subaccount on SCP Neo, which will be used for Fiori application development.

1. Ensure that a Global account is created on SCP Neo.2. Create an individual subaccount for each developer.3. For each subaccount, follow the instructions on the Getting Started topic.

4.11 Setting Up Connectivity to the FS-QUO Front-End

In order to view the apps in a development environment, you will need to establish a connection to the FS-QUO front-end.

Prerequisites

You must have an SAP Cloud Platform account (either a customer account or a trial account).

You have already enabled SAP Web IDE Full-Stack in your account.

A user must have already been created in Role Painter specifically for FS-QUO. This user is required to authenticate the session established between the Cloud Platform account and the on-premise FS-QUO application server

Context

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 51

Page 52: Development Toolkit Guide

Procedure

1. Install the SAP Cloud Connector on the local development system.2. Set up the Cloud Connector to connect to the SAP Cloud Platform subaccount.

a. Start the Cloud Connector.

For more information, see SAP Note 2485510b. Complete the initial configuration of Cloud Connector.

For more information, see Initial Configuration.

NoteEnsure that you enter the full address of the Region instead of using the provided dropdown values. For example, enter int.sap.eu2.hana.ondemand.com instead of choosing Europe(Frankfurt).

c. Select Cloud To On-Premise menu item for the sub-account.d. Select the ACCESS CONTROL tab.e. Add a new virtual host to the internal system mapping. This mapping will allow the exposure of the on-

premise system (FS-QUO application server) to the SAP Cloud Platform subaccount. Configure it via the following properties:○ Back-end Type: Select Non-SAP System from the dropdown list.○ Protocol: Select HTTP from the dropdown list.○ Internal Host: Enter the name of the internal host name (the host name for the on-premise

system). For example, localhost or the designated IP of the server machine.○ Virtual Host: Assign a name for the virtual host in the text field.○ Internal Port: Enter the internal host port number (the port number of FS-QUO application server

instance).○ Virtual Port: Assign a name for the virtual port in the text field.○ Principal Type: Select None from the dropdown.○ Host In Request Header: Use the Virtual Host value.○ Click Check Result in the actions menu and ensure that the result is Reachable.

f. Add the new accessible resource for system mapping.○ URL Path: Enter the base URL path for FS-QUO (/csiroot).○ Active: Ensure that this checkbox is selected.○ Access Policy: Select the Path and all sub-paths radio button.

g. Verify in the Cloud Connectors section of the SAP Cloud Platform Cockpit that the Cloud Connector is connected and that the back-end system is exposed.

3. Create and set up an SCP destination in the SAP Cloud Platform Cockpit called FS_QUO with the following configuration:a. Select HTTP from the Type dropdown.b. Enter <url>/csiroot in the URL field.

The value for <url> is the URL of the virtual hostc. Select OnPremise from the Proxy Type dropdown.d. Select BasicAuthentication from the Authentication dropdown.e. Enter the user name and password of the FS-QUO user from Role Painter.

Go to the Additional Properties tab.

52 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 53: Development Toolkit Guide

f. Enter TRUE in the WebIDEEnabled value field.g. Set the WebIDESystem value to API.h. Set the WebIDEUsage value to odata_gen.i. Save your changes.j. Confirm that the connections works by selecting Check Connection .

Related Information

Prerequisites for Installing the FS-QUO Toolkit [page 5]

4.11.1 Importing and Deploying Apps to the Fiori Launchpad

You will need to setup the FS-IPW apps in the Fiori Launchpad sandbox.

Prerequisites

You have already performed the steps to set up connectivity to the FS-QUO Front-End server.

You have enabled Portal Services and created an SAP Fiori Launchpad site.

Procedure

1. Copy FS-QUO-toolkit-<rel>.<sp>.<pl>-frontend.zip to your local machine and extract it.

2. Go to the Web IDE Full-Stack service for your Neo Subaccount and ensure that the service is enabled.

3. Select Go To service in the Overview tab to open SAP Web IDE link.4. Select Default Workspace on the left panel.5. Import all of the apps, one by one, into a default workspace by performing the following steps:

a. Go to File Import File or Project .b. Browse the app ZIP file extracted from the main FS-QUO toolkit Front-End ZIP file.c. Choose OK.d. Expand the imported app, open package.json and add the following line in devDependencies

"vscode-uri": "1.0.6" (Ref: SAP Note 2801814 )e. Save the file.

6. Right click on the project that you want to deploy to the Fiori Launchpad and select Deploy Deploy to SAP Cloud Platform Deploy a new application .

If you receive the following error message The account must have a subscription to SAP Fiori Launchpad', you need to enable Portal service under User Experience in Services tab to subscribe to FLP.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 53

Page 54: Development Toolkit Guide

7. After the new applications get deployed, select register to SAP FLP in the new popup.

For each of the app imports, you must enable the checkbox to define the semantic object and action. Then select Next. Enter the title and icon. Then select Finish.

The application configuration should be the same as the table below.

NoteAll of the apps listed in the table below are of the type Static.

RememberThe Semantic Object and Action values are case-sensitive.

App Name Semantic Object Action Title Icon

fs.ipw.insquote.create InsuranceQuote create Create Insurance Quote create

fs.ipw.inspolicy.manage InsurancePolicyForQuote manage Manage Issued Policies request

fs.ipw.myinsworklist InsuranceQuote manage My Insurance Worklist task

fs.ipw.myuwworklist UnderwritingCase manage My Underwriting Worklist task

fs.ipw.grpinsquote.create GroupInsuranceQuote create Create Group Insurance Quote

create

fs.ipw.myinstasks InsuranceTask manage My Insurance Tasks task

fs.ipw.mstrinsquote.create MasterInsuranceQuote create Create Insurance Quote From Master

create

fs.ipw.mstrinspolicy.create MasterInsurancePolicy create Create Master Insurance Quote

create

All apps must be registered to the same Fiori Launchpad site that you defined for your local environment.

RestrictionMaintain Business Partner can not be implemented on a non-ABAP Fiori Launchpad. This application will not be available in local development environments.

Next Steps

If you get 401 authorization or fail to load SAPUI5 Component errors while accessing the app, perform the following steps:

1. Open the Runtime Administrative Console

2. Go to User Edit Users .3. Search for the user that you created in Creating a User and Assigning Authorization [page 50].4. Select the user and then choose the Reset user's password link on the right side.5. Perform a hard reset to the Fiori Launchpad to load all of the apps.

54 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 55: Development Toolkit Guide

6. Try to access the apps again.

4.11.2 Setting Up App-to-App Navigation

The Create Insurance Quote from Master app requires separate configuration to be applied for app-to-app navigation.

Prerequisites

Ensure that you have already set up connectivity to the FS-QUO front end.

Context

You only need to perform this procedure if you are developing coverage-based apps.

Procedure

1. In the WebIDE Files view, right-click on one of the apps and select Project Enable App to App Navigation .

The App 2 App Navigation pop-up dialog opens.2. Select all listed apps in the Navigate to field and select Enable.3. Once FLPSandbox appears in the workspace, expand the folder in the Files view and open neo-app.json.

4. Scroll to the bottom and remove all but one of the destination definitions for FS_QUO.

5. Change the path value to /csiroot/ and then remove the entryPath entry.

6. Save the file and close it.7. Select FLPSandbox in the Files view.

8. Select Run Run Configurations… from the menu bar.9. Select App 2 App Navigation from the menu on the left.10. In the main tab, select the Advanced Settings tab. Under Application Destinations, select the appropriate

destination name for the local FS-QUO system and select Save and Run.

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 55

Page 56: Development Toolkit Guide

4.12 Copying the <CSI_HOME> Artifacts to the Development Profile

After the local FS-QUO toolkit set up is complete, you should update the development profile with the artifacts from the <CSI_HOME> directory. Copy the following directories from <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\target\home to <toolkit_dir>\FS-QUO-toolkit-extensions\FS-QUO-dev\src\profiles\<dev_profile_name>\home:

● ppms\app\runtime● ps\product

The FS-QUO toolkit is now completely set up for the first time. For team development, you should check <toolkit_dir> into your source control system so it can be accessed by your development team. As you have already done most of the setup, each subsequent developer would only need to perform the following steps to set up their own FS-QUO development environment:

1. Installing and configuring Eclipse.2. Installing and configuring TomEE+.3. Installing and configuring the FS-QUO toolkit.

For Unzipping the FS-QUO toolkit, replace the instruction with checking out the toolkit directory from source control.

After that, the development team can verify the integrated SCM tools within Eclipse and link each project to your source control system for updates and commits.

4.13 Building the Custom FS-QUO MTA on the XSA server

Extensions and customizations made in the FS-QUO toolkit must be built and packaged so that they can be deployed to an FS-QUO runtime environment. The following custom artifact needs to be generated for deployment: <toolkit_dir>\FS-QUO-toolkit-extensions\Custom-FS-QUO-mta\target\Custom-FS-QUO-mta-<rel>.<sp>.<pl>.mtar

However, instead of generating artifacts for deployment manually from the FS-QUO-toolkit, you should implement a build process that does the following:

1. Check out the FS-QUO toolkit source code from your source control system.2. Run Maven install on the FS-QUO-toolkit Maven reactor module to generate the build artifacts.3. Archive the build artifacts to a central location, such as a Nexus repository or in the Jenkins project, for

deployment.

56 PUBLICDevelopment Toolkit Guide

Installing the FS-QUO Toolkit

Page 57: Development Toolkit Guide

4.14 Deploying a Custom FS-QUO MTAR File

This topic details the steps for deploying a custom MTA archive (MTAR) file into an existing FS-QUO environment.

Context

The actions in this topic need to be performed on the XSA server where the FS-QUO instance is installed. For more information, consult your Basis team.

Procedure

1. Upload the custom MTAR file to the FS-QUO <silent_installer_home>/artifacts folder on the XSA server.

2. Open the quo_mta.mtaext file and take note of the value of the extends parameter.

3. Extract the META-INF/mtad.yaml file from your custom MTAR.

4. Edit the META-INF/mtad.yaml file and edit the value of the ID parameter so that it is identical to the value of the extends parameter.

5. Update the custom MTAR file with the changed META-INF/mtad.yaml file.

6. From the FS-QUO <silent_installer_home>/artifacts folder, deploy the custom MTAR file using the following command:

xs deploy <custom_MTAR> -e quo_mta.mtaext,quo_complement-mta.mtaext

Development Toolkit GuideInstalling the FS-QUO Toolkit PUBLIC 57

Page 58: Development Toolkit Guide

5 Changing Default Error Report Settings

The error report on the Exception screen contains a summarized description of the errors. If you want to view more details, you must override the default flag in local environments by changing the flag from Yes to No.

You can find the flag, SuppressErrorinAS in the following location in the Administrative Console: Application Product Authority Env Application Environment .

58 PUBLICDevelopment Toolkit Guide

Changing Default Error Report Settings

Page 59: Development Toolkit Guide

Important Disclaimers and Legal Information

HyperlinksSome links are classified by an icon and/or a mouseover text. These links provide additional information.About the icons:

● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your agreements with SAP) to this:

● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any

damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.

● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this information.

Videos Hosted on External PlatformsSome videos may point to third-party video hosting platforms. SAP cannot guarantee the future availability of videos stored on these platforms. Furthermore, any advertisements or other content hosted on these platforms (for example, suggested videos or by navigating to other videos hosted on the same site), are not within the control or responsibility of SAP.

Beta and Other Experimental FeaturesExperimental features are not part of the officially delivered scope that SAP guarantees for future releases. This means that experimental features may be changed by SAP at any time for any reason without notice. Experimental features are not for productive use. You may not demonstrate, test, examine, evaluate or otherwise use the experimental features in a live operating environment or with data that has not been sufficiently backed up.The purpose of experimental features is to get feedback early on, allowing customers and partners to influence the future product accordingly. By providing your feedback (e.g. in the SAP Community), you accept that intellectual property rights of the contributions or derivative works shall remain the exclusive property of SAP.

Example CodeAny software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of example code unless damages have been caused by SAP's gross negligence or willful misconduct.

Gender-Related LanguageWe try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.

Development Toolkit GuideImportant Disclaimers and Legal Information PUBLIC 59

Page 60: Development Toolkit Guide

www.sap.com/contactsap

© 2021 SAP SE or an SAP affiliate company. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice.

Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary.

These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies.

Please see https://www.sap.com/about/legal/trademark.html for additional trademark information and notices.

THE BEST RUN