So, you want to enter a SAP consulting role….

Hello Friends!

I am Sundaresan working for MNC company having experience of 13+ years in SAP functional consulting in logistics areas like Materials Management and Warehouse Management. I had been a part of many SAP implementation / roll out projects in various industry sectors like “Consumer Industry” and “Automotive Industry”. Having strong 15 years domain experience in various disciplines starting from “Tool Manufacturing”, “New Product Design & New Product Development”.

So, what is this blog all about? Basically, I want to address or provide insight about “SAP Consulting Role” for new entrants or aspirants who are looking for consulting role and answer many of their questions like

What is consulting?

Which consulting do I have to begin?

What is required to begin consulting role?

What is SAP consulting?

Why should I get into SAP consulting?

How do I get into SAP consulting?

At the end of this blog people will have fare idea about SAP consulting and based on which they can decide their career and proceed further.

What is consulting?

Consulting means providing appropriate solution to the problem in right time.  The problem could be either individual’s problem or business organizations’ problem.  The word ‘appropriate solution’ is very important.  There may be plenty of solutions to single problem. Among them, deciding which one is very much suitable is cache point by considering various parameters like the expected result, time, money, effort, expertise, easy maintenance, etc.

It is like a doctor is deciding what medicine to be given to patient for his issue or decease.  A doctor must diagnose the issue in various ways, find the root cause of the issue, decide the approach and finally suggest the appropriate medicine to patient.  In some case medicine is not required and simple counselling will solve the issue.

We must understand one thing here that clients are coming for consultation merely because they are not expert in that area and seeking appropriate remedy for their problems.  Genuine consulting indeed makes your career best!

Now let us get into deep dive.

Which consulting do I have to begin?

Being understood on consulting role, next question is to decide the area in which I must begin my consulting? Most of the beginners have confusion or vague state to decide on this. There are various factors to decide this.  Answer the below questions.

* What is my career ambition?
* What is my core area of interest?
* What is my core strength?
* What is my current qualification?
* What is market requirement?
* What is current trend in the market?
* What is my current experience?
* What exposure do I have from my family background?
* What is my earning expectation?
* Finally, what is my affordability?

Knowingly or unknowingly we begin this activity during our pre-college studies where we decide which stream we will pursue?  Next some extent we will decide during our early years of graduation to choose the area of specialization.  Finally, in beginning of last year of graduation, people must plan carefully on their career plan and start acquiring the required skill.

What is required to begin consulting?

Once decided upon the area of consulting, next question comes to our mind is what is required to beginning consulting activity.

* Obviously, no doubt to begin, first the strong subject knowledge on given area.
* The soft skills what we acquire.
* The experience in specialization area.
* Vast exposure in relevant field across the globe will add advantage in our career.
* Finally, the affordability to start startup company or acquire required knowledge / training / etc.

Based on my experience anybody can acquire above aspects easily provided there is a strong will or commitment.

What is SAP consulting?

Before getting into “What is SAP consulting?”, people should know something about ERP and software which are used to manage ERP etc. to have better understanding.

Enterprise Resource Planning (ERP).

ERP means managing all enterprise resources effectively which includes man, machine, labor and entire business activities.  Basically, the software system which is used to plan, track, transact and control the entire business processes in seamless manner at centrally and hence all the data is available in central data base and all the functions of the business can access the same data for their activities.

There are many software products which are used for this purpose like, people soft, oracle etc.  But all those software were having some limitations in terms of integration among the business functions like procurement, quality, warehousing, production, sales and finance. Each product was specialized in specific area of business function.  Hence there were some gap in terms of complete integration.

What is SAP?

SAP is an Enterprise Resource Planning (ERP) system by SAP AG, company based out of Walldorf in Germany.

SAP stands for Systems, Applications and Products in data processing.  SAP is a global market leader in ERP software products.  The SAP R/3 system is a business software package designed to integrate and control all business areas starting from business planning, procurement, production, quality management, ware housing and finally sales and distribution of a business.  All business processes are executed in one SAP system and sharing common information with everyone.

What are all SAP consulting roles?

As this software is designed to manage all enterprise business activities cutting across different functions, predominantly the following consulting roles are available.

* SAP functional consulting

Functional consultant gathers business requirement, analyze the business processes and configure the system based on the client requirement.  Here depends on business function, there are many SAP functional consulting such as SAP FICO, SAP Production Planning, SAP Materials Management, SAP Sales & Distribution, SAP Warehouse Management etc.  Depends on their interest, knowledge / experience they can choose their area.

* SAP Technical consulting

Technical consultant develops a program or software package based on functional requirement.

* SAP Basis consulting

SAP basis consultants are who manages the system.

Why should I get into SAP consulting roles?

Before deciding how do I get into SAP consulting, people must convince themselves on why should I get into SAP consulting.  The answer is simple.

* SAP is global market leader in ERP software and most of the companies across globe have implemented SAP as their ERP software. Hence the need for consultants are also many fold.
* The demand for SAP consulting role is huge as it is global in nature.
* SAP is consistently either enhancing their products or developing new software systems to meet the current market requirements.
* The remuneration for SAP consulting is decent as per market trend.

How do I get into SAP consulting roles?

First people must decide what kind of SAP consulting role they want to be.  Because each SAP consulting has got different pre-requisites, set of knowledge and the soft skills which require.

For example, SAP functional consultant requires strong business process knowledge in respective business functions viz. materials management, production process, sales & distribution, finance and control etc., skill to analyze the different business requirement and good communication skill.

Whereas SAP technical or basis consultant should have strong technical expertise, analytical capability to develop the software products and manage it very well.

Probably as we discussed earlier, they can analyze various parameters which are mentioned in section ‘Which consulting do I have to begin?’ to decide their career path.

Post to their decision they must chalk out their plan to acquire required skill / knowledge.

How do I begin SAP consulting roles?

Post to their decision and plan, people can acquire their knowledge in either of the below mentioned way.

* SAP Certification through SAP Learning Hub.

SAP Learning Hub is a cloud based learning system which is maintained by SAP.  Here you can find plenty of learning materials, virtual class room videos, online training, hands on experience and finally collaboration among various SAP consultants for their guidance.  Once learning is completed, people can opt for subscription of “SAP Certification Hub” for cloud based SAP certification.  Since it is cloud based solution, people can learn anywhere in globe and participate certification exam.

* SAP Certification through SAP Learning Centers.

SAP is also having their own learning centers across the globe for training and certification.

* SAP Certification through SAP Authorized Learning Centers.

SAP is also authorized to institutions to conduct SAP training and certification.  Bit economical compare to above. Example ATOS.

* Learning through local institutions.

Local institutions are also providing SAP training and they can’t conduct exam for certification.  This is very economical.

* Learning through existing organizations.

Probably people who are current working can also learn SAP consulting in their present organization where SAP is already implemented based on their internal training.

Once got required knowledge on specific area of consulting, people can search for entry level SAP consulting jobs in various organizations.

Hope you would have got fare idea about SAP consulting and probably you can decide either of SAP consulting role and plan your career successfully.  If you find this information is useful, for the benefit of others, request you to share this in manifold and let everyone benefited out of this information!

Feel free to provide feedback, comments and inputs!

Thank you and meet again in another blog on SAP.

Sundaresan.K

Senior SAP Functional Logistics Consultant. http://bit.ly/2DjtuCj #SAP #SAPCloud #AI

Mysterious Memberlists in Lumira Designer

Dimension members are one of the basic concepts in any analytics application. Every analytical app, dashboard or self-service tool contains member lists: inside of a Crosstab, on a chart axis or legends, on a filter control and so forth.

Therefore one of the very first features in Design Studio was an API to retrieve a member list and display it in a listbox, combobox etc. The API getMemberList is in the meantime replaced by getMembers. Let’s assume that our data source DS_1 contains a dimension “customer_id” and we have a listbox LISTBOX_1 that we want to fill with the members from dimension “customer_id”. This is easy and cab be done with the following script: var members = DS_1.getMembers(“customer_id”, 100); members.forEach(function(member) { LISTBOX_1.addItem(member.internalKey, member.text); });

What is interesting with this script?

* The functions has an argument to limit the number of members to be fetched. Dimensions can have a huge number of members and retrieving them can be very expensive.

* getMembers returns a array of quite interesting objects. They contains quite interesting fields and one method

The fields of a Member objects contain so-called presentations. Each member could have several, including several key types and texts with different length. Which text is returned by the “text” field could be e.g. configured in BEx Query Designer.

Very powerful is the function getAttributeMember. It allows you to access content from a so-called Display Attribute for each member. Let’s extend our sample to also show the birthdates of our customers: var members = DS_1.getMembers(“customer_id”, 100, [“birthdate”]); members.forEach(function(member) { var birthdayAttributeMember = member.getAttributeMember(“birthdate”); LISTBOX_1.addItem(member.internalKey, member.text + “ (” + birthdayAttributeMember.text + “)”); });

You see that I have added “birthdate” twice – ones as an array at the optional last parameter of getMembers. And as argument of getAttribributeMember. If I would remove the third parameter of getMembers, the script would still work, but would run much much slower! If you pass the display attributes that you need to getMembers, they will be retrieved with as part of the single roundtrip from BW or HANA. If you try to get them later, you might end up with an additional roundtrip per customer!

Also attribute members have multiple presentations, including keys and texts, therefore you have the same fields available. But and attribute member can’t reference another attribute member.

Filter Behavior

Let’s now see how our member list reacts on active filters. If I modify my script like this, what happens? Will getMembers return only one entry? DS_1.setFilter(“customer_id”, “3872”); var members = DS_1.getMembers(“customer_id”, 100); members.forEach(function(member) { LISTBOX_1.addItem(member.internalKey, member.text ); });

No! The result is completely unchanged. Strange, isn’t it? But if I have a Crosstab or Chart in my app, I’ll see that the filter is work. It should only one customer.

Let’s try something else: DS_1.setFilter(“city”, “Albany”); var members = DS_1.getMembers(“customer_id”, 100); members.forEach(function(member) { LISTBOX_1.addItem(member.internalKey, member.text ); });

Now we might get a different result – or even the same. It depends on the “Member Access Mode” or “Read Mode of Members for Filtering”. You can configure it per dimension, e.g. in Initial View Editor:

You see that I have configured “Values in Master Data”. This means that filters have no influence on member lists at all, they contain always all members from master data.

The available modes depend on the data source type. The picture shows a HANA view. BW queries and Lumira Offline Datasets have different modes.

In Lumira 2.1 you can also set the Member Access Mode also with scripting: DS_1.setMemberAccessMode(“customer_id”, “MODE_POSTED_VALUES”); DS_1.setFilter(“city”, “Albany”); var members = DS_1.getMembers(“customer_id”, 100); members.forEach(function(member) { LISTBOX_1.addItem(member.internalKey, member.text ); });

Now my listbox will only contain customers from Albany. Obviously the result of getMembers depends on filters of other dimensions but not on filters of the current dimension itself.

Members for Filtering

This behavior is by intention. APIs like getMembers are intended to provide some UIs for choosing the members for filter operations. If the memberlist itself would be filtered, the UI would be unusable – after you have filtered for a member you can never come back to another filter state.

You can nicely try it out using several list boxes to simulate a Facet Filter component. Each listbox is filled with members from a different dimension. Clicking some entries would include the member into the filter. You could achieve this with scripting. Much easier however is to use Property Binding. Internally Property Binding uses exactly the same functionality as getMembers.

Create a listbox and drag-and-drop the data source component to it. You will be prompted for a dimension. Repeat the step for all other dimensions. Configure all dimension using “Only values with Posted Data”. In Initial View editor you might need to but them to the “Background Filter” basket.

As a result you have an app with cascading facet filters.

Members from Resulset

We learned that getMembers works, but it is intended to create UIs  that configure filters. Therefore in many cases it might get the wrong result and it is unnecessarily time consuming.

If you want to get exactly the members that you see in a Crosstab or Chart, you should retrieve the members from the resultset. This has two advantages:

* All filters are applied. You get exactly the members that you see in the Crosstab.
* It is much faster, as the resultset is usually anyway available.

Use the following script. Details about the resultset and the API getDataSelections can be found in this blog. var selections = DS_1.getDataSelections({ “customer_id”: “?” }); selections.forEach(function(selection) { var member = DS_1.getMember(“customer_id”, selection); LISTBOX_1.addItem(member.internalKey, member.text); });

With “member” you can do the same things as show above, e.g. retrieving other presentations and display attributes. However you should avoid using display attributes that are currently not shown in your resultset, as this could cause extra round trip to BW or HANA.

The members are retrieved as if you would search in a Crosstab in English reading order: first left-to-right then top-to-bottom. If the dimension is not the first on a its axis, the order might be a bit unexpected. The duplicate members that could also appear in such a case are automatically removed. The following picture shows this case: The “customer_id” dimension is placed as second dimension in rows axis after “city” using Key and Text presentations.

Getting a Single Member

Sometimes you have a member key and you need some presentation (e.g. the text) or a Display Attribute. The following snippet uses a constant key, but you can also use a variable. var member = DS_1.getMember(“customer_id”, { “customer_id”: “3872” }); APPLICATION.alert(member.text + “ ” + member.getAttributeMember(“birthdate”).text);

Again the warning: getAttributeMember can make the app very slow if used to frequently on data that is not yet cached.

Conclusion

It is important to understand that there are two ways how you can retrieve members:

* for filter UIs using getMembers
* from resulset using getDataSelections and getMember

I have explained the differences, advantages and disadvantages. I’m curious if there are other use cases that require new features or APIs for coming release. I’m looking forward to your comments.

  http://bit.ly/2Dlwhen #SAP #SAPCloud #AI