Preview only show first 10 pages with watermark. For full document please download

Sap Process Orchestration

   EMBED


Share

Transcript

First-hand knowledge. Reading Sample In this selection from the book, you’ll find content from two chapters. Chapter 5 introduces you to an important part of AEX: the Integration Directory. This chapter helps you learn how to use the ID to connect the different working parts to create an interface. Chapter 10 will teach you how to build human- and system-centric processes from scratch with SAP Business Process Management. “Working with the Integration Directory” “Creating Your First SAP Business Process Management Process” Contents Index The Authors John Mutumba Bilay, Roberto Viana Blanco SAP Process Orchestration The Comprehensive Guide 727 Pages, 2015, $79.95/€79.95 ISBN 978-1-4932-1018-3 www.sap-press.com/3637 © 2015 by Rheinwerk Publishing, Inc. This reading sample may be distributed free of charge. In no way must the file be altered, or individual pages be removed. The use for any commercial purpose other than promoting the book is strictly prohibited. We shape our buildings; thereafter they shape us. —Winston Churchill 5 Working with the Integration Directory Now that you’ve learned about basic objects from the SLD and ES Repository, we are ready to use an ingredient which will glue everything together to create an interface ready to be run. This ingredient is called the Integration Directory (ID), and it will be the core subject of this chapter. In the next sections, we will provide an overview of the ID and tackle the different approaches and objects that it comprises. 5.1 Integration Directory Overview The creation of most interface scenarios in SAP PI consists of a three-step process: creating System Landscape Directory (SLD) objects, creating Enterprise Service Repository (ES Repository) related objects, and integrating and configuring all relevant service objects in the ID. The ID depends on objects created in the SLD, such as business systems. Furthermore, ES Repository objects—such as service interfaces (outbound and inbound) and operation mappings—are also used in the ID. The SLD and ES Repository objects are combined together in the ID to form a specific interface. Launch the Integration Builder from the SAP PO landing page: http://:/dir. From this main page, click on Integration Builder, as shown in Figure 5.1. This will then launch a Java Web Start application. 143 5 Working with the Integration Directory Collaboration Profiles The object types that can be managed in the ID include party, business system, business component, integrated configuration, configuration scenario, value mapping group, integration flow, and alert rule. Be aware that the party, business system, and business component are more generally referred to as collaboration profiles. People familiar with older SAP PI versions (dual stack) might notice in Figure 5.2 that some objects that used to be available are no longer present in the configuration. This includes all objects that were linked to the standard or ABAP-based configuration, such as sender agreements, receiver agreements, and integration processes. Figure 5.1 Launching the ID from the SAP PO Landing Page The ID contains a lot of objects. As Figure 5.2 shows, the main screen of the ID contains the following areas: 왘 Menu The menu contains different tools and options. Here, you can create new objects and launch tools like the ES Repository. 왘 Object types The object types area includes a list of the different object types that can be created in the ID. To create an object, right-click on the relevant object type, and click New. 왘 Editor area The editor area is where all the work is done. When any of the objects on the left side are opened, they are displayed in the editor area. From there, you can edit or change those objects. In the next section, we will explore each of the included objects in detail and explain where to find them. 5.2 Collaboration Profiles During an exchange of messages between different parties, it is important to be able to label the different entities with an identifier to facilitate the readability of the interface configured in SAP PO. As the name states, collaboration profiles represent a set of ID artifacts used to identify and designate the parties and systems involved in an integration scenario. This is irrespective of whether they play the role of sender or receiver in the scenario, which means that the party either sends or receives a message from SAP PO. The collaboration profiles help to uniquely identify an application system or organization taking part of an integration scenario. The communication profile is made up of artifacts comprising party, communication component (business system and business component), and communication channels. Each of those artifacts will be explored in the following sections. Menu Editor area Object types Figure 5.2 Overview of the ID—Object Types and Categories 144 5.2.1 Party A party is generally used as an identifier for an organization. If your organization exchanges messages with external companies or business partners, consider using a party to represent the external organization. Parties therefore are mostly used in business-to-business (B2B) scenarios. They represent a higher level of abstraction and a grouping of the real applications participating in a communication. You 145 5.2 5 Working with the Integration Directory don’t need a party for your own organization; you can instead directly define the communication component without a party. When naming the party, use a name that is meaningful and represents the actual organization that you are dealing with (e.g., Coca-Cola). It is, however, possible to use internationally recognized identifiers (or alternative identifiers) in order to guarantee that the party is uniquely identified. As indicated in Figure 5.3, you can choose the type of unique identifier to be used from the Agency field. You can choose from among the following identifiers: 왘 009 (EAN—International Article Numbering Association) 왘 166 (NMFTA—National Motor Freight Traffic Association) 왘 016 (Dun & Bradstreet Corporation) Collaboration Profiles Business System A business system is created in the SLD and is linked to a technical system in your landscape. When the real application system (of types AS ABAP, AS Java, standalone, or third party) exists in your landscape, it should be considered a business system. A business system cannot be created in the ID, but you can import it from the SLD by performing the following actions: 1. Right-click on the left panel or on Communication Components Without Party, and select assign Business System. 2. Follow the wizard, and you will be presented with a list of all the business systems present in the SLD (but not yet imported into the ID). 3. Select the business system(s) that you would like to import into the ID, and click on Finish. 4. The business system(s) are created, added to a change list, and visible in the ID. When you’re finished, the created business systems will have an orange circle around them. This means that they are not yet activated and are thus invisible to other developers. Figure 5.3 Alternative Identifier Options for a Party in the ID After selecting an agency identifier, the Scheme field will be automatically filled in. Then, the only remaining action is to manually specify the actual unique identifier ID under the Name field. You will need to get the identifier of the company from the relevant agency, based on the chosen agency. Because the business system is defined in the SLD, the type of service interface (message) it can send or receive is controlled and defined from the SLD. While doing the configuration, you want to be able to select a service interface from a business system, then make sure that the technical system related to the business system in question is linked to the software component under which the service interfaces are located. This notion of linking the technical system to the relevant software components was explained in more detail in Chapter 3. Note You can also attach communication components under a party. 5.2.2 Communication Component A communication component represents the real application system involved in an exchange of messages. We can distinguish two main types of communication components: business systems and business components. We will explore each of those now. 146 Business Component A business component can be used to label a virtual business system, which needs to be used in an exchange of messages. The word “virtual” is used here to indicate that it does not need to be a physical system in your landscape. It can simply be a logical grouping unit or any other part of your landscape that you would like to label as a logical unit. It can, for instance, be handy to represent an SAP BPM process. 147 5.2 5 Working with the Integration Directory Collaboration Profiles Note A business component does not exist in the SLD and can manually and locally be created in the Integration Builder. After you have manually added the business component to the Integration Builder, you need to attach service interfaces (outbound and inbound) to it, which can be used to send and receive messages. To create a new business component in the ID, proceed as follows: 1. If you want to create the business component as part of a party, then first create the party and navigate to its communication component (as explained in Section 5.2.1). Then, proceed to Step 3. 2. If the business component belongs to your organization and not to an external party, then expand to communication component without a party. 3. Right click on the business component, and select New. 4. Specify the desired name in the Communication Component field. After successfully creating a business component, you will need to maintain outbound service interfaces (under the Sender tab) and inbound service interfaces (under the Receiver tab). Without this step, you will not be able to configure interface flows based on the concerned service interface and newly created business component. Figure 5.4 Added Service Interfaces (Inbound & Outbound) in the Business Component To add a service interface under a Sender or Receiver tab of the business component, proceed as follows: 5.2.3 1. Open the business component. 2. Open the Sender tab. 3. Insert a new row, and assign the outbound service interface(s) that you would like the business component to be able to send. 4. Open the Receiver tab. 5. Insert a new row, and assign the inbound service interface(s) that you would like the business component to be able to receive. 6. Save and activate. Communication Channel A communication channel can be created for a business system or business component and represents a connection from or to a particular system. When creating a communication channel, you need to provide a unique (and preferably meaningful) name. Figure 5.5 depicts the different objects in the Collaboration Profile section and how they relate to each other. You can see that business systems and business components can be created under a party (if they are external systems) or within the Communication Component Without Party section. Both business systems and components can contain an unlimited number of channels. See Figure 5.4 for an example of what the business component looks like after you have added the needed service interfaces to the Sender and Receiver tabs. 148 149 5.2 5 Working with the Integration Directory Collaboration Profiles unique within the communication component to which it belongs. The communication channel contains three main tabs: Parameters, Identifiers, and Modules. These tabs are discussed in the following sections. Party Party 1, 2,..n Parameters Business System 1, 2,..n Communication Channel 1 The Parameters tab mostly contains specific attributes that relate to the adapter used. Communication Channel 2 Communication Channel n Business Component 1, 2,..n Communication Channel 1 Communication Channel 2 Communication Channel n In this attribute, you select the type of adapter that you need for this specific communication. You can make a selection from a dropdown containing a list of SAP standard adapters. Adapter types from third-party providers (or your own custom adapter) and those that are installed in your system will also be selectable from this list. This adapter list is pulled from the ES Repository in a SAP BASIS software component and the http://sap.com/xi/XI/System namespace. Note that the adapter type might have a different version, depending on the version of SAP PO you’re running. More details on the different adapter types will be provided in Section 5.3. Communication Component without Party Business System 1, 2,..n Direction Communication Channel 1 Communication Channel 2 Communication Channel n Business Component 1, 2,..n Communication Channel 1 Communication Channel 2 Communication Channel n Figure 5.5 Collaboration Profile Tree A communication channel has a number of attributes and properties, which we will explore in Section 5.3. In addition, a communication channel needs to be linked to a communication component (business system or business component). Its name needs to be 150 Adapter Type A direction helps to specify whether the connection is used by a sender or receiver system. You can distinguish between sender and receiver channels. Depending on the communication protocol used, a sender communication channel will behave differently than a receiver one. To illustrate, a communication channel reading a file (sender channel) from a file system will contain details such as the directory in which the file is contained, the file name, and the polling interval. In contrast, a communication channel that writes a file (receiver channel) to a file system also needs the folder to write to and the filename but does not need a polling interval. A sender channel deals with how to convert an incoming message (from an external system) from another format into a format internally used in SAP PO or SAP PI. A receiver channel deals with converting a message from the SAP PO- or SAP PI-specific format into a format expected by the receiver system. This SAP PO or SAP PI internal format is also referred to as the XI Message protocol. More details about this subject will be provided in Section 5.5. 151 5.2 5 Working with the Integration Directory Collaboration Profiles Transport Protocol Modules Depending on the chosen adapter type, you might be given a choice of different transport protocols. Some common transport protocol choices include HTTP 1.1 and HTTPS. The file adapter, for instance, provides File System (NFS) and File Transfer Protocol (FTP) as options. This tab enables you to choose the different adapter modules to be executed during runtime. Each module entry in the communication channel is also referred to as a module processor. When a new communication channel is created, it comes with some default modules, depending on the chosen adapter type. The following are a few of the default modules: Message Protocol The message protocol choices also depend on the adapter type that you selected. 왘 CallSapAdapter Mostly present as the first module for the file, SOAP (sender), and JDBC adapters Adapter Engine 왘 sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean Used for the receiver SOAP adapter This attribute gives you the chance to specify under which adapter engine the channel needs to run. This is very useful if your SAP PO installation operates together with some decentralized adapter engines.1 You then have the ability to choose among the different adapter engines via a dropdown list. If you don’t have a decentralized adapter engine, then the default adapter engine will be selected for you by default. 왘 sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean Used for the mail adapter 왘 RfcAFBean Used for the remote function call (RFC) adapter Note Identifiers Identifiers are relevant in cases when a party is involved. As indicated in Section 5.2.1, it is possible to specify various identifiers to uniquely identify the party. When multiple identifiers are used in a party, the communication channel’s Identifiers tab enables you to choose which one of the existing identifiers is to be used for this specific communication channel. You can use a dropdown list to select the appropriate agency (see Figure 5.6). Figure 5.6 Choosing an Identifier in the Communication Channel 1 A decentralized adapter engine runs as a standalone engine and provides a totally independent runtime environment. Using a decentralized adapter engine can improve your performance, decrease processing time, and provide runtime isolation. 152 Note that a SOAP adapter (with the HTTP transport protocol) is restricted and cannot easily be extended with extra adapter modules. You will need to use one of the axis transport protocol variants to extend it. In addition to the modules just listed, SAP delivers an additional set of modules by default with an SAP PO installation. See Table 5.1 for a list of some default modules delivered with the adapter framework and their uses. Module Name Use PayloadSwapBean Can be used to swap the payload with another payload contained as an attachment. XMLAnonymizerBean Can be used to remove namespace or namespace prefix details from the payload or XML. StrictXml2PlainBean This module converts the XML SAP PI payload message into a plain text message. PayloadZipBean Provides the functionality to zip payloads and return a ZIP file. It can also extract a payload from a zipped file. Table 5.1 List of SAP Standard Modules and Their Uses 153 5.2 5 Working with the Integration Directory Module Name Use TextCodepageConversionBean Converts the current code page of the SAP PI payload to another code page. DynamicConfigurationBean XiHeaderValidationBean This module enables the manipulation of the dynamic configuration. You directly overwrite some ASMAs (adapter-specific message attributes) with new runtime values. Checks and validates the XI header parameters against the parameter values configured in the communication channel. Collaboration Profiles adapter, place the adapter module (the adapter module box with the dashed line in the figure). In the case of a sender channel, start also by placing all other modules, and leave the adapter module for the end—just before the messaging service. Receiver Communication Channel (Asynchronous) Message Service Module A Module B Module C Adapter Module Adapter Sender Communication Channel (Asynchronous) Table 5.1 List of SAP Standard Modules and Their Uses (Cont.) Adapter These modules cannot be selected from the tab; instead, you will need to manually enter the name of the module in the Module name field. Names of modules delivered with the adapter framework by SAP are always preceded with the prefix AF_Modules/. For example, to use the XMLAnonymizerBean, you will need to use the module name AF_Modules/XMLAnonymizerBean. Also, make sure to choose the Local Enterprise Bean value in the Type dropdown list. You can add as many adapter modules as you need. They will be processed in a sequential order, and the output of one will become the input of the following one. If you intend to extend the configuration of your communication channel with a list of adapter modules (custom modules or SAP-delivered ones), then it is important to place them in the right sequence and position in the module processor. The decision of where to place your module will depend on the following factors: Module A Module B Module C Adapter Module Messaging Service Figure 5.7 Adapter Module Processor for an Asynchronous Sender and Receiver Channel For synchronous processing, the same rules apply as for the asynchronous communication. The only difference is that you have the ability to place more adapter modules (customer or provided by SAP) after the adapter to handle the response message. As such, all modules before the adapter module will apply to the request message, and the ones after the adapter will affect the response message. Figure 5.8 sketches different possibilities of places to position the module, depending on whether it is a sender or receiver channel. Receiver Communication Channel (Synchronous) Module A Module B Module C Adapter Module Message Service Adapter Module E 왘 Whether your communication channel will be supporting a synchronous or asynchronous interface Module D Sender Communication Channel (Synchronous) 왘 Whether it is a sender or receiver channel Module A 왘 The message protocol used in the channel Module B Module C Adapter For asynchronous processing, the adapter module is always placed at the end of the chain. In the case of a receiver channel, it is important to first place any other module (customer or provided by SAP). In Figure 5.7, these other modules are represented by modules A, B, and C. At the end of the chain and just before the 154 Adapter Module Message Service Module E Module D Figure 5.8 Adapter Module Processor and Appropriate Position of Modules for Synchronous Sender and Receiver Channel 155 5.2 5 Working with the Integration Directory For every configured module, it is also possible to add module parameters at the bottom, in the module configuration section. See Figure 5.9 for an example of the configuration of the XMLAnonymizerBean module. As the figure illustrates, the XMLAnonymizerBean is placed before the adapter module (CallSapAdapter). The module is configured as follows: 왘 Processing sequence: 왘 Module name: AF_Modules/XMLAnonymizerBean 왘 Type: Local Enterprise Bean 왘 Module key: AnonymizerBean (you can give it any module key name) 왘 Module configuration: 왘 Module key: AnonymizerBean (this needs to match the one chosen in the processing sequence; you can select it from the dropdown) 왘 Parameter name: anonymizer.acceptNamespaces 왘 Parameter value: http://rojoconsultancy.com/demo/book '' Collaboration Profiles 왘 In the parameter value section, you need to specify the namespace and the prefix to be keep. All other namespaces and prefixes that are not specified will be removed. 왘 The namespace and the prefix are separated with a space. 왘 If you don’t want a prefix to be present in your output message, use two single quotes ('') as a prefix. 왘 You can specify multiple namespaces and prefixes. 왘 If the module is used without the anonymizer.acceptNamespaces parameter, then all the namespaces in the incoming message will be removed. All other namespaces and prefixes found in the message that are not in the preceding list will be removed. In the example shown in Figure 5.10, the prefix associated with the namespace http://rojoconsultancy.com/demo/book in the incoming XML message will be removed. Figure 5.9 Example of XMLAnonymizerBean Configuration The following statements apply to this module: 왘 In some scenarios, you might be required to change the namespace prefix to a specific value. The module is used to change the namespace’s prefix of the incoming XML message to another prefix value. 156 Figure 5.10 JNDI Browser—Overview As time passes by and new versions of SAP PO are released, the number of modules delivered with the adapter framework will probably increase. You can use 157 5.2 5 Working with the Integration Directory the JNDI to confirm or discover the modules that have been deployed as part of the adapter framework on your SAP PO installation. To do that, proceed as follows: 1. Log in to the SAP NetWeaver Administrator via http://:/nwa, where is the hostname of the SAP NetWeaver system and is the port number of the SAP NetWeaver system. 2. Navigate to Troubleshooting 폷 Java, and then click on the JNDI Browser link. 3. On the next screen, type in “AF_Modules” in the Find field. Then, select Context Name from the dropdown of the By field. Click on the Go button. 4. You will see the results of your search. You need to collapse the AF_Modules result, because the adapters delivered with the adapter framework start with the AF_Modules prefix in front of their actual names. See Figure 5.10 as a reference for what the JNDI Browser looks like. Note that even though there is a comprehensive number of adapter modules, you might come across requirements that are not supported with the currently existing set of modules. Luckily, you can create your own custom adapter modules. Given that the adapter engine and framework is based on the Java Application Server, you will need a basic knowledge of Java to be able to successfully implement your own additional functionality. To facilitate your Java development, you will need to make use of the SAP NetWeaver Developer Studio as development tool. Developing a custom module adapter for SAP PO is beyond the scope of this chapter, but it is possible. 5.2.4 Communication Component without a Party The decision to choose whether to create a party or a communication component without a party depends on your answer to the following question: Is the application system in question part of your organization or an external organization? If the application is part of your organization, then use a communication component without a party. Otherwise, use a party. You don’t have to stick to this approach, but we believe it is a good way to keep things separate and to easily identify when you are dealing with external systems. 158 Collaboration Profiles ASMAs are attributes that provide extra information about messages. This information is not part of the message’s payload, but rather is included as header data. Depending on the adapter used, SAP provides the ability to read and write these message header data/attributes. These attributes are different for each adapter type. The details of the attributes available for each adapter can be accessed in the SAP BASIS software component and the http://sap.com/xi/XI/System namespace. You can look it up in the ES Repository. The attributes are placed under the corresponding adapter type, so to access any attribute related to the file adapter you will need to use the http://sap.com/xi/XI/ System/File namespace. For the JMS specific adapter attributes, use the http:// sap.com/xi/XI/System/JMS namespace. Some of the attributes of the file adapter include the following: 왘 FileName 왘 FileEncoding 왘 Directory 왘 FileType 왘 SourceFileSize 왘 SourceFileTimeStamp 왘 SourceFTPHost These attributes can be accessed and manipulated from the mapping by using a user-defined function (UDF). An example of a UDF to overwrite the value in the filename attribute of the file adapter can be seen in Listing 5.1. DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters(). get(StreamTransformationConstants.DYNAMIC_CONFIGURATION); DynamicConfigurationKey fileName = DynamicConfigurationKey. create("http://sap.com/xi/XI/System/File","FileName"); conf.put(FileName, "foo.txt"); Listing 5.1 UDF to Overwrite the Value of the Filename Attribute of the File Adapter To make the new overwritten filename value affect your communication (receiver), you will need to activate the ASMA on the communication channel. Doing so will make the receiver communication channel use the new value of the filename attribute to write the file. To do this, proceed as follows: 159 5.2 5 Working with the Integration Directory 1. Open the communication channel (sender or receiver) in question. 2. On the Advanced tab, select the Use Adapter-Specific Message Attributes. See Figure 5.11 for a communication channel configuration example. Adapter Types 5.3 Adapter Types SAP provides a set of standard connectivity or adapter features. We can classify them in four different categories, which will be explored in the subsequent sections. 5.3.1 Technical Adapters to Enable Communication with Other Systems (SAP or Third-Party Systems) Some of the adapters that make up this category are included in Table 5.2. A short explanation of what they are used for is also included. Adapter Name Short Description and Use File/FTP or FTPS Enables the sending and receiving of the content of a file. For a sender communication channel, the file should not be read-only. JDBC The JDBC adapter type enables you to connect to a database system. The adapter is also responsible for converting from the database-specific format to XML and vice versa. Figure 5.11 The Adapter-Specific Message Attributes Enabled in the Communication Channel After activating the Adapter-Specific Message Attributes checkbox, all the attributes selected will be available in the dynamic configuration and can be read and modified. The dynamic configuration can then be used to change the name of the file to be written in a receiver communication channel. As a result of activating the ASMA (see Figure 5.12), the dynamic configuration now contains details about the filename, file size, file type, directory, and the timestamp of the file, details that were picked up by the file communication channel. You will need to add the concerned database data drivers. JMS Enables the transfer of data to and from a JMS provider. You will also need to load and package the necessary vendorspecific JMS drivers. SOAP Makes it possible to consume and provide web services, based on the SOAP protocol. HTTP_AAE This is a specific HTTP adapter build for the Advanced Adapter Engine. It transports a message payload in the HTTP body, and the XI message header attributes are moved across as URL parameters. Mail Enables the sending and reading of emails. It is also possible to use the SMTP mail server capability to exchange SMD and faxes. Marketplace The marketplace adapter enables conversion between XI and HTTP messages containing an MML message. Table 5.2 List of Technical Adapter Types Available in SAP PO 7.4 Figure 5.12 Impact of Activating the ASMA on the Dynamic Configuration 160 161 5.3 5 Working with the Integration Directory 5.3.2 Application Adapters to Enable Communication with an SAP System Integrated Configuration 5.3.4 Third-Party-Developed Adapters Adapter Name Short Description and Use Some SAP partners have developed adapters to cover industry standards that are currently not supported by SAP’s own set of adapters. Some of these thirdparty adapter suppliers include Seeburger AG (www.seeburger.com), Informatica (www.informatica.com), and iWay Software (www.iwaysoftware.com). To get more details about the list of adapters provided by each of these companies, check their websites. RFC Enables the processing and execution of RFCs using the Advanced Adapter Engine Extended (AEX). In the case of a sender communication channel, the RFC adapter can be used to convert RFC calls from a sender to XML messages. 5.4 There are a couple of options to connect to and exchange messages with an SAP backend. Table 5.3 lists the adapters that enable you to achieve the goal of communicating with an SAP application. IDoc_AAE This is a specific IDOC_AAE adapter build for the Advanced Adapter Engine Java-only stack. It facilitates sending and receiving IDoc messages with an SAP applications system. The RFC adapter is based on the RFC protocol. In the background, SAP PO converts IDocs to XML messages. Proxy (SOAP with XI 3.0) Depending on the SAP application server used, ABAP or Java proxies can be used to communicate with it. Messages running via the proxy method use SOAP over HTTP. Table 5.3 List of Adapter Types Available to Communicate with SAP Application Systems in SAP PO 7.4 5.3.3 SAP Industry Adapters These are adapters responsible for supporting communication with some industry-specific standards. Table 5.4 lists the available adapters and explains the standards they cover. Adapter Name Short Description and Use RNIF 2.0 and 1.1 (RosettaNet) RNIF stands for RosettaNet Implementation Framework. It supports the RNIF standard protocols versions 1.1 and 2.0. CIDX (RNIF 1.1) This adapter supports a standard for the chemical industry. It enables the exchange of data between businesses in the chemical industry. Integrated Configuration For those familiar with the SAP PI dual stack, you surely remember the days when using the “classic” way of configuring interfaces was the only way to build interfaces. It was necessary to create a number of objects and link them together. These objects included the following: 왘 Sender agreements 왘 Receiver determinations 왘 Interface determinations 왘 Receiver agreements You don’t need to go through that pain anymore—at least if you’re like us, lazy and willing to let the technology do as much as possible. In a single stack, the integrated configuration (ICO) provides an integrated and simpler way to configure your flows to be run on the Advanced Adapter Engine. Introduced in SAP PI 7.1 EHP 1, the ICO enables the use of the local processing capability of the AEX and provides increased performance. The higher performance of the message throughput is easily achieved by avoiding going through the ABAP stack. The ICO provides all the features and functionalities that the classic ABAP configuration used to have. See Table 5.5 for the ICO steps and their equivalent classic configuration steps. Table 5.4 List of Adapter Types Available to Support Industry Standards in SAP PO 7.4 162 163 5.4 An organization’s ability to learn, and translate that learning into action rapidly, is the ultimate competitive advantage. —Jack Welch 10 Creating Your First SAP Business Process Management Process In this chapter, you will learn how to build, configure, and deploy a process using SAP Business Process Management (BPM) from the ground up. The previous chapter introduced you to the BPMN and how to use it to depict and model your process. This chapter will go a step further and focus more on the implementation side of SAP BPM. By the end of this chapter, you should have a firm understanding of how to build human- and system-centric processes from scratch. Let’s get started with the development environment that you’ll be using. 10.1 SAP BPM Positioning and Development Environment SAP Process Orchestration (PO) includes both the Advanced Adapter Engine Extended (AEX) and SAP BPM. These two products together form a dream team. For any team to operate optimally, the roles of each player need to be clear and well-defined. Furthermore, each player’s role needs to be well integrated with the other team players in order to cover the full spectrum of activities to be performed by the team. 10.1.1 Positioning Let’s define upfront the positioning and role of SAP BPM within SAP PO. Figure 10.1 depicts the positioning of both AEX and SAP BPM. 309 10 Creating Your First SAP Business Process Management Process SAP BPM Positioning and Development Environment User Interface Layer SAP Process Orchestration SAP Composition Environment SAP BPM SAP BRM Service Registry Enterprise Service Repository SAP AEX SAP Backend Legacy (Non-SAP) B2B Service-Enabled Applications Figure 10.1 Positioning of the AEX and SAP BPM The next sections explore the positioning of AEX and SAP BPM in more depth. business processes using one platform. It allows organizations to create new processes based on existing applications and functionality. SAP BPM enables the creation of new types of processes that combine different types of sources of information, technologies, and platforms, which is why the SAP BPM layer can be placed on top of the AEX layer. From the SAP BPM layer, it is now possible to build different human- or system-centric processes that can use individual services exposed by the AEX. The SAP BPM layer can consume the AEX services and orchestrate them. SAP BPM can call the first service in AEX and use its response as the input of the next service call. This approach lets SAP BPM leverage and reuse the services already provided by SAP PI and therefore saves costs. This positioning lets the SAP BPM layer focus on the composition and bundling of services together to provide new functionalities and leaves the integration-related work (connecting, routing, and mapping) to the AEX, which means that direct connection to backend applications from the BPM layer should be avoided (when possible). It is better to consume functionality provided by the backend applications via the AEX. This positioning choice and approach uses each component for the role that it performs best; by so doing, it creates the foundation for a robust architecture. Advanced Adapter Engine Extended The AEX is placed between SAP BPM and the backend applications. The backend applications layer represents any SAP or legacy application providing a particular business content and functionality to an organization. These applications can be connected to or integrated using a diverse range of connectivity adapters that are provided by AEX. The AEX layer links all of the message traffic and the exchange of data between applications. It plays the role of enterprise service bus (ESB) and performs tasks like routing and message transformation. The AEX exposes the backend application’s functionalities as services or interfaces. The services exposed by the AEX are presented in widely accepted communication standards and protocols and are ready to be consumed by other applications. We extensively covered the subject of the AEX in the first eight chapters of the book. SAP BPM 10.1.2 Setting Up Your Development Environment In order to perform your development activities, you will need to install the SAP NetWeaver Developer Studio, which is the IDE to be used to develop SAP BPM. SAP NetWeaver Developer Studio can be downloaded from the SAP Marketplace, or go to http://wiki.scn.sap.com/wiki/display/Java/NWDS+Download+links. Tip It’s important to download an SAP NetWeaver Developer Studio version that matches the version of your SAP PO installation. Be aware that if there is a mismatch between SAP NetWeaver Developer Studio and the server version, then you will be able to build your process in design time but may face issues during deployment time. At the time of writing, SAP NetWeaver Developer Studio versions for NetWeaver 7.4 are not available. You will need to use SAP NetWeaver Developer Studio 7.31 for SAP NetWeaver 7.4. However, we strongly recommend that you use SAP NetWeaver Developer Studio 7.31 with the latest service pack (SP) version available. SAP BPM provides a complete suite of BPM development and administrative tools to help organizations design, model, execute, monitor, manage, and analyze 310 311 10.1 10 Creating Your First SAP Business Process Management Process SAP BPM Positioning and Development Environment Given that SAP NetWeaver Developer Studio is a local development client, after installing it on your local computer it will need to be configured to point to SAP PO’s server. For an SAP BPM implementation, the most important settings to be configured in SAP NetWeaver Developer Studio are the SAP AS Java and the Enterprise Services Repository (ES Repository) connection. SAP AS Java In the next sections, we will describe how to determine your SAP NetWeaver version in order to download the correct SAP NetWeaver Developer Studio version. We will also explore how to configure each one of these settings. 1. After launching SAP NetWeaver Developer Studio, go to the Window tab in the top menu. Finding Your SAP PO Version 3. From the pop-up screen, select SAP AS Java on the left side, and then click on Add on the right side of the popup screen. To find the version of your SAP PO installation, proceed as follows: 1. Go to http://:/nwa/sysinfo, where is the hostname of your SAP PO installation and is the port number of your installation. The port number (if unchanged from the default) will be 5XX00, where XX is the SAP system number. This configuration helps to point SAP NetWeaver Developer Studio to the SAP PO server where the modeled and developed BPM processes will need to be deployed. Perform the following actions to configure it in SAP NetWeaver Developer Studio: 2. Select the Preferences option. 4. You are then prompted with a new window in which you need to provide the hostname and instance number of the SAP PO server (see Figure 10.3). 2. On the resulting screen, select the Components Info tab. 3. Here, a table is presented with the list of all existing software components. You will need to filter for the SERVERCORE or J2EE-FRMW component and sap.com vendor. The SAP NetWeaver version can be found in the Version column. Looking at the installation presented in Figure 10.2, notice that the version is 1000.7.31.8.6.20131030153700. The most important part of this is 7.31.8, which means that we are running SAP NetWeaver or SAP PO release 7.31, SP 8. Figure 10.3 Configuration of the SAP AS Java in the SAP NetWeaver Developer Studio 5. Click OK. You will then see your newly added SAP PO server in the SAP AS Java list. Be aware that you are able to add multiple SAP PO servers in this list. You can further set the server that you are currently using as the default system. Figure 10.2 Finding your SAP PO Version from the System Information and Components Info Page 312 313 10.1 10 Creating Your First SAP Business Process Management Process After the preceding steps, we are finished with this part of the settings configuration. Let’s now proceed with the configuration of the ES Repository connection. Enterprise Services Repository Connection This is an optional setting and is only necessary when the SAP BPM process to be developed requires objects from the ES Repository to be imported in SAP NetWeaver Developer Studio. Perform the following actions to set up the connection to the ES Repository: 1. From the top menu of SAP NetWeaver Developer Studio, go to the Window menu item. 2. Select the Preferences option. 3. Navigate to the Web Services section (on the left side of the screen), and expand the node (see Figure 10.4). Implementation of a BPM Process 10.2 Implementation of a BPM Process This section covers different aspects that come into consideration when implementing an SAP BPM process. 10.2.1 Demonstration Scenario The best way to demonstrate how to implement an SAP BPM process is to use a business process example. Let’s start by describing our fictitious process requirements and the steps involved in completing them. In our scenario, let’s assume that the process expert of your organization approaches you (the SAP BPM expert) to implement the HR department’s process for a company car for new employees. The process has already been drawn for you using the flowchart diagram represented in Figure 10.5. 4. Choose Enterprise Service Browser. 5. Add the parameters shown in Figure 10.4. More than 50 miles Start Capture HR (by HR personnel) Managerial approval (by manager) Approved? No Yes Distance from home? Order car at SpotLeaseCars Send mail to HR personnel Less than 50 miles Save employee data (in SAP HR) End Figure 10.5 Flow Diagram to Represent the Hiring Process As represented in the chart, the process to be implemented is made up of the following steps: 1. The HR personnel captures the data of the new employee in the company’s portal. Figure 10.4 Connection Settings to the Enterprise Services Repository 314 2. Based on how far away from the office he or she lives, a company car should be requested. In cases in which the employee lives 50 miles or more away from the office, he or she has right to a company car. 315 10.2 10 Creating Your First SAP Business Process Management Process 3. For employees with the right to a company car, approval from the manager is needed. 4. If the manager approves the request, a car is ordered. A car can be ordered by calling a web service of the car lease company SpotLeaseCars. 5. If the manager rejects the request, then an email is sent to the HR personnel. 6. At the end of the process, all of the employee’s data needs to be saved in SAP HR. Now, it is time to draw the process in BPMN 2.0 using the SAP NetWeaver Developer Studio tool. After reading Chapter 9, you should be able to easily produce a BPMN representation for yourself on paper. See a potential BPMN representation of the process in Figure 10.6. Notice that in our process we have identified four roles: HR Personnel, SpotLeaseCars, Manager, and SAP HR. Implementation of a BPM Process 10.2.2 How to Build a BPM Process: Steps Overview Before diving deep into the implementation, let’s review the main tasks to be performed from a high-level perspective: 1. Switch to the right perspective in SAP NetWeaver Developer Studio. 2. Create a new project in SAP NetWeaver Developer Studio. 3. Model your process in BPMN, or reuse an existing model. 4. Create or import relevant message structures (data types, message types, or services interfaces). 5. Build mapping where relevant. 6. If the process contains a human task, then assign the human tasks, and generate or build the required user interfaces (UIs). 7. Build and deploy your process. 8. Configure the deployed process in SAP NetWeaver Administrator. 9. Run or use your process. In the next sections, we will explore each of these high-level steps in more detail. 10.2.3 SAP NetWeaver Developer Studio Perspective Concept Because SAP NetWeaver Developer Studio has been built on top of Eclipse (a well-known Java IDE), it has the same main functionalities and general features. To perform SAP BPM-related activities, you will need to be in the right perspective in SAP NetWeaver Developer Studio. A perspective is a visual container for a set of views and editors, generally put together to help the developer easily implement a specific type of development component. In other words, with a perspective the developer has access to all the functionalities required for his development activities. To perform SAP BPMrelated activities, three perspectives can be used for specific situations. Refer to Table 10.1 for more details. Figure 10.6 BPMN Representation of the Employee Scenario Remember that this scenario will be used as a reference in the next sections, when the different notions and concepts of SAP BPM are explored. 316 317 10.2 10 Creating Your First SAP Business Process Management Process Perspective Name Description and Role Composite Designer Used for the development of composite applications. The scope of what can be built in this perspective spans beyond just SAP BPM. You can also build web-based applications, business rules, and much more. From this perspective, you can jump to the Process Development perspective—discussed in the next table row. This perspective is mostly used by developers. Process Development Can be used to develop a runnable SAP BPM process from scratch or from an existing BPMN—possibly built using the Process Modeling perspective. In this perspective, all development activities, such as building and deploying SAP BPM processes, can be performed. The processes and models built from this perspective are marked with the status Released to Build. This perspective is generally used by developers. Process Modeling This perspective is used most often by process experts to model their processes in BPMN. It is important to note that the BPMN models created from this perspective are marked with the status Draft and thus cannot be compiled or deployed to the SAP PI server. After the process expert has finished modeling the BPMN from here, it is sent to the developer to be used as the starting point of his development—using the Composite Designer or Process Development perspective. Table 10.1 SAP BPM-Related Perspectives in SAP NetWeaver Developer Studio To change or switch perspectives in SAP NetWeaver Developer Studio, proceed as follows: 1. On the top-right side of the screen, click on the Open Perspective icon. Then, select Other... (see Figure 10.7, 1). 2. You will then see the Open Perspective screen, giving you the choice to select any of the existing perspectives in SAP NetWeaver Developer Studio. As stated earlier, depending on what you plan to achieve, you can choose from among the Composite Designer, Process Development, and Process Modeling perspectives. Figure 10.7 2 shows some perspective selection possibilities for SAP NetWeaver Developer Studio. Based upon our demonstration scenario, you 318 Implementation of a BPM Process need to create a composite application that will include a BPM process and Web Dynpro (to support the human tasks). Therefore, select the Composite Designer perspective and click OK. 3. SAP NetWeaver Developer Studio will switch to the Composite Designer perspective. You are now ready to start your development activities. Figure 10.7 How to Select a Different Perspective in SAP NetWeaver Developer Studio 10.2.4 Create a Project in SAP NetWeaver Developer Studio Given that we are creating a composite application—which will include a BPM and Web Dynpro—we will now be creating a software product. The software product will include software components that, in turn, will be made of several development components (DCs). Each DC will contain an application. To create a product, perform the following steps: 1. Right-click anywhere in the Composite Explorer, and select New Product… (see Figure 10.8, 1). 2. In the pop-up screen, fill in the product details as shown in Figure 10.8, 2. Of course, you can use your own name and vendor name. Click on the Next button. 319 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process 4. The New Software Component screen appears, in which the attributes of the software component can be filled in. Leave the default values and fill in the name of the software component (see Figure 10.9, 2). Notice that the vendor name is automatically copied from the product; you can change it if you so wish. Then, click on Next. 5. On the next screen, a list of software component dependencies are presented. The list of selected dependencies will determine the types of DCs that are allowed to be created in this software component, so it’s important to pay special attention to this step. By default, all existing dependencies are selected. In this case, leave the default values: don’t change them. Click on Next. Refer to Figure 10.10, 1. Figure 10.8 Creating a Product for the Composite Application 3. On the next screen, you are asked to select the software components that will be included in your product. Depending on how you want to organize your application, you could use an existing software component or create a new one. In this case, choose to create a brand-new software component by clicking on the New Software Component ... button below the screen (see Figure 10.9, 1). 6. You can specify the software component version, and you can specify the desired value in Release, Support Package , and Patch Level. These numbers can help provide visibility and traceability for applied patches and the software lifecycle in general. You can leave the default values for now, and click on Finish. Refer to Figure 10.10, 2. Figure 10.10 Software Dependencies Selection and Software Component Version Specification Figure 10.9 First Two Steps of the Software Component Creation 320 7. Now that the creation of the new software component is finished, you are brought back to the original New Product screen. The newly created software component is automatically selected. It is also possible to create additional software components from here if you so desire. For now, stick with this new software component. Click on Next. Refer to Figure 10.11, 1. 321 10.2 10 Creating Your First SAP Business Process Management Process 8. On the next screen, you can select the technologies that you will need in your product. For every technology that you select, a DC will be created. Refer to Chapter 17, Section 17.1 for more details on the development component concept. For those familiar with other Java IDEs, you can think of a DC as a development project. Click on Finish. Figure 10.11 (2) depicts this action. For an explanation of what each technology choice can be used for, refer to Table 10.2. Implementation of a BPM Process Name Description Web Dynpro Used for the development of Web Dynpro components as the technology to develop your UIs or screens. From the context of SAP BPM, it can be used to develop web pages to support human tasks and be linked to the UWL. Web Dynpro is a fully fleshed out UI technology alternative to Visual Composer. Note that Web Dynpro is an SAP proprietary technology. JSP/Servlet Used to develop a UI using JSP or Servlet. JSP and Servlet are fully fleshed out UI technologies and are not SAP proprietary technologies. Business Logic Composite Application Framework (CAF) Used to support composite application development. Dictionary Used to create simple types, data structures, and tables that will be created in the database on SAP PO’s server after deployment. SAP NetWeaver Developer Studio has a Dictionary perspective that provides all necessary views to enable the development of a dictionary DC. Service composition The service composition DC can be used to develop components capable of orchestrating data based on different service interfaces. This orchestration facilitates the provision of a single composite service. The Service Composer perspective eases these development activities. Rules composer This technology should be chosen when you intend to develop business rule(s) based on SAP BRM. Figure 10.11 Selection of Technology Types to Be Supported by the Product Name Description Process Process modeling To be selected for creating an SAP BPM development component. User Interface Visual Composer Intended for the use of Visual Composer as the technology to develop your UIs or screens. From the context of SAP BPM, it can be used to develop web pages to support human tasks and be linked to the UWL. This is a lightweight alternative to Web Dynpro. Note that Visual Composer is an SAP proprietary technology. Table 10.2 List of Technology Selections Possible while Creating a Product (Cont.) 9. A new screen in SAP NetWeaver Developer Studio opens with an overview of all the development components that have been created as a part of your product. The DCs are grouped into their respective categories. You are now ready to start developing the different development components. An example of the results for the composite application creation is presented in Figure 10.12. Table 10.2 List of Technology Selections Possible while Creating a Product 322 323 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process Attribute Name Description New Pool The pool object represents a process participant, and it also serves as a container for a single process. There can be one or more pools per process flow. Although it is not mandatory to use a pool, it is recommended to model your processes using a pool that encapsulates all the different process steps. Only one process is active at any given time (also referred to as the default pool). Figure 10.12 The Composite Designer Perspective after the Creation of a Product and Its Different Technologies Name (pool) If you decide to use a pool in your process, then you can specify a different name than the one generated by SAP NetWeaver Developer Studio. 10.2.5 Creating a Process for Your BPMN Lanes In a BPMN model, it is good practice to specify the different roles involved in the business process. You can list all roles here, separated by commas. An example entry could look like this: Manager, Employee, SAP-ECC. Project This is the project under which the SAP BPM processes need to be implemented. Because you right- clicked on the correct category during the creation, the right project is automatically selected for you. However, you have the option to change it or to create a new project. Be aware that these projects actually refer to DCs of the process type, which was created earlier during the product creation step. Now that all the required development components for the development have been created, it’s time to start the SAP BPM development activities. The first step is to create a process from which you will be drawing your BPMN model. To create an SAP BPM process, perform the following tasks: 1. On the left side of the perspective, right-click on the Process category and choose New process... (see Figure 10.13, 1). 2. You will see a pop-up screen, in which you need to specify a few attributes. Table 10.3 describes each of these attributes; fill in the details accordingly. The final result is presented in Figure 10.13 2. Table 10.3 Attributes Required to Create an SAP BPM Process (Cont.) Attribute Name Description Name (process) The name of your SAP BPM process. Orientation This attribute specifies how you intend to draw your BMPN model. You have a choice between Top to bottom and Left to right: 왘 Top to bottom You will be drawing or reading your model from to top to the bottom. The first step of the process will be placed on the top of the screen and the last step at the bottom of the screen. 왘 Left to right The first step of the process will be placed on the far left side of the screen and the last step on the right of the screen. This is purely a matter of personal preference. Depending on the side of the process to be modeled, one option might be better than the other. Figure 10.13 Creating a New SAP BPM Process and Maintaining Its Attributes Table 10.3 Attributes Required to Create an SAP BPM Process 3. After filling in all the attribute’s details, click on the Next button. 324 325 10.2 10 Creating Your First SAP Business Process Management Process 4. In this step, you have the option to create a new process event. A process event is a signal or trigger to start or end a process. We will be exploring triggers in Section 10.3.1. For now, keep the default value. By default, an empty signal is created, which means that you will need to manually start the process. This default trigger is called DefaultService_Empty. Click on the Final button (see Figure 10.14, 1). 5. Finally, you are presented with the Overview screen in the Composite Designer perspective. As shown in Figure 10.14 (2), a process has been added to your product. Implementation of a BPM Process Perform the following actions: 1. Double-click on the Hiring_Employee block under the Process category. You will see another screen with a basic process—including a pool containing all of the roles required by the process in the form of lanes. Furthermore, the process also has a dummy (or default) start and end event for the process. 2. Let’s now modify this default process by modeling the BPMN to suit our needs. Right-click on the connection line between the start and end event. Select Delete to remove it (see Figure 10.15). Figure 10.15 Remove the Connection Line between the Start and End Event Activities Figure 10.14 New Process Event and Overview of the Product after the Creation of a Process 10.2.6 Creating a BPMN Model After reading Chapter 9, you should have a good understanding of BPMN and should be equipped with the basic concepts needed to start modeling your process. Refer back to Chapter 9 if you need a refresher before proceeding. 326 3. Mouse over the Start Event Activity icon on the BPMN (as shown in Figure 10.16), and you will see menu options around the start event. These menu options are also sometimes referred to as speed buttons. The speed buttons are used to rapidly gain access to the BPMN objects and to speed up the modeling of the process (see Figure 10.16). It is also possible to delete the object by selecting the Delete icon on the top of the menu. Alternatively, you can add any BPMN objects from the palette on the right side of the Composite Designer perspective. 4. Select the Human activity from the speed buttons around the start activity (see the red circle in Figure 10.16). A Human activity represents the task to be per- 327 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process formed by a human. In our scenario, the Human activity will represent the task of the HR personnel capturing the new employee’s data. Figure 10.17 Using the Properties of the Human Activity to Name It 8. Repeat the same steps to place more BPMN elements until the entire BPMN process is complete. The final result BPMN process is presented in Figure 10.18. Note that the Notification activity is used for sending an email to the HR personnel. Figure 10.16 BPMN Element Added from the Speed Buttons or Palette 5. The selected Human activity is placed in the process and automatically linked to the start event with a connection line. You are then able to grab the new BPMN element and drag it to the right lane. The Human activity that was just added to the process needs to be placed under the HR_Personnel lane. You are also able to select the Human activity and maintain its properties. The Properties window automatically appears at the bottom of the perspective. Under the Name attribute, rename it to Enter Employee Data (see Figure 10.17). 6. Select the Human activity again, and use the speed buttons to place a gateway on the process. Make sure to select the Exclusive gateway. Give a new name to the newly added gateway. 7. Select the exclusive gateway step on the BPMN, and use the speed buttons to add another Human activity for the manager’s approval. 328 Figure 10.18 Completed BPMN Representation of the Process, as Drawn in SAP NetWeaver Developer Studio 329 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process We have now completed our BPMN process, but you might have noticed that in the process we have drawn there are some errors; note the red marks on the left side of some of the BPMN elements. The red marks are a quick way to spot the problem areas in your BPMN. If you mouse over the red marks, then you will see the details of the errors at hand. You can alternatively select the Problems tab at the bottom of the perspective, as shown in Figure 10.19. Figure 10.20 Structure of the SAP BPM Process Project Tree The tree structure of an SAP BPM process DC is made of many folders, as depicted in Figure 10.20. Table 10.4 explains the purpose of each folder. Folder name Description Process Contains your process. Notice that it is possible to create multiple processes in the same project. Tasks This folder will contain tasks related to human activities. Event Triggers Holds the triggers that can start a process or be used to trigger an intermediary event in a process. More details about intermediary events will be provided later in Section 10.3.1. This folder also contains escalations. Figure 10.19 Finding the Details of the Errors for the SAP BPM Process Reporting Data Sources Holds data sources used for reporting purposes in SAP BPM. Note You can navigate your SAP BPM process and project tree by expanding Process, DC name (in this case, [localDevelopment] pr_hireemployee/pr/pm), Process Modeling, and Processes in the Composite Explorer view (left panel) of the Composite Designer perspective. You then need to double-click on the process that you would like to view (see Figure 10.20). Rules Sets Contains a flow ruleset or a ruleSet. Be aware that it is possible to embed a rule in the SAP BPM project instead of having a separate rule project. Functions Can hold expression functions, mapping functions, and new Enterprise Java Bean (EJB) functions. These are custom functions that can be developed to enhance existing functionality. More details about creating functions will be provided later in section Section 10.5.4. Table 10.4 List of Folders/Components Contained in a Process DC and Their Roles 330 331 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process Folder name Description Creating Data Structures Data Types Holds XSDs that have been created or imported from other sources, such as the ES Repository or an external file. Service Interfaces Holds WSDLs that have been created as part of the process or imported from other sources, such as the ES Repository or an external file. It can also hold Remote Function Call (RFC) structures. Based upon our demonstration scenario, we need to create an XSD to hold the data to be captured by the HR personnel. These two standards are used to define the structures required for holding data. More details can be found from the W3C at www.w3c.com. To create an XSD in SAP NetWeaver Developer Studio, proceed as follows: Table 10.4 List of Folders/Components Contained in a Process DC and Their Roles (Cont.) 1. On the left panel of your perspective, expand the pr_hireemployee/pr/pm DC, then expand Process Modeling. 10.2.7 General Configuration of Your BPMN Model 2. Right-click on Data types, and select New XSD.... The XSD Editor will be automatically launched, allowing you to start creating the new structure. Name your XSD EmployeeData.xsd, and then click on Finish. In the previous sections, we modeled our process using BPMN. Now, it’s time to configure the different BPMN elements. In order to configure the process, we will create and add other supporting elements. In this section, we will explore these supporting elements and explain some concepts that play a role in such a configuration. 3. Select the Design tab in the bottom-left corner, as indicated in Figure 10.21. Right-click on the Elements section, and select Add Element from the dropdown menu. Data Objects Data objects are artifacts used to store process-related data. In a typical process, data is modified and changed at different steps of the process. Different statuses need to be maintained as the process is executed. A data object is linked to a data structure or data type. These data types can be simple or complex and are supported by an XSD. The XSD needs to be defined according to the business object structure. SAP BPM provides the option to directly create an XSD in SAP NetWeaver Developer Studio. The XSD can alternatively be imported from an external source, such as the ES Repository or the local file system. In most cases, it is common to import a WSDL from a service interface maintained in the ES Repository. Given that data objects depend on data types, we will need to create the required XSD and, where relevant, import the WSDL. (XSD stands for XML Schema Definition and WSDL for Web Services Description Language.) Most times, when your process needs to call an external web service, it becomes necessary to import the relevant WSDL from the ES Repository. This basically means that the web service is first imported into the ES Repository, because SAP PI/AEX needs to act as the broker or ESB. Therefore, the web service calls from SAP BPM processes will transit via the AEX. 332 At the end it needs to point to EmployeeDataType. Figure 10.21 Adding a Type in the Data Type Editor in SAP NetWeaver Developer Studio 4. You need to maintain the properties of the new XSD element by renaming it to EmployeeData. This new element needs to point to a complex data type that represents the total structure of the employee. Because the complex data type does not yet exist, leave the data type set to string for now. 333 10.2 10 Creating Your First SAP Business Process Management Process 5. You might see a pop-up asking you to accept the changes. If you do, then just click on the Accept button. 6. Create a data type by right-clicking on the Types section and selecting the Add Complex Type option. Name the new data type EmployeeDataType. 7. You might see a pop-up asking you to accept the changes. If you do, then just click on the Accept button. 8. Double-click on the newly created EmployeeDataType to maintain its elements. It opens a new view, in which you can add new elements by using the context menu. Name each element and give each a type. Note that you can use the dropdown to select the correct data type (Simple or Complex). 9. Now that the EmployeeDataType has been created, go to the main view of the XSD Editor and assign EmployeeDataType as the data type of the EmployeeData element. 10. Save all changes. You are now ready to use the XSD. Note that when choosing a data type, you can choose data types that have been predefined by SAP. You’ll see, however, that the initial dropdown list only includes the following subsets: boolean, date, dateTime, double, float, HexBinary, int, string, and time. If you want to explore an extended list of provided data types, then you need to select the Browse option from the dropdown, as indicated in Figure 10.22. You can also create a new data type of your own via the New… option. Implementation of a BPM Process Importing XSD and WSDL Given that we need to call two web services in our demonstration scenario, we need to import their corresponding WSDLs into our project. To import a WSDL, proceed as follows: 1. From the SAP NetWeaver Developer Studio menu, select File 폷 Import. 2. In the screen that appears, select XSD under the WSDL node, and click on Next. 3. You can choose one of the following options from which to import the WSDL file: 왘 File System Choose this if your WSDL is available on your local file system. You will then need to browse to the WSDL file and select Import. 왘 Remote Location Choose this in cases in which the WSDL is provided by an external system and you have the WSDL link or URL. In this situation, enter the URL of the WSDL and select Import. 왘 Enterprise Service Repository Choose this if you want to import the WSDL via a service interface that exists in your ES Repository. You will then need to enter your credentials for the SAP PO system. The next step will be to navigate to the service interface in question and click on Next. For simplicity’s sake, let’s assume that you already have the XSD saved in your local file system. 4. Click on Finish. The imported WSDL and all its related XSDs are now available in your project, under the Data Types folder. These steps need to be repeated for each web service call step in your process— to order the car at the lease company (SpotLeaseCars) and to save the data in the SAP HR system. Process Pool Properties After the BPMN has been modeled and the necessary XSDs have been created or imported, it’s time to move to the next step, configuring the pool associated with the process. The pool needs to be configured to specify its attributes. To configure Figure 10.22 List of Available Core Data Types 334 335 10.2 10 Creating Your First SAP Business Process Management Process the pool, make sure to select it in the BPMN diagram. After selecting a pool, its properties will be displayed at the bottom of the screen, as shown in Figure 10.23. Figure 10.23 Pool Properties Displayed in the Properties Tab Implementation of a BPM Process Attribute Name Administrators Principals The Administrators category is used to define a process’s Pool Administrator, which can perform administrative tasks on the process, such as canceling, suspending, or resuming. A minimum of one administrator is mandatory in the process. While defining an administrator, you can choose between selecting an administrator directly from the UME of the SAP PO server or using an expression. The administrator subject is covered in more detail in the next section. Expression When using an expression to define the pool administrator, it’s possible to make use of default functions provided by SAP to select the correct users or administrators during runtime. Use the getPrincipal function to specify the administrator. User Texts Variables Table 10.5 lists the attributes contained in the properties and explains their roles. Attribute Name Description General Name Name of the process. It is defined while creating a new process, so it is not an editable field. Description A free text field in which you can write any text to describe the process. Make this pool active Selects the current pool and makes it active. This checkbox is checked by default. Enable principle propagation This option needs to be checked; the details of principals or users participating in the process are securely propagated and used further in the process. Table 10.5 A Pool’s Attributes and Their Roles 336 Description Parameterized Texts Provides the feature of defining variables to hold content that can later be used in the Parameterized Texts field. A variable has a data type and can be assigned a value by using an expression. You can use this to define a text that will be shown to the user in the portal or UWL. The relevant text includes a subject and description. It is possible to make the text dynamic by embedding variables or parameters in your text. You will need to make use of braces ({}) to refer to a variable. Table 10.5 A Pool’s Attributes and Their Roles (Cont.) Administrator via Principals When maintaining the attributes of the Administrator tab, you can define the administrator(s) of a pool via the notion of principals. A principal represents any user, user role, or user group responsible for some aspects of the process. As 337 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process explained in Table 10.5, it is possible to directly choose the principals who can act as administrators of your process responsible from UME of your SAP PO server. 4. After set of results is returned, you can select the desired results and move them to the right side of the screen by clicking on the Add or Add All button. It is important to make sure that the connection to the AS Java server is configured. The steps required to connect SAP NetWeaver Developer Studio to the AS Java server were described in Section 10.1.2. It is also required that the user used to connect to the AS Java has the MY_SPML_FULL_ACCESS_ROLE role assigned. Otherwise, the server will throw an exception when attempting to look up principals. 5. Click on the OK button when you have finished your selection. To choose the desired administrator, perform the following steps: 1. Click on the Choose button on the right (see Figure 10.24, 1). 2. From the pop-up screen, you can select principals based on roles, users, or groups (see Figure 10.24, 2). You can then enter the desired keyword and click on the Search button. SAP NetWeaver Developer Studio must be able to connect to the SAP AS Java for this step to work. 3. A new pop-up appears, requesting login details. Note You can select multiple users (principals) as administrators for your pool. Any of the selected principals can act as administrators for the pool. When searching the desired principals to be configured as the administrators of the pool, you might see the error You are not authorized to search principals from UME. To fix this error, you will need to add the MY_SPML_FULL_ACCESS_ROLE role to the profile of the user used to connect to the UME. Alternatively, you can apply SAP Note 1647157. It goes without saying that specifying a principal as a specific user might not always be a good approach. This is because you are required to know the names of the users in advance—that is, during the development time. This approach does not provide much flexibility. If you hard-code the name of a specific user in a task, then only this specific person can perform the task in question. What if he or she is absent? Be aware that changing this attribute’s value requires a transport—not very handy if your process is in production and you need to change it. A better approach would be to use roles or groups. In that way, you only need to add users to the appropriate role or group, and they will automatically be able to administer the process. Assigning a role to a user or adding the user to a group can be directly performed in the UME of the required environment (e.g., production) and does not require objects to be transported. As a result, this approach has less risk and offers more flexibility. Administrator via an Expression As mentioned in Table 10.5, you can use an expression instead of a principal, which can be an easy and flexible way to access the principals without having to connect to the server. Refer to Figure 10.25 for an example of an expression that assigns all users with the ouradministrators role as administrators of the process. Figure 10.24 Steps Involved in Configuring UME Principals as Administrators for the Pool 338 339 10.2 10 Creating Your First SAP Business Process Management Process Implementation of a BPM Process The expressions listed in Table 10.6 can be found under Rules and Functions 폷 Principal, as shown in Figure 10.26. Figure 10.25 Defining the Pool Administrator Some expressions you can use are listed in Table 10.6. Expression Description getPrincipalByUniqueName The function expects two input parameters of type string. The format looks like this: getPrincipalByUniqueName(string uniqueName, string identityType). The parameter identityType represents a principal type. Possible values are "user","group", and "role". The parameter uniqueName represents the actual unique name of the user, group, or role in your AS Java UME. The function looks up the principal in the UME of the AS Java during runtime. For example: getPrincipalByUniqueName(“John”, “user”) getPrincipal The function only expects one input parameter of type string. This input represents the principal ID without specifying whether the principal is of type user, role, or group. In cases in which users, groups, or roles in your UME have the same name, you might end up with unexpected results. It is important to be aware of this fact and to take it into consideration. This function works in a different way than the function getPrincipalByUniqueName, which is more specific. Also note that the getPrincipal function expects a UME “technical name” as a value. Figure 10.26 Selecting Principal Expressions from the Rules and Functions Remember that when using the getPrincipal or getPrincipals expression, you are required to use the technical name or unique ID field of the principal, as indicated in the UME. Refer to Figure 10.27 as an example of how to find this information. The following is an example of a unique ID for each principal type: 왘 USER.PRIVATE_DATASOURCE.un:john 왘 ROLE.UME_ROLE_PERSISTENCE.un:Administrator 왘 GRUP.PRIVATE_DATASOURCE.un:NWDI.Developers For example: getPrincipal(“John”) getPrincipals This function takes as an input an array of type string. The function then returns a list of principals. All of the returned principals will therefore be able to administer the process. For example: getPrincipals(("USER.PRIVATE_DATASOURCE.un:John", "USER.PRIVATE_DATASOURCE.un:Roberto")) Table 10.6 Expressions Used to Retrieve Principals Figure 10.27 Finding the Unique ID for a Principal in the UME 340 341 10.2 10 Creating Your First SAP Business Process Management Process BPMN Flow Objects We explored BPMN flow objects in Chapter 9. In the next sections of this chapter, we will dive into the technical aspects and configurations of these BPMN objects within the context of SAP BPM. Properties All flow objects of an SAP BPM process have property attributes that are used to configure their behaviors. Depending of the type of flow object in use, the attributes to be maintained might differ. By selecting any BPMN flow object, a Properties view is loaded that contains its attributes. Every BPMN object contains a General tab. This tab in the Properties view contains descriptive information fields, such as for the Name and Documentation of the start event (see Figure 10.28). Figure 10.28 Flow Object Details in the General Tab Format Lanes Any BPMN model can be formatted to rearrange its layout to make it more readable. A model can be easily formatted by bringing up the context menu on its pool or lane and selecting the Format Lane option, as shown in Figure 10.29. Figure 10.29 Formatting a BPMN model to Rearrange its Layout and Make It More Readable 342 Contents Foreword ......................................................................................................... Acknowledgments ............................................................................................ Introduction ..................................................................................................... 19 21 23 PART I Getting Started 1 Introduction to SAP Process Orchestration .............................. 29 1.1 1.2 1.3 1.4 1.5 2 Historical Overview and Evolution ................................................. 1.1.1 SAP Process Integration ................................................... 1.1.2 SAP Composition Environment ......................................... 1.1.3 SAP Process Orchestration ............................................... SAP Process Orchestration Components ........................................ 1.2.1 SAP Process Integration ................................................... 1.2.2 Business Process Management ......................................... 1.2.3 Business Rules Management ............................................ Architectural Overview and Positioning ......................................... 1.3.1 SAP Process Orchestration Positioning ............................. 1.3.2 AS Java System Architecture ............................................. 1.3.3 AS Java System Logical Layers .......................................... Installation Options ....................................................................... 1.4.1 Case 1: SAP Process Integration Dual Stack ...................... 1.4.2 Case 2: SAP PI Dual Stack and SAP Composition Environment in Separate Installations ............................... 1.4.3 Case 3: SAP PI Single Stack and SAP Composition Environment in Separate Installations ............................... 1.4.4 Case 4: SAP PO—SAP PI and SAP Composition Environment in a Single Installation ................................. Summary ....................................................................................... 29 30 31 32 33 33 37 38 39 40 41 44 47 47 49 50 51 51 Administration and Development Tools ................................... 53 2.1 Process Orchestration Tools ........................................................... 2.1.1 Enterprise Services Repository .......................................... 2.1.2 Integration Directory ........................................................ 2.1.3 System Landscape Directory ............................................. 2.1.4 Configuration and Monitoring .......................................... 53 55 63 65 69 7 Contents 2.2 2.3 2.4 Contents SAP NetWeaver Administrator ....................................................... 2.2.1 Availability and Performance ............................................ 2.2.2 Operations ....................................................................... 2.2.3 Configuration ................................................................... 2.2.4 Troubleshooting ............................................................... 2.2.5 SOA ................................................................................. SAP NetWeaver Developer Studio ................................................. 2.3.1 Use and Download ........................................................... 2.3.2 SAP PO and SAP NetWeaver Developer Studio ................ 2.3.3 New Functions ................................................................. Summary ....................................................................................... 70 73 74 75 76 76 78 78 79 82 83 4 Working with the Enterprise Services Repository and Registry .............................................................................. 121 4.1 4.2 PART II Advanced Adapter Engine Extended (AEX) 3 Configuring the System Landscape Directory ........................... 87 3.1 3.2 3.3 3.4 3.5 3.6 8 System Landscape Directory Components and Features ................. 3.1.1 Landscape ........................................................................ 3.1.2 Software Catalog .............................................................. 3.1.3 Development ................................................................... Registering Systems to the SLD ...................................................... 3.2.1 Connecting to ABAP-Based Systems ................................. 3.2.2 Connecting to Java-Based Systems ................................... 3.2.3 Connecting to Other Systems ........................................... Administration of the SLD ............................................................. 3.3.1 Server ............................................................................... 3.3.2 Data and Content ............................................................. System Landscape Directory Strategies .......................................... 3.4.1 Manual Export and Import of Data ................................... 3.4.2 Automatic Bridge Forwarding ........................................... 3.4.3 Full Automatic Synchronization ........................................ Tips and Tricks ............................................................................... 3.5.1 Naming Convention ......................................................... 3.5.2 Keeping Your SLD Catalogs Up-to-Date ........................... 3.5.3 Self-Registration of a Java-Based System with the SLD ...... 3.5.4 Configuring Data Suppliers from One SLD to Another SLD .................................................................... 3.5.5 Manual Export and Import of Data ................................... 3.5.6 Connecting SLD to CTS+ to Facilitate the Export and Import of SLD Data .......................................................... Summary ....................................................................................... 88 88 94 98 102 102 103 105 105 105 107 108 109 110 111 114 114 115 116 117 118 118 120 4.3 4.4 5 Basic ES Repository Technical Concepts ......................................... 4.1.1 Functional Blocks ............................................................. 4.1.2 First Steps in the ES Repository ........................................ 4.1.3 Service Interface ............................................................... 4.1.4 Integration Patterns: Stateful and Stateless Communication ................................................................ 4.1.5 Asynchronous versus Synchronous ................................... 4.1.6 Quality of Service ............................................................. Design Objects .............................................................................. 4.2.1 Software Component Versions ......................................... 4.2.2 Folders ............................................................................. 4.2.3 Namespaces ..................................................................... 4.2.4 Mappings ......................................................................... 4.2.5 Process Integration Scenario ............................................. 4.2.6 Actions ............................................................................. Data Types and Message Types ..................................................... 4.3.1 Data Types ....................................................................... 4.3.2 External Definitions .......................................................... 4.3.3 Message Type .................................................................. 4.3.4 Additional Design Objects ................................................ Summary ....................................................................................... 122 122 124 125 126 127 129 130 130 130 131 133 135 136 137 137 138 139 140 141 Working with the Integration Directory ................................... 143 5.1 5.2 5.3 Integration Directory Overview ..................................................... Collaboration Profiles .................................................................... 5.2.1 Party ................................................................................ 5.2.2 Communication Component ............................................. 5.2.3 Communication Channel .................................................. 5.2.4 Communication Component without a Party .................... Adapter Types ............................................................................... 5.3.1 Technical Adapters to Enable Communication with Other Systems (SAP or Third-Party Systems) ..................... 5.3.2 Application Adapters to Enable Communication with an SAP System ................................................................. 5.3.3 SAP Industry Adapters ...................................................... 5.3.4 Third-Party-Developed Adapters ...................................... 143 145 145 146 149 158 161 161 162 162 163 9 Contents 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 Contents Integrated Configuration ............................................................... 5.4.1 Inbound Processing .......................................................... 5.4.2 Receiver ........................................................................... 5.4.3 Receiver Interfaces ........................................................... 5.4.4 Outbound Processing ....................................................... The XI Message Protocol ............................................................... Configuration Scenario .................................................................. 5.6.1 Creating a Configuration Scenario from Scratch (Manually) ........................................................................ 5.6.2 Creating a Configuration Scenario from a Model ............... Value Mapping .............................................................................. 5.7.1 If/Else Logic ...................................................................... 5.7.2 Fixed Values ..................................................................... 5.7.3 Value Mapping ................................................................. B2B Integration ............................................................................. 5.8.1 B2B On-Premise ............................................................... 5.8.2 B2B Managed Services ..................................................... 5.8.3 Trading Partner Management ........................................... Axis Framework ............................................................................. Message Alerting ........................................................................... 5.10.1 Creating an Alert Rule ...................................................... 5.10.2 Editing or Deleting a Rule ................................................ Publish the Service in the Services Registry .................................... Integration Directory Programming Interface (Directory API) ......... Summary ....................................................................................... 163 164 167 170 171 174 176 176 177 177 178 179 180 181 181 182 182 183 187 191 193 194 194 197 6.3.3 6.3.4 6.4 7 226 230 230 231 7.1 7.2 7.3 Administration .............................................................................. 7.1.1 Central Administration Tool ............................................. 7.1.2 SAP NetWeaver Administrator ......................................... 7.1.3 SAP NetWeaver Application Server Java ........................... 7.1.4 SAP PI Monitoring (pimon) .............................................. 7.1.5 SAP Management Console ............................................... 7.1.6 Config Tool ...................................................................... 7.1.7 Administration Using Telnet ............................................. Monitoring .................................................................................... 7.2.1 SAP NetWeaver Administrator ......................................... 7.2.2 SAP PI Local Monitoring (pimon) ..................................... 7.2.3 SAP PI Central Monitoring with SAP Solution Manager .... 7.2.4 Message Retention ........................................................... Troubleshooting ............................................................................ 7.3.1 Configuring Log and Traces .............................................. 7.3.2 Using the Log Viewer ....................................................... Summary ....................................................................................... 233 234 236 236 236 237 237 238 238 239 239 243 246 246 248 250 252 Building an Integration Flow .................................................... 199 6.1 6.2 6.3 10 218 Administration and Monitoring in AEX .................................... 233 7.4 6 Create Enterprise Service Repository Objects .................... Create Directory Objects: Import Business Systems and Create iFlows ............................................................. 6.3.5 Testing the iFlow Scenario ................................................ 6.3.6 Monitoring the Scenario ................................................... Summary ....................................................................................... SAP NetWeaver Developer Studio ................................................. 6.1.1 Installing SAP NetWeaver Developer Studio ..................... 6.1.2 Setting Up SAP NetWeaver Developer Studio ................... 6.1.3 Enterprise Integration Patterns and User-Defined Templates ........................................................................ Basics of Creating and Configuring an Integration Flow .................. 6.2.1 Creating an iFlow ............................................................. 6.2.2 Configuring an iFlow ........................................................ iFlow Example ............................................................................... 6.3.1 Creating Products, Software Components, Business Systems, and Technical Systems in the SLD ....................... 6.3.2 Importing SLD Objects into the ES Repository in SAP NetWeaver Developer Studio .................................... 200 200 201 204 206 206 208 213 214 217 8 Migrating Interfaces from SAP PI Dual Stack to SAP PO ........ 255 8.1 8.2 8.3 8.4 Migration Strategies ...................................................................... Migrating System Landscape Directory Content ............................. 8.2.1 Products ........................................................................... 8.2.2 Software Components ...................................................... 8.2.3 Technical System .............................................................. 8.2.4 Business System ............................................................... Migrating Enterprise Services Repository Content .......................... 8.3.1 Exporting Objects ............................................................. 8.3.2 Importing Objects ............................................................ Migrating Integration Directory Content ........................................ 8.4.1 Manually .......................................................................... 255 259 259 260 261 261 262 262 263 263 264 11 Contents 8.5 Contents 8.4.2 Using the Migration Tool .................................................. 265 Summary ....................................................................................... 275 10.5 PART III Business Process Management and Composition 9 Introduction to SAP BPM and BPMN 2.0 ................................. 279 9.1 9.2 9.3 9.4 Managing Business Processes ........................................................ SAP BPM ....................................................................................... 9.2.1 SAP BPM versus SAP Business Workflow .......................... 9.2.2 How Things Were before SAP BPM .................................. 9.2.3 SAP BPM Main Components ............................................ Business Process Model and Notation 2.0 ..................................... 9.3.1 Swimlanes ........................................................................ 9.3.2 Artifacts ........................................................................... 9.3.3 Flow Objects .................................................................... 9.3.4 Connections ..................................................................... Summary ....................................................................................... 280 282 283 284 287 288 291 293 295 305 307 10.6 10.7 10.8 10.1 10.2 10.3 10.4 12 SAP BPM Positioning and Development Environment ................... 10.1.1 Positioning ....................................................................... 10.1.2 Setting Up Your Development Environment ..................... Implementation of a BPM Process ................................................. 10.2.1 Demonstration Scenario ................................................... 10.2.2 How to Build a BPM Process: Steps Overview .................. 10.2.3 SAP NetWeaver Developer Studio Perspective Concept ... 10.2.4 Create a Project in SAP NetWeaver Developer Studio ...... 10.2.5 Creating a Process for Your BPMN ................................... 10.2.6 Creating a BPMN Model .................................................. 10.2.7 General Configuration of Your BPMN Model .................... Flow Objects ................................................................................. 10.3.1 Events .............................................................................. 10.3.2 Tasks ................................................................................ 10.3.3 Activities .......................................................................... 10.3.4 Gateways ......................................................................... 10.3.5 Artifacts ........................................................................... Build and Deploy your Process ...................................................... 10.4.1 Steps for Building a Process .............................................. 309 309 311 315 315 317 317 319 324 326 332 343 343 354 363 382 386 388 389 390 391 391 393 394 396 398 400 402 403 404 407 11 Applying Advanced SAP BPM Concepts and Extensions ......... 409 11.1 11.2 10 Creating Your First SAP Business Process Management Process ...................................................................................... 309 10.4.2 Steps for Deploying a Process ........................................... Advanced Mapping ....................................................................... 10.5.1 Mappings ......................................................................... 10.5.2 Options in Mapping Assignment ...................................... 10.5.3 Automatic Mapping ......................................................... 10.5.4 Custom Functions ............................................................ Implementing Error Handling ........................................................ Combining BPM and AEX: The Orchestration ................................ 10.7.1 Message from SAP BPM to the AEX ................................. 10.7.2 Message from the AEX to SAP BPM ................................. 10.7.3 Leverage an ES Repository Mapping in SAP BPM ............. Summary ....................................................................................... 11.3 11.4 11.5 11.6 11.7 SOA Configuration ........................................................................ 11.1.1 Configuration for an Automated Activity .......................... 11.1.2 Configuration for a Start Event or Intermediary Event ....... Testing and Running an SAP BPM Process ..................................... 11.2.1 Process Repository Overview ............................................ 11.2.2 Process Testing ................................................................. Custom EJB Function ..................................................................... 11.3.1 Create EJB and EAR Development Components ............... 11.3.2 Create the EJB .................................................................. 11.3.3 Build and Deploy ............................................................. 11.3.4 Create a New EJB function ............................................... Using the Claim Check Pattern ....................................................... 11.4.1 Create Interfaces .............................................................. 11.4.2 Create Mappings .............................................................. 11.4.3 Configure the Channel ...................................................... 11.4.4 Retrieve the Large Message from SAP BPM ...................... 11.4.5 Update the Status of the Large Message from SAP BPM ... SAP BPM Application Programming Interface ................................ 11.5.1 Prerequisite to Use the SAP BPM API ............................... 11.5.2 Implementation Aspects and Examples ............................. SAP BPM OData ............................................................................ 11.6.1 OData Services for Tasks and Task Data ............................ 11.6.2 Error Handling .................................................................. Debugging and Troubleshooting SAP BPM Processes ..................... 11.7.1 Place Breakpoints in the Process ...................................... 11.7.2 Add a Debug Configuration .............................................. 409 410 421 423 423 426 429 430 432 435 435 438 439 439 440 441 441 442 442 443 445 446 447 447 448 449 13 Contents Contents 11.8 11.9 Tuning SAP BPM-Related Performance Parameters ........................ Best Practices for Your SAP BPM Application ................................. 11.9.1 BPMN, Mapping, and Parallelism ..................................... 11.9.2 Task Related ..................................................................... 11.9.3 Gateways ......................................................................... 11.9.4 Looping ............................................................................ 11.9.5 Data Object ..................................................................... 11.9.6 Correlation ....................................................................... 11.9.7 Error Handling .................................................................. 11.9.8 Housekeeping .................................................................. 11.10 Summary ....................................................................................... 451 453 453 454 454 455 455 455 455 456 456 13.4 13.5 13.6 14.1 12 Combining SAP BPM and UI Technologies ............................... 459 12.2 12.3 12.4 Web Dynpro Java UI Technology ................................................... 12.1.1 Generating a Web Dynpro UI ........................................... 12.1.2 Post-Configuration Steps .................................................. Integrating SAPUI5 into an SAP BPM Process ................................ 12.2.1 SAPUI5 Technology Platform ............................................ 12.2.2 Model-View-Controller Concept ...................................... 12.2.3 SAPUI5 Components ........................................................ 12.2.4 Other SAPUI5 Concepts ................................................... 12.2.5 Integration Steps .............................................................. Other User Interface Technologies ................................................. 12.3.1 Visual Composer .............................................................. 12.3.2 Adobe Offline Forms ........................................................ 12.3.3 Support for Custom UI Technologies ................................ Summary ....................................................................................... 459 461 466 470 471 472 473 474 475 483 483 484 485 487 14.3 14.4 14.5 13.3 14 How Business Rules Work ............................................................. SAP Business Rules Management (SAP BRM) ................................. 13.2.1 Rules Composer ............................................................... 13.2.2 Rules Manager ................................................................. 13.2.3 Rules Engine .................................................................... Modeling Business Rules with Rules Composer .............................. 13.3.1 Create the Rules Composer DC ......................................... 13.3.2 Adding Context to the Rules ............................................ 13.3.3 Creating a Ruleset ............................................................ 13.3.4 Flow Ruleset .................................................................... 489 494 495 497 502 503 503 505 507 514 Java Proxy Concept and Considerations ......................................... 14.1.1 Java Proxy Concepts ........................................................ 14.1.2 When to Use Java Proxies ................................................ Implementation Approaches .......................................................... 14.2.1 Outside-In Approach ....................................................... 14.2.2 Inside-Out Approach ....................................................... Technical Implementation ............................................................. 14.3.1 Development Environment .............................................. 14.3.2 Developing a Server Java Proxy ....................................... 14.3.3 Developing a Client Java Proxy ........................................ Building an Orchestration .............................................................. Summary ....................................................................................... 524 524 525 525 525 526 527 527 529 546 557 558 15 Administration and Monitoring Message Processing in SAP BPM ................................................................................... 559 15.1 13 SAP Business Rules Management ............................................. 489 13.1 13.2 517 518 519 519 521 14 Implementing Java Proxies ....................................................... 523 14.2 12.1 Testing Business Rules ................................................................... Best Practices for Modeling Business Rules .................................... 13.5.1 Separate Decision Logic from Other Types of Logic ......... 13.5.2 Reuse and Extend before Building ................................... Summary ....................................................................................... 15.2 15.3 Monitoring .................................................................................... 15.1.1 SAP BPM System Overview ............................................. 15.1.2 Process Repository .......................................................... 15.1.3 Process Management ...................................................... 15.1.4 Task Management ........................................................... 15.1.5 SAP BPM Inbox ............................................................... 15.1.6 Business Logs .................................................................. 15.1.7 BPM Action Monitor ....................................................... 15.1.8 Process Troubleshooting .................................................. 15.1.9 Rules Business Logs ......................................................... 15.1.10 BPM Analytics Dashboard ............................................... Administration .............................................................................. 15.2.1 Process Data Archiving .................................................... 15.2.2 Log Viewer ...................................................................... Summary ....................................................................................... 559 560 561 562 567 568 571 572 573 573 575 576 576 578 579 15 Contents Contents 16 Migrating ccBPM from SAP PI to SAP PO ................................ 581 16.1 16.2 16.3 16.4 Motivation for Migration ............................................................... 16.1.1 The Past ........................................................................... 16.1.2 Today ............................................................................... 16.1.3 BPEL4WS is Out, BPMN 2.0 is In ..................................... Migration Approach ...................................................................... 16.2.1 Analyze the As-Is Integration Processes ............................ 16.2.2 Translate and Redesign ..................................................... 16.2.3 Export and Reuse ES Repository Objects .......................... 16.2.4 Migrate and Adapt Configuration Scenarios ...................... Recommendations ......................................................................... Summary ....................................................................................... 18 Landscape Setup Considerations .............................................. 659 581 582 582 583 584 587 589 593 597 600 602 18.1 18.2 18.3 PART IV Advanced Concepts 18.4 17 Other Useful Components ........................................................ 607 17.1 17.2 17.3 17.4 17.5 17.6 Component Model ........................................................................ 17.1.1 Product ............................................................................ 17.1.2 Software Components ...................................................... 17.1.3 Development Component ................................................ 17.1.4 Dependencies among Development Components ............. 17.1.5 Public Parts ...................................................................... SAP NetWeaver Development Infrastructure ................................. 17.2.1 CM Services ..................................................................... 17.2.2 Design Time Repository .................................................... 17.2.3 Component Build Service ................................................. SAP Composite Application Framework ......................................... 17.3.1 Design Time Aspects ........................................................ 17.3.2 Runtime Aspects .............................................................. Service Registry ............................................................................. Transport Options in SAP PO ......................................................... 17.5.1 SAP PI-Related Transports ................................................ 17.5.2 Transports for Non-SAP PI Java Objects ............................ Summary ....................................................................................... 608 609 609 610 612 615 618 620 634 637 640 641 647 648 651 652 655 657 18.5 Java System Configuration ............................................................. 18.1.1 Java Sizing and Setup Considerations ................................ 18.1.2 Java System Architecture .................................................. 18.1.3 Java Central Services ........................................................ 18.1.4 Java Parameter Tuning ..................................................... Handling Certificates ..................................................................... 18.2.1 Certificate Key Storage ..................................................... 18.2.2 Encryption of Message Content on Database Level ........... Housekeeping ................................................................................ 18.3.1 Archiving .......................................................................... 18.3.2 Deletion ........................................................................... 18.3.3 Restarting ......................................................................... 18.3.4 Recovery .......................................................................... Monitoring .................................................................................... 18.4.1 Runtime Workbench ........................................................ 18.4.2 Wily Enterprise Manager .................................................. 18.4.3 SAP Management Console ............................................... 18.4.4 SAP Solution Manager Monitoring ................................... 18.4.5 Tracing ............................................................................. 18.4.6 JVMMON ........................................................................ Summary ....................................................................................... 659 660 667 668 669 672 672 672 673 673 673 673 674 674 675 676 678 679 680 682 683 Appendices ....................................................................................... 685 A B Orchestration Outlook ............................................................................. A.1 SAP API Management ................................................................... A.2 SAP HANA Cloud Integration ........................................................ A.2.1 Features and Facts Overview of SAP HANA Cloud Integration ............................................................. A.2.2 Development Guide: Getting Started ................................ A.2.3 Monitoring ....................................................................... A.3 The Integration Advisor ................................................................. A.3.1 Interface Specifications: Advice from the Advisor ............. A.3.2 Mapping Guideline .......................................................... A.3.3 Runtime ........................................................................... A.3.4 Testing ............................................................................. 685 685 686 688 690 700 702 704 704 704 704 The Authors ............................................................................................. 705 Index ............................................................................................................... 707 16 17 Index A ABAP business system, 91 data supplier, 102 Abstract, 587 interfaces, 596 Acceptance, 410 Access control list, 612 Actions, 136 Active Directory, 55 Activities, 299 automated activity, 370 types, 299 Actors, 583 Adapter File/FTP(S), 161 HTTP_AAE, 161 IDoc_AAE, 162 JDBC, 161 JMS, 161 Mail, 161 Marketplace, 161 RFC, 162 SOAP, 161 specific attributes, 154 types, 161 types, support header mapping in AEX, 171 Adapter Engine, 152 status, 240 Adapter Module asynchronous processing, 154 DynamicConfigurationBean, 154 JNDI, 158 PayloadSwapBean, 153 PayloadZipBean, 153 XiHeaderValidationBean, 154 XMLAnonymizerBean, 153 Add complex type, 334 Add mapping, 228 Administrator via principals, 337 assign roles, 338 Adobe offline forms, 484 SAP BPM integration, 484 Advanced Adapter Engine (AEE), 30, 48 Advanced Adapter Engine Extended 씮 AEX AEX administrative tools, 234 diagnose integration scenarios, 236 expose server proxy service, 545 integration challenges, 34 message monitoring, 240 message monitoring error, 250 messaging exchange, 233 monitoring, 238 PI monitoring with SAP Solution Manager, 243 Agency identifier, 146 Alert notifications, 243 Alert rule, 145, 187 CONFIGURATION, 191 create, 191 creation via Integration Directory, 193 creation via NetWeaver Administrator, 191 default rule, 189 editing/deleting, 193 information, 187 MESSAGE HEADER RULES, 192 MESSAGE STATUSES, 192 Annotation, 294 API, 194, 196, 685 communication channel, 197 Application and scenario communication, 196, 420, 427, 648 Application communication, 412 Application Programming Interface (API), 64 Application service, 647 Application thread management, 45 Application thread utilization, 677 Applications, 33, 44, 47 Archiving data, 456 Archiving tasks, required roles, 576 Arguments, 450 Artifact, 293, 386 annotation, 294, 388 data object, 294, 332 data objects, 386 707 Index AS Java, 87 configure data suppliers, 116 engine, 44 system architecture, 41 system components, 46, 47 system components or services, 44 AS Java cluster, 41, 43 installation, 43 ASMA, 154, 159 activate on communication channel, 159 Assign system, sender and receiver, 227 Assigned users, 172 Association connector, 295 Asynchronous communication, 128 mapping, 134 Asynchronous process, SAP BPM, 523 Authorizations, edit, 60 Auto assign, 416 Automapping advanced, 395 options, 394 select, 395 simple cases or name based, 395 Automated activity, 300 add, 370 boundary events, 372 configure, 372 input mapping, 372 interface, 371 looping, 371 output mapping, 372 Automated rule-based decisions, 494 Automatic mapping, 394 matcher, 394 Automation of monitoring, 679 Availability and Performance, 73 monitoring, 560 Axis framework, 183 verify installation, 185 AXIS Servlet, 185 Axis-based channel setup, 185 B B2B cloud, 182 708 Index B2B (Cont.) integration, 181, 702 Integration Cockpit, 182 mapping functions, 181 Mapping templates, 182 Number Range Objects, 182 on premise, 181 Rapid-deployment solutions, 182 scenarios, 64 TPM Functional Profile, 183 Trading Partner Agreement, 183 Trading Partner Management, 182 Trading Partner Profile, 183 Backend, 582 Backend applications, 89 expose functionalities, 41 BE (Best Effort), 129 Best practices, 453 correlation, 455 data object, 455 error handling, 455 gateways, 454 housekeeping, 456 looping, 455 Boundary event, 350, 351, 370 configuration, 351 critical exceptions, 368 noncritical exceptions, 368 Boundary events, 297 BPEL4WS, 582 definition, 583 BPM, 23, 29, 37 business process visibility, 282 fundamental concepts, 279 implementation steps, 317 landscape scope, 286 main components, 287 process implementation, 315 suite, 281 versus workflow, 283 BPM Analytics Dashboard, 575 BPM process control, 38 flexibility, 38 visibility, 38 BPMN, 453 add human activity, 327 BPMN (Cont.) artifacts, 293 create model, 326 data object, 294 data types, 332 event triggers, 331 flow elements, 290 flow objects, 342 flow objects, properties, 342 functions, 331 model, 409, 453 model, configuration, 332 process, 331 process, create, 324 reporting data sources, 331 rules sets, 331 service interfaces, 332 tasks, 331 BPMN 2.0, 583 Break point, 448 BRFplus, 495 BRMS, 38 Build directory, 639 Buildspace, broken DC details, 640 Business Activity Monitoring (BAM), 70 Business and IT alignment, 289 Business application, design, 460 Business component, 145, 147 create, 148 Create in ID, 148 Maintain Server Interface, 148 Maintain Service Interface, 148 Business content, 55 Business decisions, 39 Business entity, 642 Business Logs, 456, 500, 571 access, 571 view, 574 Business object application service, 645 create, 642, 644 createMultiple, 644 delete, 645 deleteMultiple, 645 findAll, 645 findByMultipleParamaters, 645 implementation, 644 Business object (Cont.) main structure, 643 modeler, 642 modeler operations, 643 read, 645 update, 645 updateMultiple, 645 Business process conditions and rules, 490 diagram (BPD), 289 engine, 32 model and document tool, 289 Business Process Management 씮 BPM Business Process Model and Notation (BPMN) 2.0, 288 Business processes, ccBPM, 48 Business rule, 490 access control management, 498 add context, 505 automated, 39, 491 creation approaches, 496 deploy and execute, 502 embedded, 497 execution logs, 500 generate web service, 517 methods, 490 model, 503 modeled as rule flow, 496 modeling best practices, 518 standalone service, 496 test, 517 types and use, 493 Business rules engine, lack of, 48 Business Rules Management, 23 Business rules management, 29, 38, 489, 491 Business rules management system 씮 BRMS Business system, 67, 91, 145 attributes, 93 create, 92 export objects from SAP PI SLD, 261 groups, 94 import, 226 import from SLD, 147, 226 select role, 93 709 Index C Cache management, 45 CAF, 41 Calculation, 493 Calculator service, 538 CallSapAdapter, 153 CBS, 619, 637 buildspace, 639 central compilation, 638 request receiver, 639 web UI, 638 web UI, access, 639 ccBPM, 30, 49, 581 abstract interface, 126 as is analysis, 587 integration processes, migration strategy, 588 migration steps, 586 translate integration processes, 589 vs. SAP BPM, 584 Central adapter engine, monitoring, 238 Central Administration tool, 234 Central database, 44 Central PI monitoring, 243 Central repository of rules, 39 Central Services instance, 43 components, 43 Central Services Registry, 649 Centralized system management, 237 Certificate, 672 key storage, 672 Channel adapter, 227 CIM instances and classes, 69, 98, 101 send data to SLD, 102 Claim check pattern, 438 approach, 438 configure the channel, 440 create Interfaces, 439 create mappings, 439 Class Loader Manager, 46 Classes, 445 Client Java proxy, 546 Client proxy generate, 549 wrapper class, 551 Cloud-to-cloud integration, 688 710 Index Cluster Manager, 45 Cluster nodes, 451 CM Services, 619, 620 CTS system, 620 deployable export, 657 integrated with CTS+, 622 modes, 655 source export, 656 standalone, 620 synchronize, 628 Collaboration profiles, 145 Communication Component Without Party, 146 Party, 145 Combining BPM and AEX, 400 Common Information Model 씮 CIM Common language, 289 Communication Channel, 149 Adapter Type, 151 Direction, 151 file name, 228 link to communication component, 150 Message Protocol, 152 Module Processor, 153 Modules, 153 Monitor, 675 monitoring, 680 Parameters, 151 polling interval, 151 Receiver channel, 151 Sender channel, 151 setting for WS connectivity with SAP BPM, 412 source directory, 228 Transport Protocol, 152 Communication component, 146 business component, 147 business system, 147 without Party, 158 Communication profile, 422 assign, 423 create, 422 Communications, 34, 43 Comparators, 512 Component Build Service 씮 CBS Component model, 608 create software component, 609 Component model (Cont.) development component, 610 possible DC types, 611 product, 609 software components, 609 Component monitoring, 680 Composite application, 641 Composite Designer perspective, 326 Composite Explorer, 319, 330 Composite service, 41, 645 create, 557 Composition layer, 41 Condition evaluation, 384 Conditions, 511 Config tool, 237 Configuration, 75 Configuration and monitoring, 69 Configuration and Monitoring Home, 69 Configuration management, 424, 426 Configuration Manager, 46 Configuration object, migrate, 263 Configuration scenario, 176 create from model, 177 create manually, 176 remove objects, 177 Configure the deployed service, 541 Connecting object, 305 association, 306 data flow, 306 message flow, 306 sequence flow, 305 Connectivity adapters, 40 Consolidated installation, 51 Consolidated monitoring, 51 Consumer proxies, 649 Consumer service groups, 418, 420 Core Components Technical Specification (CCTS), 138 Correlation condition, 348 CPA cache monitor, 241 Cross-Component Business Process Management 씮 ccBPM CTS server destination, 655 CTS+, 594 configuration, 652 configure CTS parameters, 654 create a destination, 652 CTS+ (Cont.) export SLD object, 109 test export functionality, 120 transports, 118 Custom EJB function, 429 Custom function create, 397 EJB function, 397 expression and mapping, 396 Custom Java application, 47 D Data forwarding, 118 Data object, 294, 332, 461 add to process, 387 analyze, 566 binding, 465 characteristics, 294 Data structures, create, 333 Data supplier, 102 ABAP-based system, 102 change in Java system, 103 configuration, 117 destinations, 103 forward to SLD, 117 Java-based systems, 103 send data, 102 Data transformation, 376 Data type, 137 core/aggregated, 138 freestyle, 138 XSD support, 332 Database, 44 Database clustering, 666 Database Manager, 46 DC activate and deactivate, 425 add software components, 623 auto-deployment, 622 create, 463, 611 create dependencies, 463 create from scratch, 626 creation, 622 dependencies, 612 dependency, creating, 613 export and import settings, 621 711 Index DC (Cont.) import from development configuration file, 625 import options, 625 importing, 625 importing from SLD, 625 management, 621 name, 626 public part, 615 repository and build tool location, 621 runtime system, 621 SAP BRM, 503 settings, 621 SLD, 621 software component definition, 622 source, 611 synchronize, 628 transport settings, 621, 655 DC (local), create, 430 Debug add configuration, 449 breakpoints, 448 configuration, 449 exception circumstances, 448 prerequisites, 448 start, 450 Debugging, 448 Debugging functions, 448 step into, 448 step out, 448 step over, 448 De-centralized adapter engine, 152 Decision, 493 Decision logic, isolate, 519 Decision table, 515 comparator choices, 512 export and import, 513 Decoupling, 50 Default gate, 383 Default matcher, 394 DEFAULT_ALERTRULE, 189 Defensive checks, 455 DeltaV, 635 Dependencies, 96 Dependency conditions, 612 synchronize, 614 712 Index Deploy time dependency, 614 Deployment descriptor, 528 Design object, 130 add structure, 130 Design time dependency, 613 Design Time Repository 씮 DTR Designer for SAP HANA Cloud Integration, 691 Developer traces, 250 access, 579 Development, 68 Development component, 100 create, 548 Development component 씮 DC Development configuration, 620 Development environment, setup, 311 Development Infrastructure perspective, 530 Development infrastructure, 430, 527 Development objects, 611 Diagram Editor Designer, 646 Dictionary, 641 Directory API, 265 Distributed Management Task Force (DMTF), 101 DNS round-robin load balancing, 663 DTR, 619, 634 detection of version conflicts, 636 features, 635 inactive workspace, 639 managing multiple versions, 636 server side, 635 DTR Repository Browser, 635 Dual stack, 581 migration, 255 migration procedure, 584 E EAR DC, 432 build and deploy, 554 build and deploy to server, 540 create, 430 Eclipse, configure, 692 EDI message exchange, 181 EJB build, 435 create, 432 deploy, 435 function, create, 435 module, 641 EJB DC, 432, 527 create, 430, 530, 548 ejbModule, 533 Embedded subprocess activity, 373 boundary events, 374 Embedded subprocess, aspects, 373 Encryption on database, 672 End event, 297 event trigger, 345 input mapping, 346 intermediary event, 346 Enqueue replication server, 664 Enqueue server process, 668 Enqueue service, 43 Enterprise application, 532 Enterprise application DC, 528 create, 532 Enterprise integration patterns, 204 claim check pattern, 438 dynamic conditions, 205 message translator, 205 point-to-point, 205 recipient list, 205 Enterprise Java Bean (EJB), 429, 524 Enterprise Service Browser, 527 import SLD objects, 217 Enterprise Service Bus (ESB), 32, 233 Enterprise Service Repository, 41 Enterprise Services Registry (SR), 61, 122 Enterprise Services Repository (ES Repository), 55, 121 Entity services, 640 EO (Exactly Once), 129 EOIO (Exactly Once in Order), 129 Error and exception handling, 493 Error handling, 447 possible solutions, 399 ES Builder, 57, 122 mapping objects, 135 recommended system requirements, 57 tasks performed from, 59 ES Registry, 61 ES Repository, 55, 121 activate objects, 225 content migration, 262 export objects, 262 export or reuse objects, 593 functional blocks, 122 import Objects, 263 import software component metadata, 124 import the service interface, 533 import WSDL, 332 inbound service interface, 530 namespaces best practices, 131 namespaces, predefined, 132 Web UI, 63 ES Workplace, 55 ESB integration challenges, 34 integration with, 35 Escalation event, 298 ESR Content, 55 Events, 296 end event, 345 start event, 343 Exactly Once, 228 Exception events CompletionDeadlineIsCriticalException, 369 CompletionDeadlineIsNonCriticalException, 369 HandleExceptionErrorEvent, 369 StartDeadlineIsCriticalException, 369 StartDeadlineIsNonCriticalException, 369 Exception handling, 596 Exception types, 368 Exchange of data, 33, 36 Exchange of messages, 36, 146 Exclusive gateway, 328 Export Service link, 631 External definitions, 138 F Facades, 46 Fault message type, 139 Firing queue, 510 Fixed value mapping, 179 713 Index Flow object, 295, 343 activities, 299 automated activity, 300 boundary events, 297 connect, 305 end events, 297 events, 296, 343 gateways, 301 human activity, 300 intermediate events, 297 start events, 297 subprocess activity, 301 Flow ruleset, 514 Folders, 130 Format lanes, 342 Framework API, 46 Freestyle data types, 138 Full automatic synchronization bidirectional, 112 unidirectional, 111 Index Housekeeping (Cont.) deletion, 673 recovery, 674 restarting, 673 HTML5, 471 HTTP error status code, 447 HTTP methods, 446 DELETE, 446 GET, 446 POST, 446 PUT, 446 HTTP protocol, 445 Human activity, 300 add boundary events, 369 boundary events, 368 general, 364 input mapping, 366 looping, 364 output mapping, 367 task, 365 Human-centric, 585 processes, 284 G Galaxy Core Service, 452 Gateway, 301, 382 abstract or undefined, 383 event-based choice, 303, 384 exclusive choice, 303, 383 parallel join, 304, 386 parallel split, 304, 384 split, 454 types, 302, 383 uncontrolled merge, 305, 386 Global configuration, 165 H Heap dumps, 683 High availability database, 666 web dispatcher setup, 662 with standalone enqueue, 664 History Service access, 634 Host, 446 Housekeeping, 456, 673 archiving, 673 714 I ICM, 42, 43 ICO, 597 advanced settings, 173 configuration troubleshooting, 166 ID, 63, 198 automate migration, 265 Components, 145 content migration, 263 create business component, 148 create configuration scenario, 176 Editor area, 144 manual migration, 264 Menu, 144 migrate existing content, 597 migration classic configuration, 264 migration ICOs, 264 migration integration process, 264 Object types, 144 Swing UI tool, 213 using the Migration tool, 265 IDE, 495 Identifiers, 152 IDoc monitoring, 240 iFlow, 79, 145 activate, 211 add and remove receivers, 210 add mapping, 211 apply channel template, 209 assign a service interface, 208 assign referenced channel, 209 assign sender and receiver, 208 business component, 208 configure, 208 configure channel attributes, 209 configure communication channel, 209 consistency check, 211 create, 206 deploy, 212 deployment log, 212 deployment trace, 212 iFlow ID, 206 import business system, 208 monitor message processing in runtime, 230 test, 230 If-then rule, 507, 515 Inbound processing, 164 Inbound service interface, 533 Incident management, 243 Industry solutions, 125 Inside-out approach, 526 Installation options, 47 Instance memory threshold, 560 Integrated configuration (ICO), 64, 145, 163 Integration Advisor, 702 interface specifications, 704 mapping guideline, 704 runtime, 704 testing, 704 Integration Builder, 64 configuration and monitoring tools, 233 Launch, 143 Integration Directory 씮 ID Integration engine, 48 Integration Flow 씮 iFlow Integration pattern, 126 stateful, 126 stateless, 126 Tentative Update and Confirm or Compensate, 127 Integration patterns 씮 Enterprise integration patterns Integration Platform-as-a-Service (iPaaS), 686 Integration processes, 145 Integration scenario, create, 121 Integration Visibility Configuration, 70 Interface, 46, 47 building process, 143 channel monitoring, 680 determination, 164 Intermediary event automated activity, 410 configuration, 421 event trigger, 346 Intermediate event, 297 Intermediate message event, 346 delivery, 347 matching, 347 Intermediate timer event, 349 expression, 349 time offset, 349 Internationalization and localization, 494 Internet Communcation Manager 씮 ICM Investigator, 676 J JAR, 527 files, 47 Java Archive (JAR), 527 Java Archiving Cockpit, 576 access, 577 Java Central Services, 668 instance, 661 Java Enterprise runtime, 44, 45 Java instance, 42 Java only, 581 Java parameter database connection pool configuration, 671 FCAServerThreadCount, 669 garbage collection configuration, 671 ICM timeout values, 670 tuning, 669 Java proxy, 523 client, 546 compile, 540 715 Index Java proxy (Cont.) concepts, 524 deploy, 540 develop, 527 generate Java Bean skeleton, 536 generate wrapper, 552 implementation approaches, 525 orchestration, 557 orchestration, create, 557 runtime, 524 use recommendations, 525 Java Proxy Runtime Monitor, 675 Java system architecture, 667 configuration, 659 Java Web AS, deploy business rules, 502 Java Web Start, 58 Java Webstart application, 143 Java, name reservation, 99 Java-only installation, 32 Java-only stack, 32 Java-only system setup considerations, 660 sizing, 660 JAX-WS, 524 JMS, 41 JNDI, 158 access, 435 filter Java Bean, 435 JNDI Browser, 158 object name, 435 jQuery, 471 JSON, 471 JVMMON, 682 L Landscapes, 67 create, 90 functionalities, 88 Lane, 292 Large messages, 439 Legacy application, 40 Libraries, 46, 47 Licensing Manager, 46 716 Index Load balancer advantages, 665 Demilitarized Zone (DMZ), 666 Load balancing, 665 Local or Central ES Repository, 56 Local system, 413 LocalDevelopment, 530 Lock and cache administration, 234 Lock collision, 44 Lock request, 44 Lock table, 43 Locking Manager, 45 Log and traces, 248 Log ID, 447 Log level setting, 456 Log Manager, 45 Log shipping, 666 Log Viewer, 76, 250, 447, 578 access, 578 show log, 415 Logging, 173 Login credentials, 450 Looping, 455 configuration, 365 currentCollectionItem, 365 numberOfCompletedIterations, 365 PARALLEL FOR EACH, 364, 371 M Manage processes, 675 Manage tasks, 675 Mapping, 453 leverage mapping in SAP BPM, 404 reuse in SAP BPM, 404 Mapping activity, 376 general, 377 looping, 377 mapping, 378 mapping function, 377 mapping lines, 376 Mapping as a service (MaaS), 404 Mapping assignment, 393 append, 394 merge, 394 set, 393 Mapping complexity, 454 Mapping object, 135 Mappings, 133 MAX-RESTART, 673 Memory consumption, 454 Message alerting, 187 alerting, process steps, 187 from SAP BPM to the AEX, 402 mapping, 134 Monitor, 674 monitoring, 230 protocol, 416 protocol, WS, 411 retention, 246 service, 43 trigger, 352 type, 139 MessageStatusUpdater, 441 MESSAGE_ID_LIST, 441 PROCESS_INSTANCE_ID, 441 MessageStatusUpdaterBean, 441 Metadata, 55, 641 Metering of service calls, 165 Migrating, 586 Migration big bang/phase-based, 588 translate and redesign, 589 Migration strategies, 255 in-place upgrade, 256 side-by-side migration, 256 Migration tool, 70, 597 access, 266 add new system, 273 channel migration, 266, 271 configuration, 266, 273 conflict resolution, 271 considerations, 265 create changelist, 270 create rule, 274 features, 266 maintain systems, 273 mass migration, 271 migrate communication channel, 271 renaming rule, 274 required roles, 267 scenario migration, 266, 267 Migration tool (Cont.) scenario selection, 268 steps overview, 271 unsupported objects, 275 Mobile, 41 Modeling, 583 Modeling environment, 55 Model-view-controller 씮 MVC Module StrictXml2PlainBean, 153 TextCodepageConversionBean, 154 Monitor Java heap utilization, 677 Monitor system, 677 Monitoring, 78, 674 Monitoring tools, authorizations and roles, 559 Move-corresponding, 454 Multiple application servers, 665 Multithreaded, 43 MVC, 472 controller, 472 model, 472 view, 472 N Name reservations, 68, 98 Namespace prefix, 99 Namespaces, 131 Network communication overhead, 50 Nodes, 667 None intermediary trigger, 350 Notification activity, 329, 381 general, 381 mail, 382 specify receivers, 381 to, 381 NotificationTask, configuration, 481 NWA_READONLY, 560 NWA_SUPERADMIN, 560 O Object, export or import, 259 Object-oriented modeling, 101 717 Index OData, 471 API, 445 wrapper, 445 OData services for task data, 446, 447 for tasks, 446, 447 Online rules editing tool, 499 Openness, 445 Operation mapping, 133 Operations, 74 Operations for SAP HANA Cloud Integration, 691 Orchestration, 557 OriginalMessageAccessor, 441 Outbound processing, 164, 171 Outside-in approach, 525 P Packages, 445 Parallel processing, 454 Parallel split gateway, 454 Parallel web dispatcher, setup, 662, 663 Parallelism, 453, 454 Parameterized subject, 454 Parameterized text, create, 361 Parameters file create, 697 populate, 697 Party, 145 Dun & Bradstreet Corporation, 146 EAN - International Article Numbering Association, 146 SCHEME, 146 path_segment, 446 Payload, 450 Performance, 586 Perspective, 317 Debug, 448, 450 Java EE, 432 Process Development, 449 Process Integration Designer, 206 SAP Process Integration Administration, 201 SAP Process Integration Designer, 202, 205 SAP Process Integration Runtime, 202 Index pimon, 69, 236 AEX monitoring tools, 239 SAP NetWeaver Administrator, 239 Platform-as-a-Service (PaaS), 686 Point-to-point channel, 227 Point-to-point integration, 34 Polling interval, 452 Pool administrator, 338 assign administrator via expression, 339 assign administrators, 338 characteristics, 291 configure, 336 object, 291 Pool Manager, 46 Port, 446 number, 42 Potential owners, 366 Presentation layer, 41 Principal, 337 Principal expression getPrincipal, 340 getPrincipalByUniqueName, 340 getPrincipals, 340 Principal, rules and functions, 341 Process, 449 all running processes, 563 error and failed processes, 563 instance ID, 564 perform administrative actions, 567 see details, 564 Task Management, 567 view definition flow, 565 view process history, 566 Process data archiving, 576 volume, 456 Process definition, 565 Process driven, 286 Process flow alternative path, 297 exceptional situations, 298 execute different rules, 514 pool, 291 Process instance context data, 566 Process instance details, access, 563 Process integration scenario, 135 Process integration tools, 53, 58 Process Management, 562 access, 562 tasks, 562 Process modeling and execution, 289 Process Orchestration, transportable objects, 651 Process pool properties, 335 description, 336 enable principle propagation, 336 expression, 337 Make this pool active, 336 name, 336 parameterized texts, 337 principals, 337 variables, 337 Process Repository, 390, 426, 561 access, 424, 561 list DCs, 424 overview, 423 Process task attributes, 567 Process troubleshooting, 573 access, 573 ProcessDefinition, 444 ProcessDefinitionManager, 444 Processes and tasks, 426 ProcessStartEvent, 444 Product, create, 95 Production, 410 Products, 67 Protocols, 41 Provider system, 413 Proxy, 162 generation, 125 Public part, 612, 615 assembly, 616 compilation, 616 create, 616 manage entities, 617 purposes, 616 Publishing services, 194 Q R RAR files, 47 Receiver, 164, 167 Enhanced Receiver Determinations, 168 OPERATION-SPECIFIC, 167 routing condition, 167 Simple Receiver and Conditions, 167 Receiver agreements, 145, 164 Receiver communication channel, configuration, 228 Receiver determination, 164, 168 Receiver Interfaces, 164, 170 RECEIVER, NOT OPERATION-SPECIFIC, 167 Referenced subprocess activity, 375 boundary events, 376 input mapping, 376 looping, 375 output mapping, 376 process, 375 Referenced subprocess, aspects, 375 Related integration server, 93 Reliability, 41, 50 Renaming rules, 275, 599 Report activity, 378 REST, 445 REST wrapper, 442 Restart, 451 RESTART-BLACKLISTED, 674 RESTful, 685 RFC, 410 RfcAFBean, 153 Round-robin, 663 Routing, 36, 494 Rule, 507 flow, 515 script, 515 Rule action assert, 509 assign, 509 categories, 509 decision tables, 511 evaluate decision table, 511 execute, 510 reevaluate, 510 retract, 511 Quality of Service (QoS), 129, 228 718 719 Index Rules and functions Boolean, 392 Durations, Dates and Times, 392 Generic, 392 Numeric, 392 Principal, 392 String, 392 Rules Business Logs, 573 Rules Composer, 495, 503 Rules Composer DC, import existing XSD file, 506 Rules engine, 493, 502 authorization and administration, 498 reexamine all rules, 510 Rules Manager, 498 editing tool, 499 Rules repository, 493 Rules simulation, 493 Ruleset, create, 507 Runtime Workbench (RWB), 70, 675 S SampleTimer, 372 SAP AEX, 29 SAP API management, 651, 685 SAP AS ABAP, 30 SAP AS Java, 30, 527 advanced offline configuration, 237 console administration, 238 SAP backend, 412 applications, 40 SAP BPM, 29 actions, 451 API, 442 application, 453 call web service steps, 402 Composite Designer perspective, 318 create product, 319 create software component, 320 custom functions, 396 custom UI integration steps, 485 DC, 448 developers, 448 gateways, 382 720 Index SAP BPM (Cont.) human tasks, 483 integrate SAPUI5, 475 integration of custom UI technologies, 485 interaction with the AEX, 401 monitor process instances, 562 objects, 443 OData, 475 positioning, 309 Process Development perspective, 318 Process Modeling perspective, 318 RFC, 410 troubleshooting, 576 vs. ccBPM, 584 WS, 410 XI 3.0, 410 SAP BPM Action Monitor, 572 access, 572 SAP BPM activities, 363 activity, 363 human activity, 363 SAP BPM API, 443 BPEM-FACADE, 443 classes, 443 dependencies, 443 ENGFACADE, 443 features, 442 main objects, 443 prerequisites, 442 ProcessDefinitionManager, 443 ProcessInstanceManager, 443 ProcessModelManager, 443 ProcessStartManager, 443 roles, 442 TaskInstanceManager, 443 SAP BPM Inbox, 482 access, 570 configuration, 569 process, 568 required roles, 570 task activities, 569 SAP BPM Java API, 475 SAP BPM Mail Server Connectivity configuration, 382 SAP BPM OData, 445 base URL, 446 extra options, 446 SAP BPM OData (Cont.) principles, 445 SAP BPM Open Data protocol 씮 SAP BPM OData SAP BPM process advanced mapping, 391 boundary event, 399 build, 389 create mapping, 391 data mapping, 391 debugging, 447 deploy, 390 download resources, 425 error end event, 399 Implementing Error Handling, 398 input data, 427 instance, steps to start, 425 lanes, 325 name, 324 new pool, 325 obtain WSDL, 428 orientation, 324 performance parameters, 451 project, 325 rules and functions, 392 running, 423 start, 425 start externally, 428 start internally, 426 steps, 324 termination event, 399 test, 426 testing, 423 troubleshooting, 447 tuning, 451 SAP BPM queue content, 573 settings, 573 summary, 573 SAP BPM 씮 BPM SAP BPM System Overview, 560 access, 560 capacities, 560 SAP BRM, 29, 287, 494, 573, 585 components, 495 design time, 495 rule implementation, 38 SAP Business Rules Management 씮 SAP BRM SAP Business Workflow, 582, 586 versus BPM, 283 SAP CAF business object, 641 capabilities, 640 configuration, 647 core project, 641 create project, 641 entity services, 643 runtime aspects, 647 Service Browser, 647 SAP Code Exchange, 442 SAP Composite Application Framework 씮 SAP CAF SAP Composition Environment, 31, 65 SAP CR content, 115 SAP eXchange Infrastructure 씮 SAP XI SAP Gateway, 685 SAP HANA Cloud Integration, 685, 686 application edition, 688 certificates and security artifacts, 691 cloud, 688 cloud solutions, 686 communication channels, configure, 699 connectivity options, 691 development guide, 690 features, 689 iFlow, create, 693 license, 688 mapping, create, 698 Message Mapping, 698 monitor using Eclipse, 701 monitoring, 700 monitoring using the WebUI interface, 701 multitenant architecture, 689 on-premise, 686, 687 pattern templates, 694 plugins, 690 professional package, 689 project, deploy, 700 repository connection, 693 sender and receiver systems, 696 standalone integration platform edition, 688 tenant account, 691 user-defined templates, 695 721 Index SAP HANA Cloud Integration (Cont.) WebUI, 686 workbench and tools, 690 SAP Help, 445 SAP Industry adapters, 162 CIDX, 162 RosettaNet, 162 SAP JVM, 668 SAP landscape, 33 SAP licenses, 46 SAP Management Console (SAP MMC), 237, 678 features, 678 SAP NetWeaver 7.3 EHP 1 SP 09, 445 SAP NetWeaver Administrator, 236, 412 configure deployed service, 555 create alert rule, 191 SAP NetWeaver Administrator (NWA), 54, 71 SAP NetWeaver Adminstrator, Log Viewer, 250 SAP NetWeaver Application Server Java, 236 SAP NetWeaver AS, 594 SAP NetWeaver Developer Studio, 54, 78, 199, 200 business rules, 495 configure for Java proxy, 527 create business object, 642 create data type, 219 create Enterprise Service Repository objects, 218 create message mapping, 223, 224 create message type, 221 create namespace, 218 create project, 319 create rules composer DC, 504 create service interface, 222 create XSD, 333 development components overview, 323 download link, 311 Enterprise Service Browser, 204 Enterprise Service Repository connection, 203, 314 installation, 200 perspective concept, 317 PI Explorer, 206 PI Tools, 201 722 Index SAP NetWeaver Developer Studio (Cont.) preferences, 313 Rules Composer, 496 SAP AS Java, 313 settings, 312 setup, 201 switch perspective, 318 versions, 311 SAP NetWeaver development, 98 SAP NetWeaver Development Infrastructure, 99, 585, 607, 618 access, 619 access export service, 631 activate name server role, 99 activities, 637 advantages, 618 archive file, 630 CBS, 637 check in, 635 check out, 635 client side, 635 Export Service, 630 Export UI, 657 History Service, 634 Import Service, 634 inbox path, 630 include source/archives, 632 resolve conflict, 636 runtime systems, 629 stop on error, 633 support package and patch levels, 632 synchronisation recommendation action, 630 SAP NetWeaver foundation, 46 SAP PI 7.1, 30 7.11, 30 7.3, 30 dual stack, 47 dual stack migration to SAP PO, 255 dual to single stack, 256 local monitoring, 239 monitoring, 236 separate installations, 49 tools, 201 tools, configuration, 202 SAP PI Explorer, 226 SAP PO, 29 application server, 257 business process support, 258 capabilities, 41 components info, 312 custom tables, 258 data and value mapping, 258 determine version, 312 development tools and IDE, 257 foundation, 41 history, 32 home page, 53 interface configuration, 258 mapping, 258 migration options, 256 positioning, 40 server, 449 SAP Portal, 41 SAP Process Integration 씮 SAP PI SAP Process Orchestration 씮 SAP PO SAP process, retrieve large message, 441 SAP Quicksizer tool, 660 SAP Service Marketplace, 55 SAP Solution Manager monitoring, 679 SAP Solution Manager, central PI monitoring, 243 SAP Web Dispatcher, 661 SAP XI 2.0, 30 3.0, 30 SAP_BPM_Navigation, 560 SAP_BPM_ODATA, 445 SAP_BPM_ODATA_INBOX, 445 SAP_BPM_SuperAdmin, 560 SAP_BPM_SuperDisplay, 560 SAP_BPM_TRIGGER_EVENT, 443 SAPUI5 application, 475 complete task, 482 component files, 474 component structure, 474 components, 473 composite controls, 474 Eclipse plugin, 471 faceless components, 473 generate a DC, 476 integrate into SAP BPM, 470 SAPUI5 (Cont.) integrate with SAP BPM, 475 libraries, 471 notepad control, 475 SAP BPM Inbox, 568 steps to generate UI, 476 UI components, 473 UI generation, 459 UI library, 475 Saves costs, 41 Scalability, 41 SCPMappingBean, 440 mappingid, 440 persistuntil, 440 xpath, 440 SCS, 43, 668 Security, 36 Sender agreements, 145, 164 Sender authorization, 695 Sender communication component, 418 Sender component, configure in SAP NetWeaver Administrator, 418 Server Java proxy, develop, 529 Server processes, 42, 43 Server proxy, 530 expose service, 545 generate, 536 generation wizard, 536 test, 544 Service composition, 41 Service group, 77 configure, 420 create, 405, 414 Service group and reference, configuration, 412 Service interface, 125 add, 148 import, 548 integration pattern, 126 message and data types, 137 Service orchestration workflows, 581 Service Oriented Architecture, 23 Service reference, 410 configuration, 417 configuration steps, 418 WS, 411 Service_name, 446 723 Index Service-oriented architecture (SOA), 31, 35, 57, 121 strategy, 35 Services, 46, 47, 452 bundling, 41 Services Registry 씮 SR Session management, 45 Shipment unit, 130 Simplify communications, 36 Single point of failure (SPOF), 661 Single Service Administration, 427 SLD, 65, 87 add data or content to, 107 administration, 105 automatic bridge forwarding, 110 bridge, 102 catalogs, 115 clear data cache, 61 connect to CTS+, 118 create business system, 216 create product, 214 create software component versions (SWCVs), 215 create technical system, 216 data supplier, 103 data supplier configuration, 104 export business systems, 261 export data to target, 118 export products from SAP PI, 259 export software components, 260 export technical systems, 261 full automatic synchronization, 111 full sync (active), 113 functional areas, 66 groups, 94 import and export, 107 import business systems, 261 import objects into ES Repository, 217 import products, 260 import products into SAP PO, 260 import technical systems, 261 information categories, 88 Landscapes, 66 manual export and import, 109 migrate content, 259 naming convention, 114 product, 609 724 Index SLD (Cont.) product repository, 94 registering systems, 102 registration, 676 self-registration, 116 server information, 106 server logs, 106 status, 106 stop and start, 106 strategies, 108 synchronization, 108 SLD software component model, 97 one software component model, 97 three software component model, 98 two software component model, 98 sldreg, 105 SMTP, 42 SOA configuration, 409 intermediary event, 410 RFC, 419 start event, 410 WS, 411 XI 3.0, 416 SOA maturity level, 123 SOA work center, 76 SOAP, 41 SOAP UI, 460 Social media platform, 128 Software catalog, 67, 94 product, 95 software component, 95 Software component, 68, 96, 120 export content, 630 specify release, 321 specify support package, 321 Software Component Version 씮 SWCV Software unit, 68 Source, namespace and rank, 113 SR, 607, 648 access, 649 activate, 649 capacities, 648 PUBLISH, 194 services in SOA landscape, 123 SSL certificates, 665 Staging, 173 Standalone EJB module, 47 Standalone proxy, 526 Standalone resource adapter module, 47 Standalone web module, 47 Standard services, 40 Standards, 41 Standby database, 666 Start event, 297 configuration, 421 event trigger, 343 output mapping, 344 start condition, 345 Start process, 426 Stateful message processing, 582 Stateless, 127 Step over, 451 Subprocess activity, 301 SuccessFactors, 686 Swap space, 668 SWCV, 68 create, 215 main types, 124 namespaces, 131 Swimlanes, 291 Swing client, 199 SXMB_ADM, 69 SXMB_MONI, 69 Synchronizations, 43 Synchronize Service, 627, 628 Synchronous communication, 128 mapping, 134 System connections, 422 System Landscape Directory 씮 SLD System landscape, setup, 659 System-centric, 588 System-centric processes, 284 Systems, 33 group logically, 90 logical name, 91 T Task, 354 assign UI, 465 best practices, 454 claim, 569 complete, 447 Task (Cont.) create, 357 filter, 569 forward, 569 mapping with process context, 469 open, 569 operations, 447 potential owners, 468 read data, 447 release, 569 Task attributes, 354 activation time, 357 administrators, 356 completion deadline, 357 component, 355 custom actions, 355 custom attributes, 355 documentation, 354 excluded owners, 356 expiration time, 357 name, 354 notification, 354 parameterized texts, 357 priority, 355 sharing, 354 start deadline, 357 variables, 356 Task Management access, 567 features, 567 TaskInput, 366 Tasks service, URIs list, 447 Technical monitoring, 679 Technical monitoring, overview, 679 Technical system, 66, 147 business system, 91 maintenance, 89 manually create, 89 Telnet, 238 Test, 410 Third Party Developed Adapters, 163 Informatica, 163 iWay, 163 Seeburger, 163 Third-party applications, 445 Thread, 677 dumps, 683 725 Index Thread (Cont.) utilization, 677 Tightly coupled applications, 34 Toggle breakpoint, 448 Total cost of ownership (TCO), 32 TPZ, 594 Tracing, 680 HTTP and SOAP communication channels, 681 XPI Inspector, 681 Transformation, 36 Transport, 120 activities, 656 approaches, 651 mechanism, 259 non-SAP PI Java objects, 655 options, 651 path, 651 SAP PI-related, 652 Troubleshoot, 448 Troubleshooting, 76, 246 Tuning, 451 Two-Phase Commit protocol, 127 Index User defined function 씮 UDF User Management, 236 User-defined message search, 236 User-friendly interface, 39 V Validation, 493 Value mapping, 177, 180 fixed values, 178 group, 145 manual approach, 180 replication from an external source, 180 Virtual business system, label, 147 Virtual logical container, 130 Virus scan, 164 Virus scanning, By Adapter, 165 Visual Composer, 483 Visual containers, 291 Vulnerable security connection, 35 WS connection, assign communication profile, 423 WSDL generate client proxy from, 549 import steps, 335 X XI 3.0, 410 XI 3.0 Message protocol, 402 scenarios, 416 XI Message protocol, 151, 174 differences from SOAP standard, 175 XIMailAdapterBean, 153 XISOAPAdapterBean, 153 XML, 450 XML DAS, 576 XML Schema Definition 씮 XSD XPI Inspector, 681 XSD, 332 create, 333 import, 335 W U UDDI, 55, 648 UDF, 159 UI generation, 461 UI technology choose, 322 Composite Application Framework (CAF), 323 dictionary, 323 JSP/Servlet, 323 process modeling, 322 Rules Composer, 323 service composition, 323 Visual Composer, 322 Web Dynpro, 323 UME, 339 user, 381, 445 Unique identifier, 443 Universal Worklist, alternative, 568 URI, 443 URI concept, 443 Usage dependency, 96 726 WAR files, 47 Web Dynpro ABAP, 460 application, 498 assign task principals, 467 generate UI, 461 Java, 460 post-configuration steps, 466 UI generation steps, 460, 461 Web service authentication, 544 import external WSDL, 547 message security, 544 settings, 541 transport protocol, 544 Web Services Navigator, 236, 427 Web UI, 63 WebDAV, 635 Wily Enterprise Manager, 676 performance analysis, 676 Work centers, 71 Workflow engine, 283 WS, 410 727 First-hand knowledge. John Mutumba Bilay is a senior software engineer and enterprise integration consultant at Rojo Consultancy. With more than 12 years of international experience in information technology, including eight specifically devoted to SAP, his speciality is software development, integration, and business process automation. Roberto Viana Blanco is an experienced SAP integration architect and co-founder of Rojo Consultancy. He has over 15 years of SAP integration experience working across a number of industries. He has been working with SAP since the early versions of SAP NetWeaver Exchange Infrastructure (XI) and has helped several organizations adopt first SAP NetWeaver Process Integration and then SAP NetWeaver Process Orchestration. John Mutumba Bilay, Roberto Viana Blanco SAP Process Orchestration The Comprehensive Guide 727 Pages, 2015, $79.95/€79.95 ISBN 978-1-4932-1018-3 www.sap-press.com/3637 We hope you have enjoyed this reading sample. You may recommend or pass it on to others, but only in its entirety, including all pages. This reading sample and all its parts are protected by copyright law. All usage and exploitation rights are reserved by the author and the publisher. © 2015 by Rheinwerk Publishing, Inc. This reading sample may be distributed free of charge. In no way must the file be altered, or individual pages be removed. The use for any commercial purpose other than promoting the book is strictly prohibited.