Several customers and partners asked me for a comprehensive list of features provided by SAP NetWeaver Decision Service Management (DSM). This is a task almost impossible to do as there are so many features and capabilities. With this blog I give it a try focusing on the most important ones. This blog cannot replace documentation. Therefore, only a high-level description of capabilities is given. You may take a look at the online documentation and the SCN page that provides a collection of articles, videos and presentations.
My focus is on features that are already available or that are planned to be generally available in 2013. Of course, this blog does not give a guarantee for any release dates or for future functionality. It may happen that a capability cannot be provided as planned. Plans for 2014 and beyond are not discussed in this blog.
For a better overview I group features and capabilities into categories:
- Decision Service Modeling
- Decision Service Deployment
- Decision Service Management
- Decision Service Execution
- Decision Service Intelligence
- BRFplus to DSM Transition
Before I start discussing any details I would like to briefly explain the idea behind DSM. DSM is an add-on to the ABAP application server. The add-on allows to model decision services and business rules on a dedicated central server with direct data access to other systems for both master data and customizing data. Once the decision services are built the Decision Service Manager enables a data transfer (= deployment) to connected systems (so-called managed systems) for local execution. DSM provides a central place with rule and decision catalogs for decision making logic no matter where this logic finally needs to be executed. It further makes updates of this logic independent of technical release cycles and processes by providing a more agile and simple way of updating business applications, and by eliminating the need of downtime and/or interruption of the receiving managed systems.
Decision Service Modeling
For the modeling of decision services BRFplus is used. BRFplus development started several years ago and it has been ever enhanced since then. BRFplus allows modeling of decision services (= BRFplus functions) using text rules, decision tables, decision trees, and many other expression types and action types. BRFplus provides a highly configurable web-enabled user interface. It is optimized for usage in SAP scenarios on the ABAP stack with a deep platform integration (ABAP API, DDIC, CTS, …).
DSM adds many capabilities to BRFplus that mostly appear as part of the BRFplus workbench as soon as the DSM add-on is installed.
- DSM Integration: From the BRFplus workbench it is possible to open the Decision Service Manager UI.
- Remote Data Access: Once a BRFplus application is connected to a managed system, BRFplus gains access to all data (master data, customizing, workbench objects such as DDIC or ABAP) from the managed system, thus avoiding the need for data replication (e.g. into development systems). This shows off for example in value help dialogs which now show values of the leading systems, such as productive ERP systems. The connection to another system is shown directly in the BRFplus workbench with information about the managed system. Authorization checks help to control what data can be used.
- Test Case Tool: There is a new test case tool for creation and (mass) execution of test cases (expected result for defined inputs). Find more information about the test case tool in category Decision Service Analysis.
- Debugger: There is a new debugger tool for step-wise service execution analysis. Find more information about the debugging tool in category Decision Service Analysis.
- Sandbox Tests: Ability to run test cases and simulations not only locally but also remotely on managed systems. For example it is possible to test the execution of a decision service on the target server before productive deployment to that server.
- Custom Attributes: Customer-defined attributes that show up in the general data section of BRFplus objects can be used to add customer specific properties such as “owner”, “organizational area” etc. without any line of custom code. Those attributes are also supported in the object search.
- Traces: Traces from managed systems can be imported and visualized in the BRFplus workbench, allowing to analyze how services execute on the system to which the services were deployed. Find more information about the trace in category Decision Service Analysis.
- Code Template: A code template as a copy and paste code snippet can be generated for embedding a decision service call into the managed system.
Decision Service Deployment
- Managed Systems: Decision services can be deployed (= transferred) to managed systems. After deployment, the decision service can be executed locally on the managed system without any remote communication between DSM and managed system. As a managed system, you can use any system based on a NetWeaver ABAP server, version 6.40 or higher. There is no upgrade to a higher NetWeaver version required. Necessary client software for the communication can be installed via SAP notes on managed systems.
- Deployment Flexibility: Decision services can be deployed into any number of systems, any number of times without complex protocols or coding steps.
- Multi-Deployment: Decision services can be deployed into multiple systems in parallel (with same availability timestamp in all systems).
- Future Deployment: Decision services can be deployed with immediate or future effect. A decision service that is scheduled to become effective in the future is available for productive use at the given date. However, those services may already be tested on the system (with side-effects such as action execution being disabled).
- Hot Deployment: Business users do not need to interrupt work for deployments of new versions of a decision service. Instead new versions can be deployed at any time. New user sessions will then automatically make use of the new version while active sessions continue to work with the previous version.
- Deployment Overview: All deployed decision services are shown in the Decision Service Manager UI. This includes administrative information about when the service was deployed, what exactly was deployed, by whom it was deployed, etc.
- Deployment Check: Prior to deployment a feasibility test is executed. Under certain conditions, Decision services which perform database selects or call ABAP code may not run on the remote system. The deployment check returns precise information about the cause of problems to avoid erroneous deployments due to technical reasons. A service that cannot be executed on a managed system cannot be deployed to it.
- Supported Types: Almost all BRFplus action types and expression types are supported on managed systems. Exceptions are obsolete BRFplus expression and action types as well as some rarely used expression types such as Dynamic Expressions and BRMS Connector Expressions. Even custom expression types are supported.
- Deployment Workflow: Deployments can be done as direct deployments or with the help of a deployment workflow. A deployment workflow allows to implement a customer specific release process. Therefore, DSM provides several ready-to-use building blocks such as approval steps, test deployments, automatic tests (see test case tool) and more. An overview shows deployments which are processed, but not completed yet.
- Deployment Revocation: Deployments of complete services or single versions can be removed in seconds with a few clicks. Deployment revocations can be performed directly or with the help of a custom workflow.
- Deployment Snapshot: A deployment takes a snapshot of the deployed service and rules. This snapshot can be restored at a later point in time.
- Authorization Checks: Connection to managed systems, deployment, deletions etc. can be controlled with authorization checks.
Decision Service Management
- Managed Systems: It is possible to create connections to managed systems which can be remote systems, the same client or other clients of the same system. The connection technically is an RFC destination. Each managed system has a system type such as productive, test, development, … Managed systems on different release levels may be used at the same time.
- Technical Information: For each managed system technical information (release, supported capabilities, database, etc.) is shown.
- Deployment Statistics: Statistic information about the deployments such as number of expressions and functions.
- Activity Logs: Each activity such as deployments or creation of managed systems is logged with user ID, timestamp, and other details for auditing and change tracking.
- Service Overview: For each managed system, all deployed decision services including administrative information is shown (who, when, what, source, target, documentation). Also, deployments from other DSM systems are shown.
- Import: Services can be imported from the managed system into the DSM system. After the import, the service can be changed and the changed service may be deployed again.
- Versioning: Decision services and rules can be versioned. Multiple versions can be active at the same time valid for different periods in time.
- Authorization Checks: All activities can be controlled with authorization checks.
- API: Management and deployment is also possible through an API (e.g. for background processing or automation).
- Installation: DSM can be installed in any ABAP server starting with release 7.3 Enhancement Package 1. There are no specific hardware requirements. DSM may share a system as it does not add mentionable load to a server.
Decision Service Execution
- Local Evaluation: After deployment decision services are locally available for evaluation. They work totally independent of the DSM system and therefore no connection from the managed system to the DSM system is necessary.
- Traces: Execution traces can be activated. Then evaluation is recorded into a compact format which then can be used for decision service analytics (see below).
- Time-Travelling: Historic versions of a decision service can be processed without a need to reactivate or to redeploy. For processing, only a timestamp has to be provided. The decision service version valid at this specific point in time is then used for evaluation.
- Sandbox Execution: Decision services can be executed in a sandbox space. The sandbox allows testing and simulation on the target server without productive deployment. After successful tests the service can be released for productive use.
- HANA: Execution of a decision service can leverage HANA features to further reduce execution time. In the future, further improvements will be included without a need to rewrite business rules (upward compatibility).
Decision Service Intelligence
- Analytics: In managed systems execution traces can be activated to collect execution data. Such data is the basis for decision service analytics. The data can be easily consumed by reporting tools such as HANA, SAP Business Objects, MS Excel (MDX), or by HTML5 pages using libraries such as D3.js to analyze and visualize the execution and results of decision services. The collected data helps to find and understand information like:
- Number of executions of functions
- Result distribution for a function or expression
- Distribution of decision table rows that hit
- Rules that are never executed, tree nodes or table lines that never hit
- Execution path
- Test Case Tool: The test case tool can be used to create test cases for decision services. A test case is a set of input values and an expected result value (elements, structures, or tables). Several tests can be created and run with one click or in combination with a deployment as a pre-requisite for successful deployments. A summary screen gives an overview over all successful and all failing tests. For tests, the trace can be activated so that one can follow the steps that led to the deviating result. Test cases can be copied so that it is easily possible to create a series of similar cases for bigger test coverage. The test case tool provides an API for test execution also outside of the BRFplus workbench, e.g. to connect other test tools. Test cases can be executed locally or on managed systems before productively using the new decision service, or a new version of it, respectively.
- Debugger Tool: A debugger tool can be used to step through the rules execution using a protocol similar to the simulation protocol. Breakpoints and watch-points (conditional breakpoints) are supported. Variables can be seen and changed and some more features are provided.
BRFplus to DSM Transition
- Service Import: Active BRFplus functions can be imported into a DSM system. They can be changed and improved in as well as deployed from the DSM system.
- Service Overwriting: A service deployment can overwrite locally available BRFplus functions. The BRFplus API finds the newly deployed service and is able to execute it. By this mechanism a move from a local scenario with BRFplus to a DSM scenario is possible without code changes and disruptions. In case the deployed service is deleted with the DSM UI, the previously existing BRFplus function kicks in again and can be executed.
Paradigm shift in solution change management using most advanced SAP technology:
- Direct access to data of managed systems: Decision Service Manager provides remote access to metadata, code, and values in managed systems (e.g. master data, customizing in ECC or CRM for “local” modeling in DSM)
- Local execution: From the modeled service, Decision Service Manager compiles an executable decision service which is deployed on the managed system for local execution (no RFC calls from managed system to DSM)
- No upgrade required: The managed system does not require upgrades (or Support Packages); Decision Service Manager can be upgraded independently
- Reduce emergency transports into productive systems: Productive managed systems remain locked while common change components are deployed through DSM (e.g. discount rates)