In SAP Spartacus document there is a page for “How to Debug a Server–Side Rendered Storefront” using Visual Studio Code. https://sap.github.io/spartacus-docs/3.x/how-to-debug-server-side-rendered-storefront/ This document just introduces another way to debug, using Chrome Dev Tools instead of Visual Studio Code.The steps are written based on Spartacus library with version 3.4.1. (1) create a Storefront using Spartacus library....

Do you know this problem? New features should be developed, but communication with the customer is difficult. People talk past each other. Requirements are unclear. Finally, when the feature is implemented, it turns out the customer actually had a different requirement: “But we thought that does something completely different!” One solution to this problem is....

Beginning with OpenUI5 and SAPUI5 1.116 (planned for July 2023), UI5 framework libraries will start using modern ECMAScript syntax in their code and define “Specification Version 3.0“ in their UI5 Tooling configuration. If you use UI5 Tooling in your projects, this means you will have to upgrade to UI5 Tooling Version 3. In addition, you have to make sure that your project’s....

The SAP Community is celebrating its 20th anniversary this year. We thought it would be the perfect time to not only commemorate the SAP Community but also honor the remarkable accomplishments of our fellow ABAP developers within the open-source ABAP community. What is Open-Source? Open source refers to software whose source code is made available....

Flaky tests (aka fragile, brittle or instable tests) are tests that fail or pass intermittently without any changes to the codebase. They are a common problem in software development and can be frustrating to deal with. However, it is important to be disciplined with flaky tests because they can lead to a number of issues. Why it is important to deal....

This is a short announcement of an updated version of the open source PLC emulator. Performance issues have been identified thanks to Patrick Rogge and his comments to the How to setup and run PLC emulator for SAP EWM MFS blog. Patrick has noticed unusually high CPU usage by essentially idle emulator instance. The issue has been noted in the....

Clean code é um termo usado para descrever software que é fácil de ler, entender, manter e testar. Neste blog, quero resumir alguns princípios importantes e fornecer uma introdução ao tópico para iniciantes. Além disso, o blog deve se conectar ao repositório de guias de estilo, aos livros e às iniciativas atuais em que os....

In my last post, I covered a correctness bug in the fundamental Java profiling API AsyncGetCallTrace that I found just by chance. Now the question is: Could we find such bugs automatically? Potentially uncovering more bugs or being more confident in the absence of errors. I already wrote code to test the stability of the....

Did you ever wonder whether JFR timestamps use the same time source as System.nanoTime? This is important when you have miscellaneous logging besides JFR events; otherwise, you could not match JFR events and your logging properly. We assume here that you use System.nanoTime and not less-suited timing information from System.currentTimeMillis. The journey into this started with a question on....

SAP’s own Java VM SapMachine comes with a handy monitoring tool you may not know: SapMachine Vitals. Think sysstat tools – pidstat, iostat, etc – plus JVM stats rolled into one and baked into our JVM for your convenience. Curious? After me. Our SapMachine Vitals give you a gap-less history of metrics: JVM-, process- and system-data, periodically sampled and buffered inside the....

Analyzing OOM-kills is no fun. You fly mostly blind, have no meaningful logs – your JVMs just keep disappearing. It can be highly frustrating work. If that sounds familiar, we may have something for you. OOM-kills mean sudden death. The JVM gets no warning, it just receives a SIGKILL from the kernel. Or its container....

Using async-profiler can be quite a hassle. First, you have to download the right archive from GitHub for your OS and architecture, then you have to unpack it and place it somewhere. Or you get it from your OS distribution, hoping that it is the current version. It gets worse if you want to embed it into....

Profilers are great tools in your toolbox, like debuggers, when solving problems with your Java application (I’ve been on a podcast on this topic recently). I’ll tell you some of their problems and a technique to cope with them in this blog post. There are many open-source profilers, most notably JFR/JMC, and async-profiler, that help....

PLC Sim is a free, open source, platform independent tool to test SAP EWM MFS connectivity and facilitate SAP EWM MFS implementation projects. The software has been made available under copyleft GNU Affero General Public License v3.0 Main Features The current release of PLC Sim supports: Optional automatic telegram acknowledgment with handshake response Optional LIFE telegrams filtering Multiple communication....

Clean Code – From Contribution to Decision Clean code is a term used to describe software that is easy to read, understand, maintain and test. With the adoption of the clean code style guide by thousands of teams, changes to the style guide can have a large potential impact on developers (e.g. through new static code checks for new rules). While there is....

Clean Code: Wartbar, Lesbar und Testbar Clean Code ist ein Begriff, der Software beschreibt, die einfach zu lesen, zu verstehen, zu warten und zu testen ist. In diesem Blog möchte ich einige wichtige Prinzipien zusammenfassen, um Anfängern einen Einstieg in das Thema zu ermöglichen. Außerdem soll der Blog eine Verbindung zum Style Guide Repository, den....

It is December again, so everyone is busy like in no other season of the year. Whether it is working on a long backlog list in Jira or finally crossing something off from your to-do list that you keep putting off. And as another year is ending, it is also time to look back on....

Clean code is a term used to describe software that is easy to read, understand, maintain and test. In this blog I want to summarize some important principles and provide an entry into the topic for beginners. Besides, the blog shall connect to the style guide repository, the books and current initiatives where experts can....

This blog is about an important principle for improving the quality of documentation. It can also help to improve decision making, collaboration and more effectively use meeting time by leveraging written asynchronous communication. Documentation (e.g. Architecture Documentation, Good Practices and Product Documentation) should be treated as code, which means that it is: placed under version control very simple syntax changes undergo reviews....

The blog aims to explore the topic of updating Open Source Library dependencies. Goals are to speed up fixing dependencies with vulnerabilities. And secondary to keep dependencies up to date. By that we can improve productivity, reduce toil and improve security. Open Source got a lot of traction in the last years and many system....

Almost exactly 3 years ago, we went open source with the OpenUI5 developer documentation: OpenUI5 Developer Guide: Have Your Say! Next up: SAPUI5! What is the Open Documentation Initiative? In a nutshell, the Open Documentation Initiative is SAP’s way of opening up its documentation sets for outside contributions. Here’s how DJ Adams puts it: Looking at some documentation and you’re not....

  Easy UI5 is the tool of choice of UI5 developers to kick-start UI5 freestyle projects. The plugin generators (or sub-generators) listed in Easy UI5 are provided by the UI5 community and the UI5 team and include the latest best practises and features. As of today, all plugin generators are from the ui5-community GitHub organisation. Last week....

Log4Shell Digital criminals love easy to exploit vulnerabilities in widespread libraries. In December 2021 it was almost possible to hear the champagne corks pop, when one of the most critical security vulnerabilities was found in a logging library, called Log4j 2 for Java. Such vulnerability has both ingredients: it affects a library widely used in....

This blog shows an example application combining SAP AppGyver with the spatial engine of SAP HANA Cloud by making use of GeoServer on BTP as a middleware. Everything has been done on the free tier and can be replicated without involving any license costs. Fast Food Finder: Fill your belly with SAP AppGyver and SAP....

Welcome screen displaying the step-by-step approach   Awesome! Isn’t it? When you finally decide to buy that new house. The moment you sign the agreement, the moment you tell your family and friends about it, the moment you get the keys! Until, that is, the moment you actually have to move, and panic takes over....

Writing readable, maintainable and testable code is a practice and discipline you can apply to any kind of programming language. And many developers switch between languages and frameworks (e.g. between ABAP backend and UI5 frontend development). Therefore we wrote the books Clean UI5 and Clean ABAP with the intention to simplify learning and make it easier....

In this blog post, I will share how you can leverage an open source project called Diagrams to create architecture diagrams with code. Code to architecture diagram When explaining to others how a system works or communicates with its different parts, it is generally easier to do it visually, e.g. using an architecture diagram. I’ve....

“Investments for the future” is a French government-funded initiative which seeks to modernize and make the country more competitive while making it more attractive to investments and innovation. It focuses on strategic sectors including artificial intelligence (AI) for defense-security. The program works in three phases:  Industry sponsors are invited to submit a technical challenge to be....

SAPUI5 is a frontend framework that allows for the building of apps that follows SAP Fiori, the design guidelines for SAP. The apps are built with an MVC (model, view, controller) pattern using HTML5, JavaScript, XML, OData and JSON. It is highly versatile and very well supported. But what if you want to design an....

In this blog post I will share my experience replacing docker with podman on my computer. A few months ago it was announced that Docker Desktop will require a license depending on how you use it. Based on my usage of Docker desktop it is hard to justify a license for it. I previously heard of podman and thought....

Observations about Women in Open Source Having worked in the SAP Open Source Program Office since 2019, I drive business development, manage communities such as the “SAP Open Source Champions” and engage with different internal and external groups and stakeholders about topics related to open source. From the very beginning, I noticed that open-source developers are extremely motivated and passionate about....

We want to collaborate with you to improve our documentation. To do this, we’re taking our first steps with the Open Documentation Initiative.  One of the things I’ve been happy to observe over the decades is SAP moving towards an increasing openness. To name just a few milestones, there’s the inclusion of open protocols such....

You can earn SAP Community badges for collaborating with us on SAP documentation.  Last week we introduced the Open Documentation Initiative which is all about collaborating on SAP documentation. We thought it would be fitting to be able to reward valuable collaboration by issuing badges, so we’ve set up a couple of new ones in a new....

Recently I was working on a multi-tenant application. As part of the requirement I had to support separate S3 buckets for tenants for security concerns. Having multiple buckets sounds good when we talk about production environments with respect to costing. But I had to solve the problem for development environment where multiple developers would be....