Skip to Content

In this blog, I want to share information on my book on application development with ByDesign Studio. The book is available on the book shelves since begin of 1302:

Thomas Schneider: “SAP Business ByDesign Studio — Application Development”
SAP Business ByDesign Studio – Application Development: Thomas Schneider: 9781592293674: Amazon.com: Books

Of course, the book describes all features of ByDesign studio based on an end-to-end example of an add-on solution. You can find more about the content on the web pages from SAP Press and Amazon (search for “bydesign studio”).
But even if you are not working with ByDesign studio directly, you might benefit from the background information on ByDesign:
– Get an architecture overview on SAP Business ByDesign
– What is a business object, how do I model it, how do I use SAP Global Data Types – What are the actions and events that I can implement?
– How does UI development with UI Designer work?
– How does Business Configuration work in ByDesign?
– How does analytics and the analytics key user tools work in ByDesign?
– What are the basic concepts of Business Partner, Organizational Management, Business Transaction Documents, Address Snapshot, and many more).

But does it make sense to buy & read the book more than one year (and several releases) later. My experience of the last year shows, that it is still a good introduction into the SDK and gives you the basic insight on how to develop with the SDK.

With this article, I am providing information to keep you up to date and summarize what has changed with the next releases.

Q&A

Here are some first Q&As from readers:

1) Availability (language, devices)?

The book is available in English only. Galileo Press offers an online access to the book with a proprietary reader (exclusive or in combination with the printed book). You need Internet access, there is no offline reader format supported. The main advantages of the online access that I see are: (1) instantly and everywhere available (with Internet access); (2) full text search (3) no shipping costs

2) How can I get an update for subsequent releases?

The book is written for FP3.0 – how can I get an update for subsequent releases?

First of all, the documentation of each release contains a “What’s” new section that provides a complete list of new features. For your convenience, I am giving a short introduction into the new features, sorted by chapters of my book.

3) Can I get the code and UI examples of the book (business object definition and script code) in electronic form?

Yes, I have published the Site Mangement application as a solution template. See: “Site Management” Solution Template

Corrections

1) Comment on access contexts (page 187)

Access content „Sales“ does not refer to the „Sales Organization” but it refers to “Sales Unit”. Unfortunately these two terms are often mixed up.

2) Note on messages from embedded components (page 199)

In the note on page 199, I described that messages from the embedded component and the hosting floorplan are not merged. Thanks to a fix provided by the UI development, the behavior has been improved.  An additional attribute „parentDependency“ has been added to the header of the component declaration (in section “UXControllerType”). If the attribute is set to „Yes“, the component is treated as an in-session embedded component, which means that the messages of the embedded and the hosting component are merged.

3) “Technical Information” screen is not released

The section 4.10 “Analyzing Issues in User Interfaces” describes the “Technical Information” tool that can be started from the UI. Unfortunately, due to security and other issues, this tool has not been made generally available. SAP is working on solving the remaining issues. As soon as the tool will be available, I will update this document.

New Features Overview

This section provides an overview on new features on subsequent releases of the SDK. The feature list is not intended to be complete, but I concentrate on the most important features. The complete delta information can be found in the documentation of each release in the “What’s New” section. You can find the documentation via this link: https://help.sap.com/studio_od . In the following SCN article, you can find detailed information on how to update the documentation in the SDK: SDK Documentation for SAP Solutions OnDemand Studio version May 2013 (1305) Now Available

Terms and abbreviations used in this document:

  • BO: Business object
  • Studio: SAP Business ByDesign Studio / SAP Cloud Developer Studio (for SAP Business ByDesign / Sales OnDemand)
  • Custom BO: Business object implemented with the studio
  • ByD/SoD tenant: Tenant on an SAP Business ByDesign or SAP Sales OnDemand system

Help resources used in this document:

General

New name and release cycle as of February 2013, seeSAP Solutions OnDemand Studio: New Common Name & Build, New Release Numbers, New Features

Chapter 3 (Business Object Modeling)

Annotations for Labels, Tooltips (Including Translation) (FP4.0)

Annotations for label and tooltip can be defined for BO elements. Translation of label and tooltip annotations is available (see translation, below).

[Documentation] Scripting Languages -> Business Object Definitions -> Annotation

Annotation for Default Values (FP4.0)

Static default values for non-structured data types can be defined in the BO definition. Example:

element ReleaseStatusCode : ReleaseStatusCode = “1”; // 1 Not Released

For an element that consists of a content element and supplementary component (such as Amount, Quantity, (language-dependent) text, the syntax is:

element SalesGrossAmount : Amount = {currencyCode = “USD”};

Default values for aggregated data types and dynamic default values are not supported. They are assigned in the AfterModify event.

[Documentation] Scripting Languages -> Business Object Definitions -> Annotation

1:n Associations and Association Valuations (FP4.0)

Intra-BO associations can be defined with multiplicity [0..n]. Valuation rules for intra-BO associations can be defined. Using this functionality, two use cases can be realized:

  • Hierarchical lists: If you want to define hierarchical lists in the UI (using the hierarchical list control in the UI designer), you have to define the parent-child relationship as 1:n association in the BO
  • Specialization association: If you have defined a [0:n] node in your BO(example: InvolvedParty) and want to define a specialization association with a well-defined rule (for example: ship-to party, bill-to party) you can define this using association valuation rules.

Example (Business Object Site that represents a hierarchy of sites):

businessobject Site {

       [AlternativeKey] element ID : ID;

       element ParentID : ID;

       element Name : LANGUAGEINDEPENDENT_LONG_Name;        

       association ToChild [0..n] to Site valuation ( ParentID == ID );

}

[Documentation] Scripting Languages -> Business Object Definitions -> Association

Code List Data Type (1302)

If you want to create a new data type with a new code list, this was possible by defining a business configuration object (BCO) and a BC set or a BC view. However, this is a bit “oversized” if you want to create a fixed code list. For a fixed code list, a new content type has been introduced

[Documentation] Developer Desktop -> Code List Data Type

[SCN] Custom Code List Data Types in the Studio

Chapter 4 (User Interface)

Message Mapping (FP3.5)

Message mapping is that part of UI designer. With message mapping, you can influence the system message behavior. Messages and mappings get modeled in the UI Designer “Controller” area within section “Messages”.

System messages are any kind of textual information sent from the system to the UI. In general messages are used from the system to explain system status, behavior or any reaction on user interactions. In the “Message Mapping Editor” you can manipulate system message behavior. System messages can be handled as: Replace, Ignor, Original, Handler and Aggregate.

Documentation: not yet available

New “thing-based” UI (FP4.0 – Sales OnDemand only)

New “thing-based” UI, including enterprise search, feed support, REST services support, and support for tablet PCs (iPad). This topic will be described in a separate document: Thing-Based UIs and Custom Solutions in Cloud for Customer

Dynamic UI Properties for SAP Screens

A new type of change transaction (Adopt )  allows you to dynamically change the properties of UI fields (visible, mandatory, readonly), UI buttons (visible, enabled), tables, and UI panes on SAP screens based on a user role and/or a property of the business object.

[Documentation] not yet available

Chapter 5 (Business Object Implementation)

New Version of Scripting Language Compiler (FP3.5)

As of FP3.5 a new compiler for script files is in use. New solutions will automatically use new compiler. Old solutions have to be migrated manually by partner in FP3.5. There is a list of incompatible changes between the old and the new compiler. The most prominent ones are:

  • Variables are not implicitly declared in “foreach” statements
  • Import statements have to specify the full path of a namespace (for example: the statement “import AP;” is not longer valid)

The full list of changes is available in the documentation in sections:

·         [Studio Library] What’s New in Syntax for Implementation of Business Logic (FP3.5)

·         [Studio Library] What’s New in Reuse Libraries and Built-In Functions (FP3.5)

OnSave Validation Event (custom BO and BO extensions) (FP3.5)

The OnSave validation event can be used to check if the conditions for saving a business object instance or a business object node instance are fulfilled. The condition of a validation must always evaluate to a boolean value:  In case of false the BO isn’t saved.

Example:

var allow_save = true;

return allow_save;

[Documentation] Developer Desktop -> Business Objects -> Business and Technical Background -> Actions, Events, and Validations

Action Validation Events (1305)

Since FP3.5, you can prevent the save of a business object instance by implementing the ValidationOnSave event. But in many cases, you want to prevent already the status change of a SAP business object, for example the “Release” of a sales order. With the new Action Validation event, you can use an action validation to control whether an action of an SAP business object can be executed for each action that is released in the public solution model (PSM).

[Documentation] Developer Desktop -> Business Objects -> Business and Technical Background -> Actions, Events, and Validations

Custom Reuse Libraries (1305)

Besides using SAP reuse libraries, you can also create and define your own reuse libraries and reuse functions in order to organize complex code in your solution or to reuse your code in script files.

[Documentation] Developer Desktop -> Reuse Libraries

Debugger (1302)

In addition to the tracing, debugging is now available.

[Documentation] Developer Desktop -> Debugging

Chapter 7 (“Extensibility”)

Additional Data Types for BO Extensions: IDs, Codes (FP3.5)

ID and code data type can be used in BO extension definitions. This includes custom code data types defined in the custom solution itself (under Business Configuration -> Create BC Set). Example:

element myID : ID;

element SalesOrderID : BusinessTransactionDocumentID;

element ReleaseStatusCode : ReleaseStatusCode;

Messages in BO Extensions (FP3.5)

System messages can be defined in BO extension definitions and created (“raised”) in the BO logic extensions.

Annotations for Labels, Tooltips (Including Translation) (FP3.5)

See “Annotations for labels, tooltips” in “Business Object Modeling”

Annotation for Default Values (FP4.0)

See “Annotations for Defaults” in “Business Object Modeling”

Transient elements  (FP4.0 – ByDesign code line only)

Transient elements are elements that are not persisted in the database. They are declared using the [Transient] annotation on the element key word. To fill a transient element when a BO instance is loaded from the database, you can implement the AfterLoading event and fill the transient elements from persisted elements.

Process-oriented Field Extensibility (FP3.5)

Process-oriented field extensibility can be defined in a studio editor. The features are basically the same that were available already in FP2.6 in the key user tool (extensibility side panel). The new editor provides a better usability when defining sophisticated extension scenarios.

Chapter 9 (Service Integration)

Web Service Authorizations are Included in Web Service Wizard (FP3.5)

Web service authorizations can be defined in the web service definition wizard. The features are basically the same that were available already in FP2.6 in a separate editor for web service authorizations. The new editor that combines the functions provides a better usability.

Renaming of Elements in Web Services (FP3.5)

Elements can be renamed in web services to provide better usability (e.g. shorter names) when consuming the web service in an external system

Communication Scenarios (aka Technical Users for System-to-System Communication) (FP4.0)

In FP2.6 and FP3.0 authorizations for web services can be assigned to business users via work center (views) only. This is the expected behavior, if the web service is used in an external UI (for example a mobile device) and the user of the mobile device logs on the the ByDesign system with his/her user. For system-to-system communication, this is not the expected behavior. For this case, you can bundle a set of web service (operations) into a so-called communication scenario. In a customer system a so-called technical user is created for this communication scenario that can be used for logon by the remote system.

You can define communication scenarios that include SAP and/or custom web service operations.

External Web service calls (FP4.0)

You can call web services (SOAP/REST services via HTTP and HTTPS) in custom code, for example in business object events and actions for system-to-system communication.

In the studio, you can define an External Web Service Integration, import the external web service definition (WSDL) and activate the project item. You can implement the web service call in your script coding

[Documentation] Developer Desktop -> External Web Service Integration

[SCN] External Integration of Custom Solutions in SAP Business ByDesign / SAP Cloud for Customer

[SCN] How to… consume a ByD Web Service with an external client.

[SCN] “SAP Business Suite BO List” Solution Template

[SCN]  Integration of SAP OnDemand Products with Business Suite via REST/OData Services

Business Task Management: Multi-step Approval and Notification (1302)

The exiting approval process was enhanced so that a key user can define an approval process with multiple approval steps.

[Documentation] Developer Desktop -> Approval Process

For custom business objects, a key user can configure rules for sending notifications (and e-mails) based on business object changes.

[Documentation] Developer Desktop -> Notification Rules

Mass Data Runs (1305)

With a mass data run (MDR), you can execute an action for many instances of a custom business object without user interaction. You can schedule the mass data run to be executed immediately, on a specific date and at a specific time, or periodically. The node of the custom business object needs to have an action and a query.

[Documentation] Developer Desktop -> Mass Data Run

Chapter 11 (LifeCycle Management)

Translation (FP3.5)

Text elements, that belong to the solution application can be translated (FP3.5: for solutions for multiple customers; FP4.0: for customer-individual solutions).

The master (development) language is always English. Translation of solution content is supported into the “ByDesign languages” Chinese, Spanish, Portuguese, French, German (not in scope: translation of SAP content and translation into non-ByD languages;)

The studio provides an export file that contains all custom texts. The file format is the stanradr translation format XLIFF (http://en.wikipedia.org/wiki/XLIFF). Export is available on source file level and on solution level (all texts in a solution) (“Export Text” in the context menu of the project item or the solution/project). The export file contains the text IDs and the texts in master language (English) and one target language.

The translation itself can be done by a suitable translation tool (open source tools are available) that supports XLIFF.

Exceptions/ Limitations:

Print forms (technically: form template variants) can be provided in any language and also for SAP forms (technically: form templates))

Reports: Report can be are translated using the Copy Report function

System messages are not translatable via export file (workaround: separate message must be defined in all languages and the raise statement must raise the message in the user’s logon language)

Approval tasks (cannot be translated)

[Documentation] Developer Desktop -> Translation

Maintenance Mode Check (FP3.5)

When the add-on solution is released for quality review and the quality review is passed, the status of the add-on solution is set to “In maintenance”. Patches and new versions (as of FP3.5) for add-on solutions can be provided. This means that only the delta is assembled and deployed on the customer system.

In FP2.6 and FP3.0, there is no differentiation between development mode and maintenance mode in the development environment. This means, for example, that a developer can delete a business object and ship this deletion. To avoid changes that lead to damages in the customer systems, the following maintenance rules have to be followed during maintenance. As of FP3.5 and FP4.0, the studio supports checks that prevent incompatible or conflicting changes and raise error messages. However, SAP assumes no responsibility for the completeness of the implemented check scope.

[Dev Guideline] SAP Business ByDesign: Development Guideline for Add-on Solutions -> Maintenance Mode

Template Solutions

[SCN] Customer-Specific Solutions and Template Solutions

To report this post you need to login first.

23 Comments

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

  1. Andreas Eissmann
    Hi Thomas,

    thanks for sharing this information here on SCN. I haven`t finished your book but what I already read is really good.

    A lot of background information and more details as in Business Center documentation. Well written!

    Thanks!

    Best regards,
    Andreas

    (0) 
  2. Thomas Schneider Post author

    In chapter 9, section “External Web Services”, “Implementing Conflict and Error Handling”, I explain typical error situation and how the fault message looks like. Since that section was written, a security alert was raised and stated that some error messages might allow an attacker to spy out the system. Therefore the detailed error information is not longer available in the web service fault message. It is replaced by the generic error message “Processing Error. Details in WS Error Log (transaction SRT_UTIL, note 1558107) by selection with UTC timestamp …”.

    In FP4.0 you will find the detailed error message in the ByDesign UI:

    Application and User Management (work center) -> Business Communication Monitoring (woc view) -> Message-Independent Errors (filter) -> Details

    For example, in case of an XML validation error, you will find the detailed error message: “Length of “EQ” exceeds maximum length “1”, specified with tt:maxLength”.

    (0) 
    1. Judson Wickham

      I have the book as well and carry it everywhere with me as a reference. It’s very good. (I finally got the online version today so I don’t have to travel with the hardcopy).

      Will you be updating the book as new versions of the Studio are released? Even now there are inconsistencies between each version, but these are mainly related to the PSM (some objects available in 3.0 not available in 3.5, and vice versa). With 4.0 I have heard we will be getting some significant changes, which may warrant an update.

      Great book…been using it since the day it was released.

      (0) 
      1. Thomas Schneider Post author

        Unfortunatey it is not possible to have an upate per release. I will try to list major differnences here in this blog and refer to the update documentation here.

        Galileo Press is working currently on a more flexible eBook format (not just the existing e-copy of the hard cover) Maybe this will make the things more flexible: a smaller hardcopy that mainly elaborates the concepts and more flexible eBook units.

        (0) 
  3. Ankur Godre

    Hi Thomas,

    Thanks for this excellent post!!!! Gr8 help!

    Just one query on downloading Solution OnDemand studio.

    I’ve tried to search as per your isntructions on marketpalce for Solution OnDemand Studio 1302, however tehre are many links that come up in the search.

    Could you please provide inputs on which link to click in order to download the latest version of the studio?

    BR

    Ankur

    (0) 
      1. Ankur Godre

        Thanks Thomas, I’ve checked it.

        One more query on the integration part.

        For integrating an OnDemand solution like Customer OnDEmand to an OnPremise system like CRM/ECC, basically following main approaches are available:

        > Using SAP PI

        > Using HANA cloud (Should be available around Q4 or later to partners for development).

        > Using a Third part integrator like Dell Boomi.

        There are also WebServices for integration I suppose.

        Thomas could you please enlighten more on integration using WebServcies.

        What scope of integration can WebService cover & are WebSevcies sufficient enough for integrating an OnDemand to an OnPremise system without any additional integration needed, like a middleware or something?

        Really appreciate your valuable inputs on this.

        Many Thanks

        Ankur

        (0) 
  4. Irina Bulanova

    Hi Thomas,

    Could you tell please if there will be a new version of this book?

    It seems to be very useful. But I wonder if there are a lot of differences between the versions 1302 and 1402?

    Best regards

    Irina

    (0) 
    1. Thomas Schneider Post author

      Hi Irina,

      thank you for this question. Unfortunately there are currently no plan for n update. However, the general principles of the development topics (such as business object, scripting language, UI, analytics, web services, …) are still valid. I published an SCN article that contains a download of a the example project described in the book (“Site Management” Solution Template). The code is still valid for 1402.

      Best regards,

      Thomas

      .

      (0) 
  5. Irina Bulanova

    Hello Thomas,

    On the page 428, where you are explaining the usage of Address Management UI reuse component, there is a phrase:

    “7. Define the binding for the embedded component. Configure the properties of the Address Management UI: For details, refer to the how-to guide provided by SAP.”

    I can’t find these how-to guides anywhere. Could you please provide a link to how-to guides for UI reuse components?

    Best regards and thank you in advance

    Irina

    (0) 
  6. Kalaiselvan S

    Hi,

    I have checked all the above links which you are provided.

    When i browse the link, It is out of stock.

    Any clue or tell me the possibilities of purchase the hard or soft copy of  Business-studio-

    application-development book. We need it urgently to develop our skill.

    Thanks

    Kalaiselvan.S

    (0) 

Leave a Reply