2 comments on “All about SAP HANA (Infographics)”

All about SAP HANA (Infographics)

Guest Post – Carloski R.

SAP HANA Editions

SAP-HANA-Infographic

What is SAP HANA

There is no doubt that SAP HANA is becoming the hottest technology platform in the market of IT. More than 1200 companies from 58 countries developing applications on this platform. If you have ever considered how SAP S/4 HANA works and how it helps the client to enhance their business, then continue to read this article.

SAP S/4HANA is SAP’s next generation business suite designed to help you run simple in a digital and networked world. 
This new suite is built on our advanced in-memory platform, SAP HANA, and offers a personalized user experience with SAP Fiori. 
Deployable in the cloud or on-premise, SAP S/4HANA is built to drive instant value across lines of business and industries with the ultimate in sophistication: simplicity. The repeat of this course features some updated information along with a new unit on SAP Activate. SAP Activate is the new innovation adoption accelerator introduced with SAP S/4HANA, a unique combination of SAP Best Practices, Methodology, and Guided Configuration delivered with a reference solution.

Differences between SAP HANA & SAP S/4HANA

Some levels of confusion between SAP HANA and SAP S/4HANA still exist with the majority of the people these days. In this article, we provide clarity for those who are wrestling with the differences between the two. It is important to understand their functionality and constraints to make use of the products efficiently. In order to understand the differences between SAP HANA and SAP S/4HANA, one must understand the basic concepts of SAP HANA and SAP S/4HANA.

SAP HANA is a database, an in-memory database, while SAP S/4HANA is an application which is designed to run on the SAP HANA database. It is a revolutionary platform-based in the company’s new In-memory database. Learning it will imply that choosing to pursue a career path that is both fulfilling and exciting to work with. SAP HANA acts as a hub for all SAP’s products strategy and it serves as the base for recent technology SAP S/4HANA that is set to serve as a cornerstone for all SAP technologies.

What SAP HANA is all about

HANA is the backend that runs the SAP landscape. Its central feature is an innovative, column-based Relational Database Management System (RDBMS), which is used to store, retrieve and process data on core business activities. SAP HANA itself doesn’t determine what sorts of tasks a business does, it can accommodate any type of data. Businesses install applications that run on top of HANA, such as SAP applications for finance, HR, and logistics. As such, companies have to make choices about what software best meets their current needs.

Unlike other RDBMSs SAP HANA reduces the memory usage factor by 10 and improving performance as it uses column oriented storage which combines OLAP and OLTP into a single structure. The speed of both Online Transaction Processing (OLTP) and Online Analytical Processing (OLAP) can be drastically changed with the design of SAP HANA. Information of the majority databases is stored on the hard drive which in result keeps an only limited amount of information in main memory. Hard drives are relatively slow, which limits how fast they can recall information.

SAP HANA is made up of a simpler structure and lower memory footprint than other RDBMSs. A system like OLAP and OLTP are stored in different databases which result in insufficient memory, redundant information bloating the DB footprint.

Hence, SAP HANA can do real-time analytics, crunching data nearly instantaneously. This allows businesses to react more quickly to changing conditions, providing significant strategic benefits.

SAP HANA isn’t just a new choice for enterprise computing; because it handles data very differently from other databases, it is designed to run SAP software. SAP SE has been reworking their core ERP applications to better harness HANA’s speed and flexibility, and will only support older versions of the software until 2025, at which point customers need to have completed their SAP HANA migration, and upgraded to the new software.

What is SAP S/4HANA all about?

SAP S/4HANA is the shorter form of SAP Business Suite 4 SAP HANA, which means it is the fourth version of SAP Business Suite. It is designed to run only on SAP HANA. The transition of SAP users to SAP S/4HANA is similar to the earlier transition from the ERP versions, SAP R/2 to SAP R/3.

The next generation Business Suite of SAP is SAP S/4HANA which is designed in a simplified way specifically to work with SAP HANA and to replace the SAP ECC/ERP.

SAP S/4HANA is the in-memory version of the Business Suite ERP platform.  SAP S/4HANA was announced in February 2015 and billed as SAP’s “most important release in 23 years”, S/4HANA is intended to be easier to use and administer by helping to solve more complex problems and handle vastly larger amounts of data than its predecessors. S/4HANA is available in on-premises, cloud and hybrid deployment models.

As per the SAP, developers feel the changes in SAP as they find ERP system is more agile, simpler to understand and use. This change is termed as the opportunity for businesses to reinvent business models and re-generate revenues with the advantage of the Internet of Things (IoT) and big data by connecting people business networks and devices by the SAP.

As per the SAP, Batch processing is not required for S/4HANA this makes the businesses to simplify their processes and drive them in real time which mean that the business user can access insight on data from anywhere in real time for prediction, execution, Planning and simulation.

SAP Simple Finance is one of the main components of S/4HANA, which aims to streamline financial processes and enable real-time analysis of financial data. Simple Finance helps companies align their financial and non-financial data into what SAP refers to as a “single source of truth.” Some Business Suite users are deploying Simple Finance as the first step in the road to S/4HANA.

Conclusion

The popularity of SAP HANA and SAP S/4HANA has led to widespread usage across the globe. The demand for these modules is very high and a smart professional must leverage this trend in order to take advantage of the market demands.

Book a Demo? Please visit: http://affirmts.com

0 comments on “Python Programming Projects”

Python Programming Projects

Last Updated: 3rd September, 2019

Five mini programming projects for the Python beginner

Learning a new programming language is both the most exciting and the most humbling experience. For me, that language has recently been Python, which I’ve been learning over these last few months. And as every coder knows, the best way to learn a language is to apply it in a project. But what happens when you don’t have a giant, ambitious project? For me, that’s where the sandbox comes in. Why not build a few sandcastles before piling up the rocks to our grand ol’ castle?

With that in mind, here are five mini programming projects to get you started on learning Python. The exact solutions aren’t here — that’s where the most important learning comes into play — but there are hints as to the concepts that you should be using. And remember, Google is your friend!

1. Dice Rolling Simulator

The Goal: Like the title suggests, this project involves writing a program that simulates rolling dice. When the program runs, it will randomly choose a number between 1 and 6. (Or whatever other integer you prefer — the number of sides on the die is up to you.) The program will print what that number is. It should then ask you if you’d like to roll again. For this project, you’ll need to set the min and max number that your dice can produce. For the average die, that means a minimum of 1 and a maximum of 6. You’ll also want a function that randomly grabs a number within that range and prints it.

Concepts to keep in mind:

    • Random
    • Integer
    • Print
    • While Loops

A good project for beginners, this project will help establish a solid foundation for basic concepts. And if you already have programming experience, chances are that the concepts used in this project aren’t completely foreign to you. Print, for example, is similar to Javascript’s console.log.

2. Guess the Number

The Goal: Similar to the first project, this project also uses the random module in Python. The program will first randomly generate a number unknown to the user. The user needs to guess what that number is. (In other words, the user needs to be able to input information.) If the user’s guess is wrong, the program should return some sort of indication as to how wrong (e.g. The number is too high or too low). If the user guesses correctly, a positive indication should appear. You’ll need functions to check if the user input is an actual number, to see the difference between the inputted number and the randomly generated numbers, and to then compare the numbers.

Concepts to keep in mind:

    • Random function
    • Variables
    • Integers
    • Input/Output
    • Print
    • While loops
    • If/Else statements

Jumping off the first project, this project continues to build up the base knowledge and introduces user-inputted data at its very simplest. With user input, we start to get into a little bit of variability.

3. Mad Libs Generator

The Goal: The program will first prompt the user for a series of inputs a la Mad Libs. For example, a singular noun, an adjective, etc. Then, once all the information has been inputted, the program will take that data and place them into a premade story template. You’ll need prompts for user input, and to then print out the full story at the end with the input included.

Concepts to keep in mind:

    • Strings
    • Variables
    • Concatenation
    • Print

A pretty fun beginning project that gets you thinking about how to manipulate user inputted data. Compared to the prior projects, this project focuses far more on strings and concatenating. Have some fun coming up with some wacky stories for this!

4. TextBased Adventure Game

The Goal: Remember Adventure? Well, we’re going to build a more basic version of that. A complete text game, the program will let users move through rooms based on user input and get descriptions of each room. To create this, you’ll need to establish the directions in which the user can move, a way to track how far the user has moved (and therefore which room he/she is in), and to print out a description. You’ll also need to set limits for how far the user can move. In other words, create “walls” around the rooms that tell the user, “You can’t move further in this direction.”

Concepts to keep in mind:

    • Strings
    • Variables
    • Input/Output
    • If/Else Statements
    • Print
    • List
    • Integers

The tricky parts here will involve setting up the directions and keeping track of just how far the user has “walked” in the game. I suggest sticking to just a few basic descriptions or rooms, perhaps 6 at most. This project also continues to build on using user inputted data. It can be a relatively basic game, but if you want to build this into a vast, complex word, the coding will get substantially harder, especially if you want your user to start interacting with actual objects within the game. That complexity could be great, if you’d like to make this into a longterm project. *Hint hint.

5. Hangman

The Goal: Despite the name, the actual “hangman” part isn’t necessary. The main goal here is to create a sort of “guess the word” game. The user needs to be able to input letter guesses. A limit should also be set on how many guesses they can use. This means you’ll need a way to grab a word to use for guessing. (This can be grabbed from a pre-made list. No need to get too fancy.) You will also need functions to check if the user has actually inputted a single letter, to check if the inputted letter is in the hidden word (and if it is, how many times it appears), to print letters, and a counter variable to limit guesses.

Concepts to keep in mind:

    • Random
    • Variables
    • Boolean
    • Input and Output
    • Integer
    • Char
    • String
    • Length
    • Print

Likely the most complex project on this list (well, depending on just how intense you went with the adventure text game), the Hangman project compiles the prior concepts and takes them a step further. Here, outcomes are not only determined based on user-inputted data, that data needs to be parsed through, compared, and then either accepted or rejected. If you want to take this project a step further, set up a hangman image that changes!

Why do people prefer Pandas over SQL

You can probably have many technical discussions around this, but I’m considering the user perspective below.

One simple reason why you may see a lot more questions around Pandas data manipulation as opposed to SQL is that to use SQL, by definition, means using a database, and a lot of use-cases these days quite simply require bits of data for ‘one-and-done’ tasks (from .csv, web api, etc.). In these cases loading, storing, manipulating and extracting from a database is not viable.

However, considering cases where the use-case may justify using either Pandas or SQL, you’re certainly not wrong. If you want to do many, repetitive data manipulation tasks and persist the outputs, I’d always recommend trying to go via SQL first. From what I’ve seen the reason why many users, even in these cases, don’t go via SQL is two-fold.

Firstly, the major advantage pandas has over SQL is that it’s part of the wider Python universe, which means in one fell swoop I can load, clean, manipulate, and visualize my data (I can even execute SQL through Pandas…). The other is, quite simply, that all too many users don’t know the extent of SQL’s capabilities. Every beginner learns the ‘extraction syntax’ of SQL (SELECT, FROM, WHERE, etc.) as a means to get your data from a DB to the next place. Some may pick up some of the more advance grouping and iteration syntax. But after that there tends to be a pretty significant gulf in knowledge, until you get to the experts (DBA, Data Engineers, etc.).

It’s often down to the use-case, convenience, or a gap in knowledge around the extent of SQL’s capabilities.

1. How to use value if not null else use value from next column in pandas?

2. How to rename columns in pandas?

3. How to sort a dictionary by value?

1. How to use value if NOT NULL else use value from Next Column

How to Use Value

if

Not Null,

Else

Use Value From Next Column

Given the following dataframe:

import pandas as pd
df = pd.DataFrame({'COL1': ['A', np.nan,'A'], 
                   'COL2' : [np.nan,'A','A']})
df
    COL1    COL2
0    A      NaN
1    NaN    A
2    A      A

How to create a column (‘COL3’) that uses the value from COL1 per row unless that value is null (or NaN). If the value is null (or NaN), how to use the value from COL2.

The desired result is:

   COL1    COL2   COL3
0    A      NaN    A
1    NaN    A      A
2    A      A      A

SOLUTION:

In [8]: df
Out[8]:
  COL1 COL2
0    A  NaN
1  NaN    B
2    A    B

In [9]: df["COL3"] = df["COL1"].fillna(df["COL2"])

In [10]: df
Out[10]:
  COL1 COL2 COL3
0    A  NaN    A
1  NaN    B    B
2    A    B    A

2. How to rename columns in pandas

I have a DataFrame using pandas and column labels that I need to edit to replace the original column labels.

I’d like to change the column names in a DataFrame A where the original column names are:

['$a', '$b', '$c', '$d', '$e'] 

to

['a', 'b', 'c', 'd', 'e'].

I have the edited column names stored it in a list, but I don’t know how to replace the column names.

SOLUTION:

Just assign it to the .columns attribute:

>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
>>> df.columns = ['a', 'b']
>>> df
   a   b
0  1  10
1  2  20

3. How to sort a dictionary by value

I have a dictionary of values read from two fields in a database: a string field and a numeric field. The string field is unique, so that is the key of the dictionary.

I can sort on the keys, but how can I sort based on the values?

SOLUTION

It is not possible to sort a dictionary, only to get a representation of a dictionary that is sorted. Dictionaries are inherently orderless, but other types, such as lists and tuples, are not. So you need an ordered data type to represent sorted values, which will be a list—probably a list of tuples.

For instance,

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))

sorted_x will be a list of tuples sorted by the second element in each tuple. dict(sorted_x) == x.

And for those wishing to sort on keys instead of values:

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))

In Python3 since unpacking is not allowed we can use

x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_by_value = sorted(x.items(), key=lambda kv: kv[1])