Designing APIs With Apicurio Studio

ICYMI: Workflows that center around a machine-readable definition in OpenAPI format are state of the art when dealing with APIs. Various tools are available to assist in all steps of the API lifecycle, starting from the design phase. As a first simple design tool, we recently introduced Swagger Editor on this blog. The Editor is a great tool to help you write OpenAPI definitions by providing immediate validation and preview. What, however, if you don’t actually want to write OpenAPI, and prefer a more visual, click-driven approach to your API Design? Well, today we’ll have a look at another tool: Apicurio Studio.

Apicurio Studio is an open source API designer. Development is primarily driven by Red Hat, however, the project is freely available under an Apache license and accepting contributions on GitHub. You can go to the Apicurio website and download the application to run locally or on a server you own, or you can simply click Try Live to go for the hosted version. https://goo.gl/ZabRpP #DataIntegration #ML

Changing (Enhancing) SAP Standard – The Way to Differentiate

Co-authored with Marc Cyr.

One of the topics we are consistently asked by our clients is about changing SAP Standard. How can we change SAP Standard? Are changes supported by SAP?  Would changes be overwritten during an upgrade? As we all know, a successful consultant will start with “It depends” followed by a discussion in order to provide a helpful response. But in actual fact, the answer does depend on how the SAP Standard is being changed, what is the business value added by changing SAP Standard and what are the costs associated with making the change.

In this blog, we are going to answer these questions and also provide information about guiding principles for changing SAP Standard that we have developed over the past several years.

Before we start, we need to understand what is SAP Standard. SAP delivers various solutions to its customers to meet wide-range of common needs as SAP Best Practices. SAP customers can explore SAP Best Practices via SAP Best Practices Explorer* and deploy them without making changes (i.e. out-of-the box). These solutions are called SAP Standard (also referred to as ready to run).

*SAP Best Practices for SAP Solution Manager 7.2 processes cannot be explored in SAP Best Practices Explorer and must be downloaded to SAP Solution Manager 7.2 in order to explore.  For more information about how to download SAP Best Practices for SAP Solution Manager 7.2 processes, please see our previous blog SAP SolMan 7.2 Insights… How to download SAP Best Practices Package (SAP BPP) for SAP SolMan 7.2 processes.

The SAP Standard solutions are based on industry standards. Most customers do not run SAP using SAP Standard to a tee. Why? Because SAP Standard by definition, is not a way to differentiate. In order to achieve a competitive advantage or to run a customer specific process to comply with policy and business demands, changing SAP Standard is the only choice. The good news is SAP provides different approaches to changing SAP Standard when there is a need to differentiate and a clear link to business value.

To understand the fundamental options available, we simply have to look at Change Request Management (ChaRM) process in SAP Solution Manager used to manage changes.  In ChaRM, as part of the process flow, the Service Expert (Functional Analyst/Developer) creates a Transport Request when making a change. Without getting too technical, there are two types of Transport Requests:

* Customizing – used to manage Configuration changes; and,
* Workbench – used to manage Development changes.

There are two approaches to making Configuration changes to SAP Standard:

* Personalization of SAP Standard;
* Customizing SAP Standard.

And there are three approaches to making Development changes to SAP Standard.

* Enhancement to SAP Standard;
* Custom Development;
* Modification of SAP Standard.

Source: myALM

Personalization of SAP Standard

Definition: Personalization of SAP Standard means adjusting SAP Standard to simplify and personalize user navigation: User Interface (UI) personalization to adapt the interface to user’s preference.
Impact SAP Standard Code? No. Personalization of SAP Standard does not impact SAP Standard code.
Overwritten during Upgrade? No. Personalization of SAP Standard is not overwritten during upgrade.
Example: Select a different skin for CRM UI.

Customizing SAP Standard

Definition: Customizing SAP Standard means adapting SAP Standard to meet customer specific requirements. What this means the SAP Standard code is executed or ignored depending on the customizing performed. Customizing can be done via SAP Implementation Guide (IMG) or guided procedures provided by SAP.
Impact SAP Standard Code? No. Customizing SAP Standard does not impact SAP Standard code.
Overwritten during Upgrade? No. Customizing of SAP Standard is not overwritten during upgrade. However, it is a good practice to adjust customizing in the customer namespace to align with the latest version of SAP Standard introduced as part of the upgrade. In certain situations it is strongly recommended by SAP. This was a perfect example during SAP Solution Manager 7.2 upgrade – SAP KBA 2394599 (How to handle your Z transaction types after the upgrade to 7.2).
Example: Hide an existing field in the CRM UI.

Enhancement to SAP Standard

Definition: Enhancements are “hooks” provided by SAP for enhancing SAP Standard to extend the business logic that hasn’t been provided in the standard. SAP anticipates that companies will make use of these enhancements to address unique business requirements. Enhancements can be done with standard interfaces (BAdIs, customer exists) or without interfaces (implicit/explicit enhancements directly in the source code).
SAP Severity Level (indicates how far Development changes differ from SAP Standard on a scale from 1 to 5): 1
SAP Recommends: To use enhancement with interfaces as the preferred way of enhancing SAP Standard.
Impact SAP Standard Code? No. Enhancements to SAP Standard do not impact SAP Standard code.
Overwritten during Upgrade? No. Enhancements to SAP Standard are not overwritten during upgrade.
Example: Create a new field in CRM UI using Application Enhancement Tool (AET).

Custom Code

Definition: Custom developed solutions are “bolt-on” solutions that are developed outside of SAP Standard to address missing functionality in SAP Standard. Custom development can be done independent of SAP Standard code (standalone solution in customer namespace) or with reference to SAP objects. The latter is not recommended by SAP. “SAP strongly recommends that you only reference SAP objects that are released for customers. Failure to do so can cause problems when updating your SAP software.”
SAP Severity Level (indicates how far Development changes differ from SAP Standard on a scale from 1 to 5): 5
SAP Recommends: To avoid custom development whenever possible in order to remain as close as possible to SAP Standard. Before developing a custom solution, make sure that the requirements cannot be fulfilled by Customizing, Personalization or Enhancements.
Impact SAP Standard Code? No. Custom developed solutions do not impact SAP Standard code.
Overwritten during Upgrade? No. Custom development is not overwritten during upgrade. However, any custom solution with reference to SAP objects is overwritten during upgrade by new SAP objects delivered in the new release and will require adjustments during the upgrade.
Example: Create a new field in CRM UI using custom development.

Modification of SAP Standard

Definition: A change to SAP Standard code, logic and objects to meet business requirements. Modifications are the most expensive way to changing SAP Standard in terms of development and maintenance costs. Modifications can be done with tool that assist modification or without tool assistance. All modifications must be registered with SAP Software Change Registration (SSCR) application.
SAP Severity Level (indicates how far Development changes differ from SAP Standard on a scale from 1 to 5): 3
SAP Recommends: To avoid modification to SAP Standard wherever possible given the cost and risk involved. “Only perform modifications with the help of the modification assistant and when there is no other option. “
Impact SAP Standard Code? Yes. Modifications to SAP Standard impact SAP Standard code.
Overwritten during Upgrade? Yes. Modifications of SAP Standard are overwritten during upgrade by new SAP objects delivered in the new release. In order to retain the objects that have been modified in a previous release, modification adjustments are required in SPAU and/or SPDD during the upgrade.
Example: Modifying elements in the SAP Standard code for CRM UI.

The following order is recommended when selecting the approach for changing SAP standard (left to right).

Source: myALM

When deciding to change SAP Standard, we must not lose sight of the inherent costs: one-time cost for development and yearly cost of maintenance; and how to efficiently and effectively manage Development changes. Remember, all changes to SAP Standard must be linked to business value. But these are the topics for another discussion that we will include in the next blog.

We are looking forward to your comments. If you want to follow us, you can find us on:

Yuliya Khomich Twitter @YKonsulting and LinkedIn

Marc Cyr LinkedIn

Reference Material

* Changing the SAP Standard (BC)
* SAP Standard for Customer Code Management – SAP Solution Manager 7.2 http://bit.ly/2px89yy #SAP #SAPCloud #AI

How blockchain will transform the utilities industry

What is blockchain?

Cryptocurrencies such as Bitcoin have been in the news a lot recently. One day it’s the currency losing half its value, another it’s the fact that Bitcoin mining will one day consume all the world’s electricity, or maybe the idea that South Koreans are obsessed with cryptocurrency.

But amid all this coverage what is sometimes missed is the bigger story which is the technology behind it – blockchain. This is the exciting part that looks set to dramatically change the world around us and revolutionise how businesses operate.

In a nutshell, blockchain is a reliable, difficult-to-hack record of transactions – and of who owns what.

For more detail, there are some great explanations of blockchain in simple, easy to understand language. For example, this one by my colleague Dwayne DeSylvia or this one by Jamie Skella.

Some of the most important characteristics of blockchain are:

* Shared record book – the record of transactions is distributed among hundreds or thousands of computers all around the world. And they all have to agree on the details of every transaction that is added to the record book, otherwise it doesn’t get added. This makes it reliable and secure and means that there is…
* Trust – the whole community verifies the new transactions and reaches a consensus, rather than relying on a…
* Middleman – there is no longer a central controlling entity. We have done away with the middleman.

Sounds good, but so what?

Blockchain may have originally been created for trading Bitcoin but its potential reaches far beyond cryptocurrencies.

Blockchain offers a way to verify the ownership of something digital, even if there are identical copies.

The implications of this are huge. The shared record book concept could include land titles, loans, identities, logistics manifests – essentially almost anything of value.

For example, imagine if when you streamed music, instead of paying a subscription to a content provider you were paying the artist directly. The artist no longer needs to register copyright and sign with a publisher, they just upload their music and it’s published through the P2P network, ready for everyone to browse. When a user decides to buy music, they make a payment that is visible on the blockchain and the artist receives 100% of the revenue. This is the sort of thing Voise and Ujo Music are working on.

Logic that works on the “if this happens then do that” principle can be used to automate the transfer of assets or currency between parties when certain conditions are met. (These conditions are known as “smart contracts”, but that’s not a great name.) For example, a logistics company could have a smart contract in place to say:

“If I deliver this product and receive cash at this location in a developing, emerging market, then trigger a supplier – many links up the supply chain – to create another item since the existing one was just delivered.”

Another example would be the purchase and settlement of a house as illustrated below.

Source: Blockgeeks

What about Utilities?

There are already several examples of blockchain in utilities, here are three:

* The much talked about Brooklyn microgrid is a demonstration project where citizens can buy and sell locally produced rooftop solar power from each other. In a similar vein, Perth-based Power Ledger offers a platform to track the generation and consumption of electricity and is one of three finalists in Richard Branson’s 2018 Extreme Tech Challenge.
* BlockCharge is a working prototype for electric vehicle charging created by RWE and Slock.it. Using a similar principle to mobile phone roaming, it allows EV owners to charge their car via any charging station network and be billed for the energy used in a simple blockchain-based way. The EVs interact automatically with stations and the electricity payment process is autonomous.
* Bankymoon has a novel approach to foreign aid. Their Usizo project enables international crowdfunding for African schools in need of financial aid. The schools have blockchain-aware meters installed so anyone from around the world can make a payment direct to the meter, helping fund the energy or water needs of the school without the need for a charitable organisation in the middle.

Is blockchain suitable for me?

The sort of scenarios that benefit most from blockchain share these characteristics:

* Multi-party – several participants, often spread across companies or industries
* Multiple “writers” – if there is just one writer then a master/slave replication would suffice
* Intermediaries can be made obsolete – we don’t want to get rid of a middleman if they add a lot of value
* Need for transparency – to reduce risks, avoid fraud, etc.
* Need for mutual control – since the blockchain network generates trust

Do you have a scenario that could benefit from blockchain? Come and try it out using SAP’s Blockchain-as-a-Service platform, which provides an easy way to experiment with the technology without the need for a large upfront investment.

Or join other customers and partners who are already co-innovating blockchain solutions with SAP. http://bit.ly/2pu8Vwk #SAP #SAPCloud #AI