Skip to Content

*This blog post is cross-posted from SAP Mentors Quarterly Q4 to make it visible in SAP Business ByDesign space. Many thanks to Otto Gold for his great work!

General overview and “Hello World!” for the ABAP and Java folks

Development for SAP Business ByDesign is currently a hot and frequently discussed topic. How can you learn it and what are the reasons you should do so? This article provides some answers.

SAP’s recent enterprise solution for small and medium businesses, SAP Business ByDesign (BYD), is gaining traction. The On-Demand solution has brought along an all new software development kit (SDK) and programming languages. It’s time for a brief introduction and a pointer to further ressources.

Why should I care

Why you should care? The number of BYD customers is growing exponentially. The solution is young and gives room for custom add-ons. The recently launched SAP Store (http://store.sap.com/public) provides a platform to easily market and sell your solutions world-wide and, at the same time, a stimulating buying experience for potential customers. And last but not least, rumors say that the SDK will eventually become the common platform to develop not only for BYD, but also for other SAP On-Demand solutions, such as Sales OnDemand that share BYD’s platform – same environment, just other business objects…The SDK, coined “BYD Studio”, is built upon Microsoft Visual Studio (second part of that blog) as the IDE. It allows the development of custom add-ons and supports the process of deploying builds to the SAP-hosted runtime infrastructure. With the current release 3.0, SAP deliveres a variety of new features and a boost in stability and performance to the SDK. And given the pace of improvements since my first hands-on experiences in November 2009, it will not take long for more features to be delivered.

Hello_World.jpg

Many of our readers are hardcore ABAPers (does Javers make any sense to you by the way?), but with

ByDesign new opportunities are coming. That`s why you can understand the pictures around as an

illustration of the ByD “hello world!” application. This picture show the “final application”at runtime.

Check others for the development steps and languages.

What languages do I have to speak

There are three separate programming languages: BODL (for business objects), ABSL (for business logic) and SAPRuby (for the UI). Yes sir, no more ABAP or Java. But don’t be afraid, those new languages are rather simple to learn. The first important fact to know: there are no classes – only business objects. And as they don’t offer static methods, you always need a business object instance to execute your code, which requires some rethinking. Secondly, there is no direct database access. If you want to retrieve any data, you have to use queries and get back business object instances. Thirdly, there is no inheritance. Instead, the SDK offers associations, which reduces the number of runtime data at a given time. For example, consider the three business objects business partner, customer, and supplier. With inheritance, all three would contain the same basic data (name, address, …). In BYD, only business partner contains such basic data, while the other two objects have an association to it. For me personally, this was the biggest change I had to get used to when designing an application architecture. Here is another example. Products can be used in Sales Orders. Now imagine you want to create a Product Bundle that can be used in a Sales Order just like a single Product. With inheritance, this is straightforward: Product Bundle would inherit from Product. So, how do you do that with associations? Remember that you cannot simply add your new object to a Sales Order, as it is not of type Product. Instead, you have to modify Sales Order first to accept your new object. This might seem complex and time-consuming, but is actually an advantage with respect to security. What if behavior of your new object is exactly not what the developer of Sales Order assumed? After getting used to these three key facts, development with the SDK is easy. Thanks to numerous wizards, e.g. to auto-generated UI’s, approval tasks, data sources, reports, or even web services, development is also very fast.

BODL.jpg

BODL (Business Object Description Language) is used to define business objects (e.g. ServiceOrder,

Employee, Customer etc.), which is typically the first step in the development process. The

objectoriented language is syntactically similar to C# or other high-level programming languages.

ABSL.jpg

After writing the BODL part, you have to activate the business object and create

scripts for your actions and (if desired) for events. You do this with Advanced Business

Script Language.

Where should I go from here

So where to look out for further information? As the SDK is currently available to selected “Solution Partners” only, the main source of information, the SAP Business Center (http://sme.sap.com), is only available to eligible users. However, there are alternative ressources available. I recommend Thomas Schneider’s book “SAP Business ByDesign Studio – Application Development” (ISBN 1592293670) in case you are interested and don’t have access to the business center. Also, check out Jon Reed`s blog and podcasts (http://www.jonerp.com and also my own blog on SCN (http://bit.ly/andeiss_blog). I am also planning to launch a ByDesign development website with tutorials and how-to’s. If you are interested in joining forces, please send me an email or contact me via twitter (@andeiss). I am proud to be part of SAP’s cutting-edge technology and hope I can motivate many more people to develop for BYD and to create a large and vivid community.

To report this post you need to login first.

7 Comments

You must be Logged on to comment or reply to a post.

  1. Arnulfo Díaz Ruiz

    Hi Andreas.

    Thanks for this overview, actually i’m a Java and ABAP programer, and i’m trying to get into de ByD’s world, you know, there ir a lot of stuff i can understand, i’m trying to do some Customer Specific Solutions, for example, i’m trying to extend a BO to make it call another BO, for example, i want to make automatical billing, or process a pay from a payments document.

    I dont know if i explained well, but i hope you can guide me.

    Thanks

    (0) 

Leave a Reply