What is the first thing that comes to your mind when you found this subject Quite unique .

I guess my number of views will be less this time due to the uniqueness of the title

"*" is quite often used term in CRM UI to make a wild search.  We use “*” when we are searching in F4 in SAP GUI or CRM Web UI Search.

But the asterisk what I am going to talk about is the one which we put in PFCG authorization

Across my SAP experience I found people easily giving full authorization to authorization object. The reason behind such practice is as follows:

  • Lack of knowledge
  • Avoidance of unexpected errors that might occur
  • Effort required to find those objects
  • Making testing task easier, etc…..


In CRM perspective, if we follow such method then we are trying to control navigation via Business role. The UIU component linked to the business role does not restrict access data but let the menu in PFCG role to control navigation.

Pitfalls of such approach

Using the * to all the objects is like disabling the authority check to work.  Giving unwanted access to users which they are not suppose to use it, leading to a major business impact and security concerns.

So it is recommended to give specific set of values for authorization object in the beginning itself, rather getting into trouble later.

Below is some of the illustration of blunders that one might do

Example 1 - UIU component authorization objects

Example 2 – Non UIU component authorization objects

To my surprise some might give all the parameters full authorization as the one above. Giving such authorization demeans the usage of the authorization concept.

Nonetheless there can be some authorization objects we can give full authorization "*" . For example a developer role. The whole point is look before you give such authorizations rather than recklessly giving full authorizations to all the authorizations objects in a PFCG Role.


Thomas Wagner

SAP CRM offline tools

Posted by Thomas Wagner Oct 28, 2014

I started my career in the area of SAP CRM as an inhouse project member for a SAP Mobile Sales first customer shipment project in 1999.


SAP Mobile Sales was a brand-new tool then, developed by guys in Mannheim (Germany) and Bangalore (India), especially the former company of Kiefer & Veittinger which was bought by SAP at that time. This tool had its own local database, a Microsoft SQL Server, a local program called ConnTrans to communicate with the SAP CRM server and in this server a consolidated database (CDB) and a middleware. I really liked this tool and in 2001 I became a consultant for it and developed in and for this system until around 2008, even as some clients faced technical problems with this complicated and sensitive system landscape. At around 2007/2008 the tool was no longer really promoted by SAP and the focus was on the online PC UI and WebUI developed with normal ABAP OO. This also meant that I had learn this new technology as well, to do projects.


But even with UMTS and mobile internet the demand for offline tool was still there. The fieldforce needs an available system and sometimes they are in remote areas or not fully developed countries with no or very slow mobile internet. I have little information about Sybase as I skipped this technology but with SAP Mobile as well as with SAP Fiori there is always the question about offline support which seemingly will be provided by SAP in some ways. And there are still many other offline tools around, some Microsoft Excel based and some relying on 3rd party software. Just a few months ago a client of the pharmaceutical industry asked us if we have ideas to replace his self-developed Excel-based offline tool for the fieldforce.


So I think the story will go on and I will be interested to see which systems will come next and how SAP will address the needs of the customers in this area.

You can never have too much of a good thing! Well, except for emails. You can definitely have too much email in your inbox. As a general rule, I try to keep my  inbox to just one page so that all my emails are visible without having to scroll. But I've seen colleagues with hundreds of unread emails!. And that's just for a single user. A company on the other hand might receive that many emails in a single day -- every day, every week, every year. And all of those emails get stored in the CRM system. For companies using SAP CRM to handle emails with ERMS and/or the Interaction Center, that could amount to hundreds of thousands, if not millions, of emails. Obviously this can raise concerns about storage size and system performance. So what is a company to do?


The simplest solution of course would be to do use archiving. Unfortunately, things aren't always as simple as we would like them to be. For example, while we talk about "emails" in SAP CRM, what we are really dealing with in the system are not actual emails but rather CRM workflow items, SAP business objects, and an assortment of database tables. Technically, when an email passes through the SAPconnect interface into the SAP CRM system, the email is converted into a CRM Workflow item. Later, when that workflow item is selected by an agent from the Agent Inbox in the Interaction Center, the workflow item is completed and converted into an SAP business object.


To further complicate things, "emails" and the corresponding workflow items SAP business objects, attachments, and replies aren't stored in one place. Rather, various items are stored in various different tables such as: SOFM, SOOD, SOC3, SOFFCONT1, SOOS, SOST, SOES, SOFFLOIO, SOFFPHIO, SOFFPHFK, and so on!


There are of course options for going about archiving workflow items in CRM, for example. But to be honest, the workflow items aren't really what most customers need to be worried about in terms of storage size and performance. Similarly, there are also options for archiving text documents (type RAW & SCR) using the report RSSOAPUT. But text documents aren't of particular concern either. What companies should be most concerned about of course are email attachments -- which can be quite large.


Email attachments are stored using SAP Knowledge Provider (KPRO). The good news is that customer who concerned about excessive use of database storage for attachments have the option to use an external content management server specifically for email attachments! In the standard settings, the KPRO stores the SAPoffice data in the database table SOFFCONT1. You can also select an external content server or an archive system as somewhere to store the documents. The storage location is determined using the content repository 'SOFFDB'. You can check the storage location for the SAPoffice data in your system using Transaction 'OAC0'. See SAP note 904711 for full details.


You may also want to check out this thread on SCN for additional discussion.



Follow me on my blog at http://scn.sap.com/people/john.burton/blog

If you’re an existing SAP CRM customer you have probably already heard about SAP Fiori. But you might still have some questions like… What the heck is a Fiori anyway? What SAP CRM functionality is available via Fiori? How much does Fiori cost? Does Fiori require SAP HANA?


Keep reading below to find out what SAP Fiori is all about and how you can leverage it within SAP CRM.



Fiori is an HTML5 user interface, not a type of pasta


Fiori is not a type of pasta. Nor is it an Italian flower. Rather, SAP Fiori UX (User Experience) is SAP’s next-generation user interface built using HTML5 / SAP UI5 mobile and OData services. Fiori is optimized to run on mobile devices; However Fiori apps can run on any device including smartphones and tablets, as well as laptops and desktops.


Similar to the “Personas” concept in SAP ECC, Fiori apps are organized by roles. Users access the Fiori apps via tiles on a homepage using the Fiori Launchpad, the central entry hub to all SAP Fiori apps. Within the launchpad are services for navigation, personalization, single sign-on, and search.


All SAP Fiori apps follow a design principle known as 1-1-3 (“one, one, three”). This means each screen should be designed with a single user (or role) in mind, a single task that this user wants to accomplish, and a maximum of three levels of navigation to perform this task. In addition to the over 360 individual Fiori apps provide by SAP, customers can also create their own Fiori-like apps.



HANA is recommended / required


HANA is recommended -- and in most case even required -- to run Fiori apps. Technically SAP Fiori comes in three types of apps: transactional apps, fact sheets, and analytical apps. Transactional apps run best on SAP HANA, but can be ported to other databases that provide acceptable performance. However both fact sheets and analytical apps can only be run using SAP HANA.



Fiori is free


When SAP first unveiled the Fiori UX at SAPPIRE in 2013, it was announced that customers would be required to pay an additional license fee of 100 Euro per user to leverage the new Fiori user interface. While customers were thrilled excited about the new UI which offered increased usability, customers weren’t necessarily as enthusiastic about the licensing model. After several discussions between SAP and customers it was announced that Fiori is now available free of charge to customers!



Fiori is also available for CRM


When Fiori was unveiled at SAPPHIRE in May 2013, there were only 25 apps available for the entire SAP Business Suite. Today there are over 360 individual Fiori apps available including a dozen or so Fiori apps for CRM! Most of the apps available to date for CRM are focused around the Sales Representative role and include functionality designed around account and contact management, leads and opportunities, and sales pipeline performance.


Notably absent from the sales-related functionality is Order Management, which is not currently available via Fiori for CRM (however Fiori does of course offer Sales Order Management apps for ECC). Similarly, Fiori does not yet provide any Marketing or Service Management apps for CRM. Below is a list of the out-of-the-box Fiori apps currently available for CRM.

  • My Accounts
  • My Appointments
  • My Contacts
  • My Leads
  • My Notes
  • My Opportunities
  • My Tasks
  • Approve Requests
  • Simulate Sales Pipeline
  • Track Sales Pipeline
  • SAP Smart Business for Sales Performance Management



Fiori runs on CRM 7.0, EHP1, EHP2, and EHP3


Fiori is included standard with CRM 7.0 EHP3 SP03 and later releases. Some Fiori apps can be leveraged in EHP2, EHP1, and even CRM 7.0 by installing the Fiori Add-On package. The following versions are supported:

  • SAP CRM 7.0 SPS 06 or higher
  • SAP enhancement package 1 for SAP CRM 7.0 SPS03 or higher
  • SAP enhancement package 2 for SAP CRM 7.0 SPS01 or higher


However, many of the newest Fiori features and functionality for CRM can only be used with the latest CRM versions. For example, the following features of the My Accounts Fiori app are only availalbe with CRM 7.0 EHP3 SP09:


  • Account types: The app shows individual accounts and account groups in addition to corporate accounts.
  • Display own accounts: You can determine which accounts are identified as the user's accounts (for display in the My Accounts view). You determine this on the basis of relationship categories for the relationship between an employee and an account. You can determine user's accounts also based on own definitions.
  • Fstrict the result list based on own definitions (for example take out blocked accounts).
  • Create and edit accounts
  • Display quotations from SAP ERP
  • Display sales orders from SAP ERP
  • Display and create marketing attributes
  • Etc.

Fiori can be used for “mobile sales”


Fiori apps are built using the SAP UI5 framework on the front end, which calls backend functionality that is exposed using SAP NetWeaver Gateway services. Unlike the standard CRM WebClient user interface (which can be run on mobile devices like iPad with some tweaking) Fiori apps are optimized for mobile devices and dynamically resize to fit the display of the device being used.


This means that Fiori could be used in lieu of CRM Mobile Sales – at least for basic SFA functionality like account management, appointment management, lead/opportunity management, and pipeline analysis. And unlike other mobility solutions for SAP CRM, Fiori does not require the use of SUP (Sybase Unwired Platform now known as the SAP Mobile Platform).


However, as mentioned in #2 above, Fiori doesn’t currently provide a Sales Order app for CRM (though Fiori does provide a Sales Order app for ECC).  So if you wanted to allow sales reps to log orders in CRM using Fiori, you would currently need to create your own apps for e.g., quotation and sales order management.



Fiori can be used offline (currently just for select apps) ** Update Nov 2015


With CRM 7.0 EHP3 SP10, which was released in October 2015, SAP CRM customers can run Fiori in the Cloud connected to their SAP CRM system.  Among other things, Fiori Cloud Edition enables Fiori apps to be run in offline mode on smartphones and tablets.  Users can create, edit, and view data in offline mode. All data is store locally on the device and synchronized with the CRM backend via SMP or its Cloud edition HCPms.

As a first step, with SAP Fiori 1.0 (wave 10) for SAP CRM 7.0 EHP3 SP10, SAP has enabled two CRM Fiori apps to be run offline: My Accounts and My Contacts.  As prerequisites SAP Mobile Platform (or its cloud edition HCPms) and SAP Mobile Secure are both required.  For complete details, click here to read Jutta Weber’s blog post, “Using CRM Fiori apps offline”.



Fiori is not WebDynpro, WebClient, Corbu, or SAP Screen Personas


As mentioned above, SAP Fiori User Experience (UX) is a new user interface technology based on HTML5 / SAP UI5 and OData services. Fiori does not rely on the WebDynpro technology which is typically used when building web applications in the SAP environment. Similarly Fiori doesn’t leverage the BSP (Business Server Page) technology used by the CRM WebClient user interface.  Rather Fiori is a completely separate new user interface technology.


It’s also important to differentiate between Fiori and Corbu which is essentially  just a new “theme” or “skin” that can be applied on top of UI technologies like WebDynpro, WebClient, or SAP GUI to standardize the look and feel (i.e., fonts, UI elements, layouts, etc.) of SAP applications regardless of which technology platform they run on.


And finally, Fiori should not be confused with SAP Screen Personas which are useful for modifying SAP GUI screens such as those in SAP ECC. SAP Screen Personas is a technology that provides a drag and drop approach to modify many common SAP GUI screens to make them more usable and more visually appealing. While this is a great tool for SAP ECC screens that use SAP GUI, SAP Screen Personas is obviously not useful in SAP CRM which uses BSP WebClient screens. Fiori on the other hand, which can be used with CRM, provides somewhat similar benefits in terms of usability and personalization.



You can create your own Fiori apps!


As mentioned above, currently SAP only delivers out-of-the-box Fiori apps for the Sales Rep business role. And while SAP is planning to deliver more Fiori apps for other business roles like the Marketing Professional at some point down the road, some customers and system integrators have already gone ahead and developed their own custom Fiori apps rather than waiting.




For example, Nsight, an SAP certified partner, has built a set of Fiori apps for CRM Service Order Management! While these apps are obviously not standard SAP Fiori apps delivered by SAP, they conform to the Fiori standards and integrate seamlessly with SAP CRM just like regular SAP-delivered Fiori apps.


You’ll notice also that Nsight has added some additional touches of their own such as color-coding and sorting of orders by priority and status (Figure 1). They’ve also added integration to Google Maps for driving directions as well as CTI integration for click-to-call capabilities (Figure 2).




These quite sophisticated Fiori apps from Nsight are just an example of what can potentially be done on a project basis. Your custom Fiori apps can be as basic or elaborate as you like. It’s up to you. All you need to do is create your apps and plug them into the SAP Fiori Launchpad! For a primer on how to get integrate your own custom Fiori apps, check out this article from Craig Haworth, “How to get your SAP UI 5 apps to work like SAP Fiori Apps in the SAP Fiori Launchpad”.



Additional Documentation and Guides


There are many other questions about Fiori that I don't cover in this introductory blog post about Fiori for CRM. For example, "Can Fiori be used offline?" or "Does Fiori require SMP?". Those questions are beyond the scope of this post, and they are already answered better elsewhere. Below are a few links to other resources that provide more in-depth information on Fiori in general (while my post here was intended to focus specifically on the use of Fiori for CRM).



Follow me on my blog at http://scn.sap.com/people/john.burton/blog

A couple years back I had an idea for a book on the technical aspects of implementing and supporting SAP CRM.  The title for one of the chapters was called the “Zen of SAP CRM”.  Although that chapter title never made it into the book that was published, I personally liked the name.  In the recent months I have wanted to create some new technical content on SAP CRM.  However I’m challenged to do something that doesn’t cover what was in the book.


During the end of my writing process for the book, I came up with a way to reverse and flip all the content based on the project lifecycle by functional requirements instead of coding examples.  During this blog and hopefully a few more we can explore more of the thought process before I write the code.  Let’s start with business process design basics for SAP CRM.


Getting Started

Most of my projects to solve a business problem with SAP CRM, start out with a specific need or issue surrounding sales, service or marketing.  These problems could include tracking customer complaints, recording information about customers and many other types of customer related issues. In evaluating these requests we have to determine whether SAP CRM should be used in the first place.  The major deciding factor on whether SAP CRM can be used to solved the problem is that the problem involves a management of interactions between two business partners. 


If you don’t know lot of about SAP CRM or do know and have your thoughts on SAP CRM, you may sometimes focus too much on the C in the acronym and less about “RM” in CRM.   The relationship management tools in SAP CRM do not have to always be used for “traditional” customer relationship management scenarios.  This concept is key in being able to think about handling requirements that don’t match standard processes.  In order to do this I need to think creatively on how business partners and business transactions can be used in SAP CRM.

Standard Process or System as Template

I think in an ideal world we would all love to use standard pre-delivered processes.  The issue is that how each business wants to interact with their customers is different.  When I implement a new business process in SAP CRM, I use the existing processes as a template.  You might argue that takes a lot of work, but honestly I have configured prototypes of a new process very quickly.  The other part is that sometimes we box our minds into thinking the system can’t do something when in fact it’s just configuration and we are unwilling to go in a different direction.  I have used this approach to model new types of business partners that are “things”, but not materials. 


Mapping out the process

The biggest problem today is we think “user interface” = “business process”.  That’s a huge issue because data entry is only a few steps of a business process.  I prefer to sit down and map out the target process in abstract.  As you can imagine the design includes what to track, validation rules during tracking and steps involved during a normal lifecycle of that process.  During this process we ignore the user interface of the system and focus on business scenario.  Our goal is to drive the requirements based on business need and not making the business necessarily match the system. 


My goal is always to figure a place in standard SAP CRM that can store/manage the requirements of the business process.  That being said certain business scenario templates require a more specific design process that tailors to that basic scenario.  Depending on the initial requirements we can “personalize” or “custom build” a solution.  In my terminology “personalize” is adding on a few dealer OEM options while “custom build” is like getting car from “Gas Monkey” or custom chopper from Paul Jr Designs. The custom build scenarios are how I got started with SAP CRM and fuel my development work.  I must admit a vanilla SAP CRM system would be very boring and not provide as much business value as a custom build.


Gap/fit analysis

It’s always the gap fit analysis where the difference is shown between those who understand how to utilize the system to the maximum with minimal coding and those who don’t understand the system, but code to solve problems.  When I wear my developer hat my goal is not to write code.  That’s my number objective is to make sure that any code written is only for true gaps.  I personally only say no to a requirement in this phase if it does not have business value or I figured out via previous work that the system just doesn’t handle that requirement in fashion beneficial to the business. Understanding some of these system limits is part learning, research and trial/error.  There are some pieces of functionality that look great on paper, but can be a pain when used productively. 


Going Further

In order to really understand this further I am going to stop here for now, and will come back later with understanding how to map/analyze a business process to existing business process delivered in the system.  I will try to look to at the key parts of how we take an abstract process and turn it into a fully configured business transaction.  Keep in mind I’m not going to explain how to do the configuration, but rather what questions I ask or think of while doing the configuration and how that thought process works.    I haven’t written that blog yet, so if you provide feedback on process challenge for me I will take that into consideration.  I’m going to warn you that if you ask me to do standard activity management, complaint management or opportunity management I’m going to yawn.


Final Thoughts

I’m going to be at Teched/D-code Las Vegas next week.  If you are attending please join me at lunch to talk more about SAP CRM.



This is the second part of my serie about improving the mass data transfer (insert, update, delete) experience using LSMW and SXDA and will be focused on the definition of the whole project.

For the definition please check my previous blog: Unlashing SXDA and LSMW Part 1 - Definition


Step 7: Running an execution


To show how the error is handled I create a small input file with some records OK, and some other records with errors (16 records 6 errors).


Step 7.1: Load the file to the server


How many of us know about the existence of the transaction CG3Z? Unfortunately this transaction belongs to the ECC not to CRM, so what we can do? I heard develop a custom report to perform the GUI_UPLOAD? NO, because we have our beloved SXDA (or via transaction SXDA_TOOLS)

This is another very nice feature from SXDA (SXDA_TOOLS)




As you already see It has more functionalities but I will focus on the file management, so I’ll complete the mandatory data just to be allowed to press the Copy button.




Remember to use the same name like the one you defined as input file in the LSMW (the file name is case sensitive)



Anybody is still missing CG3Z and CG3Y?


Step 7.2: Executing the data transfer run definition



We can easily execute the data transfer online or programming a Background Job.





On our scenario, we are talking about 16 record so I will execute it online.


Step 7.3: Analyzing the results




As you can see 10 records where correctly processed and 6 with error, be careful here, because the numbers can confuse you, in this test I changed the package size to 1, so will be 1 commit per transaction, but If changed the package size to 3, will count the number of packets with error, not the total amount of errors, so you need to go into the detail to see the exact amount of errors.


Step 7.4: Fix the errors.


Another advantage of using SXDA with the option Write IDoc to error files checked is the option to modify directly the IDoc format file and reprocess the data transfer with only the ones you fixed, this is pretty cool, the only thing I don’t like is for each step, one SAP GUI session is open, so ensure you only have mandatory sessions opened and close the other ones, even with that, maybe you'll end with one active session (SXDA screen), depends how your system is configured







We will deal with the Error file options in order to fix the data and reprocess it again, the error file will open the whole error file in ALV format, the error file line will open the segment where the error was detected, this option is not always available for all the interfaces, for example with the Business Partner data transfer it only appeared the Input File and the Error file options.







The IDocs are separated by colors (red the Erroneous IDoc we selected in the previous steps, green separates each IDoc, yellow the IDoc data) at the end is a “lite” version of the WE19, you can add, remove, duplicate, segments, and of course you can edit the values, the latest will be discussed below.




Double click on the wrong segment, this is the most painful part, how you can know the wrong IDoc segment?, remember you not always have the option of the “Error file Line”, you should know the reason of the error, this can be found in the second step of the log navigation via the error message, sometimes is more intuitive, sometimes is less, you know what I’m talking about.


Once you figured out what can be wrong you need to check the IDoc segments, but which one? One way is check the segment name in the LSMW or using WE30 and find it in the list using the search (CTRL+F).











Once the changes are made, remember to save and ensure the success message pops up, otherwise you can waste some precious time in stupid errors.







Step 7.4: Resume the running execution








Sources of interest:


Help SAP documents:


Data Transfer Workbench - SAP Library

Legacy System Migration Workbench - SAP Library


SCN blogs:

LSMW Long text load by Direct Input method

LSMW and XIF - Idoc method

LSMW Material master by BAPI method - Part 1

LSMW migration with IDOC method and using IDOC as source Part2: Import


and a long etc.




End of part 2:


I hope you enjoyed the blogs and looking forward to your feedback








It’s quite difficult to be precise in the area which this blog should belongs, SXDA and LSMW are Netweaver components and works cross solutions, but as I’m specialized in CRM and the example is with the One Order object I believe this is the best spot, I just hope this can be useful also to other SAP professional which works in a different area.


This blog is about improving the mass data transfer (insert, update, delete) experience using LSMW and SXDA and will be focused on the definition of the whole project. Please don't skip the second part of the blog which includes the execution and references: Unlashing SXDA and LSMW Part 2 - Execution


What? Someone asked what's LSMW? This is an old topic and I believe is covered enough trough SCN, but I think a short definition will be good: Legacy System Migration Workbench is an old framework to manage data transfer into a SAP system (create sales orders, customers, etc. supports a large number of objects).



  • Are you tired of depending fully on developers?
  • Are you tired of the sentence “custom report?, we can’t support you”



  • Are you tired of manually deal with mass processing using parallelization?
  • Do suffer from itching each time you have to develop a report to upload a file from the local pc?
  • Do you still suffer PTSD after deal with complex data mapping in LSMW (events)?


If most of the answer is a YES, I believe this blog can really be useful, Otherwise, there’s a lot of stuff going on SCN


The Scenario:


Update more than 5k of sales orders which have a wrong posting date.


Step 1: Create a project


Acording to SAP "A project is used to group Business Objects together for a transfer" In our scenario we only have One Business Object: Sales Order. This doesn't make much sense in our basic scenario, but imagine you want to migrate various legacy systems to your SAP solution, you can create a project for each leagacy system and inside each project you will have all the Business Object required (Customers, Relationships, Products, etc.) or even better, each legacy have two Business Object, Legacy system 1 has Customers and relationships and Legacy system 2 has Products, this is a very nice way to organize your data transfer, right?







Step 2: Create a subproject, run definitions and tasks via Wizard


The Subproject will correspond to  Business Object itself in our case the One Order object.



Step 3: Choose the type of data transfer object (Business Object)


Depends on the Business Object type selected, the wizard will provide you the corresponding load method (LOA), load methods supported are:


  • BAPI (you can create/use your own BAPIS, in that case, the BAPIS must be generated through BAPI-ALE interface, I'm not going further on this as the main topic is wide enough)
  • Batch Input
  • Direct Input
  • IDoc


You already have the relationship between Business Object and load method delivered by SAP, and this will depend on which modules do you "installed" in your Netweaver.


You can check which objects/load programs/interfaces are available through SXDA->Goto->DX Program Library




Step 4: Review taks parameters


The task is, as the name says, each task which will be performed sequentially in each run definition, oh! I almost forgot, what's a run definition? For that I will need to go for another "complex" scenario: Imagine you have to create customers and the source files are more than one, you can create a run definition for each file in the same Subproject (Business Object) why? for example to run the data transfer in paralel, or a better case you have different tasks for each run, first run validate file, second run no because the file doesn't need to.


STEP 4.1: Task - Convert data


Calls the LSMW as the maping tool in order to convert the file from external format to the BAPI, Batch Input, etc. internal format. You don’t need to change nothing here, but give you the detail to build the filename for the step 4.2. It believe it's good to know the Project, Subproject and Object fields of the second screenshot correspond to the LSMW project which will be generated once the wizard finish.




Small parenthesis:  Sometimes LSMW need a very complex input files and the customer doesn’t have/want/know to perform those conversions on the Legacy system. Here’s where another major advantage of the SXDA comes to play, the possibility to define additional steps, in this case I’m briefly talking about the Task Types: Extract data (EXT) and Clear data (PUR) , you can define a custom Function module or custom program for both Task types in order to read the source file and format it nicely in a LSMW friendly file, specially the hierarchical type ones, people whom dealt with that in LSMW knows exactly what I’m talking about, right? No more dirty stuff on the LSMW mapping events! Keep the mapping as simple as you can. If you are more interested in this topic I can write a specific one about this, but firstly let’s see the acceptance of this one


You can define additional tasks on SXDA->Goto->DX Program Library->Create registration, once is registered the wizard will suggest to use it (if you create the run from scratch or if the run is already created and you want to add this new task manually)


Step 4.2: Task - Check file


It Checks if the file has a correct IDoc format, doesn’t check the data itself, only the structure. The important part here is the name of the name of the input file, the filename is the result from the mapping conversions performed by LSMW (convert a flat or not flat file to the IDoc format which can be consumed by the standard BAPI) The name convention is always the same name of the SXDAproject(Uppercase)_subprojectID_ObjectID.lsmw.conv (you can check this in the previous screenshots,  Step 4.1)

You can perform this step once everything is finished, even all the LSMW but it’s better to do it at the very beginning to avoid the “Oh I forgot”.




Step 4.3: Task - File split


In this step we split the converted file in small chunks, the number of the total IDocs generated is divided into the number of files defined, and this is quite useful, for example: check a particular block on a 100 record file it’s easier than do the same on a file which has 500k, for further information check the section Fix the errors. I also like to keep the files, sometimes the data transfer can be performed successfully but some data got lost, so it’s a good way to trace small mapping errors, loss of data, etc.



Step 4.5: Task - Load data


This is the most important step and one of the awesomeness features, you can choose the size of the transactions per commit and if you want to perform the data transfer sequentially or in parallel using a server group, the last one can increase the performance dramatically, but you must check/configure with the basis guys the server group in order to not use all the DIA processes a good tuning between parallel processing and block size is one of the cornerstone of an optimal and healthy data transfer.


I only log the error messages, because I don’t want to increase the logs necessary and I also check the Write IDoc to error files, because allow me to fix records with errors, I will explain this later on.


As we split the file in 5 we need a 1 error file for each to store the erroneous records, more files, easier to find inside the file the error, but we also will see this in the following steps.





Step 5: Choose message type


In our scenario I’m dealing with XIF interfaces (BAPI-IDoc) this can differ depending on your object type and data transfer method.



Step 6: Perform the mapping using LSMW


The convert data step doesn’t have any input /output file, this will be automatically informed once the LSMW tasks are completed.




As I pointed in Step 4.1 I already have a Project, Subproject and Object (generated by the SXDA wizard) Don’t forget to config the Inbound IDoc Processing from the LSMW perspective (settings) more info about this and LSMW at help sap portal



Let’s assume I finished all the mandatory steps (everybody who is used to LSMW knows what I’m talking about, if you are not used to LSMW there are very nice blogs step to step on SCN which cover those steps, from 2 to 6)

Now It’s time to specify the files and assign to the input structures (remember until this steps are done, the SXDA Convert Data step will be incomplete.


As you can see the LSMW automatically assigned the IDs for the Imported and Converted data, this must match in the SXDA steps.




Finally, we go back to the SXDA we see the input/output files informed (if this doesn’t happen: two cause can be a refresh on the SXDA screen, so /NSXDA  or some LSMW step is missing )





End of part 1:


I hope you are starting to see the advantages of combining both tools and looking forward to your feedback





Luís Pérez Grau

CRM Code examples

Posted by Luís Pérez Grau Aug 29, 2014
ComponentSupport Package



Why this blog?


My intention within this blog is to bring to the front page some code examples posted in the wiki hopefully will be easier to be found. In order to not create a blog for each time I create a wiki entry on the code gallery, I will update this blog.



The Wiki Pages:


Business Transactions


Example how easy can be using the XIF interface to update the One Order model

CRM - Change Document appointment date using XIF - Code Gallery - SCN Wiki


Example of deleting Sales Order Items by Sales Order ID and Product ID

CRM - Remove Document Items by Document ID and Product ID - Code Gallery - SCN Wiki


Example of creating manual conditions on a Transaction via program.

CRM - Create manual conditions on a Transaction using XIF or One Order API - Code Gallery - SCN Wiki


Web UI


Up to SAP CRM 7.0 Ehp2 SAP didn't provide standard tools to remove massively saved searches, I believe this tool is pretty useful from an administration point of view.

CRM - Remove massively WebUI Saved Searches by User and Description - Code Gallery - SCN Wiki



I hope I can keep publish more content and looking forward to your feedback.





Many of the SAP CRM consultant who are working on SAP CRM authorization must have come across UIU_COMP  authorization object. This object is the major differentiator between SAP CRM and SAP ERP. SAP CRM WEBUI make use of external services of the type UIU_COMP. The visibility of the work centre, logical links, creates, edit, etc in WEBUI pages depends on it. While creating PFCG Role (automatically/ manually) UIU_COMP authorizes UIU component on the base of Component name, inbound plug and component window.

The diagram below shows the relation between Authorization , Business Role and WEBUI.



The Role Menu in PFCG Role shows the list of all the work centre, logical links (which are UIU_COMP links) assigned to a specific business role link generated



Any deletion of any of the links in the role menu will cause deletion of the links in the WEBUI even if the changes are not made in the business role. For example if I delete UIU_COMP_BP_HIER_MainWindow_CREATE from the role menu, the same will be deleted in the authorization objects . And it will be not visible in the WEBUI too even if the same is maintained in the Business role.

The Assignation of the actual line nos to items in Transactions are very important. And they are also very important in case of Bill of Materials. Since its all standard we never tend to worry about this.But there are requirements for e.g.

  • When you need to create structured products yourself based on a custom logic. In this case the responsibility of allocating proper line nos would fall with you.
  • Based on certain events , you would need to add a new product to the Items , then also you need to take care of the lines nos.

At this point of time some of the scenarios may look a bit weird but they are a real possibility and then the line nos are not assigned properly.


The actual assignment of line nos happen through the call back functions. The function module CRM_ORDERADM_I_ITEM_NUMBER_EC is responsible for this. The assignation is done in the FM.


Now if you need to add some custom logic to find out the increment in which the item nos are changed , then you can do using the following code


        iv_process_type      = lv_process_type
        es_proc_type         = ls_crm_proc_type
        entry_not_found      = 1
        text_entry_not_found = 2
        others               = 3.

The field incr_item_proc in the structure ls_crm_proc_type will contain the increments defined in the customizing. Now if you want to play around with this information to assign the item nos as you wish to. But you have to make sure

  • If you want to have the standard function module assign the item nos , then your code should run before the standard callback FM is called. But in this case you would not be able to establish the parent child relation yourself because the line nos are not assigned.
  • Then in that case you have to write the custom logic for assigning the item nos. You can read the increments as defined in customizing then act accordingly.

Since there is no formal book available for SAP CRM Pricing , then how do you ramp-up using the available materials. The idea looks pretty daunting but using this learning map , you get exposed to a learning map. The learning map goes like this

  • Functional Knowledge: The configuration of pricing is a very big skill in itself. To conquer this, you need to to a have formal material in your hand. I chose to use this book. You may also choose to use another book or alternate material but there is no way you conquer pricing without knowing the basic functional configuration of pricing. Now the literature on SAP CRM pricing is limited so feel free to pick SAP SD Pricing configuration guide/book and do a comparative study of both to enhance your knowledge.
  • Internet Pricing Configurator(IPC): The pricing engine in SAP CRM is IPC. Without knowing this it is very difficult to conquer the pricing. Pricing engine contains Pricing , Tax and Configuration Engine. Also should have understanding of Virtual Machine Container(VMC) which is a part of Application Server ABAP. What do we do in IPC ? There are many things we do in IPC. Primarily all custom routines which are implemented in ECC SD have to be re-implemented in IPC. Since IPC is Java based , hence you need to have knowledge of JAVA , NWDS and NWDI. There are restrictions as to what Java based functionality you can use in IPC. To know more details , please download this document. This would explain you everything related to IPC. The document is a treatise and would help you to ramp-up on all topics in SAP IPC. This document was delivered with a SAP Note.

        Also you can refer to this website.

This diagram illustrates the Development Infrastructure used in IPC


The development process in Java is illustrated below ( holds good for IPC Java developments as well)


The ABAP & JAVA development process is compared



  • ABAP Based Developments for pricing: Though there are somethings which are missing in this blog, yet this blog is an absolute must for beginners. The ABAP based developments are covered and that part is sufficient.
  • Tools to analyze pricing: There are some excellent tools available to analyze pricing in SAP CRM.Check the attachment in the note . You would need the access to Service Market Place. The following paramters are used in SAP CRM/IPC analysis.


  • Middleware: The mass generation of following types of objects could be done
      • Price determination relevantconditions (PR , BO and FG) -These conditions control the price determination when the trade promotion is executed or the sales order is executed.
      • Conditions used in campaign determination (CD) -These conditions control thecampaign determination when the trade promotion is executed.

     The transation CND_MASS_GEN_OBJECTS is used to generate the objects these objects



With this learning map at least you would  have more than the basic idea about pricing from customization, IPC from its infrastructure, development and other related areads and CRM Pricing Analysis tools. Enough to get started.


It took me a lot of effort ( actually effort of colleagues who ramped me up as well ) and a lot of persistence to gain a foothold in this area. Went through lots of materials available in the internet and then could narrow down the list to these documents/books. In the interest of people , let this blog be a placeholder for learning SAP CRM Pricing and Internet Pricing Configurator resources. We can add the resources if we want to add.


If you believe if something is missing please mention it in the comments and hopefully me or someone else will be able to modify the blog to capture the information.


Selected Blogs from SAP SCN which may be of interest

  1. Blog1
  2. Blog2
  3. Blog3
  4. Customizing Download
  5. IPC Java User Exit Development
  6. IPC Java User Exit Advanced
  7. Update Pricing in SAP CRM & SAP ECC
  8. Debugging Java Based IPC user Exit part1
  9. Debugging Java Based IPC user Exit part 2

You would wonder why the hell is he publishing a book review of a SAP SD topic in CRM area. The reason is very simple. There were no books available for pricing in SAP CRM area hence I decided to accelerate my learning by purchasing this book. In fact if you have worked on projects which have a CRM and ECC integration using CRM Middleware , then most of the customizing is downloaded from ECC system to CRM, so learning SD customizations for Pricing makes perfect sense.Since I am currently working in one such project , I had a good use case to use the knowledge that I would gain from this.


I found the book a must read for any body who doesn't have an extensive SAP Pricing experience and would like to ramp-up quickly in this area. The books claims to help you with these points

  • Understand the complete pricing solution from SAP

If you are working in SAP SD , then this statement completely holds true. This is a very good book to understand the pricing from SAP point of view. Exposes you to almost every thing related to pricing. Also exposes you to Variant Configuration and Internet Pricing .  But from a SAP CRM point of view, this would expose you only with the configuration ( which is good ) and not anything else ( which is also not the core constituency ) of the book. The book also details the User Exits which are used in SD Pricing and Routines which needs to be developed. If you are looking for a formal introduction to pricing configurations , condition techniques and various intricate details of pricing configurations then this part is satisfactory. There are finer details which is difficult to pick but this book exposes to you with that.

  • Master Pricing with Materials Management and Sales & Distribution, as well as condition technique and industry-specific coverage

Though I did go through MM Pricing portions but they were not relevant to my study hence I would not provide any review on it. Now coming to Sales&Distribution pricing. Provides a very detailed analysis on pricing , condition techniques , special topics in pricing , pricing performance enhancement and data migration and cutover planning.An example that I liked very much is it is using the pricing enhancements only that we make sure if a condition record is fetched using a particular access then no further records are fetched.It is always mentioned in topics that once a condition record is fetched using an access no further search is made but that is not possible without a customization. This book exposes you many such small details which is very necessary for real life scenarios. There are many topics which you don't come across until you have very high exposure to SD Pricing for e.g. there are certain checks which happen on header level fields which would help optimize pricing.

  • Explore case studies and practical, real life examples and throughput.

The book uses examples to build upon the concepts. And also it goes from a simple concept to build upon the composite topics. For e.g. the condition type customizing would determine if scale based pricing is to be maintained and quantity conversion details. Once you go through this you would appreciate smaller details like this. It is this practical approach that helped a noob like me to pick the concepts faster. Actually once you see the examples in this book , you would start noticing smaller artifacts in your project system as well.


This book can be used to in many stages. First to get acquainted , them to familiarize and then to gain expertise. That also means that if you are newbie then you may have to read the books multiple times. This is a very good guide for any one and every one who is looking to make a serious career in Pricing. Why ? because you have to start some where and this is an excellent starting point. CRM consultants may argue that it doesn't topics such as IPC , customizations specific to CRM but then there is no book on that at present and hence this would be a launch pad.


My verdict : Must read and must be read many times.

Kavindra Joshi

The Report Card

Posted by Kavindra Joshi Aug 5, 2014

I have written this blog on Feb 2nd , 2012( http://scn.sap.com/people/kavindra.joshi/blog/2012/02/02/scn-active-contributor-silver )and 2.5 years after that I sought to review the promises that i have made publicly.I had put a sticky notes on my personal laptop one for short term goals and another for long term goals.


The goals were following

  • SAP  CRM Sales
  • SAP CRM Services
  • SAP CRM Marketing
  • SAP Interaction Center
  • SAP Business Partner
  • PFCG & ACE
  • SAP CRM Middleware
  • SAP CRM BCM and Contact Center
  • SAP Variant Configuration
  • SAP ECC Pricing in SD
  • SAP CRM WebServices
  • SAP Solution Manager & ITSM process



I am very happy to say that apart form ECC FICO , I at least managed to lay my hand on most of the topics. CRM Service & Middleware are the only areas, that i have not been able to complete to my satisfaction. I had ordered SAP Press Books ( I would publish my reviews on them). I had ordered a book for ERP SD and read most portions of it and managed to understand the sales process , customizing and logistics process.I could de-clutter the following



  • Frameworks such as One Order, Marketing etc and touch upon areas such as Service & Marketing.
  • CRM middleware or how does a CRM system talk to ERP or a third party software
  • All areas in WebUI
  • PFCG & Access Control Engines.These are the backroom boys which restrict my access to links.( I hate them actually hence would like to conquer them).
  • Business Use of CRM.
  • Mobile CRM ( one of my friend has promised me to introduce this concept).
  • Consuming Web Services in SAP CRM
  • Sales & Distribution Module of SAP ECC as this is the back bone of order processing in SAP world.

             In the non-CRM areas i would like to fine tune my knowledge in the following areas

  • Web Services in general and in the SAP world doing some hands on this.


Some of my learning would get disseminated in the form of blogs( they are pending items on my list). I am currently working on them would publish them one by one.

Hasan Zubairi

Enterprise Search

Posted by Hasan Zubairi Aug 5, 2014

My grandmother once gave me some valuable advice about not being too shy to ask people for what I wanted, “Don’t be afraid to ask. The worst that can happen is they’ll just say no.” In my case – as a seven year old – I wanted a cute puppy dog. (Note: I eventually got that puppy dog – and he eventually chewed up all my shoes, clothes, and toys. Strangely though, I could never convince him to eat my school homework.)


SAP also provides a way for customers to ask for things. The SAP Influence Programs offer three channels for customers to provide direct input to help influence SAP’s products and solutions.


  • SAP Advisory Councils invite lighthouse customers and thought leaders to work with SAP to shape the future direction of SAP products and strategy.
  • Customer Engagement Initiatives offer SAP customers the chance to collaborate with SAP on the development and testing of new products and solutions in the pipeline.
  • Customer Connection topics invite customers to help improve existing SAP products that customers are already using by suggesting and voting on ideas for improvements.


SAP typically has multiple Advisory Councils, Customer Engagement Initiatives (CEIs), and Customer Connection focus topics running in parallel.


SAP recently wrapped up a Customer Connection focus topic dedicated to Usability of CRM WebClient User Interface(UI). Customers from around the world submitted thirty-eight different ideas for improvements, of which twenty-four were recently delivered. Among some of the cool new enhancements are things like:


  • Automatic “save”
  • Cancel a running search
  • Ability to include colors in result lists
  • Custom logos for business roles
  • Improvements to the email editor
  • And many, many more…


And the best news? All of these features are available for immediate use (via SAP Notes) for select existing CRM versions! No need to wait for a future enhancement package.

Check out the presentation and/or watch a recording of the presentation showing all the new features!


And don’t miss your chance to participate in the next round of enhancements in the next cycle for Customer Connection for CRM to begin at end of August. Click here to sign up for the Aug 28 kick-off meeting!



Follow me on my blog at http://scn.sap.com/people/john.burton/blog


Filter Blog

By author:
By date:
By tag: