Wednesday, December 25, 2013

HANA Cloud Integration: From strategy to an idoc.

First of all: A very warm Christmas and a Happy New Year. Hopefully you're all enjoying the holidays. (…reading this blog, ahum). 
This Christmas blog is about HCI: HANA Cloud Integration.
Again a new Buzz thing from SAP, if only because of the fact that the word HANA in it.
What does it mean? And what doest it look like? These two important questions I will try to answer in this blog.
HCI is the integration platform of choice for SAP Cloud Solutions to connect to on-premise or cloud applications. So different integration scenario’s are supported for integration between SAP Cloud products among each other and between on-premise core systems and (own / SAP) Cloud Solutions.

Wednesday, December 18, 2013

External Service call using JSON

JSON (/ˈdʒeɪsɒn/ jah-soun, /ˈdʒeɪsən/ ja-son), or JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML.
Did you ever wonder how to call an external webservice using JavaScript Object Notation (JSON)? If you are on release 7.02 or 7.03/7.31 (Kernelpatch 116) JSON is supported natively in ABAP.

It takes just a few lines of code to transform a structure or table to JSON format, after that you probably only have to worry about some formatting and escaping of special characters.

Convert the data to JSON format

The first step is to gather all the data into an internal table or structure depending on the information you have to send to an external party. Since that shouldn’t be a problem I pretend that the data is already available in table lt_data_table (This is an internal table with a structure that you need).

Wednesday, December 11, 2013

How ABAP moves towards Functional Programming

Back in 2006 when I started with SAP and ABAP development, people told me there was no future in ABAP: SAP would not develop new applications on the ABAP stack, but rather on the Java stack, possibly with ABAP as a data backend.

Boy, where they wrong. For several reasons ABAP is still very much alive and relevant, even more than Java. (Well at least in the SAP ecosystem).

Wednesday, December 4, 2013

How to create an app that consumes an SAP NW Gateway service using SAP's Appbuilder

Two weeks ago, SAP released their AppBuilder. The SAP AppBuilder is a tool that lets you create mobile apps based on the mobile SAPUI5 SDK. The best feature of the AppBuilder is that it is a WYSIWYG (what is you see is what you get) editor and you can create apps without writing a single line of code. In this weeks blog I will show you how to create a basic application using a sample Gateway service from SAP.

Wednesday, November 27, 2013

Social Media solutions by SAP: What is out there?

A couple of weeks ago one of our good friends at SAP, Maxim van Schijndel, wrote a blog on their website about the impact of social media on the contacts that organizations have with their customers. For the non-Dutchies, sorry his blog is in Dutch, but maybe Google Translate can make something out of it ;-)

In that same blog Maxim also mentioned some of the solutions SAP offers regarding Social Media, and they have a couple of those! And the number of solutions triggered me to think about the question “when do you choose which solution”. Let’s be honest, sometimes it is easier to choose between 1 option instead of 5 ;-)

First of all a small recap of the Social Media solutions SAP is currently offering:
  • SAP Social Media Analytics by Netbase
  • SAP Cloud for Social Engagement
  • SAP Social Contact Intelligence
  • Social Media Dashboard (a consulting package)
  • Social Media Interaction Center
I’m going to try to explain the solutions mentioned above in one sentence (knowing myself, I will probably fail)

Wednesday, November 20, 2013

Design objects – Why use them and how to change?

In SAP CRM it is possible to create and change design objects. 'So what? I have everything I need in SAP CRM', you might say… In this blog I will try to explain, why and when you could consider using (own) design objects in your SAP CRM system.

Design Layer

First of all, a little background knowledge about the design layer in SAP CRM. This layer is used by the WebUI to change the representation of a business object before passing it to the presentation layer. The picture below shows how where the design layer is located. As a starting point, I have taken SAP’s standard layer-picture.

It consists of design objects that can group business content (as in…business objects) together, so this content is available for presentation in the WebUI and can be used in the same business context. Most of the standard SAP UI object types contain a lot of attributes, to be able to serve all customers.
However, you might want to limit this to only all relevant attributes (for you business) or change its labels across the entire system to fit your business needs. That’s where design objects are meant for. Besides that, you can create your own design objects, so you can group attributes together in object even if these are not belonging to the same BOL-object.
Ok, so much for the theory……but how does this work in real-time?

Wednesday, November 13, 2013

Alert notification email with deeplink to a CRM object

As you probably already know you can use the action framework to send alerts to users when certain defined events occur. For example to notify the person responsible one week before the validity date of a quotation is reached, or when a new task is assigned to a user by someone else.

By default the user who receives the alert also receives a notification email. If, after reading it, he wants to take action, he needs to open his web browser, start SAP CRM, log in, search for the alert in the open alert list, open it and click on the link to navigate to the CRM object. Many steps are needed here and many users don’t see much added value from this notification email and turn it off via Worklist > Personalize Alerts.

But what if we can add a url link to the notification email so that the user can directly jump to the CRM object the alert is about and he only needs to enter his username and pass to login?

Let’s see how we can do this.

Wednesday, November 6, 2013

Live from SAP TechEd 2013 Amsterdam

As a first time TechEd visitor I have high expectations of SAP's annual techfest. We're visiting the event that takes place from 5-11 to 7-11 in Amsterdam. Here we'll give an impression of the event up until now.

Wednesday, October 30, 2013

Have a say at SAP: Customer Connect

It was only recently that I heard of SAP's Customer Connect platform.

SAP's Customer Connect program focusses on collaboration with and between customers of their product in order to enable SAP users to inspire SAP in their developments.

If you have not done so yet, feel free to sign in and join the discussion today.

Basically if you work with SAP as an end-user, key-user, application manager or a consultant, sooner or later you might run in to the limitations of the product. It is actually very likely that you ran into this blog looking for a solution to your problem.

Some of your system requirements may be solved with customization, some by implementing SAP Notes or creating an OSS message. If all else fails, you can also try implementing small pieces of custom coding, preferably in User-exits or Badi's.

Sometimes though, your requirement calls for more than just the implementation of a note, a piece of custom coding etc. Sometimes, your requirement may require a big shift in the design of processes in SAP or maybe for instance a big improvement in performance.

This is where the Customer Connect Program comes in.
All you need is a user on and a link to the Customer Influence platform.

Once registered, you will have access to both the Customer Connection platform as well as the Customer Engagement Enitiative. Both platforms actually focussing on the same goal, improving SAP products by involving customers.

Wednesday, October 23, 2013

How to use Personalized Mail Forms in Actions

Let’s say we want to send an email confirmation when we register a complaint of a customer to inform him (her) that we received the complaint and will solve it. Of course we use the Action Framework to do this. But there we have several options to choose from.

We can use a smartform, but this will send the email as a PDF attachment (or as plain text if we setup the smtp node in transaction SCOT accordingly).

Another method is to create and send the email completely in ABAP by adding all the lines of text (or html) to an email contents table and send it out.

The disadvantages of these two methods are that they do not allow a business user to setup and maintain the email contents and layout himself or the end result is not a nice looking html email.

Let’s see how we can use mail forms to send a flexible, easy to use and nice looking html mail.

Wednesday, October 16, 2013

No-wrap IC alerts in the context area

This weeks blog is about a change in the design in the context area by SAP.

The context area is the part of the Interaction Center WebClient where you can display customer information and alerts to inform the agent based on the current context. For example fire an alert to tell the customer about a new product if the customer has a certain attribute.

As per CRM 7.0 EhP1, SAP has made a design change to divide the context area into separate views for these components. According to SAP the design change makes it more customizable.

Unfortunately this has some effect when you’re using longer text alerts. This information will not show properly in the alert area. The text of the alert won’t wrap, so you will only see half the alert.

Wednesday, October 9, 2013

The Acorel CRM App

This weeks blog is about the Acorel CRM app.
Acorel developed this app to be a simple yet powerful tool for Sales Reps on the road to work with SAP CRM on their iPhone or iPad while visiting customers without having to access the CRM system via the webclient.

The app allows users to utilize the SAP CRM system when they need it the most. Anytime, Anywhere.

This one single application allows sales reps to actually get benefit of their SAP CRM. They will love it!

This blog describes the functionality of the app and the technology behind it. Finally, let's look at the new iOS 7 version of the app.


Wednesday, October 2, 2013

&& | { [ ] } | ... Extended Expressions in ABAP 702

As per 7.0 EhP2 (702), you can use so-called ‘Extended Expressions’ when coding ABAP.

Nice nerdy topic today.

Even though this enables a more compact way of coding ABAP, and (sometimes) improves readability, it seems not to have been embraced by many. This of course makes perfect sense as we were able to do perfect ABAP coding without these new ‘tools’.

Wednesday, September 25, 2013

Opinion Blog: CRM vs CEM

The blog of this week is a bit different from our usual content. We want to know your opinion on one of the trending topics in the CRM field, Customer Experience Management (CEM). SAP is emphasizing more and more on CEM in the 360 Customer offering. But what is CEM exactly and what makes it different from CRM?

Wednesday, September 18, 2013

CTI (Open CTI and BCM) integration with SAP Cloud for Service

As you might have read in our former blog about SAP BCM and SAP CRM there are many benefits for your business with SAP BCM.

Besides SAP CRM, SAP BCM can also connect with SAP Cloud for Service. The SAP Service Cloud variant. This integration is completely standard, via a generic adapter. This adapter can also connect with Avaya and Cisco; (non-SAP products).

Wednesday, September 11, 2013

Retail Execution in SAP Cloud for Customer

New in the August release

Last July the SAP Cloud for Customer upgrade to version 13.05 was released. This version has quite some new and enhanced functionality. Specifically marketing functionality was added. As of this release SAP Cloud for Customer offers tight integration with Marketo and campaign execution functions for example direct e-mail campaigns have been improved considerably.
In he latest August release (13.08) the cloud solution is improved even more. In this version SAP improved existing functionality and again added more. There are quite a lot of new and improved features in this release. If you are interested to receive a detailed overview with illustrations and examples please let me know and I will send you this overview.

In this blog I would like to focus on a new area in SAP Cloud for Customer. The CRM solution portfolio includes industry specific solutions like industry solutions for utilities, banking, media, healthcare etcetera. It only seems logical that we are beginning to see Cloud for Customer Industry solutions as well. In the latest release the first Industry cloud solution is introduced, SAP Cloud for Sales Retail Execution for the Consumer Products industry. It contains new functionality for creating store visit plans and surveys. I would like to explain the retail solution configuration and use with this little scenario.

Wednesday, September 4, 2013

SEPA is coming ... part 2

In our blog 'SEPA is Coming….' we shared some of our experiences while implementing SEPA in SAP CRM.

When we released our first SEPA blog, some functionality was still under development by SAP. A lot has happened since then and we would like to give you a SEPA CRM update.

Wednesday, August 28, 2013

Fast Price Retrieval for SAP CRM

We all know that pricing in SAP is very complex. It’s not easy to retrieve a customer specific net value for a specific material, which includes scales and different discounts and surcharges. This article will explain a solution to quickly retrieve pricing information (<100ms).

Wednesday, August 21, 2013

Transform your company starting with an Enterprise Mobility Strategy

As the adoption of smartphones and tablets continues to grow in both the consumer and enterprise world, mobility is quickly transitioning to the second wave of mobility predicated on applications. The consumerization of enterprise mobility, powerful and connected smartphones and tablets have penetrated every facet of our personal and professional lives and are used continuously over the course of the day. Organizations are now quickly recognizing the power and value of providing mobile applications to both their employees and their customers. 

To be prepared as an organization, the mobility fundamentals, an Enterprise Mobility Strategy should be developed to enable the IT organization to deliver the business’s required mobility solutions today and to flexibly accommodate future innovation in mobile technologies. In the last year I’ve developed and introduced two mobility strategies for large customers which resulted in the next mobility excellence model which shows the nine main components of a Mobility Strategy:

Wednesday, August 14, 2013

SAP CRM Client Groupware update

With this weeks blog we want to inform you about some findings when implementing the latest SAP CRM Client groupware version (
We will be covering:
  • Performance improvement
  • Improved SSO settings
  • Office 365 support

Wednesday, August 7, 2013

Overview pages in Tile Layout

As of enhancement pack 1, it is possible to show overview pages in a tile layout.
This is completely customizable, no custom coding is required.

Basically, we go from here…

To here...

in less than 5 minutes.

Wednesday, July 31, 2013

Unlocking the web with GenIL/BOL

Last week Pieter gave a nice overview of the MVC layers in CRM. And Olaf gave a very good overview earlier on the BOL/GenIL. Today we are going to dive into the BOL/GenIL by making it do stuff it isn't supposed to do.

As you might have read in the blog of last week, the MVC concept is about separating concerns and hiding implementation details. In the context of BOL/GenIL* and the Web UI, the BOL feeds the model of the Web UI with data, and the layers in the Web UI should have no notion of where this data is coming from. It should not matter whether the data supplied by the BOL:
  • Is read from the local CRM database;
  • Is retrieved by a cool Web service or API;
  • Is being delivered by pigeons.
Please do not incorporate pigeons in your software architecture. It won't help.
NO: You definitely should not feed BOL/GenIL objects with pigeon-based data sources, but surely a Web Service would work effortles… Or would it?

Wednesday, July 24, 2013

SAP CRM and the Model-View-Controller Concept

When working with the CRM webclient platform, you can easily go ahead without knowledge of the so-called Model-View-Controller concept. I think if you want to do it right though, you should at least have some basic knowledge about the concept.
This graphic is explained in the accompanying text
For some of you, the model-view-controller concept might be something you have only heard about in an SAP classroom training or read about an SAP-Press book. For others though, this could be a concept you have learnt about in a non-SAP context.

This article will focus on how the SAP CRM webclient embraces the model-view-controller concept.

I will try to help you understand the concept as well as recognise the different parts in the SAP CRM Webclient. I will also try to show you what would be good and what would be bad practice.

Wednesday, July 17, 2013

Adding a custom assignment block on the SAP CRM Webclient home page

Once the CRM Webclient is started, it automatically displays the home screen. This screen gives the user specific information, such as “Saved searches”, “Alerts” and “Appointments”. Within project developments it might be interesting to enhance the home screen with an additional assignment block, for example, to inform the user about opportunities that need his attention.

This blog given an overview of the actions that need to be executed, to enhance the CRM Webclient home screen and add an additional assignment block.

Note that it is especially important to think about the performance of the selection behind the additional view. As the user cannot influence the selection and as we are talking about the homepage, the last thing you want is your users waiting for the homepage to load because the selection of your custom view is too expensive.

Wednesday, July 10, 2013

Translating and transporting OTR texts

In some cases you have several languages defined in you SAP CRM system (e.g. English and German). Therefore you will need to maintain the texts in the CRM WEB UI for the different countries. It can happen that you want to edit the standard translation that SAP provides for a particular country to your specific translation.

This week's blog is about OTR texts in the CRM WEB UI that needs to be translated and transported in a specific way. The Online Repository Texts (OTR) is a central storage location for language dependent text, which can be maintained via the transactions SOTR_EDIT and SE63. You can find the OTR texts in the tables SOTR_HEAD and SOTR_EDIT.

Wednesday, July 3, 2013

Why integrating SAP BCM with SAP CRM offers great benefits to your Customer Service

Today’s telecommunications world

THE buzzword in today’s telecommunications world is “Communication Enabled Business Processes (CEBP)” - integrating your communication systems with your business applications.

In the traditional communications world, companies used to invest in different solutions for communications, business process applications and IT-systems. They would have a solution for telephony (office and mobile), a solution for contact center and a solution for IT systems - completely separate from business applications.
Today's challenges of distributed teams (across geographies and functions), distributed know-how (across the organization and in different time-zones) and multiple communication channels (telephony/ email and chat) have raised the important question how to efficiently and effectively execute and manage your business processes.

This is where CEBPs become important.Today’s blog is about the integration of SAP BCM with SAP CRM. SAP BCM can be integrated with all CRM business roles, being the SAP CRM Interaction Center, SAP Sales, SAP Marketing and SAP Service role. With this integrated solution, SAP offers a complete end-to-end contact center communications and business process solution, making it a true CEBP solution.

Wednesday, June 26, 2013

Adding extension fields to your mobile Cloud for Sales solution

Since we first published our series of blogs on the SAP CRM cloud solution we have seen a lot of changes where each new release offers new and improved functionality. For details about the current release 13.02 see this blog.

There has been some confusion about the actual name of the CRM cloud solution. From the start it was called SAP Sales OnDemand. When SAP introduced new functionality the name was changed to Customer OnDemand extended with SAP Service onDemand and SAP Social onDemand.

During last SAPPHIRE event in Orlando, a new naming convention was announced. The CRM cloud solution now includes Cloud for Sales, Cloud for Service, Cloud for Marketing, Cloud for Social Engagement and Social Media Analytics by Netbase. All in all a complete package called SAP Cloud for Customer.

In this blog we focus on the Cloud for Sales solution for mobile devices. The SAP Cloud solution provides add ins for iOS, Android and Blackberry smartphones or tablets. SAP does not charge you extra for the use of these apps, they just come with your solution and are included in the license fee.

Wednesday, June 19, 2013

Using Composite operations in SAP Mobile Platform to improve performance

SAP Mobile Platform is SAP’s mobile application development platform. With SMP you are able to build complex mobile applications quickly for multiple devices. SMP provides out of the box synchronisation capabilities and security features. 

With the release of SUP 2.2 PL3 there was a new feature called “Composite operation”. This nice new feature can be used to get better performance in your SUP MBO application. With this feature you are able to split a large MBO in multiple smaller MBO’s, but still use the larger (webservice) operations.

Wednesday, June 12, 2013

The other side of the Business Object Layer (BOL)

When working with a CRM 7.0 system, especially when enhancing it, you very soon get to know some aspects of the framework behind its WebClient. The following picture gives an overview of the different layers.

For instance, if you want to change a screen configuration you need tools that are offered by the Presentation Layer. This layer is responsible for presenting the CRM data to the user and handling user interactions. The necessary data is not directly read from tables but instead are offered in a object oriented way by the layer below, the Business Layer.

The Business Layer presents the CRM data and logic in a nice uniform way by encapsulating data in Business Objects. These objects have attributes and may have, and this is a very powerful aspect, relations with other objects. The actual data is accessed through what is called the Generic Interaction Layer, or GenIL. This, CRM specific, layer is formed by ABAP classes that access the data by calling Application Programming Interfaces and provide it to the Business Object Layer.

In this blog I want to zoom in on the Business Layer and show a little bit of how it can be accessed from ABAP code, how the GenIL is implemented for a Business Partner and then...

...switch to the other side of the Business Object Layer and, instead of being a consumer of Business Objects, show how to enhance existing objects with new additional fields and relations and how to create completely new Business Objects.

Wednesday, June 5, 2013

Most important reasons for choosing SAP Web Channel Experience Management

The new SAP WCEM (Web Channel Experience Management) offering has been on general release for over a year. The question that I often get from my customers is to help them with preparing the business case for their managers. As I developed these business cases, I've found some commonality or emerging patterns to consider for choosing the standard e-commerce solution (SAP WCEM) of SAP in stead of a third party e-commerce solution integrated with a SAP Backend (SAP ERP/SAP CRM).

Wednesday, May 29, 2013

SAP Netweaver Gateway – Useful transactions

In some earlier articles on this blog (like this one), we discussed SAP Netweaver Gateway, SAP's platform for exposing business information and functionality to the outside world.

In this blog about SAP Netweaver Gateway we will discuss the most important transactions that you might use when you are working with SAP Netweaver Gateway. These transactions vary from customizing, development and testing / monitoring transactions.

Wednesday, May 22, 2013

Using object and subobject in configuration determination

In some of my previous blogs I mentioned using the DO_CONFIG_DETERMINATION to change screen layout determination. In the blog here, I even mention that using the object_type and subobject_type is not recommended, because it apparently is hardcoded. This is true for some objects.
But not for all.

So let's take a look at what it does and how we can use it.

Wednesday, May 15, 2013

SEPA is coming…

From 1 February 2014, there is a new European payment standard: Single Euro Payments Area (SEPA). SEPA is a European Union (EU) integration initiative in the area of payments that ensures that there is no difference between domestic and cross-border payments in the 32 participating European countries. 

As of February 2014 we will only be using IBAN instead of our traditional bank account number. The goal is to make it easier for organizations and consumers to make cross-border payments and to save costs.

SEPA currently consists of the 27 EU Member States plus Iceland, Norway, Liechtenstein, Switzerland and Monaco. 

Time is ticking….

Wednesday, May 8, 2013

SAP's platform for HTML5 based UI's: SAPUI5

According to a presentation by SAP's Michael Falk in November 2012, the SAP User Interface landscape these days consists of many different types of platforms, consuming datasources from many different platforms. According to SAP's current strategy, the choice of the User Interface depends on several factors, like type of user and type of function. This being Acorel's Blog, we usually focus on tweaking and adjusting the SAP CRM Webclient.

These days though, with Cloud solutions and Mobility gaining popularity, we should also start looking at other User Interface techniques. As can be read in Michael Falk's presentation here, there is a relatively new User Interface coming up fast.

You guessed it. We are blogging on SAPUI5, the HTML5 based user interface used by SAP to build rich internet applications and Mobile apps. If you look at sheet 21 of Michael Falk's presentation (which I consider a reflection of SAP's UI strategy), the whole landscape is suddenly drenched with HTML5. Could this be a sign?

Let's take a quick look at SAPUI5.

Wednesday, May 1, 2013

Winning the VNSG DemoJam: The Acorel Service Drone

Every year in january we organize our own internal Acorel InnoJam. This is a 24 hour development marathon (alike the SAP InnoJam) in which we try to create innovative applications to explore the limits of our capabilities and to share knowledge. Also we want to end up with a demo which is suitable for the VNSG (Dutch SAP User Group) DemoJam.

For this year the organizers came up with the idea to use a Parrot AR Drone 2.0 in this years InnoJam. Although a Drone of course is cool, we needed a realistic business scenario to make it a valid demo for the DemoJam. One of our functional colleagues, whom at the moment was involved in Mobility Strategy sessions at one of our customers, came up with a service inspector scenario. That customer needed an app with which they could easily navigate to service objects, which could be cranes and buildings and other large objects. We immediatly knew our scenario: the combination of Augmented Reality (a layer over the reality) to find objects to inspect and the Drone to take pictures on higher altitudes of objects that needed inspection.

Wednesday, April 24, 2013

Withdrawing SAP workflow tasks using paramaterized events

In one of the posts in 2011, I discussed using custom objects in SAP Workflow.

One of the things you can do with custom BOR objects, is add a custom event. The custom event can easily be raised using function SWE_EVENT_CREATE. You can use events to start workflows, but also to for instance influence an already running workflow on the specific instance of the object. You can implement the raising of an event using this function easily using for instance actions in transactions or using transaction events.

Wednesday, April 17, 2013

Preventing Hard coding in SAP CRM

In every implementation of SAP CRM we run into the some of the same challenges. One of these challenges is the prevention of hard coding in system enhancements. For instance hard coding of transaction types might cover current requirements, but maybe in the future a new transaction type will be created. In case the transaction type was hard coded, a program change is needed. So we do not like the below code since it is inflexible.

This blog describes one way of preventing hard coding, by creating a customizing table for these entries and showing how this table can be accessed by an access class. We do this by working out the following business case. For one of our customers we need to change the validity start date of a quotation only for two specific transaction types. Currently the check is hard coded as shown in above figure, the code is part of a CRM_ORDER_STATUS BAdI implementation.

Wednesday, April 10, 2013

What’s new in Customer OnDemand 13.02 & Customer OnDemand upgrade process.

Last year on August 15th we introduced Customer OnDemand with 3 blog updates.
The first blog was

Now in April 2013, SAP introduced the newest release (13.02) of Customer OnDemand.
In this blog I will provide you more details about the new features in Customer OnDemand and give you a clear explanation about the upgrade process provided by SAP and address some important upgrade questions.

Wednesday, April 3, 2013

SAP CRM Powered by HANA

Are you tired of waiting for your your database to find your customers?
Let's see what SAP HANA can do for you when it comes to SAP CRM.

According to SAP, SAP HANA will bring you database performance at great speeds. Does this mean that the 'hourglass' will make it's way to the history books? Let's take a look.

Wednesday, March 27, 2013

Adding Widgets to the home screen in SAP CRM

More and more users seem to be requesting embedded views in SAP CRM.
In recent blogs, we have explained how to work with mash-ups and graphical reports in the customer overview (or any other screen). These blogs focus on adding context-based intergration, where you use the information in the current screen to fetch data from other systems.

Today I will explain one of the easiest ways to embed information from external systems in SAP CRM using widgets in the home screen.


So, what is a widget?

A widget in the SAP CRM home screen is an embedded view to another website. This could for instance be a news site, a video, a google search box, an RSS feed widget, or of course the standard SAP examples like the weather widget or the clock.

Maybe a more sensible example would be to embed CTI statistics for the call center manager or embedding a graphical dashboard from BO for a sales agents.


Wednesday, March 20, 2013

WCEM 2.0 - Search as you type modification

Within WCEM 2.0 by default the search-as-you-type will respond after typing 4 characters. This blog will give you a step-by-step guide to enhance this functionality.

The standard configuration for the search-as-you-type functionality will be triggered after typing 4 characters, and by default (with ERP as backend) will retrieve up to 5 hits. These settings can be found in the file generic-searchbackend-config.xml.

This file contains both CRM backend as well as ERP backend configuration. 

During our latest WCEM 2.0 project with ERP as backend, the functional requirement was that the search should start after 3 characters and retrieve up to 3 results.

Wednesday, March 13, 2013

Webchannel Experience Management: Multichannel Commerce on a Single Platform

Internet has opened a new era of business opportunities. Each day, thousands of new consumers are joining the Internet.
The latest smartphones and tablets make the Web a busier hub of consumer interaction. The customers are nowadays extremely sophisticated shoppers. And let’s not forget how much more powerful they are with the rise of social media.
You need to offer equally powerful incentives to keep them loyal. Running an ordinary Web shop is no longer enough. Therefore more and more companies are adopting Internet as their primary sales and distribution channel.
To stay competitive, a lot of companies integrate e-commerce to their present business strategy. A little research will show that there is an extensive array of technology and solutions for enterprises.
Specifically for the companies running SAP, SAP Web Channel Experience Management was introduced last year, which is a big improvement on the old SAP ISA solution.

The SAP Web Channel Experience Management application lets you run all Web channels on a single platform, delivering an integrated process for e-commerce, e-marketing, e-service, and Web analytics in just one application. You can reduce IT cost and complexity and empower business users and channel managers, while enriching shopping and service for consumers and relationship management for partners.

Wednesday, March 6, 2013

SAP CRM Call List Management

When managing call lists in the IC Webclient, you have quite some options you should be aware of.
On Februari 11, Joshi triggered me that this is something worth blogging about with his comment on call list management here.

Call lists basically are a hierarchical list of customers that should be called.
Typical call list use cases would be cold selling, where you would be calling a list of prospects, but of course also a follow-up call on a sale or service, or maybe a list of planned calls in the contract ending period. A lot of processes can be valid for call listing.

Depending on the process and your requirements, you would typically make different choices when building your call list. For instance, if the contacts you are calling are personal contacts of an account manager, you would create call lists specifically for one user. If on the other hand the target group consists of prospects, you would create a call list for a whole group of users, specifically a department. Let's take a look at the settings in SAP.

Wednesday, February 27, 2013

Event Linkage Types in SAP Workflow

SAP Workflow is a flexible and powerful tool to organise processes in your SAP system.
With the flexibility, you will also find complexity.

In some cases, details about certain settings might be irrelevant, because the process you are implementing does not require them. For instance, if you don't use 'event queueing', you will not need to bother about the event queue background job.

Some setting might seem irrelevant, but can actually be quite important. One of these I found out is the 'Behaviour on Error Feedback'.

Wednesday, February 20, 2013

SAP CRM Archiving: “Go clean your system!”

Yeah I know it sounds boring, but it’s not! Well at least I hope you agree with me when you have read this blog ;-)

OK, what is Archiving?

Archiving is moving data from the online database via an archive file, and storing it on the file system or an external storage system so that it remains accessible to the users and auditors.
So why would you, as a SAP CRM guru, want to archive?
Basically it comes down to two answers;
  1. Performance; a decrease in your online database results in a better performance thus user experience.
  2. Money; a system can only handle a certain amount of data, when this amount is reached new database space has to be bought.
The problem is not in why we SAP CRM guys and technical guys want to archive, because of the benefits! But you have to convince the business/ the users that archiving is good for them. They often don’t see the need.

I think the Performance improvement is the best argument to get them aboard, because the money part is more an IT thing; it does not “hurt” them directly.

Wednesday, February 13, 2013

Changing operators for dynamic queries

In search screens in SAP CRM, you sometimes run in to the fact that for some reason, you are not able to select a search option you might want to be able to select.
For instance in the example, let's say we would like to select all service order types starting with 'ZS*'. This is not possible in the standard, but there is a way around this. Let's talk about 'Query Objects in the Generic Interaction Layer (GenIL).

Query objects are used to find business objects within the BOL. Many of SAP’s business objects have queries implemented to support specific search conditions. These query objects can easily be found using the GenIL Model Browser.
Besides standard query objects, supporting only 'values equal to' searches, some of the query objects are implemented as 'dynamic query objects'. Using these dynamic query objects it is possible to support multiple operators within the search. As said, it is possible. Not all dynamic query objects support all kinds of operators. This blog explains how to change the operators for dynamic query objects, to support custom specific search scenarios.

Wednesday, February 6, 2013

Enhancing Product Search with Business Role dependent field.

During an implementation of SAP CRM we focus a lot on tuning the system to user requirements. By configuring the UI based on user roles we have the opportunity to hide or show fields as the role requires. This is not always the case for filter values and search fields.

The standard product search in CRM will show the user all materials in the system. For this blog we want to help users to quickly find the right products depending on the role they use in the UI. Not all of these requirements can be solved with authorization so in this blog we describe the steps needed to enhance the standard product search with the field Item Category group and limit the values of this field per Business Role.

Wednesday, January 30, 2013

Debugging, testing and tracing SOAP messages

The past few weeks, I have been blogging about the challenges I had consuming a SOAP webservice. In this (probably) final blog on this topic, I will focus on debugging tracing an analysing the code.

Wednesday, January 23, 2013

OAUTH2.0 and HTTP header adjustments.

In the last few blogs, I have been talking about the SOAP webservice I have been interfacing to. In this particular interface only OAUTH2.0 is supported as authentication protocol

Let’s take a look at OAUTH2.0.

OAUTH2.0 is an Open authentication protocol as described in RFC 6749. As a lot of information is available on the internet concerning OAUTH, I will stick to references to proper documentation.

OAUTH2.0 is supported by many libraries such as PHP, JAVA, Python, Ruby, .NET etc.
As we want to communicate to the SOAP webservice directly from ABAP, this creates an interesting challenge, so we dove deep into the OAUTH2.0 protocol, and found that it should be possible to create the OAUTH handshake using the code exchange project OAuth2.

Wednesday, January 16, 2013

Using client proxies in ABAP coding

Last week I posted an article about how to import WSDL files (WebService Definitions) into SAP.
This was done in SE80  ->edit object -> Tab ‘Enterprise Services’ -> Client Proxy.

The result is a generated proxyclass. Today we are going to take a look at this proxy class and see how this can be used in ABAP coding, resulting in calling the functions from the webservice.

Wednesday, January 9, 2013

Direct SOAP communication between SAP and external systems using client proxies

This is probably the most technical blog I have written so far.
A few weeks ago I accepted the challenge to set up a realtime SOAP interface between SAP CRM and an external application. Connecting to this (Google) application has several challenges.
  1. It consists of about 20 webservices
  2. The authentication procedure is OAuth2.0
  3. The documentation clearly states that it is not recommended to build your own interface from scratch, but to always use the delivered client libraries (available in Java, Python, PHP, .NET and Ruby).
  4. The API is not widely implemented yet.
So, enough ingredients for a good struggle. So, let’s see what happened…

Wednesday, January 2, 2013

SAP CRM Client Groupware enhancements

What if you are using client groupware integration and you would like to enhance the functionality, for instance because SAP's logic does not match your business requirements.

Let's say as an example, you disagree that deleting a contact from outlook should mean that the contact should be archived in SAP CRM. After all, users might be deleting a contact in outlook because this particular contact is of no interest for them, but this does not necessarily mean that the contact is of no interest for your SAP CRM system.