This blog will give some brief introduction of how C4C’s UI framework works and what is the render process of C4C. As we know SAP C4C’s front client is built based on SAP UI5, but actually how C4C using UI5 have some different from other application. For almost Fiori applications which is based on UI5,....

Throughout this article I will analyse and compare the main advantages Spartacus offers over the legacy SAP Commerce B2C accelerator and the SAP Commerce B2B accelerator, particularly from a developer experience point of view. SAP Commerce Cloud (formerly SAP Hybris Commerce Cloud) is a cloud-native omnichannel commerce solution for B2B, B2C, and B2B2C companies. Spartacus is an Open....

We used to write Groovy scripting in our CPI integration projects. But if you are a big fan of JavaScript like me, why not to use JavaScript to write the script in your next CPi integration project? Unfortunately by searching on SAP community, it is very hard to find any resource on how to do....

In the freestyle SAPUI5 application, value help is always a common requirement. The value help is composited with a filter and table in a dialog. If you compare the demo in the demo kit and the standard value help generated by the Fiori Element you can see there is a big difference. Value Help Dialog:....

In the previous blog, we have done half the work about the custom side navigation. In this blog, we focus on the render class to see how to render panel in the browser and how to control its position. In the custom controller, there is a mandatory method we have to implement: renderer: function (oRm, oSideNavigation)....

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....

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....

The application link for this solution can be found here: https://feat-alt-row-colors-treetable.netlify.app The code for the solution is available on GitHub at: https://github.com/sonalikaporwal/feat_treetable   A tree table is a hierarchical arrangement of data that is organized in rows and columns and grouped into nodes. alternateRowColors is a UI5 table attribute that permits alternating table row colors. Unfortunately, the tree table....

This short document explain one possible alternative to avoid the utilization of code in the “onInitialization“, mainly when we need to improve performance in our SAC AD (when it’s possible). When we introduce code in the “onInitialization” we are stacked with the performance of execution sequencial instructions one by one. In some cases just to introduce code....

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....

This is part of the Easy way to write algorithms in ABAP: Series 01. For more algorithms, please check the main blog-post. Problem A permutation of an array of integers is an arrangement of its members into a sequence or linear order. For example, for arr = [1,2,3], the following are all the permutations of arr: [1,2,3], [1,3,2], [2, 1, 3],....

So recently in a program, I am trying to clear couple of columns in an internal table. So instead of doing it the regular old way of looping into reference and clearing those fields, I used the new ABAP to do that job. Don’t reason with me on this, I am addicted to the new....

We often come across a requirement that we need to generate a dynamic HTML template but with minimalistic code and without having any different UI components, To achieve that we need to have a sophisticated way to do that, and to summarize that we can conclude in the below statement Template engines are the backbone....

More information about the SAP Cloud Application Programming Model: Welcome to CAP In this tutorial we will develop and deploy a CAP Node.js Service with simple functions and create an Action Project.The goal is to cover all the necessary steps to consume the CAP Service API functions in a Process, not to proivde a real use case.....

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....

While investigating on a custom solution for SAC widget , I realized there is still a lot of Mist around Custom Widget , primarily towards its hosting as well as creating a basic working version of a custom widget. The aim of this blog is to demystify the basics around custom widget and navigate through....

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 is part of the Easy way to write algorithms in ABAP: Series 01. For more algorithms, please check the main blog-post. Problem You are given an array prices where prices[i] is the price of a given stock on the ith day. You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to....

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....

In this blog you will see how to implement the following concepts of Multitenancy: Creating tenants Deleting tenant Dependency callbacks Creating and updating the database schema and deploying the artefacts for the tenant. Our reference application has a microservice to handle onboarding requests. This helps in isolating the responsibilities and scaling the application as per demand.....

An agile approach involves cross-functional teams where individual team members complement each other’s skills. With the move to cloud-based development, teams must often deal with increasing complexity and must learn quickly. Both aspects bring up new challenges when it comes to growing the necessary skills. This blog introduces some problems in empowering the teams to....

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....

Get creative using SAP Business Technology Platform, Kyma Runtime! Part 3 If you read Part 1 of this blog series, you’ll have seen how I’ve built a simple frontend user interface giving the user the option to select a file and trigger an upload using the Flask Python package and store it in a container in an SAP BTP, Kyma runtime pod....

Hello World! This is my first blog! I recently had a requirement where the client wanted 365 columns in a table. The goal was to edit the schedule of multiple employees in one table over the period of a year. Another requirement was to scroll horizontally (just like Excel). Although the Fiori guidelines clearly states....

If you’re an application designer, you can create a bookmark set technical object so application users can save the state of your analytical app at runtime. image source: seongon.com In order to dynamically create bookmarks in the analytics application, please follow the steps below. Before staring, create Bookmark set from scripting. First create one popup with components....

  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....

coauthor: Ralf Handl SAP Fiori Elements Object Page Floorplan Draft Scenario Displaying an Error Message   OData Error Message Introduction When building applications with the SAP Cloud Application Programming Model (CAP), generic service providers significantly shorten the service development time by providing many out-of-the-box solutions to recurring tasks allowing you to focus on the specific business logic of your application,....

The SOMIX suite is designed to give developers an overview of complex software landscapes. The suite contains extractors that create a model of the software in the SOMIX metamodel format. The SOMIX model is then used by special tools to create visualizations. Software diagrams can become outdated very quickly if they are maintained manually. In....

Introduction This blog won’t deal with well known and traditional reactive programming libraries like RxJs. But I advise you to have a look at those blogs: Reactive Programming in UI5 Application Reactive state management in SAPUI5 via MobX Building a SAPUI5 application with Predictable State Container This blog aims to underline how to simply use....

Often in development variables doesn’t contain exactly what they supposed in particular when we put constraints to these variables. An typescript example: In this project a image gallery should display images in a slider on a webpage. The first image should be the current image displayed in a DOM-node, if the DOM-Node contains a image.....

SAP Customer Data Cloud webhooks send out asynchronous event notifications to custom notification URLs when specific events occur in SAP Customer Data Cloud flows such as login, registration, and account update. This post demonstrates an example in which event notifications for the subscription updated event are sent to a Kyma serverless function, which has a code snippet that implements some business logic to....

In this quick blogpost I’ll show you how to read data from a QR code and convert it into variables to use in the app, leveraging the recently acquired by SAP, the low-code no code solution: AppyGyver. SAP AppGyver reads the QR Code as a text. For this exercise, we need to make sure that....

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....

Since SAP Conversational AI introduced the speech-to-text client API, it’s worth taking a look at all the ways you can control your chatbot from the client side. You can: Add a button to open and close the Web Client. Let your app send a message to the chatbot Provide your chatbot with client information from....

Patch-Level Independent Bootstrap We listen to your feedback! A while back we got the feedback to make the bootstrap URL more stable and in dedicated feedback rounds, we evaluated that this should apply especially to the bootstrap URLs of long-term maintenance versions. With the introduction of the removal of outdated versions, this feature becomes even more....

With the release of 5.33.x/ 6.25.x, SAP Cloud Integration now provides a feature where users can consume the reusable artifacts such as Script Collection and Message Mapping Artifacts across different packages. This enhancement will bring a better reusability experience for the usage of script collection across integration packages. Till now, Integration Developers were allowed to....

In my blog post 2 weeks ago, I talked about how to use the SAP Conversational AI speech-to-text features with IBM’s speech-to-text service to your chatbot. Now I want to show another fun way to implement speech to text, but with a 3rd-party JavaScript service that kind of mimics Siri and Alexa. The speech-to-text documentation is available....

Having a code base, which is readable and maintainable is essential for sustainable development. The book Clean Code from Robert C. Martin and some other books contain many best practices around maintainable code. Writing cleaner code is an easy way to boost the quality, maintainability and testability of your code. With Clean SAPUI5 we provide....

In S/4 Hana Cloud side by side extension , we need to develope backend to create material document in S/4 Hana cloud . In this case we use nodejs .  If we use SAP Cloud SDK , it will improve our developement efficiency greatly . Today I want to demo how to create material document....

Hello Readers, Hope everyone is doing well! It’s been a long that I haven’t developed any blog post recently, Hope you very well know the BAS(Business Application Studio) the new development toolkit provided by SAP. Introduction: SAP provides a new development tool(IDE)  called  “SAP Business Application Studio” (BAS) in the market and to the customers for developing....

Hello Everyone! In this blog I will demonstrate how a device camera can be accessed within a SAPUI5 application to scan a barcode and populate the value of the barcode into an input field. This will be achieved in a plain SAPUI5 web application which can be accessed via any device that has a camera....

Have you ever heard of ‚Shims‘? Conventionally speaking, shim means a thin piece of material used for filling small gaps or spaces between objects. Typically these are used to provide better support and fit to an existing structure. In the tech world, ‚shim‚ has been used to refer to polyfills or libraries that help a particular software/code support a....