https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/Joule-blog-posts.xml SAP Community - Joule 2024-05-20T11:10:56.429563+00:00 python-feedgen Joule blog posts in SAP Community https://community.sap.com/t5/technology-blogs-by-sap/now-ai-helps-you-developing-sapui5-applications/ba-p/13649767 Now AI Helps You Developing SAPUI5 Applications 2024-03-27T18:52:57.706000+01:00 AndreasKunz https://community.sap.com/t5/user/viewprofilepage/user-id/189706 <P>As announced in <A href="https://community.sap.com/t5/technology-blogs-by-sap/joule-for-freestyle-sapui5-development-in-sap-build-code/ba-p/13650005" target="_blank">this blog post</A> by Oliver Graeff, the UI5 team is delighted to release its first foray into the world of Generative AI, a contribution to Joule in SAP Business Application Studio which helps with freestyle SAPUI5 development.</P><P>In this blog post, we explore how this SAP Build Code feature works and how you can benefit most from it. At the end, let’s not forget getting a glimpse of related AI features and prototypes.</P><H2 id="toc-hId-989966495">Get Help from Joule</H2><P>As a user of SAP Build Code, you get Joule as assistant in SAP Business Application Studio, accessible via this “Joule jewel” as I like to call it:&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="joule-jewel.png" style="width: 200px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86574i60B7C70E25FBF2FD/image-size/small?v=v2&amp;px=200" role="button" title="joule-jewel.png" alt="joule-jewel.png" /></span></P><P>One important thing to note is that in the initial release, Joule is only available in dev spaces of type “<EM>Full-Stack Application Using Productivity Tools</EM>”. If you e.g. create a dev space of type “SAP Fiori”, you will not see it. The availability in more dev space types</P><P>The panel content is context sensitive. This means that for a random file in a random project, it may just tell you that it is not available, but when you open e.g. a UI5 view or controller or most other file types inside a UI5 application project, then it will greet you with all its violet-purple AI glory and ask for your requests:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="The Joule Panel" style="width: 352px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86577iC6DE0FD457163996/image-size/large?v=v2&amp;px=999" role="button" title="joule.jpg" alt="The Joule Panel" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">The Joule Panel</span></span></P><P>Simply enter your request in the chat window – adding, editing, replacing code… anything goes! – &nbsp;and Joule will respond with code and explanations.</P><P>Each code block in the response has a header with a “” and an “Accept” button. “Accept” transfers the code to the respective file, replacing its content. An answer can provide content for different files. If the file to which a code block belongs is currently not open or active, it will automatically be opened when you click “Accept”.</P><P>In case this “Accept” button is missing or you want to edit the suggested code first, you can use the ”Copy” button to get the code into the clipboard and paste it manually. This is also useful in the (rare) cases when only a code snippet is provided instead of the entire file, or parts of the previously existing code are omitted.</P><H2 id="toc-hId-793452990">Think BIG for Biggest Benefit</H2><P>Actually, those suggested samples in the Joule panel are just simple ones. We really recommend trying bigger steps! Don’t waste time (and AI tokens) by requesting a simple button.&nbsp;Try increments like:</P><UL><LI>Adding a new View with some content and setting up routing</LI><LI>Creating a new model with sample data and adding a table displaying certain properties as columns</LI><LI>Making all (hardcoded) texts within a view translatable and providing translations</LI></UL><P>Things like these seem like the sweet spot where Joule speeds up application development most. Taking bigger steps is also a good approach when the AI response times appear a little long. Performance varies, and Joule has no influence on this – most of the time is spent waiting for the response.</P><P>You know Generative AI has limits. Requests like the above typically work well, but of course the response can contain issues or be not exactly what you had in mind. Tweaking the result will usually still get you to your goal much faster than typing everything by hand. You can also use the pencil button to edit a request and try again.</P><P>In particular, sometimes the namespaces of newly added controls are not correct, despite our efforts to prevent this. Mentioning the library when requesting concrete controls may help.</P><P>Joule is a conversational chat assistant that keeps context. This means it “knows” what you have requested before and you can refer to this knowledge in further requests. Still, we recommend pressing the “Reset Conversation” button at the top once you request something different:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="clear.png" style="width: 200px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86579i60B2C790107325A4/image-size/small?v=v2&amp;px=200" role="button" title="clear.png" alt="clear.png" /></span></P><P>This frees the conversation from previous ballast, keeps the AI focused and not least makes responses faster.</P><H2 id="toc-hId-596939485">Keep in Mind How to Get Joule</H2><P>As mentioned, the Joule assistant for freestyle UI5 development is active when it seems like you are working on UI5 resources. The actual logic behind that is longer than would fit this blog post, but when Joule’s suddenly not there and you need it, simply open a UI5 view or controller, or work below a directory with ui5.yaml file in it and you should see it again. This behavior, by the way, could change soon, as Joule is still growing up into its role of an always-available assistant with multiple capabilities.</P><H2 id="toc-hId-400425980">How Does it Work?</H2><P>There’s a lot of stuff going on behind the scenes.</P><P>For example, there is logic to select the files which are likely needed to be modified – or maybe just known – to fulfill your request. Of course, it would be too much to send <EM>all</EM> the code of your entire project along with every AI request.</P><P>Above you read that Joule keeps context and remembers the previous conversation. Yes, it has to, in order to reasonably converse with you. Otherwise, it would not be able to make sense of a request that is logically connected to what you did before. Still, it does not need to remember every single bit and byte for that! Hence, we condense the history to reduce the context size consumed by that.</P><P>Possibly there is some similarity to other AI tools you have seen recently, and this market is definitely a very agile and vivid one, but what differentiates this tool is its knowledge of UI5 and increasingly the knowledge how to support typical steps best which you are likely to do in any freestyle UI5 project.</P><P>Much of it is still evolving and being enhanced as you read this.</P><H2 id="toc-hId-203912475">More Joule Goodness: Create an Application from Business Requirements</H2><P>A related Joule feature provided by the Fiori tools team allows you to create an entire SAP Fiori elements list report application, including the respective CAP project, directly from your business requirements. <A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-fiori-tools-2403-introduces-gen-ai-capability-and-more/ba-p/13650594" target="_self">Look here</A>&nbsp;for more details.</P><P>This gets you started with a pretty complete app – and with our Joule feature for freestyle UI5 development, you can continue from there, e.g. when using custom pages. So both of these Joule features nicely complement each other.</P><H2 id="toc-hId-7398970">Even More AI</H2><P>It’s only the beginning. We have been experimenting for quite some time with how Generative AI could benefit not only UI5 application developers, but also end-users.</P><P>One such prototype, internally dubbed “ChatUI5”, aims to help end-users to interact with UI5 applications in natural language. It will be presented in the upcoming “UI5ers live” webcast on April 11th. Others look at how setting complex filters in applications could be simplified or how the UI5 documentation could be made more helpful.</P><P>To make it very clear: that’s all prototypes and we can’t tell whether any of them will ever see the light of being productized. But we’re looking further into the topic for sure.</P> 2024-03-27T18:52:57.706000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/joule-for-freestyle-sapui5-development-in-sap-build-code/ba-p/13650005 Joule for freestyle SAPUI5 development in SAP Build Code 2024-03-27T18:53:12.396000+01:00 OliverGraeff https://community.sap.com/t5/user/viewprofilepage/user-id/4124 <P><A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_self" rel="noopener noreferrer">Joule</A> is SAP's AI co-pilot that truly understands your business. Joule also helps you writing freestyle SAPUI5 code in SAP Build Code. Ask Joule by typing code-related requests, in natural language, into Joule's chat window. For example, you could ask Joule to insert a control to a view, add an event handler to a controller, introduce a full new view with routing and much more. You don't need to have the respective file open in the editor, you just need to make sure that your request is sufficiently clear. Requested changes may span across several files. For example, you could ask Joule to define a new model in the manifest.json and use the model in a control in the view.</P><P>Each file for which Joule suggests changes, will appear in a code block within Joule's chat window. On top of each code block you'll see options to</P><UL><LI>'Copy', to copy the code to your clipboard for further usage, and</LI><LI>'Accept', to open the respective file and add the code directly at the correct place.</LI></UL><P style=" text-align: center; "><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2024-03-26 at 15.51.58.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/86798iC85613C4F29335E3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-03-26 at 15.51.58.png" alt="Screenshot 2024-03-26 at 15.51.58.png" /></span><SPAN>Joule in SAP Business Application Studio</SPAN></P><P>Joule, your SAPUI5 assistant can handle both, any freestyle SAPUI5 application as well as custom pages following the SAP Fiori flexible programming model.</P><P>Joule is not only useful for writing code, it also helps you to understand the existing code or to find issues with it. You may ask questions about entire files, or you can select a block of code and then ask a question specifically about the selected code snippet.&nbsp;Beyond this, the implementation is not restricted to specific scenarios. Go ahead, explore, and try to find the limits…</P><P>Just note that Joule, like any other GenAI tool, may not always deliver 100% correct results. It is always a good practice to closely review the generated code. Still, Joule, your SAPUI5 assistant, will make you a more efficient SAPUI5 developer.<BR /><BR /></P><H1 id="toc-hId-861532263">How to use Joule for freestyle SAPUI5</H1><OL><LI>Launch SAP Business Application Studio in SAP Build Code.</LI><LI>Open a project containing freestyle SAPUI5 code and open a *.view.xml or *.controller.js / *.controller.ts file.</LI><LI>Launch Joule from the activity bar on the left and start asking Joule.</LI></OL><P>A first guide is available via the 'Guide Center' in the activity bar on the left: Open the guide 'Generative AI-Powered Development' -&gt; SAP Fiori UI -&gt; SAP Fiori Elements Custom Page and Freestyle SAPUI5. Read more details:</P><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/now-ai-helps-you-developing-sapui5-applications/ba-p/13649767" target="_self">Now AI Helps You Developing SAPUI5 Applications</A>&nbsp;by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/189706">@AndreasKunz</a></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-fiori-tools-2403-introduces-gen-ai-capability-and-more/ba-p/13650594" target="_self">SAP Fiori tools 2403 Introduces Gen AI Capability and more</A>&nbsp;by&nbsp;<a href="https://community.sap.com/t5/user/viewprofilepage/user-id/316392">@tashley</a>&nbsp;</LI></UL> 2024-03-27T18:53:12.396000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/demystifying-transformers-and-embeddings-some-genai-concepts/ba-p/13652933 Demystifying Transformers and Embeddings: Some GenAI Concepts 2024-03-28T21:07:49.791000+01:00 Louenas https://community.sap.com/t5/user/viewprofilepage/user-id/3372 <P><STRONG>Introduction:</STRONG></P><P>Generative AI (GenAI) keeps generating so much news and so many innovative applications in many domains and industries. The potential impact of GenAI on businesses and society is becoming difficult to deny. Thought leaders have compared the impact of GenAI to the invention of the transistor, the internet, and even FIRE.</P><P>Being at SAP part of the Partner Ecosystem Success group, I had the opportunity to talk to partners and customers, testifying that Business AI is first on the agenda, as SAP's CEO Christian K. and Walter S., Head of AI at SAP, expressed in this <A href="https://www.linkedin.com/posts/christian-klein_exploring-the-future-of-generative-ai-in-activity-7135346329752387584-CQwl/" target="_blank" rel="noopener nofollow noreferrer">short video</A>.</P><P>SAP is at the forefront of this new enterprise revolution and rightfully so, as SAP applications constitute the digital platform of business in the world, where the oil of Gen Business AI being the business Data is being generated and transformed. As the saying goes, with great power comes great responsibility; therefore, SAP is strategically focusing on Relevant, Reliable, and Responsible AI.</P><P>On the GenAI technology news from SAP, the following are the latest:</P><P><A href="https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/generative-ai-hub-in-sap-ai-core" target="_blank" rel="noopener noreferrer">Generative AI hub</A>: This is the place where SAP and its ecosystem will integrate LLMs and AI into new business processes in a cost-efficient manner.</P><P><A href="https://pages.community.sap.com/topics/joule" target="_blank" rel="noopener noreferrer">Joule</A>: The Generative Business AI Assistant from SAP. This will become the main UX for SAP Applications like S/4HANA Cloud and SuccessFactors HCM, providing information retrieval, navigational assistance, transitional assistance, and analytics assistance with ad-hoc and natural language querying capabilities.</P><P><A href="https://community.sap.com/t5/technology-blogs-by-sap/announcing-general-availability-of-sap-build-code-speed-up-development-with/ba-p/13646073" target="_blank">SAP Build Code</A>: This is where the developer community will build new user experiences with such speed of development thanks to embedded productivity tools powered with GenAI.</P><P><A href="https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-vector-engine-guide/introduction" target="_blank" rel="noopener noreferrer">SAP HANA Database Vector Engine</A>: This is the in-memory database from SAP, integrating under one single APIs set all the required engines for transactional workloads, Analytics/ML, and now GenAI thanks to the added support for a Vector engine. The Vector engine is the technical component used for managing Embeddings and using them to ground GenAI business use cases. Grounding is a term used in the context of RAG (Retrieval-Augmented Generation) to condition the LLM with the relevant context and therefore limit hallucinations.</P><P><STRONG>Understanding Transformers and Embeddings:</STRONG></P><P>Talking to partners and customers about GenAI is fun, but for more productive brainstorming, it's sometimes important to level set on the technical side with some GenAI basics, such as Embeddings and Transformers.</P><P>There are many great blogs and videos explaining these topics in detail using GPT-2, so this is a great resource as most LLMs use a very similar architecture. The resources that helped me most and seemed to be the best for people with technical background are from Niels Rogge from HuggingFace:</P><UL><LI><A href="https://www.youtube.com/watch?v=C6ZszXYPDDw" target="_blank" rel="noopener nofollow noreferrer">Transformers demystified: how do ChatGPT, GPT-4, LLaMa work?</A></LI><LI><A href="https://www.youtube.com/watch?v=IGu7ivuy1Ag" target="_blank" rel="noopener nofollow noreferrer">How a Transformer works at inference vs training time</A></LI></UL><P>Transformers like GPT act on tokens. Tokens are sub-words, and all the LLMs sub-words is the vocabulary. GPT-2 has a vocabulary size of 50,257 tokens, with each token represented by an Embedding of 768 dimensions. In comparison, GPT-4 seems to have 100,256 tokens and a default embedding vector of 1,536 dimensions (GPT-4 has a higher size of 3,072 dimensions and comes with the text-embedding-3-large model).</P><P>The tokens are produced with a tokenization ML process that tries to maximize the compression of language into an adequate vocabulary size. In GPT, the Embeddings are encoded into vectors using a training phase through the Transformer (see the 2nd from Niels).</P><P>You can experiment with tokenization on OpenAI <A href="https://www.openai.com/tokenizer" target="_blank" rel="noopener nofollow noreferrer">here</A>. For example, "hello world, my name is" will produce these 6 tokens: ['hello'- ' world' - ',' - ' my' - ' name' - ' is']. In French, when translated literally to "bonjour monde, mon nom est," it produces 7 tokens. Less common words will produce more tokens; therefore - fun fact - non-English languages will tend to produce more tokens, i.e., higher dollar cost for the same number of language words of a given prompt.</P><P>One forward pass through the Transformer architecture of GPT-2, i.e., predicting one next token, can be summarized in Python as follows. The code is self-explanatory with detailed inline comments.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>from transformers import AutoTokenizer, AutoModelForCausalLM import torch # Load the GPT-2 tokenizer and model tokenizer = AutoTokenizer.from_pretrained("gpt2") model = AutoModelForCausalLM.from_pretrained("gpt2") # Prompt prompt = "hello, my name is" # Tokenize the input text and return their IDs input_ids = tokenizer(prompt, return_tensors="pt").input_ids # Pass the tokenized input through the GPT-2 model to get the logits (Unnormalized embeddings) representing the likelihood scores of each possible next word. logits = model(input_ids).logits # slices the output to get the logits only for the last position in the sequence, as we're predicting the very next word next_token_logits = logits[:, -1, :] # finds the index (ID) of the word with the highest probability score. next_token_id = torch.argmax(next_token_logits, dim=-1) # Decode i.e. convert the numerical token ID back into its corresponding word. next_token = tokenizer.decode(next_token_id[0]) # Print the predicted next token print(f"Next token is {next_token}")</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>When running this program on a <A href="https://colab.research.google.com/drive/1OVFfTrHtCdmcBSJRA_XO-5kAYurQMS4I?usp=sharing" target="_blank" rel="noopener nofollow noreferrer">Jupiter Notebook</A> or Visual Studio Code, the next keyword will be "John." As a developer, you can add a loop to keep appending the next_token to the end of the prompt and perform a forward pass to see what the following tokens will be.</P><P>The videos above from Niels are very informative but could be a bit technical for some community members. To make it easier to explain, I spent a lot of time thinking about how to demonstrate the concepts without resorting to the phrase “Some magic happens here…”. Here is what I came up with, hoping it will help you understand and explain broader GenAI topics to your partners and customers.</P><P>Imagine a 3-dimensional space representing some concepts like Fruits, Programming languages, and Software companies.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Louenas_0-1711655043097.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88229i690C1A63DC5717C1/image-size/medium?v=v2&amp;px=400" role="button" title="Louenas_0-1711655043097.png" alt="Louenas_0-1711655043097.png" /></span></P><P>The following matrix with the name "embedding" is the algebraic representation of such a universe. The labels set is the vocabulary, and the X, Y, and Z coordinates are the corresponding embedding vectors. Please continue through the Python code, as it's purposefully well-documented to be self-explanatory.</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-python"><code>import numpy as np import random # Pre-defined (random) word embeddings embeddings = { # Fruits I love "Apple": np.array([0.85, 0.10, 0]), "Banana": np.array([0.91, 0.05, 0]), "Orange": np.array([0.90, 0.06, 0]), "Figs": np.array([0.88, 0.10, 0]), # Programming Languages I know "Java": np.array([0.10, 0, 0.85]), "JavaScript": np.array([0.05, 0, 0.91]), "Python": np.array([0.06, 0, 0.90]), "ABAP": np.array([0.10, 0, 0.88]), # Enterprise software companies :) "SAP": np.array([0, 0.85, 0.10]), "Oracle": np.array([0, 0.91, 0.05]), "Microsoft": np.array([0, 0.90, 0.06]), "Salesforce": np.array([0, 0.88, 0.10]), } # Prompt prompt = "I love ABAP and" # Split the prompt into individual words prompt_words = prompt.split() # Function to get embedding for a word # Return a vector of ones (identity vector) if the word is not in the vocabulary # Since 'I', 'love, 'and' are not in our vocabulary, it will get an embedding of [1, 1, 1] def get_embedding(word): return embeddings.get(word, np.ones(3)) # Calculate the average embedding of the prompt prompt_embedding = np.mean([get_embedding(word) for word in prompt_words], axis=0) # Get our vocabulary vocabulary = list(embeddings.keys()) # Remove words in the prompt from the vocabulary so that they won't be used to complete the prompt filtered_vocabulary = [word for word in vocabulary if word not in prompt_words] # Calculate dot products between the prompt embedding and the remaining vocabulary embeddings dot_products = {word: np.dot(prompt_embedding, get_embedding(word)) for word in filtered_vocabulary} # Add some randomness in the chosen next word Sort the words by their dot products and select the top two top_two_words = sorted(dot_products, key=dot_products.get, reverse=True)[:2] # Randomly select one of the two highest words. predicted_word = random.choice(top_two_words) print(f"Predicted next word: {predicted_word}")</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>When running this code on a <A href="https://colab.research.google.com/drive/1uneQbX6Mhx4dUcVP5lf2mN8JtfBLTNSF?usp=sharing" target="_blank" rel="noopener nofollow noreferrer">Jupiter Notebook</A> or Visual Studio Code, you will be able to complete the prompts with the next programming language that I love <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span> I you type "I like Apple and" it will complete with another fruit. Go ahead and experiment with you own categories and I hope this simulation can help you appreciate the scale of a real LLM like GPT-4 Turbo that acts on a vocabulary of 100,256 tokens and Embedding vectors of 3072 dimensions!!!</P><P>This simple code can predict the next word, classify words, etc. from the given vocabulary.</P><P><STRONG>Conclusion:</STRONG></P><P>To be clear, this is a very simplistic illustration of how high school algebra, i.e., matrix multiplication, is at the centre of today's technology revolution. Among other things, the Transformer neural networks like GPUs/TPUs/LPUs for their great capabilities in matrix operations and parallelization of such workloads. It's important not to underestimate other concepts in the Transformer architecture, such as tokenization, encoding, embedding, attention, and the neural network architecture of the Transformers, as well as Reinforcement Learning, Alignment, etc.</P><P>Understanding the technical concepts behind GenAI, such as Transformers and Embeddings, is crucial for productive brainstorming and discussions on GenAI applications in various domains and industries. This blog post aimed to provide a primer on these concepts, encouraging readers to explore the provided resources and code examples to deepen their understanding.</P> 2024-03-28T21:07:49.791000+01:00 https://community.sap.com/t5/technology-blogs-by-sap/generative-ai-based-sap-fiori-app-development-with-joule-directly-from-the/ba-p/13654153 Generative AI-based SAP Fiori App development with Joule directly from the business requirement 2024-04-01T15:43:06.089000+02:00 AnuradhaDhingan https://community.sap.com/t5/user/viewprofilepage/user-id/141341 <H1 id="toc-hId-861652541"><FONT color="#3366FF"><STRONG><U>Introduction</U></STRONG></FONT></H1><P>SAP Build Code, operating within SAP Business Technology Platform, is an application development environment for Java and JavaScript, providing developers with a turnkey solution for coding, testing, integration and application life cycle management. It provides a simplified developer experience, AI-based code generation with Joule copilot that drives productivity, is tailored for SAP development and supports fusion development by teams of professional and citizen developers. &nbsp;&nbsp;</P><P>This blog focuses on leveraging <STRONG>Joule’s generative AI features for SAP Fiori application development</STRONG> directly from the business requirement description(user story) prompt.</P><P>&nbsp;</P><H1 id="toc-hId-665139036"><FONT color="#3366FF"><STRONG><U>Business Requirement</U></STRONG></FONT></H1><P><FONT face="arial,helvetica,sans-serif">Create an SAP Fiori application as per the requirements outlined in the user story below:</FONT></P><P><FONT size="4"><U><STRONG>User Story</STRONG></U></FONT></P><P><FONT size="2" color="#808080"><EM>As a contract administrator, I want to create and manage contracts and ‘parties involved’ information in the system, so that I can effectively track and handle legal agreements and ‘parties involved’ interactions.</EM></FONT></P><P><FONT size="2" color="#808080"><EM>Contracts can cover a vast range of agreements, such as sales contracts, service agreements and employment contracts.</EM></FONT></P><P><FONT size="2" color="#808080"><EM>Party involved: A ‘party involved’ is an individual, organization, or entity that purchases goods, products, or services from another party, typically a business or seller.</EM></FONT></P><P><FONT size="2" color="#808080"><EM>Common attributes of a contract might include:</EM></FONT></P><OL><LI><FONT size="2" color="#808080"><EM>Contract ID: A unique identifier for the contract.</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Party involved Identification Number: A unique identification number for the party&nbsp;</EM><EM>involved.</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Contract Type: The type of contract (e.g. sales, service, employment).</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Start Date: The date on which the contract becomes valid.</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>End Date: The date on which the contract expires (if applicable).</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Status: The current status of the contract (draft, active, expired, terminated, etc.)</EM></FONT></LI></OL><P><FONT size="2" color="#808080"><EM>A typical ‘party involved’ has the following attributes:</EM></FONT></P><OL><LI><FONT size="2" color="#808080"><EM>Party involved Identification Number</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Party involved Name: It refers to the given name of a person or entity, or a label by which they are addressed or identified.</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Party involved Address: It refers to a physical location where an individual, business, or entity is situated or can be reached.</EM></FONT></LI><LI><FONT size="2" color="#808080"><EM>Party involved Contact Information</EM></FONT></LI></OL><P><FONT size="2"><STRONG><FONT color="#808080"><EM>Acceptance Criteria</EM></FONT></STRONG></FONT></P><P><FONT size="2"><STRONG><FONT color="#808080"><EM>Scenario 1: List All Contracts</EM></FONT></STRONG></FONT></P><P><FONT size="2"><FONT color="#808080"><EM>Given I am logged into the contract management system, when I launch the SAP Fiori application to maintain contracts, then I should be able to view the list of all the contracts in a list without pressing the GO button. The list of all the contracts should have : Contract ID, Party involved Identification Number, Contract Type and Start Date.&nbsp;</EM></FONT><FONT color="#808080"><EM>The list of filters should include Contract Type, Contract Status and Start Date.</EM></FONT></FONT></P><P><FONT size="2"><STRONG><FONT color="#808080"><EM>Scenario 2: View Contract Details&nbsp;</EM></FONT></STRONG></FONT></P><P><FONT size="2" color="#808080"><EM>Given I am logged into the contract management system, when I select a specific contract from the list of SAP Fiori application, then I should be able to view the contract details and parties involved information.</EM></FONT></P><P>&nbsp;</P><H1 id="toc-hId-468625531"><FONT color="#3366FF"><STRONG><U>Joule's&nbsp;Generative AI-based SAP Fiori App Development</U></STRONG></FONT></H1><H2 id="toc-hId-401194745"><U><STRONG>Prerequisites</STRONG></U></H2><UL><LI><FONT face="arial,helvetica,sans-serif" size="4"><A href="https://developers.sap.com/tutorials/hcp-create-trial-account.html" target="_blank" rel="noopener noreferrer">Get a Free Account on SAP BTP Trial</A></FONT></LI><LI><FONT face="arial,helvetica,sans-serif" size="4"><A href="https://developers.sap.com/tutorials/build-code-setup.html" target="_blank" rel="noopener noreferrer">Setup SAP Build Code</A></FONT></LI></UL><H2 id="toc-hId-204681240"><STRONG>1. Create a New Project using SAP Build Code</STRONG></H2><H3 id="toc-hId-137250454"><EM>1.1.&nbsp; Navigate to the SAP Build lobby</EM></H3><H3 id="toc-hId--59263051"><EM>1.2.&nbsp; Click on Create</EM></H3><H4 id="toc-hId--126693837"><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Create a Project" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89021i9975D6870D5C4018/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 1.07.36 PM.png" alt="Create a Project" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Create a Project</span></span></H4><P>&nbsp;</P><H4 id="toc-hId--323207342">&nbsp;</H4><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><H3 id="toc-hId--648803566"><EM>1.3 Click the&nbsp;Build an Application&nbsp;tile</EM></H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Build an Application" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89177i6BA23969AD5E286B/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 1.11.18 PM.png" alt="Build an Application" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Build an Application</span></span></P><H3 id="toc-hId--920548440"><EM>1.4&nbsp; Click the&nbsp;SAP Build Code&nbsp;tile</EM></H3><P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SAP Build Code" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89204iFC167A130F679D1C/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 1.14.16 PM.png" alt="SAP Build Code" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">SAP Build Code</span></span></EM></P><H3 id="toc-hId--1117061945"><EM>1.5&nbsp; Click the&nbsp;Full-Stack Application&nbsp;tile</EM></H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Full-Stack Application" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89059i0C5DEE4A28D9E992/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 1.15.56 PM.png" alt="Full-Stack Application" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Full-Stack Application</span></span></P><H3 id="toc-hId--1313575450"><EM>1.6 Create a full stack project.</EM></H3><P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Contract Management Project" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89109iA38822C4A25105E2/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 1.37.32 PM.png" alt="Contract Management Project" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Contract Management Project</span></span></EM></P><P>&nbsp;</P><H2 id="toc-hId--1216685948"><STRONG>2. Create an SAP Fiori App via Prompt</STRONG></H2><H3 id="toc-hId--1706602460"><EM>2.1.&nbsp; Click the project to open it in&nbsp;SAP Business Application&nbsp;</EM><EM>Studio</EM></H3><H3 id="toc-hId--1903115965"><EM>2.2.&nbsp; Click the Open Guide</EM></H3><P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Open Guide" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89111iEED8467EAC1B544A/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 2.02.20 PM.png" alt="Open Guide" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Open Guide</span></span></EM></P><H3 id="toc-hId--2099629470"><EM>2.3. Expand the 'SAP Fiori UI Node'</EM></H3><P><FONT face="arial,helvetica,sans-serif" size="4">Expand the '<SPAN class="">Create an&nbsp;</SPAN><SPAN class="">SAP Fiori</SPAN><SPAN class="">&nbsp;Application Directly from Your Business Requirements'</SPAN>&nbsp;node. Click the<SPAN>&nbsp;</SPAN><SPAN class="">Open Joule</SPAN><SPAN>&nbsp;</SPAN>button to launch Joule's AI assistant for<SPAN>&nbsp;</SPAN><SPAN class="">SAP Fiori tools</SPAN>.</FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Joule's SAP Fiori Tools Generative AI" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89116iBD6C797518CFC0CF/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 2.19.08 PM.png" alt="Joule's SAP Fiori Tools Generative AI" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Joule's SAP Fiori Tools Generative AI</span></span></FONT></P><H3 id="toc-hId-1998824321"><EM>2.4. Send requirement prompt to Joule</EM></H3><P><FONT face="arial,helvetica,sans-serif" size="4">Prompt the user story description(refer to&nbsp;Business Requirement section above) to Joule and click send.</FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Send business requirement description to Joule" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89123i67214DAC20F49852/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 2.38.55 PM.png" alt="Send business requirement description to Joule" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Send business requirement description to Joule</span></span></FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><SPAN>Joule now checks the input against the list of features it supports and implements them.</SPAN></FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Joule's artifacts creation based on prompt" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89129i22FFFBB604248066/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 2.47.30 PM.png" alt="Joule's artifacts creation based on prompt" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Joule's artifacts creation based on prompt</span></span></SPAN></FONT></P><P><FONT size="4">Click<SPAN>&nbsp;</SPAN><SPAN class="">Show Result</SPAN><SPAN>&nbsp;</SPAN>to review the generated artifacts. If fine, accept the changes to generate the project in your file system.</FONT></P><P><FONT size="4"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Accept Project Files" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89148i81AAB5D35285786D/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 3.05.12 PM.png" alt="Accept Project Files" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Accept Project Files</span></span></FONT></P><H3 id="toc-hId-1802310816"><EM>2.5. Preview the generated application</EM></H3><P><FONT face="arial,helvetica,sans-serif" size="4">Click run and debug.</FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Run and Debug" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89156iDDE79B3188404B5E/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 3.20.50 PM.png" alt="Run and Debug" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Run and Debug</span></span></FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4">The application's preview is displayed.</FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Application Preview" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89157i3674809E27A388A7/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 3.31.56 PM.png" alt="Application Preview" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Application Preview</span></span></FONT></P><P>Launch the contract management app.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Contract Management" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89160iF1A9225DABFE5EDD/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 3.40.32 PM.png" alt="Contract Management" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Contract Management</span></span></P><P>Select a contract from the list to view its details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Select Contract" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89166i60CBA8ABFC8006B8/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 4.19.45 PM.png" alt="Select Contract" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Select Contract</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Contract details" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/89174i13869678640CC231/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-01 at 4.25.10 PM.png" alt="Contract details" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Contract details</span></span></P><H1 id="toc-hId--2102363971"><FONT color="#3366FF"><STRONG><U>Conclusion</U></STRONG></FONT></H1><P><FONT face="arial,helvetica,sans-serif" size="4">Joule's&nbsp;<SPAN>SAP Fiori tools</SPAN>&nbsp;generative AI can really expedite the SAP Fiori&nbsp;development by directly translating the business requirements into an&nbsp;SAP Fiori elements&nbsp;application containing a list report and one or two object pages as part of a CAP project. The generated application can further be adapted to accommodate more complex functionalities.</FONT></P><P><FONT face="arial,helvetica,sans-serif" size="4">With SAP Build Code, application is developed automatically following the "golden path," utilising SAP best practices and integrated assistance to build quickly and integrate seamlessly.</FONT></P><H1 id="toc-hId--2130693785">&nbsp;</H1><H1 id="toc-hId-1967760006"><FONT color="#3366FF"><STRONG><U>Further Information</U></STRONG></FONT></H1><P><FONT face="arial,helvetica,sans-serif" size="4"><A title="SAP Build Code" href="https://pages.community.sap.com/topics/build-code" target="_blank" rel="noopener noreferrer">SAP Build Code</A></FONT></P><P>&nbsp;</P><P>&nbsp;</P><P><SPAN>Please feel free to add a comment, should you have any queries.</SPAN><BR /><BR /><SPAN>Best Regards,</SPAN><BR /><SPAN>Anuradha Dhingan</SPAN></P> 2024-04-01T15:43:06.089000+02:00 https://community.sap.com/t5/application-development-blog-posts/sap-build-code-activation-and-full-stack-application-development/ba-p/13653529 SAP Build Code Activation and Full Stack Application Development 2024-04-03T10:47:59.025000+02:00 nirmalsaini https://community.sap.com/t5/user/viewprofilepage/user-id/858626 <P><STRONG><U>What is SAP Build Code</U></STRONG></P><P>SAP Build Code is an AI-driven tool optimized for Java and JavaScript development, offering a comprehensive solution for coding, testing, integrations, and lifecycle management. It leverages Joule copilot to efficiently generate application logic, data models, and test scripts, enhancing productivity from design to runtime. Tailored for SAP development, it seamlessly integrates with S/4HANA and other applications, providing guided development experiences following SAP best practices. The Service Center grants direct access to SAP APIs, including OData and Business Events, simplifying development, and ensuring security through the SAP Business Technology Platform. It supports fusion development by combining traditional coding and low-code approaches, making projects faster, collaborative, and tightly integrated with the SAP ecosystem.</P><P><EM>NOTE: The entire process is done on a trial account.</EM></P><P>&nbsp;</P><P><STRONG><U>Activate SAP Build Code</U></STRONG></P><P>There are two ways to activate SAP Build Code: using Booster or manually from the Service Marketplace. 1.&nbsp;<STRONG>Using Booster: </STRONG></P><P>Select the global account. We are using the trial account.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_0-1711725550722.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88477iF43D69E754EDE739/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_0-1711725550722.png" alt="nirmalsaini_0-1711725550722.png" /></span></P><P>&nbsp;</P><P>Select "Boosters" from the menu on the left side of the screen.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_1-1711725550731.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88479i1FCAE17EE8CED13B/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_1-1711725550731.png" alt="nirmalsaini_1-1711725550731.png" /></span></P><P>&nbsp;</P><P>Search for SAP Build Code and select "Start" on the "Get Started with SAP Build Code" page.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_2-1711725550736.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88478iEC371AB6C233632D/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_2-1711725550736.png" alt="nirmalsaini_2-1711725550736.png" /></span></P><P>&nbsp;</P><P>It will run the booster, and a wizard will open to set up SAP Build Code with the following steps:</P><P>Select Scenario - Choose "Select Subaccount" and click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_3-1711725550738.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88480i4D1862AABF5B2EC5/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_3-1711725550738.png" alt="nirmalsaini_3-1711725550738.png" /></span></P><P>&nbsp;</P><P>Configure Subaccount- Select the subaccount in which you wish to activate the service. Since we are using a trial account, it will display the trial subaccount. Click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_4-1711725550740.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88481i2B79634A744A8878/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_4-1711725550740.png" alt="nirmalsaini_4-1711725550740.png" /></span></P><P>&nbsp;</P><P>Add Users:</P><P>Custom Identity Provider for Platform Users: By default, it will be accounts.sap.com.</P><P>Custom Identity Provider for Applications: By default, it will be accounts.sap.com.</P><P>For Administrators, mention the email of the user whom you want to give the Build Code Administrator and Subaccount Administrator role collection.</P><P>For Developers, mention the email of the user whom you want to give the Build Code Developer and Subaccount Viewer role collection.</P><P>Click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_5-1711725550745.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88482i676B35A1A89BEC22/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_5-1711725550745.png" alt="nirmalsaini_5-1711725550745.png" /></span></P><P>&nbsp;</P><P>Review all the details and click "Finish."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_6-1711725550747.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88483i2595C4F3F76E49D9/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_6-1711725550747.png" alt="nirmalsaini_6-1711725550747.png" /></span></P><P>&nbsp;</P><P>A progress indicator will be shown after clicking "Finish."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_7-1711725550751.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88484i76F7547FFE5E6B6A/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_7-1711725550751.png" alt="nirmalsaini_7-1711725550751.png" /></span></P><P>&nbsp;</P><P>Click on "Navigate to Subaccount" to access SAP Build Code.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_8-1711725550754.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88485iF94774BD25B9952C/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_8-1711725550754.png" alt="nirmalsaini_8-1711725550754.png" /></span></P><P>&nbsp;</P><P>Select "Instances" and "Marketplace" from the left menu panel. There, you can find SAP Build Code under the "Applications" section.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_9-1711725550758.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88486iBFEFCDD8695D8E89/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_9-1711725550758.png" alt="nirmalsaini_9-1711725550758.png" /></span></P><P><STRONG>2. Manually from the Service Marketplace: </STRONG></P><P><STRONG>&nbsp;</STRONG>Select the subaccount within the global account.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_10-1711725550763.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88488i19F7AD2730711CC2/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_10-1711725550763.png" alt="nirmalsaini_10-1711725550763.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P>Select "Service Marketplace" from the left menu panel.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_11-1711725550767.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88487i5968543C7D7733B8/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_11-1711725550767.png" alt="nirmalsaini_11-1711725550767.png" /></span></P><P>&nbsp;</P><P>Search for SAP Build Code and select the three vertical dots in the top right corner of the SAP Build Code tile.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_12-1711725550772.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88489i26018CE847461B28/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_12-1711725550772.png" alt="nirmalsaini_12-1711725550772.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P>Select "Create." A wizard will open with the service as SAP Build Code and the plan as free, as we are using a trial account. Click "Create," and it will open the progress dialog.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_13-1711725550774.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88491i7A5D96BC0104565E/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_13-1711725550774.png" alt="nirmalsaini_13-1711725550774.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_14-1711725550776.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88490i52AF64025E8A78F3/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_14-1711725550776.png" alt="nirmalsaini_14-1711725550776.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_15-1711725550778.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88492i28580376E4222A62/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_15-1711725550778.png" alt="nirmalsaini_15-1711725550778.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P>Once the service is activated, go to "Instances and Subscriptions" from the left menu panel. You will see that SAP Build Code is subscribed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_16-1711725550781.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88493i81CFDC4627D15CD9/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_16-1711725550781.png" alt="nirmalsaini_16-1711725550781.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P>Now click on "Users" under "Security" in the left menu panel and select the user to whom you want to grant access. Under "Role Collection," select "Assign Role Collection."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_17-1711725550785.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88494i8144B4A320B72546/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_17-1711725550785.png" alt="nirmalsaini_17-1711725550785.png" /></span></P><P><STRONG>&nbsp;</STRONG></P><P>Select "Build Code Administrator" and "Build Code Developer," then click "Assign Role Collection." This action will assign the roles to the user.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_18-1711725550789.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88495i45E4093AE11B8118/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_18-1711725550789.png" alt="nirmalsaini_18-1711725550789.png" /></span></P><P>&nbsp;</P><P>You can now access the application without any issues.</P><P><EM>Note: SAP Business Application Studio is also required when working on SAP Build Code.</EM></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG><U>Create Full Stack Application using SAP Build Code </U></STRONG></P><P>&nbsp;</P><P>Open the SAP Build Code application from the Instances and Subscriptions section.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_19-1711725550794.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88496i6A80F2456BD42C72/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_19-1711725550794.png" alt="nirmalsaini_19-1711725550794.png" /></span></P><P>&nbsp;</P><P>SAP Build Application will open. To create the new full stack application, Go to Lobby Page and Select Create.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_20-1711725550801.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88497i82483E81963621DD/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_20-1711725550801.png" alt="nirmalsaini_20-1711725550801.png" /></span></P><P>&nbsp;</P><P>A wizard will pop up. Choose "Build an Application" -&gt; "SAP Build Code" -&gt; "Full-Stack Application."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_21-1711725550808.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88500i532B43BA6F34E85D/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_21-1711725550808.png" alt="nirmalsaini_21-1711725550808.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_22-1711725550813.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88498i3F1280344C2FDDBA/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_22-1711725550813.png" alt="nirmalsaini_22-1711725550813.png" /></span></P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_23-1711725550817.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88499i0854AECF685D8C52/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_23-1711725550817.png" alt="nirmalsaini_23-1711725550817.png" /></span></P><P>&nbsp;</P><P>Enter the project name and select the development space. If you already have a development space, you can choose from the existing ones, or a new one will be created. Finally, click "Create."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_24-1711725550821.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88501i9EC916594E53F19F/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_24-1711725550821.png" alt="nirmalsaini_24-1711725550821.png" /></span></P><P>&nbsp;</P><P>The creation of the project may take a few moments. Once it is created, click on the project to open it.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_25-1711725550828.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88503i581593BE7B75B8C7/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_25-1711725550828.png" alt="nirmalsaini_25-1711725550828.png" /></span></P><P>&nbsp;</P><P>The project will open in the Business Application Studio, which is the SAP Build Code development environment.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_26-1711725550833.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88502i27615BAE33C38430/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_26-1711725550833.png" alt="nirmalsaini_26-1711725550833.png" /></span></P><P>&nbsp;</P><P>To create the data model and service using Joule, select "Joule" from the activity bar in the SAP Build Code development environment.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_27-1711725550836.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88506iBF3F2C87014BDD8A/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_27-1711725550836.png" alt="nirmalsaini_27-1711725550836.png" /></span></P><P>&nbsp;</P><P>Click on "Open Guide," which will open the Generative AI Powered Development page. Expand the "Data Model and Service Creation" section and select "Open Joule."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_28-1711725550841.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88505i8947CAF2951D8267/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_28-1711725550841.png" alt="nirmalsaini_28-1711725550841.png" /></span></P><P>&nbsp;</P><P>Joule, the digital assistant, will open on the left side. Send the prompt to Joule by clicking on &nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_29-1711725550841.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88504iDE9929910F1E9C08/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_29-1711725550841.png" alt="nirmalsaini_29-1711725550841.png" /></span></P><P>Prompt - Design an Employee Details Application with two data entities: Header (Employee ID as Integer, Project Name as String, Branch Location as String) and Item (Employee ID as Integer, Full Name as String, Contact Number as Integer).</P><P>Once you receive the response from Joule, click on "Accept" to accept the code. After accepting the code, it will take some time to create the data model and services.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_30-1711725550849.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88509i26753FF75C8A3A87/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_30-1711725550849.png" alt="nirmalsaini_30-1711725550849.png" /></span></P><P>&nbsp;</P><P>To maintain sample data using Joule, open the Sample Data from the Storyboard by selecting "Open Editor" -&gt; "Sample Data."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_31-1711725550853.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88508i868CF7D9ECAC941F/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_31-1711725550853.png" alt="nirmalsaini_31-1711725550853.png" /></span></P><P>&nbsp;</P><P>Select the entity in which you want to load data, and click "Enhance" to open Joule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_32-1711725550857.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88507iBA9C56AA9603E715/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_32-1711725550857.png" alt="nirmalsaini_32-1711725550857.png" /></span></P><P>&nbsp;</P><P>You can see that some data is already available. We are going to add three more rows.</P><P>Prompt - Add 3 more rows of data. Enhance my sample data with meaningful data. For the new entries Branch Location should be India States. No fields should be empty.</P><P>Accept the response, and it will update the sample data.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_33-1711725550865.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88512iCF5F0CE92122C7E0/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_33-1711725550865.png" alt="nirmalsaini_33-1711725550865.png" /></span></P><P>&nbsp;</P><P>Now we will create some logic for services. We will restrict users from adding entries if the Employee ID is not available in the Header or if the Contact number is not of 10 digits.</P><P>In the Storyboard, click on the Item Entity under Services, and then select "Open in Graphical Editor."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_34-1711725550907.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88511iA8F0CCCA12884B89/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_34-1711725550907.png" alt="nirmalsaini_34-1711725550907.png" /></span></P><P>&nbsp;</P><P>Select the Item Entity and click on "Add Logic."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_35-1711725550913.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88510i5D67FCC7E1A5AFB4/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_35-1711725550913.png" alt="nirmalsaini_35-1711725550913.png" /></span></P><P>&nbsp;</P><P>In the "Add Application Logic" dialog, the default values are already filled. Click on "Add."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_36-1711725550929.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88513i7351A1020B713398/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_36-1711725550929.png" alt="nirmalsaini_36-1711725550929.png" /></span></P><P>&nbsp;</P><P>We will create logic before the OData Create operation is triggered. Select "Before" for Phase and "Create" for Standard Event.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_37-1711725550932.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88514i039DEB25975DF33E/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_37-1711725550932.png" alt="nirmalsaini_37-1711725550932.png" /></span></P><P>&nbsp;</P><P>Click on "Open Code Editor," then select "Application Logic." This will open Joule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_38-1711725550935.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88515iA284C68E8255CAA6/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_38-1711725550935.png" alt="nirmalsaini_38-1711725550935.png" /></span></P><P>&nbsp;</P><P>Send the prompt to joule - check that employee ID exist in Header, if it exist then only add the data to item and contact number should be of 10 digit. add appropriate error message also.</P><P>Accept the response, and it will update the file with the logic.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_39-1711725550944.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88516iEE677070B9162EDB/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_39-1711725550944.png" alt="nirmalsaini_39-1711725550944.png" /></span></P><P>&nbsp;</P><P>Now we will add the user interface (UI) to the application.</P><P>In the Storyboard, click on the "+" button in "Create UI Application."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_40-1711725550948.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88518iD8F25F2437EA665F/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_40-1711725550948.png" alt="nirmalsaini_40-1711725550948.png" /></span></P><P>&nbsp;</P><P>A wizard will open. Set the display name and description, then click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_41-1711725550953.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88517i2529B87EF0B88CD7/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_41-1711725550953.png" alt="nirmalsaini_41-1711725550953.png" /></span></P><P>&nbsp;</P><P>Select "Template-Based Responsive Application," then click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_42-1711725550962.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88521i4BEAD7CC6516C52F/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_42-1711725550962.png" alt="nirmalsaini_42-1711725550962.png" /></span></P><P>&nbsp;</P><P>Select "List Report Page" as the UI Application Template, then click "Next."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_43-1711725550969.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88520iA0F6CA4E16F81ECF/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_43-1711725550969.png" alt="nirmalsaini_43-1711725550969.png" /></span></P><P>&nbsp;</P><P>Select "Main Entity" and click "Finish."</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_44-1711725550975.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88519i28A222CECD5A8C4C/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_44-1711725550975.png" alt="nirmalsaini_44-1711725550975.png" /></span></P><P>&nbsp;</P><P>To preview your application, once the files have been generated, go to the upper right corner and click on the preview button&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_45-1711725550975.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88522i0A0B3A2F8B782552/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_45-1711725550975.png" alt="nirmalsaini_45-1711725550975.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_46-1711725550977.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88523iCF53C7DAF6A99ECA/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_46-1711725550977.png" alt="nirmalsaini_46-1711725550977.png" /></span></P><P>&nbsp;</P><P>The Preview application is displayed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nirmalsaini_47-1711725550994.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/88524iD9C9BF4BF6B74182/image-size/medium?v=v2&amp;px=400" role="button" title="nirmalsaini_47-1711725550994.png" alt="nirmalsaini_47-1711725550994.png" /></span></P><P>&nbsp;</P><P><EM><STRONG>Note: Currently, SAP is enhancing SAP Build Code and Joule to make them more flexible with additional features for a wide range of scenarios. I will update this blog as soon as SAP launches new features, or anything related to SAP Build Code.&nbsp;&nbsp;</STRONG></EM></P><P>&nbsp;</P><P>&nbsp;</P> 2024-04-03T10:47:59.025000+02:00 https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/transforming-business-operations-with-an-ai-copilot/ba-p/13656525 Transforming Business Operations with an AI Copilot 2024-04-03T15:02:00.909000+02:00 amycross https://community.sap.com/t5/user/viewprofilepage/user-id/3780 <P>AI is rapidly changing the landscape of business operations across various industries. One of the key applications of AI in businesses today are AI copilots. These <A href="https://www.sap.com/products/artificial-intelligence/what-is-artificial-intelligence.html" target="_self" rel="noopener noreferrer">AI-powered tools</A> are designed to understand, learn, and respond to human language in a contextual manner. They offer numerous benefits, including operational efficiency, automating manual tasks, improved customer engagement, and data-driven decision-making.</P><P>AI copilots work by utilizing advanced algorithms and <A href="https://www.sap.com/products/artificial-intelligence/what-is-machine-learning.html" target="_self" rel="noopener noreferrer">machine learning</A> techniques to understand and respond to user queries and requests. They are designed to process and analyze vast amounts of data in real-time, enabling them to generate accurate and relevant responses. They rely on <A href="https://hbr.org/2022/04/the-power-of-natural-language-processing" target="_self" rel="nofollow noopener noreferrer">natural language processing</A> to comprehend the nuances of human language and extract meaning from text or speech input. AI copilots continuously learn and improve their performance. They are <A href="https://science.howstuffworks.com/artificial-intelligence.htm" target="_self" rel="nofollow noopener noreferrer">trained on massive datasets</A>, which let them recognize patterns, make predictions, and provide personalized recommendations.</P><P><A href="https://www.sap.com/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer">SAP Business AI</A> is already embedded in the SAP applications that customers use to run their most critical business processes. With SAP Business AI, you are empowered to interact with SAP software <A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer">through Joule</A> – SAP’s copilot available across SAP applications.</P><P><A href="https://www.sap.com/assetdetail/2023/11/a003a27c-9b7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-02 at 6.10.44 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/90141iAF9FFA65C8B35DF1/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-02 at 6.10.44 PM.png" alt="Screenshot 2024-04-02 at 6.10.44 PM.png" /></span></A></P><P>Joule lets you become more efficient and productive through simply describing your ideas, asking analytical questions, or telling the system what to do. With Joule, you can:</P><UL><LI>Streamline tasks across SAP applications</LI><LI>Get quick answers and smart insights on-demand</LI><LI>Get tailored <A href="https://www.sap.com/products/artificial-intelligence/generative-ai.html" target="_self" rel="noopener noreferrer">AI-generated content</A> to jumpstart your work</LI><LI>Maintain full control over decision-making and your data privacy</LI></UL><P>The adoption of AI copilots in business operations is no longer a novelty but a necessity for staying competitive in the digital age. From <A href="https://news.sap.com/2023/10/ai-advantage-revolutionizing-customer-experience/" target="_self" rel="noopener noreferrer">improving customer service</A> to <A href="https://www.sap.com/insights/viewpoints/eight-examples-of-artificial-intelligence-in-action.html" target="_self" rel="noopener noreferrer">enhancing operational efficiency</A> and enabling data-driven decisions, AI assistants offer a myriad of benefits. As AI technology continues to evolve, businesses can expect even more sophisticated capabilities from AI copilots, reshaping the way businesses operate and interact with their customers and employees.</P><P><EM>Interested in learning more?</EM></P><UL><LI><A href="https://www.sap.com/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer">Learn more about SAP Business AI</A></LI><LI><A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer">Meet Joule, SAP’s AI copilot</A></LI><LI><A href="https://www.sap.com/products/artificial-intelligence/what-is-generative-ai.html" target="_blank" rel="noopener noreferrer">What is generative AI?</A></LI></UL> 2024-04-03T15:02:00.909000+02:00 https://community.sap.com/t5/technology-blogs-by-members/embrace-the-future-transform-and-standardize-operations-with-chatbot/ba-p/13662643 Embrace the Future: Transform and Standardize Operations with Chatbot 2024-04-08T17:14:07.028000+02:00 TrusPatel https://community.sap.com/t5/user/viewprofilepage/user-id/137142 <P class="">In below blog series, It is all about Benefits and usecases of custom Chatbot that I have built.</P><P style=" padding-left : 30px; ">Blog 1 : <A title="This blog" href="https://community.sap.com/t5/technology-blogs-by-members/embrace-the-future-transform-and-standardize-operations-with-chatbot/ba-p/13662643#M166808" target="_self">Why Chatbots in SAP ? ( This blog )</A><BR />Blog 2 :&nbsp;<A title="How Chatbot can help Vendors?" href="https://community.sap.com/t5/technology-blogs-by-members/empowering-vendors-the-transformative-impact-of-sap-chatbot/ba-p/13663154" target="_blank">How Chatbot can help Vendors?</A>&nbsp;<BR />Blog 3 : <A title="How Chatbot can help Customers?" href="https://community.sap.com/t5/technology-blogs-by-members/elevating-customer-engagement-harnessing-the-power-of-sap-chatbots-for-a/ba-p/13663214" target="_self">How Chatbot can help Customers?</A></P><H2 id="toc-hId-991603973">Introduction&nbsp;</H2><P>Maintaining a competitive edge in today’s fast-paced business landscape is paramount to achieving success. One technology that has experienced remarkable growth in recent times is chatbots. With their capacity to enhance efficiency and automate a range of tasks, chatbots have emerged as indispensable assets for businesses operating in diverse sectors. In this blog series, we will investigate the immense potential of chatbots and their ability to revolutionize operational processes within your organization. In this first blog of my chatbots series, we will delve into the transformative capabilities of chatbots and their pivotal role in standardizing operations. &nbsp;</P><H2 id="toc-hId-795090468">The evolution of chatbots&nbsp;</H2><P>The journey of chatbots began with the need that arose with growing global businesses and its need to connect partners. Since then, it has been truly noteworthy, revolutionizing the way businesses engage with customers, streamlining processes, and boosting operational efficiency. Starting from rudimentary rule-based bots, chatbots have evolved into intelligent conversational agents, delivering seamless and personalized user experiences.&nbsp;</P><P data-unlink="true">Within the<SPAN>&nbsp;</SPAN>SAP ecosystem, chatbot has been widely embraced and integrated, empowering organizations to harness its potential for their operations. Various industries, including Pharmaceuticals, Automobiles, Energy, Logistics, Telecommunications, Banking, and Insurance, are increasingly adopting chatbots to handle the high volume of repetitive customer inquiries they receive. The advantages of utilizing chatbots for enhancing customer experience are immense. These include round-the-clock availability, rapid response times, tailored interactions, self-service capabilities, scalability, and continuous improvement.&nbsp;</P><H2 id="toc-hId-598576963">Streamlining operations with chatbots&nbsp;</H2><P>Chatbots play a crucial role in automating repetitive tasks within an organization, effectively identifying and streamlining processes that can be automated by the relevant teams. Furthermore, chatbots have the ability to gather valuable data through user conversations, providing insights on pending tasks and enabling informed decision-making. &nbsp;</P><P>Natural Language Processing (NLP) enables seamless user interactions by mapping numerous queries to user intentions.&nbsp;</P><P>It is a platform that simplifies scenario development and conversation flow customization. It requires minimal effort, as data flows through the same frontend and OData channel, while the execution of actions differs based on the scenario.&nbsp;</P><H2 id="toc-hId-402063458">Standardizing processes through chatbots&nbsp;</H2><P>Pre-defined flows in chatbots significantly reduce errors and enforce standard operating procedures (SOPs) consistently. In case a chatbot cannot answer a query, it can either log a ticket or redirect the user to experts.&nbsp;</P><P>This Chatbot offering provides a unique way of answering user queries, providing suggestions, and allowing users to take actions based on SAP roles/authorizations. Actions refer to executing bots within the Auto-Bot framework, where developers can develop bots with permitted activities for users.&nbsp;</P><P>For example, a vendor can track the status of quotations or invoice booking, while an employee can check their leave balance or download pay slips in PDF format.</P><H2 id="toc-hId-205549953">Enhancing customer service and support&nbsp;</H2><P>Chatbots are the preferred choice for Q&amp;A queries, as they provide quick and diverse responses. This capability can be leveraged to offer personalized features to users.&nbsp;</P><P>Unlike humans, chatbots are available 24/7, provide fast responses, and eliminate the need to reserve repetitive tasks and train.</P><P>This chatbot is capable of handling both Q&amp;A queries from a knowledge base and queries that require actions to be performed from the Bot ( OO Class method or FM )&nbsp;</P><H2 id="toc-hId-9036448">Empowering customers and partners with self-service</H2><P>Chatbots eliminate the need for customers and partners to access information from multiple portals and shared folders. They can simply ask the chatbot for information such as invoices and quotations.</P><P>For instance, in an organization, chatbots enable employees to file complaints or log tickets for travel reimbursement by having a conversation and providing precise and concise language for efficient communication.&nbsp;</P><H2 id="toc-hId--187477057">Overcoming challenges and ensuring success</H2><P>This platform leverages a unified UI, connectivity channel, and backend framework for Auto-Bots. This approach provides flexibility and context to identify scenarios and execute relevant Auto-Bots using NLP, fuzzy logic, and native coding. High scalability comes with the flexibility of provision to add as many scenarios as possible.&nbsp;</P><P>Unlike the standard offering from SAP known as Conversation AI, a unique approach combines a fixed UI and connectivity channel with flexible backend development, resulting in less developmental effort and a robust execution pattern.&nbsp;</P><P>We also aim to develop a resilient architecture that intelligently identifies common user problems and maps them to existing solutions.&nbsp;</P><H2 id="toc-hId--383990562">Looking ahead: The future of chatbots</H2><P>The future of chatbots includes innovations such as omnichannel conversations and AI/ML-driven human-like experiences, including behaviour analysis and generative suggestions.&nbsp;</P><H3 id="toc-hId--451421348">Conclusion</H3><P>Chatbot has the potential to transform and standardize operations in your organization. By streamlining processes, enhancing customer service, and empowering employees, chatbots can drive efficiency, productivity, and customer satisfaction. Embrace the future and unlock the full potential of chatbots in your organization’s operations.&nbsp;</P><P>Stay tuned for the next blog in this series, where we will dive deeper into the technical aspects of building and deploying chatbots in the SAP field.&nbsp;</P><P>Note : This blog was earlier posted on&nbsp;<A title="here" href="https://www.cygnet-digital.com/blog/embrace-the-future-transform-and-standardize-operations-with-chatbot/" target="_self" rel="nofollow noopener noreferrer">here</A>&nbsp;</P> 2024-04-08T17:14:07.028000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/sap-build-code-speed-up-your-development-with-generative-ai-assistant-joule/ba-p/13660954 SAP Build Code - Speed up your development with Generative AI Assistant - Joule 2024-04-09T06:16:00.322000+02:00 abhishekmodi https://community.sap.com/t5/user/viewprofilepage/user-id/7118 <P>&nbsp;</P><H2 id="toc-hId-991547306">Introduction</H2><P>The newly released SAP Build Code has Joule AI integrated to speed up the development. The AI assistant can be used to generate application logic, data models, fiori apps, test scripts, sample data, service definitions and so on. The assistant can even put the code for intelligent checks automatically in cases where it is not called out implicitly in the requirements. For example, in the tutorial - <A href="https://developers.sap.com/tutorials/build-code-test-drive.html" target="_blank" rel="noopener noreferrer">SAP BUILD Code Test Drive</A> - Joule automatically puts a check to see if customer has enough points to redeem. This ensures the comprehensive validation is in place for the application logic and is extremely helpful. However, it is always recommended to review the generated code to make sure it intends to do exactly as told.&nbsp;</P><H2 id="toc-hId-795033801">SAP BUILD Code - Joule capabilities</H2><P>Joule AI saves a lot of time by understanding the context and generating the code on the fly. It reduces the common errors like misspelling, missing symbols etc. that can take time to fix.&nbsp;</P><P>Within the Business application studio - click on the diamond button on BAS toolbar to launch Joule. The next screen will be listing various contexts with which Joule can be used - keep in mind it is generating a CAP application behind the scenes hence the artifact categories:</P><OL><LI><STRONG>Data Model and Service Creation</STRONG> - This will help to create the entire data model by narrating the overall business scenario to Joule. The data model includes service creation as well as in oData v2/v4 services.</LI><LI><STRONG>Sample data</STRONG> - This generates sample data using Joule. This utility is extremely helpful when we do not have connectivity to destination system or just getting started with a prototype. After generating the test data, it can even be edited and appended further if needed.</LI><LI><STRONG>Application Logic</STRONG> - This category generates codes for business logic as in validations, special rules, error handling, Please note that it may create additional checks on the basis of it's understanding on business logic, hence it is important to review the generated code.</LI><LI><STRONG>Unit Test</STRONG> - This category generates the unit test cases for the applications. This is very useful to test the apps quickly after making enhancements later on. Joule automatically creates the test cases based on scenario narrations.</LI><LI><STRONG>SAP Fiori UI</STRONG> - This category generates the Fiori app. For example, I used the below prompt to create a full fledged drill down app for navigating across entire schema:</LI></OL><P>After running the prompt, Joule displays the sample code or the project files in a window called Joule Staging Area. Drag it upwards in case it is hidden.&nbsp;</P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-05 at 2.14.03 PM.png" style="width: 490px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92225iEE6284C8DF3750AF/image-dimensions/490x602?v=v2" width="490" height="602" role="button" title="Screenshot 2024-04-05 at 2.14.03 PM.png" alt="Screenshot 2024-04-05 at 2.14.03 PM.png" /></span></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-598520296"><SPAN>Quirks</SPAN></H2><P><SPAN>What is graphical modeler doesn't open or shows a blank window? Try clearing browser cache or opening BAS&nbsp; in incognito window.</SPAN></P><H2 id="toc-hId-402006791"><SPAN>What else can I do with Joule within SAP BUILD Code?</SPAN></H2><P><SPAN>Joule can be launched with a specific CAP aspect as scope - so that it intends to do exactly as in the scope. For example, if the chosen scope is data model it can only create data models and not Fiori apps. However to create entire application at one go, it can be launched as Fiori Tools by typing below in command bar:&nbsp;</SPAN></P><P><SPAN>Fiori tools AI: Show Fiori tools Joule.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 10.11.57 AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92289i440B2BBAA01BFBB7/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 10.11.57 AM.png" alt="Screenshot 2024-04-06 at 10.11.57 AM.png" /></span></SPAN></P><P><SPAN>OR</SPAN></P><P>Start Guide Center tool from command as below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 10.10.45 AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92288iAA7224254277C5D1/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 10.10.45 AM.png" alt="Screenshot 2024-04-06 at 10.10.45 AM.png" /></span></P><P>This brings up Guides on left hand toolbar as below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 10.12.58 AM.png" style="width: 558px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92290i8BE19B313D0802EC/image-dimensions/558x834?v=v2" width="558" height="834" role="button" title="Screenshot 2024-04-06 at 10.12.58 AM.png" alt="Screenshot 2024-04-06 at 10.12.58 AM.png" /></span></P><P>Click on "Generative AI-Powered Development" Guide to show all the scopes. Under SAP Fiori UI -&gt; Create an SAP Fiori Application Directly from Your Business Requirements -&gt; Click button Open Joule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 10.15.41 AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92291iE1347DB6EBBFAAB3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 10.15.41 AM.png" alt="Screenshot 2024-04-06 at 10.15.41 AM.png" /></span></P><P>This opens Joule under Fiori tools context where it can generate the entire application - please note that it will replace the entire workspace or any existing CAP applications. This context of Joule tool intends to translate business requirements directly to the code under specific prompt conditions:</P><UL class="lia-list-style-type-square"><LI>Request should contain a single app only</LI><LI>Query should be only for generating SAP Fiori elements app</LI><LI>No second app can be added to existing project</LI><LI>Joule can generate automatically below items&nbsp;<BR /><UL><LI>Entities and entity labels</LI><LI>Entity properties and property labels</LI><LI>Entity associations (1:1 and 1:n)</LI><LI>Entities with code lists based on the explicit values in the user input</LI><LI>Value help based on 1:1 associations and code lists</LI><LI>Criticality highlighting for eligible properties in code lists</LI><LI>A single list report/object page application with one or two object pages</LI></UL></LI></UL><UL><LI>List Report Features<UL><LI>Filter fields</LI><LI>Table</LI><LI>Multiple views for a table</LI><LI>Initial data load</LI></UL></LI><LI>Object Page Features<UL><LI>Section tabs</LI><LI>Form sections and fields</LI><LI>Table sections</LI><LI>Navigation from table section to second object page</LI></UL></LI></UL><P>Any other deviation from above UI structure is not supported by Joule and this seems obvious with other floorplans since they can be implemented in a number of ways. This might seem a rigid output however below are few examples that are worked are are time savers for simple apps:</P><UL><LI>Start simple - "<STRONG><EM>Create a simple fiori application to show numbers from 1 to 10</EM></STRONG>"</LI></UL><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 2.55.05 PM.png" style="width: 658px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92312i07F972FDFD41BF97/image-dimensions/658x751?v=v2" width="658" height="751" role="button" title="Screenshot 2024-04-06 at 2.55.05 PM.png" alt="Screenshot 2024-04-06 at 2.55.05 PM.png" /></span></P><UL><LI>Try Northwind - "<EM><STRONG>Create a fiori application displays the list of all products from&nbsp; &nbsp;</STRONG></EM><A href="https://services.odata.org/V3/OData/OData.svc/Products" target="_blank" rel="noopener nofollow noreferrer"><EM><STRONG>https://services.odata.org/V3/OData/OData.svc/Products</STRONG></EM>"</A></LI></UL><P style=" padding-left : 30px; ">In this case, it did not make the external connection to Northwind and also did not create any service but it did create the data model and the UI:</P><P style=" padding-left : 30px; "><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 3.18.54 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92313i97F29ECD5A245F66/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 3.18.54 PM.png" alt="Screenshot 2024-04-06 at 3.18.54 PM.png" /></span></P><UL><LI><SPAN>Try a complex app - "<EM><STRONG>Create an app showing the list of incidents. Each incident has a title, description, processor and status, such as “new”, “open”, “resolved”, “canceled”."</STRONG></EM> This creates a drilldown app with List Report navigating to a simple object page.</SPAN></LI></UL><P style=" padding-left : 30px; "><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 3.27.51 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92317i973D86513A1280E8/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 3.27.51 PM.png" alt="Screenshot 2024-04-06 at 3.27.51 PM.png" /></span></SPAN></P><P style=" padding-left : 30px; "><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 3.27.58 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92318iCC631F580245251D/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 3.27.58 PM.png" alt="Screenshot 2024-04-06 at 3.27.58 PM.png" /></span></SPAN></P><P style=" padding-left : 30px; "><SPAN>Even it generated a create screen:</SPAN></P><P style=" padding-left : 30px; "><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 3.29.44 PM.png" style="width: 495px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92319i8A7C1CE573388B24/image-dimensions/495x320?v=v2" width="495" height="320" role="button" title="Screenshot 2024-04-06 at 3.29.44 PM.png" alt="Screenshot 2024-04-06 at 3.29.44 PM.png" /></span></SPAN></P><P>Loved the fact that these apps ran out of the box without any errors and is much more than the boilerplate code!</P><H2 id="toc-hId-205493286">How can I make Joule work on UI other than List Report and Object floorplans?</H2><P>To create a free style app or modify the existing app, activate the Joule and open a SAPUI5 view or a controller file.&nbsp;</P><H4 id="toc-hId-267145219">Enhancing or editing existing app</H4><P>Navigate to the Explorer and locate the SAPUI5 project under app/assets/&lt;projectname&gt;. Now click on Joule to launch it in SAPUI5 context. it will look like below:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-06 at 5.26.55 PM.png" style="width: 979px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/92326i65663F695AC9C3A7/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-06 at 5.26.55 PM.png" alt="Screenshot 2024-04-06 at 5.26.55 PM.png" /></span></P><P>Below prompts will do exactly as intended:</P><P>&nbsp;</P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%"><STRONG>Prompt</STRONG></TD><TD width="50%"><STRONG>Output</STRONG></TD></TR><TR><TD width="50%">Perform syntax check on the entire project&nbsp;</TD><TD width="50%">The syntax of your project files seems to be correct. Both the JavaScript and JSON files are well-structured and don't contain any syntax errors.</TD></TR><TR><TD width="50%">Add a new fragment to show current time in the header of objectpage</TD><TD width="50%">It gave the detailed explanation of files and places where code needs to be changed. After accepting the code for each file the fragment needs to be manually added to header section via page map to display the current time on object page.&nbsp;</TD></TR><TR><TD width="50%">What does this project do?</TD><TD width="50%">It gives the detailed explanation of the code - great for reverse engineering the business requirements from existing code!</TD></TR><TR><TD width="50%">What are the various enhancements that can be done in this project?</TD><TD width="50%">It suggested enhancements like error handling, Improving the custom fragment, enhancing user interaction, more features like filter or sort, performance improvements, unit tests, improving accessibility, documentation etc.</TD></TR></TBODY></TABLE><P>&nbsp;</P><H2 id="toc-hId--187533724">Creating a full stack Fiori App</H2><P>Finally, let's try to create a full stack application with a prompt that will create the data models, services, sample data and a fiori application. Type Cmd/Win + Shift + P and launch New Project from Template:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-08 at 11.43.54 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93048iD22047F2736B55AE/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-08 at 11.43.54 PM.png" alt="Screenshot 2024-04-08 at 11.43.54 PM.png" /></span>&nbsp;Choose Full Stack Project and provide the project name and click on Finish button. Wait for the project to load in the workspace completely and then click on Joule button.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-08 at 11.47.13 PM.png" style="width: 734px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93049iEC035945EB88A60D/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-08 at 11.47.13 PM.png" alt="Screenshot 2024-04-08 at 11.47.13 PM.png" /></span></P><P>Click on Open Guide button and expand the context - Create an SAP Fiori Application Directly from Your Business requirements. Click on Open Joule button to launch the assistant.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-08 at 11.48.30 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93050i917316F96630B264/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-08 at 11.48.30 PM.png" alt="Screenshot 2024-04-08 at 11.48.30 PM.png" /></span></P><P>Enter the below prompt to create a personal finance management app:</P><P><EM><STRONG>I want to create an SAP Fiori application that satisfies the requirements from the following user story:</STRONG></EM></P><P><EM><STRONG>Description</STRONG></EM><BR /><EM><STRONG>As an individual seeking financial organization and control, I aim to develop a personal budget management application. This application will empower users to efficiently monitor and manage their finances by tracking and categorizing income and expenses</STRONG></EM></P><P><EM><STRONG>Transaction:</STRONG></EM><BR /><EM><STRONG>Below are the attributes of a transaction:</STRONG></EM></P><P><EM><STRONG>1. Date: The date of the income receipt or expense payment.</STRONG></EM><BR /><EM><STRONG>2. Description: A brief description of the income source or expense category.</STRONG></EM><BR /><EM><STRONG>3. Source/Payee: Name of the entity providing income or receiving payment for expenses.</STRONG></EM><BR /><EM><STRONG>4. Category: This can be income, groceries, utilities, housing, transportation, healthcare, dining out, entertainment, shopping, travel, savings, insurance, education, gift, donation and miscellaneous</STRONG></EM><BR /><EM><STRONG>5. Amount: The monetary value associated with the income or expense transaction.</STRONG></EM></P><P><EM><STRONG>Acceptance Criteria:</STRONG></EM><BR /><EM><STRONG>Scenario 1: View Budget Overview Given I am logged into the personal budget management system, when I launch the application, then I should be able to view a report with below fields:</STRONG></EM></P><UL><LI><EM><STRONG>Date</STRONG></EM></LI><LI><EM><STRONG>Description</STRONG></EM></LI><LI><EM><STRONG>Category</STRONG></EM></LI><LI><EM><STRONG>Amount</STRONG></EM></LI></UL><P>Now Joule will start creating the entire full stack application using LLMs. This will take a few minutes. Once it is ready - examine Joule staging area to check the contents of the project. Click on Accept files to proceed with creation. This will take a few minutes to complete the operation.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Untitled 15.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93051iEECD4599CB7E437F/image-size/large?v=v2&amp;px=999" role="button" title="Untitled 15.jpg" alt="Untitled 15.jpg" /></span>We can check the explorer view once below message is shown:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Untitled 16.jpg" style="width: 671px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93052i6D6355FD60A21815/image-dimensions/671x151?v=v2" width="671" height="151" role="button" title="Untitled 16.jpg" alt="Untitled 16.jpg" /></span>&nbsp;</P><P>Expand the project folder -&gt; app -&gt; db -&gt; data and click on [ProjectName]-Transactions.csv file to launch in the editor. Observe how Joule has created realistic data for income and expenses categories. Turn on Mock Data if it is off and add a few more rows under income, utilities and other categories of expenses.&nbsp;</P><P>Click on Run Configurations icon and arrow to launch the application.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-08 at 11.55.24 PM.png" style="width: 677px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93053i9EC04EA175B49537/image-dimensions/677x165?v=v2" width="677" height="165" role="button" title="Screenshot 2024-04-08 at 11.55.24 PM.png" alt="Screenshot 2024-04-08 at 11.55.24 PM.png" /></span></P><P>The project preview now opens in a new tab:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-08 at 11.58.12 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93094i042C7A63BEBD542F/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-08 at 11.58.12 PM.png" alt="Screenshot 2024-04-08 at 11.58.12 PM.png" /></span></P><P>Click on the tile to launch the app:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-09 at 12.03.23 AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93095i723492451C12B287/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-09 at 12.03.23 AM.png" alt="Screenshot 2024-04-09 at 12.03.23 AM.png" /></span></P><P>Click on gear icon to launch settings dialog and Group by Name - save this as default variant:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-09 at 12.04.29 AM.png" style="width: 311px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93096i1483A7FC41E23F89/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-09 at 12.04.29 AM.png" alt="Screenshot 2024-04-09 at 12.04.29 AM.png" /></span></P><P>Now the personal finance app is ready to report by categories:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-09 at 12.05.42 AM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/93097iF03D280F21770F69/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-09 at 12.05.42 AM.png" alt="Screenshot 2024-04-09 at 12.05.42 AM.png" /></span></P><P>Hence we can see that Joule AI can speed up the full stack application development and can save a lot of developer's time by not just providing the actual code but additional checks and logic.&nbsp;</P><P>&nbsp;</P> 2024-04-09T06:16:00.322000+02:00 https://community.sap.com/t5/technology-blogs-by-members/empowering-vendors-the-transformative-impact-of-sap-chatbot/ba-p/13663154 Empowering Vendors: The Transformative Impact of SAP Chatbot 2024-04-09T08:07:03.073000+02:00 TrusPatel https://community.sap.com/t5/user/viewprofilepage/user-id/137142 <P class="">In below blog series, It is all about Benefits and usecases of custom Chatbot that I have built.</P><P style=" padding-left : 30px; ">Blog 1 : <A title="Why Chatbots in SAP?" href="https://community.sap.com/t5/technology-blogs-by-members/embrace-the-future-transform-and-standardize-operations-with-chatbot/ba-p/13662643#M166808" target="_self">Why Chatbots in SAP?</A><BR />Blog 2 :&nbsp;<A title="How Chatbot can help Vendors?" href="https://community.sap.com/t5/technology-blogs-by-members/empowering-vendors-the-transformative-impact-of-sap-chatbot/ba-p/13663154" target="_blank">How Chatbot can help Vendors? ( This Blog )</A>&nbsp;<BR />Blog 3 : <A title="How Chatbot can help Customers?" href="https://community.sap.com/t5/technology-blogs-by-members/elevating-customer-engagement-harnessing-the-power-of-sap-chatbots-for-a/ba-p/13663214" target="_self">How Chatbot can help Customers?</A></P><H2 id="toc-hId-991628991">Problem Statement</H2><P>Why reserve an expensive workforce for repetitive and non-technical vendor queries? Why not automate using a custom-built chatbot? Vendors often ask the following questions as part of their frequently asked questions.&nbsp;&nbsp;&nbsp;&nbsp;</P><UL><LI>How do I register as a vendor?&nbsp;</LI><LI>What is all the info required to register as a vendor?&nbsp;&nbsp;&nbsp;</LI><LI>What are the criteria and duration needed to qualify?&nbsp;</LI><LI>Where can I see all the open purchase requisitions/Orders?&nbsp;</LI><LI>Where can I submit the product offer price (product catalogue and offer price)?&nbsp;</LI><LI>How do I submit a quotation?&nbsp;</LI><LI>How do I know vendor shortlisting and its criteria?&nbsp;</LI><LI>What is your notification procedure for releasing the orders, or how do you issue the order?&nbsp;</LI><LI>What is the status of my goods delivered?&nbsp;</LI><LI>What is the quality status of the goods delivered, along with rejection reasons, if any?&nbsp;&nbsp;&nbsp;</LI><LI>What is the invoice status and bank transaction status if paid?&nbsp;</LI><LI>How do I change my account number?&nbsp;</LI><LI>How do I change my PAN number?</LI></UL><H2 id="toc-hId-795115486">Enhancing collaboration, process efficiency and productivity</H2><H3 id="toc-hId-727684700">Introduction&nbsp;</H3><P>In today’s fast-paced business environment, seamless collaboration and efficient processes are essential for vendors to thrive. SAP custom Chatbot, an innovative solution powered by Natural Language Processing (NLP), offers a unique opportunity for vendors to enhance their interaction with SAP ERP systems and streamline their operations. This blog will explore real-world scenarios where vendors can benefit from a chatbot, revolutionizing their engagement with SAP and improving their overall experience.&nbsp;&nbsp;</P><P>The main concern of all organizations is security regarding digitalization and modernization. We ensure both authorization and authentication of vendors using OTP verification and SAP Standard Roles to enforce granular control over business-critical data.&nbsp;&nbsp;&nbsp;</P><P>Check out the below scenarios where vendors can be benefitted from a chatbot.&nbsp;&nbsp;&nbsp;</P><H3 id="toc-hId-531171195">Scenario 1: Simplified purchase order and purchase requisition-related inquiry&nbsp;</H3><P>Vendors often need real-time updates on the status of their purchase orders. With chatbot, vendors can converse with the bot to inquire about the quality of their demands. By providing the necessary information, such as the purchase order number or vendor code, the chatbot retrieves the latest updates from the SAP system and promptly responds with accurate information. This scenario eliminates the need for vendors to navigate complex systems/apps or wait for manual updates, resulting in improved transparency and proactive order management.&nbsp;</P><H3 id="toc-hId-334657690">Scenario 2: Efficient invoice submission and tracking&nbsp;</H3><P>Submitting and tracking invoices can be a time-consuming process for vendors. Chatbot streamlines this workflow by providing a user-friendly interface for invoice submission. Vendors can interact with the chatbot and upload their invoices, from which the chatbot extracts relevant details such as invoice number, amount, due date and others using IDP/OCR. The chatbot validates the information, performs necessary checks, and seamlessly integrates with the SAP system for invoice processing. Vendors can also inquire about the status of their invoices, enabling real-time tracking and proactive follow-ups.</P><H3 id="toc-hId-138144185">Scenario 3: Vendor master data management&nbsp;</H3><P>Maintaining accurate and up-to-date vendor master data is crucial for smooth business operations. Fiori-based Chatbot offers vendors a convenient way to manage their master data. Vendors can interact with the chatbot to update their contact information, banking details, or tax identification numbers. The chatbot validates the changes, ensures data integrity, and synchronizes the updated information with the SAP system. This scenario empowers vendors to take control of their master data, reducing administrative efforts and ensuring accurate information in the system. UI Adaptive cards in the chatbot allow vendors to register themselves.&nbsp;</P><H3 id="toc-hId--58369320">Scenario 4: Timely payment status and remittance advice&nbsp;</H3><P>Cash flow management is vital for vendors, and timely payment information is essential for financial planning. A Chatbot lets vendors inquire about payment statuses and receive remittance advice electronically. Vendors can interact with the chatbot, provide invoice details or payment references, and instantly access information on payment status, payment dates, and remittance details. This real-time visibility enhances financial transparency, enables proactive cash flow management, and improves vendor-customer relationships.&nbsp;</P><H3 id="toc-hId--254882825">Conclusion&nbsp;</H3><P>SAP Chatbot offers vendors a transformative platform to enhance collaboration, streamline processes, and improve efficiency in their interactions with SAP systems. By leveraging the capabilities of a chatbot, vendors can benefit from simplified purchase order status inquiries, efficient invoice submission and tracking, streamlined vendor master data management, and timely payment status updates. This technology-driven Solution empowers vendors to optimize operations, reduce manual efforts, and strengthen their partnership with SAP.<SPAN>&nbsp;</SPAN></P><P>50% – 70% of employee and vendor satisfaction could be observed, and employees are better utilized for strategic and more meaningful initiatives in procurement functions.&nbsp;&nbsp;&nbsp;</P><P>Note : This blog was earlier posted <A title="here" href="https://www.cygnet-digital.com/blog/empowering-vendors-the-transformative-impact-of-sap-chatbot/" target="_self" rel="nofollow noopener noreferrer">here</A></P><DIV class=""><DIV class=""><DIV class="">&nbsp;</DIV></DIV></DIV> 2024-04-09T08:07:03.073000+02:00 https://community.sap.com/t5/technology-blogs-by-members/elevating-customer-engagement-harnessing-the-power-of-sap-chatbots-for-a/ba-p/13663214 Elevating Customer Engagement: Harnessing the Power of SAP Chatbots for a Personalized Experience 2024-04-09T08:31:48.902000+02:00 TrusPatel https://community.sap.com/t5/user/viewprofilepage/user-id/137142 <P class="">In below blog series, It is all about Benefits and usecases of custom Chatbot that I have built.</P><P style=" padding-left : 30px; ">Business Blogs :&nbsp;</P><P style=" padding-left : 60px; ">Blog 1 :<SPAN>&nbsp;</SPAN><A title="This blog" href="https://community.sap.com/t5/technology-blogs-by-members/embrace-the-future-transform-and-standardize-operations-with-chatbot/ba-p/13662643#M166808" target="_self">Why Chatbots in SAP ?</A><BR />Blog 2 :&nbsp;<A title="How Chatbot can help Vendors?" href="https://community.sap.com/t5/technology-blogs-by-members/empowering-vendors-the-transformative-impact-of-sap-chatbot/ba-p/13663154" target="_blank">How Chatbot can help Vendors?</A>&nbsp;<BR />Blog 3 : <A title="How Chatbot can help Customers?" href="https://community.sap.com/t5/technology-blogs-by-members/elevating-customer-engagement-harnessing-the-power-of-sap-chatbots-for-a/ba-p/13663214" target="_self">How Chatbot can help Customers? ( This Blog )</A></P><P style=" padding-left : 30px; ">Technical Blogs :&nbsp;</P><P style=" padding-left : 60px; ">Blog 1 : ... will publish soon ..</P><P style=" padding-left : 60px; ">Blog n :&nbsp;<A title="Dynamic Response from Chatbot using Factory function in SAPUI5 [ Aggregation Binding ]" href="https://community.sap.com/t5/technology-blogs-by-members/dynamic-response-from-chatbot-using-factory-function-in-sapui5-aggregation/ba-p/13569679" target="_self">Dynamic Response from Chatbot using Factory function in SAPUI5 [ Aggregation Binding ]</A>&nbsp;</P><P style=" padding-left : 30px; ">&nbsp;</P><H2 id="toc-hId-991629828">Problem statement</H2><P class=""><SPAN>Why reserve an expensive workforce for repetitive and mundane customer queries? Why not automate using a custom-built chatbot? Customers often ask the following questions as part of their frequently asked questions.&nbsp;&nbsp;&nbsp;</SPAN></P><UL><LI>How do I create a new customer account?</LI><LI>What are the steps to reset my account password?</LI><LI>Can I view my order history and status updates in real-time?</LI><LI>How do I track the shipment of my recent purchase?</LI><LI>What payment methods are available for online purchases?</LI><LI>Is there an option for express shipping, and what are the additional costs?</LI><LI>How can I modify or cancel my order after placing it?</LI><LI>What is your return policy for online purchases?</LI><LI>How do I report an issue with a product I received?</LI><LI>Can I schedule a product demo or consultation before purchase?</LI><LI>Are there any current promotions or discounts I can take advantage of?</LI><LI>How do I redeem my loyalty points or apply a coupon code?</LI><LI>What warranty coverage comes with my product purchase?</LI><LI>Where can I find user manuals or installation guides for my products?</LI><LI>How do I sign up for your newsletter or promotional updates?</LI><LI>Can I get assistance in selecting the right product for my needs?</LI><LI>What are the steps to submit feedback or a service review?</LI><LI>How do I contact customer support for a personalized service request?</LI><LI>Where can I find information on your sustainability and ethical sourcing practices?</LI><LI>How can I update my billing and shipping information on file?</LI></UL><H2 id="toc-hId-795116323">How custom made SAP Chatbots can help ?&nbsp;</H2><PRE>Chatbots in SAP can enhance collaboration, process efficiency and productivity</PRE><H3 id="toc-hId-727685537">Introduction</H3><P>In my previous blogs, we laid the groundwork by discussing the transformative role of chatbots in standardizing operations and empowering vendors within the SAP ecosystem. This time, Lets shift our focus towards the end-users who are the heart of any business—the customers. Chatbots are not just operational tools; they are vital in forging stronger relationships with customers by providing personalized, responsive, and engaging experiences. In my third blog, we delve into how SAP chatbots are redefining customer engagement and driving satisfaction to new heights.</P><H3 id="toc-hId-531172032">Scenario 1: Real-Time Order Management</H3><P>A customer places an order and wants immediate confirmation and updates on the order status. The chatbot provides a real-time update, including order confirmation, order creation, estimated delivery time, and dispatch details. If the customer needs to make changes, the chatbot can guide them through the modification or cancellation process.</P><H3 id="toc-hId-334658527">Scenario 2: Personalized Product Recommendations</H3><P>A customer is browsing for products but isn't quite sure which item best fits their needs. The chatbot asks a series of questions to understand the customer's preferences and requirements and then provides personalized product recommendations based on their responses, enhancing the shopping experience. The chatbot, being deployed on shell bar of Fiori launchpad, can suggest products by tracking movements of customer from any product or sales related fiori app.&nbsp;</P><H3 id="toc-hId-138145022">Scenario 3: Seamless Post-Purchase Support</H3><P>After receiving a product, a customer has questions regarding installation or encounters an issue. The chatbot offers step-by-step guidance, troubleshooting tips, or can schedule a service appointment. It can also assist with return processes and provide information on warranty claims.</P><H3 id="toc-hId--58368483">Scenario 4: Loyalty Program Engagement</H3><P>A customer wants to know how many loyalty points they have and how they can redeem them. The chatbot checks their loyalty points balance, informs them of possible redemption options, and guides them through the process of redeeming their points for discounts or special offers.</P><H3 id="toc-hId--254881988">Scenario 5: Feedback Collection and Issue Escalation</H3><P>Post-interaction or purchase, a customer wishes to provide feedback. The chatbot can collect this feedback, thank the customer for their input, and if necessary, escalate any issues to the appropriate human agent for further resolution, ensuring customer concerns are addressed promptly.</P><H2 id="toc-hId--580478212">Solution</H2><P>A custom chatbot, integrated with CRM or any other customer portal, can answer all the repetitive queries.</P><P>Custom Chatbots are Not only restricted to QnA but also are able to make changes to business objects and perform complex task. Chatbots are capable of understanding customer queries, intention of query, context, entities such as Sales Order Number, Material. Additionally, it can understand keywords such as "my", "latest", and so on. Below are few example of prompts customer can enter and have personalized chat experience with chatbot.&nbsp;</P><UL><LI>Track my latest order #490000002</LI><LI>what is the delivery status for my sales order?</LI><LI>check availability of 1000 Laptops in next quarter</LI><LI>tell me my Account receivables</LI><LI>what is my account balance?</LI><LI>Place an order for fiber optics ( place order )</LI><LI>provide me quotation for raw material - xyz quantity. - ( simulate Order )&nbsp;</LI><LI>Show my order history</LI></UL><H3 id="toc-hId--647908998">Conclusion</H3><P>As we continue to explore the potential of chatbots in the SAP landscape, it's clear that their benefits extend well beyond operational efficiencies. For customers, SAP chatbots represent a new era of engagement, marked by personalization, convenience, and seamless service. By embracing these intelligent conversational agents, businesses can create a customer experience that not only meets but exceeds expectations, fostering lasting relationships and driving brand loyalty.</P><P>Stay tuned for next blog, where we'll explore the technical intricacies of SAP chatbot integration and the future of AI in SAP.</P> 2024-04-09T08:31:48.902000+02:00 https://community.sap.com/t5/technology-blogs-by-members/unlocking-full-stack-potential-using-sap-build-code-part-1/ba-p/13667300 Unlocking Full-Stack Potential using SAP build code - Part 1 2024-04-16T12:53:38.653000+02:00 jenifer_ranjani https://community.sap.com/t5/user/viewprofilepage/user-id/149737 <P><U><STRONG>Introduction</STRONG></U></P><P><SPAN>Last year at TechEd, SAP unveiled Build Code, and now it's accessible to the users through trial accounts, offering them a firsthand experience of its generative AI capabilities. SAP Build Code stands as a cornerstone in the realm of SAP Cloud Application Programming Model (CAP), SAP Fiori, mobile, and SAPUI5 development. Tailored to enhance the application development journey on SAP BTP.... it integrates coding, testing, and application management seamlessly. Leveraging SAP Business Application Studio alongside essential services and SDKs on SAP BTP, SAP Build Code simplifies and accelerates the development process.</SPAN></P><P>At its core lies Joule, the AI copilot of SAP, facilitating the automatic generation of application code, data models, services, and sample data. This integration ensures adherence to the best practices delineated in the SAP BTP Developer's Guide. With AI-based code generation optimized for Java and JavaScript, SAP Build Code offers a comprehensive solution for coding, testing, integrations, and application lifecycle management.</P><P>Recently I got a chance to do a test drive on build code and I have tried out a full stack use case. In part 1 we will create a simple CAP and UI App using Joule and we'll deploy it to the BTP subaccount. We will test, create a managed app router configuration, and access the UI and service endpoints successfully.&nbsp;</P><P>Check out the&nbsp;SAP documentation to know more about the&nbsp;<A href="https://help.sap.com/docs/build_code" target="_self" rel="noopener noreferrer">SAP Build Code.</A></P><P><U><STRONG>Now Let's get into action!!!</STRONG></U></P><UL><LI>As an initial step setup the Build code subscription in your BTP account. Follow this blog to achieve that.</LI><LI>Inside your service marketplace under subscription hit on the SAP build code and click the goto application.<P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_0-1712851835524.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95210iA31316099C95A3A0/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_0-1712851835524.png" alt="jenifer_ranjani_0-1712851835524.png" /></span></P></LI><LI>Inside your service marketplace under subscription hit on the SAP build code and click the goto application.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_0-1713262113333.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/96995i1B9A99BAC9C844D8/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_0-1713262113333.png" alt="jenifer_ranjani_0-1713262113333.png" /></span></P><P>&nbsp;</P><UL><LI>Inside the build lobby, hit the create button and select Build apps and then Build code</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_1-1713262113355.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/96997iB09FDE8E865FBA30/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_1-1713262113355.png" alt="jenifer_ranjani_1-1713262113355.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_2-1713262113365.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/96996iBE86CF3E906CC785/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_2-1713262113365.png" alt="jenifer_ranjani_2-1713262113365.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_3-1713262113372.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/96998iD53B05712D29A739/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_3-1713262113372.png" alt="jenifer_ranjani_3-1713262113372.png" /></span></P><P>&nbsp;</P><UL><LI>We are going to build a full stack application use case here so hit the full stack option and fill in the basic details and hit create.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_4-1713262113379.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/96999i4D0F315A0898F3D0/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_4-1713262113379.png" alt="jenifer_ranjani_4-1713262113379.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_5-1713262113386.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97000i7F9B36DFACEFC32D/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_5-1713262113386.png" alt="jenifer_ranjani_5-1713262113386.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_6-1713262113402.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97003i6160488739CE9539/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_6-1713262113402.png" alt="jenifer_ranjani_6-1713262113402.png" /></span></P><UL><LI>Click on your newly created project which will be available in the Build lobby, this opens up your BAS IDE and You can also look for your projects in this path “/home/user/projects” if you are not able to locate it when you launch the BAS.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_7-1713262113403.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97001iB578BEDF2CC0B928/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_7-1713262113403.png" alt="jenifer_ranjani_7-1713262113403.png" /></span></P><UL><LI>Your storyboard shows the project's partial skeleton with a service and no model exists right now.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_8-1713262113408.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97002i08C8E63533F04C68/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_8-1713262113408.png" alt="jenifer_ranjani_8-1713262113408.png" /></span></P><UL><LI>So far we have created a project using your Build code now lets make use of SAP Joule – the copilot to generate other technical artifacts.</LI><LI>As described in the introduction, we will give a simple text-based prompt to Joule as below, and let's anticipate the surprises it has in store.</LI><LI>Click on the Joule icon on the left side panel and provide the prompt now.. to create simple entities with a few fields also let's mention data types of them.</LI></UL><P><U><STRONG>Prompt</STRONG> </U>– “Create an employee details app with 2 entities “Project allocation” and “Employee Info”.&nbsp;<BR />Project allocation entity should have the following fields cust_Activitycode of type String and size 20, cust_Allocation of type decimal,cust_CTC of type decimal,cust_Closuredate of type Date,cust_Costcenter of type String,cust_Costcontrolmanager of type String,cust_Enddate of type Date,cust_Initiationdate of type Date,cust_Jobcode of type String,cust_Jobtitle of type String,cust_ProjectID of type String,cust_ProjectLocation of type String,cust_Projectname of type String.</P><UL><LI>Employee Info entity should have the following fields startDate of type Date, endDate of type Date, seqNumber of type Integer,userId of type String, company of type String,costCenter of type String, countryOfCompany of type String”</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_9-1713262113418.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97005i6EAE658C8949E931/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_9-1713262113418.png" alt="jenifer_ranjani_9-1713262113418.png" /></span></P><UL><LI>On click on generate, in a few seconds you’ll get your data model ready based on your prompt like below.. Jaw-dropping isn’t it? Accept it as such and now you can see new two entities under the DB section of your storyboard.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_10-1713262113425.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97004i0844BD9A3CCEF1DA/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_10-1713262113425.png" alt="jenifer_ranjani_10-1713262113425.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_11-1713262113432.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97006iE88E108915B34CAD/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_11-1713262113432.png" alt="jenifer_ranjani_11-1713262113432.png" /></span></P><UL><LI>Lets load some sample / mock data into the models for our further testing. Click on the Open Editor drop-down and select Sample data, select your entity and click Add.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_12-1713262113440.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97008i9C5A6D918140C636/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_12-1713262113440.png" alt="jenifer_ranjani_12-1713262113440.png" /></span></P><UL><LI>Click on Import and repeat the same for the second entity.. The sample data was generated by the Build code itself and we haven’t fed any inputs yet.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_13-1713262113445.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97007i7B3141161097C26E/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_13-1713262113445.png" alt="jenifer_ranjani_13-1713262113445.png" /></span></P><UL><LI>Validate the cells and in case of corrections click on the enhance option, now we are going to make use of the Joule copilot to correct the data generated..</LI></UL><P><STRONG>Prompt</STRONG> – “Correct the custCTC and custAllocation data in projectallocation table to two decimal precisions”</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_14-1713262113455.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97009i85844D598391B848/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_14-1713262113455.png" alt="jenifer_ranjani_14-1713262113455.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_15-1713262113460.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97010iAEF6510118576706/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_15-1713262113460.png" alt="jenifer_ranjani_15-1713262113460.png" /></span></P><UL><LI>Now, joule has generated the sample data based on your prompt and the decimal places are rectified. Accept the changes and the rectified data reflects in your project allocation data model.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_16-1713262113463.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97011iA1595C4862C3E753/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_16-1713262113463.png" alt="jenifer_ranjani_16-1713262113463.png" /></span></P><UL><LI>Analyse the data and proceed further to test your CAP output.</LI><LI>Now lets run the app locally to see the output of the service… Open the terminal and provide the “cds serve” command or you can click on the play icon on the top right corner.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_17-1713262113471.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97012i9517379743FAE3C6/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_17-1713262113471.png" alt="jenifer_ranjani_17-1713262113471.png" /></span></P><UL><LI>Upon running the local run the mock data is accessible as below when the entities are hit from the browser, the same works positive when tested via Postman.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_18-1713262113476.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97014i136B72231C627113/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_18-1713262113476.png" alt="jenifer_ranjani_18-1713262113476.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_19-1713262113481.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97015i1570E5F1C82AFD9B/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_19-1713262113481.png" alt="jenifer_ranjani_19-1713262113481.png" /></span></P><UL><LI>Let's quickly create a UI app based on the Fiori elements template … Click on Add under the UI section and then fill in as below.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_20-1713262113484.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97013iAD240DD447041718/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_20-1713262113484.png" alt="jenifer_ranjani_20-1713262113484.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_21-1713262113488.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97016iFC155D9DD755693C/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_21-1713262113488.png" alt="jenifer_ranjani_21-1713262113488.png" /></span></P><UL><LI>Select template based and proceed next…</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_22-1713262113493.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97017i5CB0E2EDBD0E1DED/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_22-1713262113493.png" alt="jenifer_ranjani_22-1713262113493.png" /></span></P><UL><LI>Select List report page … we’ll explore Custom page in part two of the blog.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_23-1713262113498.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97018i872572D610865FD1/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_23-1713262113498.png" alt="jenifer_ranjani_23-1713262113498.png" /></span></P><UL><LI>Select the data model from our CAP app… here im going with project allocation. Click on Generate.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_24-1713262113502.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97020iC1ABEE17AECA1DC0/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_24-1713262113502.png" alt="jenifer_ranjani_24-1713262113502.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_25-1713262113503.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97019i36CEBDB1B0465D12/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_25-1713262113503.png" alt="jenifer_ranjani_25-1713262113503.png" /></span></P><UL><LI>Run the application, and you’ll be able to see the output as a list report page as below.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_26-1713262113512.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97021iD2F91831A554CE0A/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_26-1713262113512.png" alt="jenifer_ranjani_26-1713262113512.png" /></span></P><UL><LI>Now lets deploy your app to the subaccount.. Your app will not be having mta file so provide “cds add mta” command in the terminal.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_27-1713262113517.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97024i89F6725C259A5797/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_27-1713262113517.png" alt="jenifer_ranjani_27-1713262113517.png" /></span></P><UL><LI>Right click on the mta file and select build.. once the mtar is generated, deploy your application to your subaccount…</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_28-1713262113526.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97023i26C32F4A4B79F1AF/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_28-1713262113526.png" alt="jenifer_ranjani_28-1713262113526.png" /></span></P><UL><LI>Select your cloud foundry settings.. here I have logged in to my global account using my credentials.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_29-1713262113528.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97022i50CFFDB056836871/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_29-1713262113528.png" alt="jenifer_ranjani_29-1713262113528.png" /></span></P><UL><LI>Before deployment, make sure that you have subscribed to the HANA cloud instance if not you might face issues during deployment.</LI><LI>Once deployed, your CAP application route is available, and you can quickly test it out from Postman.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_30-1713262113536.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97025i1D50069F7DEB6BAC/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_30-1713262113536.png" alt="jenifer_ranjani_30-1713262113536.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_31-1713262113542.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97026i8C50F24FD4220CDD/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_31-1713262113542.png" alt="jenifer_ranjani_31-1713262113542.png" /></span></P><UL><LI>Now, the UI app should be available post-deployment… Ohoooo Nooo! We forgot to add an approuter to our application to access the app via Build Work zone standard edition… Let's add that now and then do the rebuild, deployment.</LI><LI>Right click on the mta.yaml and select “Create MTA module from template”</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_32-1713262113549.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97027iCA6C12A2D3E56CE4/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_32-1713262113549.png" alt="jenifer_ranjani_32-1713262113549.png" /></span></P><UL><LI>Select the approuter type as ‘Managed approuter’…and click on create.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_33-1713262113552.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97028i92C16E0387F92FA5/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_33-1713262113552.png" alt="jenifer_ranjani_33-1713262113552.png" /></span></P><UL><LI>Your mta.yaml should automatically get updated with the needed configurations that are used by the SAP Build Work Zone, standard edition.</LI><LI>Build your project again and then redeploy… You should find the UI app under the HTML5 Applications</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_34-1713262113560.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97029i8A34573D94355C8C/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_34-1713262113560.png" alt="jenifer_ranjani_34-1713262113560.png" /></span></P><UL><LI>Open the deployed application route and hit go you should find the results from our full stack app which is built out of Build Code.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jenifer_ranjani_35-1713262519165.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/97037iCF7C0B96B29C7D86/image-size/medium?v=v2&amp;px=400" role="button" title="jenifer_ranjani_35-1713262519165.png" alt="jenifer_ranjani_35-1713262519165.png" /></span></P><P><U><STRONG>Conclusion</STRONG></U></P><P>We have explored a full stack scenario covering the creation of CAP, a UI app using SAP Joule co-pilot on Build code. In the next part we'll add application logic to the cap app, consume data from external services and&nbsp;configure the portal site using the build work zone standard edition.</P><P>Thank you for going through the blog. Stay Tuned for the next part! <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span></P><P>&nbsp;</P><P>&nbsp;</P> 2024-04-16T12:53:38.653000+02:00 https://community.sap.com/t5/supply-chain-management-blogs-by-sap/ai-powered-supply-chain-solutions-better-decisions-better-outcomes/ba-p/13675845 AI-powered supply chain solutions: Better decisions, better outcomes 2024-04-21T13:53:24.634000+02:00 sinto https://community.sap.com/t5/user/viewprofilepage/user-id/620410 <P><SPAN>Recent</SPAN> <SPAN>events</SPAN><SPAN> such </SPAN><SPAN>as</SPAN> <SPAN>the</SPAN><SPAN> Suez </SPAN><SPAN>Canal</SPAN> <SPAN>crisis</SPAN><SPAN>, </SPAN><SPAN>the</SPAN> <SPAN>drought</SPAN><SPAN> in Panama and </SPAN><SPAN>the</SPAN><SPAN> German </SPAN><SPAN>strike</SPAN> <SPAN>wave</SPAN> <SPAN>have</SPAN> <SPAN>once</SPAN> <SPAN>again</SPAN> <SPAN>highlighted</SPAN> <SPAN>the</SPAN> <SPAN>crucial</SPAN> <SPAN>role</SPAN> <SPAN>of</SPAN> <SPAN>a</SPAN> <SPAN>resilient </SPAN><SPAN>supply</SPAN> <SPAN>chain</SPAN><SPAN>.</SPAN><SPAN> It ensures that essential goods and services can still reach consumers, preventing shortages and economic instability. They also enhance a company's ability to adapt to changing market conditions and stay competitive.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>In this context, innovative technologies such as the Internet of Things (IoT), machine learning and artificial intelligence (AI) are becoming increasingly important. By using the latest analytics technologies along the supply chain, companies can make more flexible, faster and more efficient decisions. These technologies have the potential not only to reduce costs, but also to increase customer satisfaction and improve competitiveness.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>For example, by using AI in the supply chain, companies can access a variety of data sources, such as real-time sensor data, historical transaction data, external market data and more. This data is then analyzed by AI algorithms to identify patterns, trends and correlations. This enables companies to make informed decisions based on comprehensive insights and predictions.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>SAP PLM and AI: Transforming Product Lifecycle Management</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><A href="https://www.sap.com/products/scm/solutions.html#product-lifecycle-management" target="_self" rel="noopener noreferrer"><SPAN>Product Lifecycle Management</SPAN></A><SPAN>&nbsp;(PLM) has evolved significantly since its inception. Initially centered around engineering or formulation, PLM has grown to encompass a holistic approach, managing every aspect of a product's lifecycle from its idea &nbsp;to its retirement, recycling or remanufacturing. This evolution reflects the changing landscape of product-centric organizations, where the lifecycle of a product is increasingly complex and interconnected.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Today, PLM is an essential pillar in digital transformation strategies across industries and AI in PLM serves as a catalyst for the next generation of product data management practices. &nbsp;For example, with the increasing complexity of customer requirements, companies are faced with the challenge of securing their growth and remaining competitive in the long term through market-oriented decisions. </SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>AI plays a decisive role in revolutionizing the ideation </SPAN><SPAN>&nbsp;</SPAN><SPAN>and market research process in product development. Through the targeted use of AI, companies can analyze extensive market data, consumer preferences and trends to effectively optimize their product investment decisions.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>With </SPAN><A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer"><SPAN>SAP's AI co-pilot, Joule</SPAN></A><SPAN>, product developers now use a powerful capability for significantly accelerating the ideation phase, ensuring not only speed but also a higher quality of ideas. By leveraging natural language queries, Joule allows for quick capture and enhancement of product improvement ideas, facilitating a more dynamic and efficient brainstorming process.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Additionally, </SPAN><A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer"><SPAN>Joule</SPAN></A><SPAN> (AI-Copilot) will support subject matter experts to reduce the time and effort required for accurate data association between CAD data and business data for unparalleled visual analytics with the objective to create visual assets that can be used throughout the supply chain.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>In line with the commitment to AI-based innovations, SAP PLM is planning to adopt AI across the entire end-to-end product development process in core areas such as Specification Management, Recipe Formulation, and Enterprise Product Structure Management. By integrating AI in PLM, SAP aims to improve the productivity of engineers and recipe formulators.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>AI in digital manufacturing&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>Industry 4.0 has revolutionized the way products are manufactured. By using IoT sensors, data analysis and automation, companies can optimize their manufacturing processes and make them more flexible.&nbsp;</SPAN><SPAN>&nbsp;</SPAN><SPAN>AI plays a key role here by recognizing complex patterns in large data sets and making predictions about production failures, quality issues and bottlenecks.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>With </SPAN><A href="https://www.sap.com/products/artificial-intelligence/supply-chain.html#manufacture" target="_blank" rel="noopener noreferrer"><SPAN>SAP Digital Manufacturing</SPAN></A><SPAN>, production managers can now utilize large amounts of machine data and integrate AI-powered computer vision into their production processes. This cutting-edge system enables a remarkable increase in quality through automation and boosts efficiency and productivity. At <A href="https://news.sap.com/2024/04/sap-hannover-messe-ai-supply-chain-innovations-transform-manufacturing/" target="_self" rel="noopener noreferrer">Hannover Messe</A> (HMI), </SPAN><SPAN><STRONG>SMA Solar</STRONG> </SPAN><SPAN>will talk about modernizing</SPAN><SPAN> their manufacturing execution systems</SPAN><SPAN>,</SPAN> <SPAN>and how they use the power of AI-enabled visual inspection in SAP Digital Manufacturing to support sustainable, risk-resilient operations.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Asset Performance Management: The future of maintenance</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>In a world where asset failures can have a major impact on a company's productivity and profitability, preventative asset performance management (APM) is crucial.&nbsp; AI-driven insights are revolutionizing maintenance by making accurate predictions about the condition of assets and optimizing maintenance activities.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>And one of the key components of the </SPAN><A href="https://www.sap.com/products/scm/apm.html" target="_blank" rel="noopener noreferrer"><SPAN>SAP Asset Performance Management</SPAN></A><SPAN> solution is IoT technology. It enables the seamless connection and efficient management of devices and sensor data required for remote asset monitoring, AI and analytics. And with the increasing adoption of 5G technologies, customers worldwide are now increasingly relying on the use of sensor data and smart devices to optimize their maintenance strategies and act on a condition-based and predictive basis.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>To help our customers to accelerate this shift, SAP will </SPAN>embed <STRONG>Cumulocity IoT</STRONG><SPAN>, a market-leading Industrial IoT platform, into SAP Asset Performance Management.&nbsp; With Cumulocity IoT, SAP Asset Performance Management aims to help our customers simplify their connectivity scenarios with any IoT data sources, including smart equipment and data lakes/historians.&nbsp; Moreover, the embedded advanced IoT capabilities can help seamlessly manage IoT devices and stream sensor data in near-real-time</SPAN> <SPAN>to continuously monitor asset health.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>With SAP Asset Performance Management, asset operators can now use AI to detect anomalies in equipment behavior from the streaming sensor that can lead to potential failures. This AI-based predictive maintenance capability can be applied to different asset classes and asset types, as it learns based on the asset data of the particular company that uses it, such as for</SPAN><SPAN>&nbsp;</SPAN></P><UL><LI><SPAN>filling valves in a beverage production line at a consumer goods manufacturer/retailer&nbsp;</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Air filters on transportation vehicles in a mining operation&nbsp;</SPAN><SPAN>&nbsp;</SPAN></LI><LI><SPAN>Electric motor in a rotating system at an oil and gas company</SPAN><SPAN>&nbsp;</SPAN></LI></UL><P><SPAN>AI-driven insights are revolutionizing maintenance by making accurate predictions about the condition of assets and optimizing maintenance activities. And with the help of SAP Asset Performance Management, not only can downtime be reduced, but the service life of assets can also be maximized, and total cost of ownership reduced.</SPAN><SPAN>&nbsp;</SPAN></P><P><STRONG><SPAN>Improve field service response&nbsp;&nbsp;&nbsp;</SPAN></STRONG><SPAN>&nbsp;</SPAN></P><P><SPAN>Today, companies need to optimize their field service management (FSM) processes to remain competitive and increase customer satisfaction. The prediction and optimization of working and travel times at and to the deployment site are a major challenge for companies and their service technicians.</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>The integration of AI and machine learning into field service management is therefore becoming increasingly important to improve existing processes and open up new opportunities for increasing efficiency and service innovations.</SPAN><SPAN>&nbsp;</SPAN></P><P><A href="https://www.sap.com/products/scm/field-service-management.html" target="_blank" rel="noopener noreferrer"><SPAN>SAP Field Service Management</SPAN></A><SPAN> uses predictive routing to access historical and real-time traffic data, as well as service technician location and workload information, to schedule the most efficient route and the most appropriate field service technician.&nbsp; This enables companies to meet their Service Level Agreements (SLAs) more effectively, improve customer satisfaction and reduce operating costs.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>Furthermore, SAP Field Service Management uses AI and machine learning to help predict the expected actual job duration to reduce inaccurate scheduling of field service activities, leading to delays, underutilization and negative customer experiences.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>This allows planners to create more realistic schedules and minimize overbooking and underutilization of resources, ultimately leading to higher customer satisfaction and productivity.&nbsp;</SPAN><SPAN>&nbsp;</SPAN></P><P><SPAN>In summary, the use of AI and market-driven decision making is essential for product innovation, manufacturing, asset performance management and field service management companies seeking growth and sustainability.</SPAN><SPAN>&nbsp;</SPAN></P> 2024-04-21T13:53:24.634000+02:00 https://community.sap.com/t5/gurugram-blog-posts/sap-stammtisch-plus-gurgaon-may-2024-h1/ba-p/13678318 SAP Stammtisch Plus - Gurgaon - May 2024 (H1) 2024-04-22T16:27:18.510000+02:00 Chandra_Bhushan https://community.sap.com/t5/user/viewprofilepage/user-id/123700 <P><SPAN>Dear SAP Community Members,</SPAN><BR /><BR /><SPAN>We are planning to run SAP Stammtisch Plus in Gurgaon - May 2024(H1). Details will be shared very soon.</SPAN><BR /><SPAN>Let us get together to participate, connect and benefit from our peer community members on latest insights from&nbsp;</SPAN><A href="https://www.linkedin.com/company/sap/" target="_blank" rel="noopener nofollow noreferrer">SAP</A><SPAN>&nbsp;on:</SPAN><BR /><A href="https://www.linkedin.com/feed/hashtag/?keywords=sapbusinessai&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">1. #SAPBusinessAI</A><SPAN>,</SPAN><BR /><A href="https://www.linkedin.com/feed/hashtag/?keywords=genai&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">2. #GenAI</A><SPAN>,</SPAN><BR /><A href="https://www.linkedin.com/feed/hashtag/?keywords=saphanacloud&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">3. #SAPHANACloud</A><SPAN>&nbsp;Vector Engine,</SPAN><BR /><SPAN>4. Retrieval Augmented Generation(</SPAN><A href="https://www.linkedin.com/feed/hashtag/?keywords=rag&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">#RAG</A><SPAN>),</SPAN><BR /><SPAN>5. Knowledge Graph,</SPAN><BR /><SPAN>6. Enterprise Automation and much more.</SPAN></P><P><SPAN>Thank you to all the community members from another SAP Community Member!</SPAN></P><P><SPAN>Chandra</SPAN></P><P><A href="https://www.linkedin.com/feed/hashtag/?keywords=sapcommunity&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">#SAPCommunity</A><SPAN>&nbsp;</SPAN><A href="https://www.linkedin.com/feed/hashtag/?keywords=sapstammtischggn&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">#SAPStammtischPlusGGN</A><SPAN>&nbsp;</SPAN><A href="https://www.linkedin.com/feed/hashtag/?keywords=sapchampion&amp;highlightedUpdateUrns=urn%3Ali%3Aactivity%3A7188068071461339138" target="_blank" rel="noopener nofollow noreferrer">#SAPChampion</A></P> 2024-04-22T16:27:18.510000+02:00 https://community.sap.com/t5/human-capital-management-blogs-by-sap/first-half-2024-release-what-s-new-in-sap-successfactors-hcm/ba-p/13678744 First Half 2024 Release: What’s New in SAP SuccessFactors HCM 2024-04-23T02:20:58.013000+02:00 carrieklauss https://community.sap.com/t5/user/viewprofilepage/user-id/25399 <P>With new AI capabilities in recruiting, performance &amp; goals, core HR, and more PLUS new people profile experiences, timesheet integration with SAP S/4HANA, enhanced experiences for onboarding and benefits, and more self-service tasks via Microsoft Teams – the 1H 2024 release is delivering 250+ innovative features and enhancements!&nbsp;</P><P>As we go into preview on April 19 and production on May 17, I'm excited to share the following <A title="SAP SuccessFactors HCM" href="https://www.sap.com/products/hcm.html" target="_blank" rel="noopener noreferrer">SAP<SPAN> SuccessFactors HCM</SPAN></A>&nbsp;highlights&nbsp;– aligned to our four key areas of innovation and designed to help you make every employee a success story. Here's to another great release!&nbsp;</P><H3 id="toc-hId-1121789921"><FONT color="#000080"><STRONG>Deliver an elevated experience </STRONG></FONT></H3><P><FONT color="#3366FF"><STRONG>AI: New capabilities for employees, managers, recruiters, and HR teams</STRONG></FONT><BR />With 25+ new AI capabilities spanning across the suite, there’s something for everyone in this release. For employees – new <A href="https://www.sap.com/products/hcm/ai-joule-product-tour.html" target="_blank" rel="noopener noreferrer">Joule</A> capabilities (view my pay statement, clock in/clock out, and more), AI-assisted performance and development goal creation, and AI-assisted writing (for goals, feedback, assignments, etc.). For managers – new Joule capabilities (create a spot award, create a position, and more) and AI-assisted person insights for a quick view into an employee’s compensation and job history. For recruiters – AI-assisted applicant screening and AI-assisted skills matching. And for HR teams – the ability to serve up HR policy information and documents hosted on SharePoint via a quick employee conversation with Joule.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Create a spot award" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100195i15FFA3CA69467646/image-size/medium?v=v2&amp;px=400" role="button" title="Create a spot award.png" alt="Create a spot award" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Create a spot award</span></span></P><P><FONT color="#3366FF"><STRONG>Work tech: Now available in Microsoft Teams App Store, employee quick actions</STRONG></FONT><BR />SAP SuccessFactors is now available on the Microsoft Teams App Store, making it easier than ever to provide this convenience to your employees and managers. And adding to the existing capabilities already available, employees can now access quick actions directly from Microsoft Teams for requesting or giving feedback, managing their personal details, and more. &nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Quick actions in Microsoft Teams" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100194i86DFDBF7F75F507F/image-size/medium?v=v2&amp;px=400" role="button" title="Quick actions in Microsoft Teams.png" alt="Quick actions in Microsoft Teams" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Quick actions in Microsoft Teams</span></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><FONT color="#3366FF"><STRONG>Mobile: People profile views, org chart, global benefits, learning, and more</STRONG></FONT><BR />Several of the latest innovations across the suite are also available on the SAP SuccessFactors mobile app. For the people profile, the new profile preview and spotlight view are available, as well as the new org chart experience, making it easy to stay connected while on the go. For the recently launched integrated learning experience, employees can access new enhancements via the mobile app, including self-driven learning activities, reviewing details for required learning, and having a single view of pending learning tasks. We’re also pleased to share that the offline learning capability is now available on Android devices, allowing course progress and completion to be automatically updated when a mobile device is back online.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Spotlight view, Org chart, Learning on mobile" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100197iA83A7DE9C2DD7817/image-size/medium?v=v2&amp;px=400" role="button" title="Mobile.png" alt="Spotlight view, Org chart, Learning on mobile" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Spotlight view, Org chart, Learning on mobile</span></span></P><P><FONT color="#3366FF"><STRONG>System admin: Improvements to the Configuration Transport Center </STRONG></FONT><BR />Significant improvements to the Configuration Transport Center have been made by adding nearly every setting for configuring SAP SuccessFactors Employee Central. These new capabilities enable system administrators to easily transport configurations for Employee Central from development and test tenants to their production tenant. An improved search function lets them quickly find specific configurations, and with the new audit reports, they can track configuration changes and automate change management.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Configuration Transport Center" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100198i0947D930F3191256/image-size/medium?v=v2&amp;px=400" role="button" title="Configuration Transport Center.png" alt="Configuration Transport Center" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Configuration Transport Center</span></span></P><H3 id="toc-hId-925276416"><FONT color="#000080"><STRONG>Build a future-ready workforce </STRONG></FONT></H3><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Recruiting: AI-assisted applicant screening and AI-assisted skills matching </STRONG></FONT><BR />With this release, we’re excited to bring more AI capabilities to the recruiter experience. Now applicants can provide skills as part of the application process on the career site by uploading a resume, searching and adding skills, or using the suggest skills functionality. Skills are extracted from the resume and within the applicant workbench, recruiters can see a skills compatibility for each applicant based on matching the applicant’s skills to the job requisition. This helps improve applicant screening and shortens time to hire by giving recruiters a quick and accurate view into the matching, missing, and potential skills for every applicant.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AI-assisted skills matching" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100200i23019A80C4CD0002/image-size/medium?v=v2&amp;px=400" role="button" title="Ai-assisted skills matching.png" alt="AI-assisted skills matching" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">AI-assisted skills matching</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Onboarding: Enhanced new hire experience, mass completion option </STRONG></FONT><BR />With the enhanced new hire experience, onboardees can view and complete all outstanding onboarding tasks from a single page, including data collection, compliance tasks, and exploring the onboarding guide. For orgs with high-volume hiring, a new mass completion option makes it possible for hiring managers to complete tasks for multiple new hires (up to 100) at the same time, such as requesting equipment or setting goals.</P><P>&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="New hire onboarding experience" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100201i0E1819706413C535/image-size/medium?v=v2&amp;px=400" role="button" title="New hire experience for onboarding.png" alt="New hire onboarding experience" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">New hire onboarding experience</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Opportunity Marketplace: AI-driven recommendations for Ignite Your Role, Reach Your Aspirations, and internal jobs </STRONG></FONT><BR />We’re providing more personalized recommendations with new two categories – Ignite Your Role recommends opportunities to help employees grow in their current job role, while Reach Your Aspirations recommends opportunities based on an employees interested skills, target roles, or development goals. Also, based on an employee’s growth portfolio, AI driven recommendations for internal jobs from SAP SuccessFactors Recruiting are now available.</P><P>&nbsp;&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="New recommendation categories" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100217i8C08E2E77D3EEFAC/image-size/medium?v=v2&amp;px=400" role="button" title="New recommendation categories.png" alt="New recommendation categories" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">New recommendation categories</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Learning: Enhancements to new learner experience, custom cards and banners, bulk merger tool </STRONG></FONT><BR />Continuing with the integrated learning experience we released last year, we’re delivering additional features to support a variety of learner interactions and preferences. These include optional assignments, a refreshed learning history page, and additional filtering options to help employees find specific language or region-specific courses. For admins, new custom cards (up to eight) and a configurable banner provide the opportunity to promote specific content on the learner home page – with a brand-new admin page to easily create and manage these new options. Also for admins, a new bulk merge capability can bring together multiple user accounts, either from different employments or from the conversion of an external to internal user in SAP SuccessFactors Learning.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Important Learning including optional assignments" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100202i4B247806BA67B9F2/image-size/medium?v=v2&amp;px=400" role="button" title="Important Learning.png" alt="Important Learning including optional assignments" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Important Learning including optional assignments</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Performance &amp; Goals: AI-assisted performance goal creation, AI-assisted writing </STRONG></FONT><BR />With this release, employees can use AI to quickly create performance goals. After entering a brief description of what they want to achieve, employees receive ready-made goals with the option to accept, discard, or regenerate as needed. Additionally, we're introducing AI-assisted writing across a variety of performance and goal-related interactions for both employees and managers, including enhancing the quality and tone of performance goals and making feedback more actionable.<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AI-assisted performance goal creation" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100203iA57F307069D95313/image-size/medium?v=v2&amp;px=400" role="button" title="AI-assisted performance goal creation.png" alt="AI-assisted performance goal creation" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">AI-assisted performance goal creation</span></span></P><H3 id="toc-hId-728762911"><FONT color="#000080"><STRONG>Enable agile and compliant HR </STRONG></FONT></H3><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Employee Central: Profile preview and spotlight view of people profile, new org chart experience, new quick actions (+ Joule and MS Teams), new ‘My Team Positions’ experience</STRONG></FONT><BR />We’re excited to provide two new people profile experiences – with the profile preview giving a quick snapshot of key areas of the employee profile and the spotlight view allowing employees to build and represent their personal brand by showcasing skills and competencies, mentoring and target roles, and other relevant information sourced from SAP SuccessFactors solutions. We’re also introducing a new org chart experience with a refreshed look and feel where employees can easily explore their org structure and navigate to the new people profile experiences.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Spotlight view of people profile" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100204i76DEC2EE69F07B67/image-size/medium?v=v2&amp;px=400" role="button" title="Spotlight view of people profile.png" alt="Spotlight view of people profile" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Spotlight view of people profile</span></span></P><P>To provide more self-service options, we’re providing new quick actions available on the home page, Joule, and Microsoft Teams. And for managers, a new My Team Positions provides a tile-based view where positions can be viewed, edited, and created – all directly from the home page.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="My Team Positions experience" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100205i9A7055F43A486E40/image-size/medium?v=v2&amp;px=400" role="button" title="My Team Positions.png" alt="My Team Positions experience" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">My Team Positions experience</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Employee Central – Global Benefits: New enrollment experience for insurance, savings plan, and pension benefits </STRONG></FONT><BR />Available on both desktop and our mobile app, the new benefits enrollment experience gives employees an easy way to navigate their benefit elections with side-by-side plan comparisons, embedded instructional text, and the option to update dependent information and manage beneficiaries. To support this new experience and specific org needs, we’re providing a new flexible framework for benefits admins that includes capturing life insurance guaranteed issue amounts, customizable terms and conditions, and enhanced localization capabilities.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Benefits enrollment experience" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100207i0CBD14FC8D1C8702/image-size/medium?v=v2&amp;px=400" role="button" title="Benefits enrollment experience.png" alt="Benefits enrollment experience" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Benefits enrollment experience</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Time Tracking: </STRONG><STRONG>New monthly calendar view, new timesheet approval center </STRONG></FONT><BR />To build upon our continued innovation in time tracking, we’re excited to launch a new monthly calendar view for timesheets. This gives employees and managers a complete picture of recorded time over a month and provides the option to drill down into specific days, as well as submit or approve time for pay periods beyond a week. For managers, a new time approval center simplifies approval with a centralized dashboard where managers can monitor team working hours effectively and gain visibility into anomalies to help ensure accurate and timely payroll processing.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Timesheet approval center" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100208i4068D029552DA1F3/image-size/medium?v=v2&amp;px=400" role="button" title="Timesheet approval center.png" alt="Timesheet approval center" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Timesheet approval center</span></span></P><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Employee Central Payroll: Joule, new localization, SAP Best Practices</STRONG></FONT><BR />We're excited to share that employees can now use Joule to access and review pay statements. Also, with the addition of Slovenia, we now offer 51 locales for our payroll solution – more than any other vendor in the market (see <A href="https://www.sap.com/products/hcm.html?campaigncode=CRM-YI23-HXM-2301234&amp;url_id=gartner-mq-2023-cloud-hcm&amp;rc=https%3A%2F%2Fwww.gartner.com%2Freprints%2F%3Fid%3D1-2FDME4T3%26ct%3D231023%26st%3Dsb" target="_blank" rel="noopener noreferrer">2023 Gartner MQ for cloud HCM suites</A>). In addition, we continue to use SAP Best Practices to deliver localized content, such as payroll onboarding forms for Canada.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Access and review pay statements with Joule" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100211i205B14E45D979504/image-size/medium?v=v2&amp;px=400" role="button" title="Access and review pay statements with Joule.png" alt="Access and review pay statements with Joule" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Access and review pay statements with Joule</span></span></P><H3 id="toc-hId-532249406"><FONT color="#000080"><STRONG>Increase the strategic value and connection of HR </STRONG></FONT></H3><P><FONT color="#3366FF"><STRONG>SAP SuccessFactors Time Tracking: New time sheet experience with SAP S/4HANA</STRONG></FONT><BR />With the launch of a new timesheet experience that integrates the latest version of My Timesheet in SAP S/4HANA with SAP SuccessFactors solutions, employees can now use a single timesheet to record time for payroll and against activities and/or cost objects. This helps organizations leverage real-time connectivity between HR and Finance operations to keep track of employee activity and labor costs while ensuring employees are paid accurately and on time.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="New timesheet experience" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100213iF3539C660278E964/image-size/medium?v=v2&amp;px=400" role="button" title="New timesheet experience.png" alt="New timesheet experience" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">New timesheet experience</span></span></P><P><STRONG><FONT color="#3366FF">SAP SuccessFactors Work Zone: Wizard layout tool, Engagement cards + quick actions</FONT> &nbsp;</STRONG><BR />With the new wizard layout tool, workspace admins can build multi-step processes that span multiple systems with the help of step-by-step instructions, such as an onboarding process for new hires. In addition, we're making it even easier to access SAP SuccessFactors content and complete HR tasks directly from a workspace, with engagement cards (birthdays, work anniversaries, bonus payouts, etc.) and new quick action cards for employees and managers.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Wizard layout tool" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100214i5E2BF488EFA81BDB/image-size/medium?v=v2&amp;px=400" role="button" title="Wizard layout tool.png" alt="Wizard layout tool" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Wizard layout tool</span></span></P><P>These are just a few of the many innovations in the SAP SuccessFactors First Half 2024 Release. Learn more with the resources below:</P><UL><LI>Check out <A href="https://community.sap.com/topics/successfactors/product-release-road-map" target="_blank">Product Release &amp; Roadmap Information on the SAP SuccessFactors Community</A>&nbsp;(registration required) or <A href="https://www.sap.com/products/hcm/innovations.html" target="_blank" rel="noopener noreferrer">HCM Innovations on sap.com</A> to see additional release resources, including the release brochure, product videos, and solution specific blogs.</LI><LI>Watch the <A title="SAP SuccessFactors 1H 2024 Release Highlights Video" href="https://www.sap.com/products/hcm/innovations.html?video=8c907f14-b77e-0010-bca6-c68f7e60039b" target="_blank" rel="noopener noreferrer">1H 2024 release highlights video</A> with Bianka Woelke, GVP, Head of Application Product Management</LI></UL> 2024-04-23T02:20:58.013000+02:00 https://community.sap.com/t5/application-development-blog-posts/create-full-stack-app-use-entity-drafts-use-joule-to-create-action-code/ba-p/13676527 Create full-stack app, use entity drafts, use Joule to create action code. 2024-04-24T10:50:40.906000+02:00 lukcad https://community.sap.com/t5/user/viewprofilepage/user-id/888780 <P><STRONG>Goals:</STRONG></P><P><STRONG>1--</STRONG>&nbsp;create one Full-Stack application for management orders based on model from Northwind service&nbsp;<A href="http://services.odata.org/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>http://services.odata.org</SPAN></A></P><P><STRONG>2--</STRONG><SPAN>&nbsp;</SPAN><SPAN>enhance application to meet the business requirements</SPAN><SPAN> manually to avoid impact of Low Code generator for custom code.</SPAN></P><P><STRONG>3--</STRONG> enhance application by new logic using Joule with Low code generator</P><P><STRONG>4--</STRONG> test code that no regression in code by using Low code generator and Joule.</P><P><STRONG>Minimal </STRONG><STRONG>Business requirements:</STRONG></P><P><SPAN>1-- Main list of </SPAN><SPAN>orders </SPAN><SPAN>should have at least</SPAN><SPAN> these columns: Order ID, Order Created, City, Country, Status</SPAN></P><TABLE><TBODY><TR><TD><P>Order ID</P></TD><TD><P>&nbsp;value of Order ID</P></TD></TR><TR><TD><P>Order Created</P></TD><TD><P>&nbsp;value of the Creation Date</P></TD></TR><TR><TD><P>Ship City</P></TD><TD><P>&nbsp;value of shipment City</P></TD></TR><TR><TD><P>Ship Country</P></TD><TD><P>&nbsp;value of Shipment Country</P></TD></TR><TR><TD><P>Ship Status</P></TD><TD><P>&nbsp;Calculated: criticality + value ( shipped or not)</P></TD></TR></TBODY></TABLE><P><SPAN>2</SPAN><SPAN>-- Each record can be editable on</SPAN><SPAN> Details page and have two sections</SPAN><SPAN> `</SPAN><SPAN>Order Header</SPAN><SPAN>`</SPAN><SPAN> which contains general information about order</SPAN> <SPAN>and `Order Items` which is list of item positions in orders.</SPAN></P><P>3-- Each position `Order items` has columns:</P><TABLE><TBODY><TR><TD><P>Product</P></TD><TD><P>Editable (chosen from list)</P></TD></TR><TR><TD><P>Quantity</P></TD><TD><P>Editable value of quantity</P></TD></TR><TR><TD><P>Unit price</P></TD><TD><P>Read only:&nbsp; should be taken from Unit Price of Product</P></TD></TR><TR><TD><P>Discount</P></TD><TD><P>Editable value of discount</P></TD></TR><TR><TD><P>Cost</P></TD><TD><P>Calculated field: (Quantity * Unit Price - Discount)</P></TD></TR><TR><TD><P>Status Product</P></TD><TD><P>Calculated: criticality + value (Active or Discontinued)</P></TD></TR></TBODY></TABLE><P>4-- For additional enhancement you can add action `Loyalty`</P><UL><LI>in this version action will return the information pop-up with total cost per current order.</LI></UL><P><STRONG>Prerequisites:</STRONG></P><P>As a developer to go through steps of this article:</P><UL><LI>you have an account in SAP BTP.</LI><LI>you know SAP BTP and know how to create dev Full-Stack environment.</LI><LI>you have GitHub where you can save your project</LI><LI>you added application SAP Build Code to your subaccount</LI><LI>you know how to develop CAP and UI by Fiori elements</LI><LI>you understand CDS and know about any consequences if model in CDS should be changed.</LI><LI>you have heard about `Joule`.</LI></UL><P><STRONG>Creating project for </STRONG><STRONG>orders</STRONG></P><P>In this document, you will create project according to our goals and the business requirements, steps will be like these:</P><UL><LI>Prepare project</LI><UL><LI>creating project</LI></UL><LI>Generate components of project</LI><UL><LI>generate data model and data by Joule</LI><LI>generate FIORI UI</LI></UL><LI>Implement business requirements</LI><UL><LI>enhance data model</LI><LI>create persistence model for development</LI><LI>modify FIORI pages</LI><LI>modify srv/service.js</LI></UL><UL><LI>create srv/code/orderdetails_draft_create_logic.js</LI><LI>create srv/code/orderdetails_draft_update_logic.js</LI></UL><UL><LI>manual testing business requirements</LI></UL><LI>Add additional functionality(action)</LI><UL><LI>add action</LI><LI>commit to GitHub version 1.0.0</LI><LI>generate data logic of action by Joule</LI><LI>testing action</LI><LI>commit to GitHub version 1.0.1</LI></UL></UL><P><STRONG>Preparation of project</STRONG></P><P>Go to SAP BTP and open tool `SAP Build Code` which you previously adjusted by Booster or by documentation.</P><P>Go to `Lobby` of your applications and create new application with name `zorders` (you can use your name).</P><P>Use this road map to create project:</P><P>Create -&gt; Build Application -&gt; SAP Build Code -&gt; Full-Stack Application</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_0-1713550070760.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99029iE74724AF19977D2A/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_0-1713550070760.png" alt="lukcad_0-1713550070760.png" /></span></P><P>Once project is prepared in your Lobby, open it by hitting Name from list of projects:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_1-1713550070761.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99027iB14B55CB4FE6310F/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_1-1713550070761.png" alt="lukcad_1-1713550070761.png" /></span></P><P>You will have opened SAP build tool with generated application which you will develop:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_2-1713550070761.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99028iF1562086A919AF33/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_2-1713550070761.png" alt="lukcad_2-1713550070761.png" /></span></P><P>Before go with `Joule` I recommend use GitHub to save your versions (if something wrongly generated and you did accept it you will be able to restore everything to save time):</P><P><SPAN>we add our project to GitHub by creating repository, in this example it is `</SPAN><SPAN>zorders</SPAN><SPAN>`</SPAN></P><P>Preparation is done.</P><P><STRONG>Generate components of project</STRONG></P><P><STRONG>Generate </STRONG><STRONG>model</STRONG><STRONG> and data by Joule</STRONG></P><P><SPAN>For generating model u</SPAN><SPAN>se this road map:</SPAN></P><P>Go to Joule -&gt;Open Guide-&gt;Data Model and Service Creation</P><TABLE><TBODY><TR><TD><P><SPAN>Past</SPAN><SPAN>e</SPAN><SPAN> for Joule:</SPAN></P></TD><TD><P><SPAN>create model from Northwind service which is placed on</SPAN><SPAN>&nbsp;</SPAN><A href="http://services.odata.org/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>http://services.odata.org</SPAN></A></P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_3-1713550070762.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99031i9E2E982B5DADD366/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_3-1713550070762.png" alt="lukcad_3-1713550070762.png" /></span></P><P>Once Joule is finished, you have to accept changes and you can verify your model by CDS Graphical Modeler:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_4-1713550070763.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99030iD0713AFD16BC4E68/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_4-1713550070763.png" alt="lukcad_4-1713550070763.png" /></span></P><P>For generating data use this road map:</P><P>Joule-&gt;Open Guide-&gt;Sample Data-&gt;Generate Sample Data</P><TABLE><TBODY><TR><TD><P>Tell to Joule:</P></TD><TD><P>Generate sample data for model.</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_5-1713550070764.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99032i3AE143B1339668AA/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_5-1713550070764.png" alt="lukcad_5-1713550070764.png" /></span></P><P>once sample data are generated by Joule, and you accept it, you will find all of those into Sample Data editor (you can open it later on by command palette: <STRONG>PT&nbsp; Open Sample Data Editor</STRONG>)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_6-1713550070765.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99035iC114E891B74547C6/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_6-1713550070765.png" alt="lukcad_6-1713550070765.png" /></span></P><P>make one record manually with empty value for `ShippedDate` in `Orders` entity.</P><P>open terminal and run `<STRONG>cds w</STRONG>`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_7-1713550070766.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99034i96AF3D3DF7C1FA7A/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_7-1713550070766.png" alt="lukcad_7-1713550070766.png" /></span></P><P>Open proposed link, usually it is&nbsp;<A href="http://localhost:4004/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>http://localhost:4004</SPAN></A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_8-1713550070767.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99033i57CD5D8C6D219184/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_8-1713550070767.png" alt="lukcad_8-1713550070767.png" /></span></P><P>Check that there are data, try open any service, for example Orders:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_9-1713550070767.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99038i4EB7D4B41E396DC8/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_9-1713550070767.png" alt="lukcad_9-1713550070767.png" /></span></P><P><SPAN>Model </SPAN><SPAN>and data are </SPAN><SPAN>prepared by Joule and verified by you.</SPAN><SPAN> You can go to the next step to generate UI by `Fiori elements`.</SPAN></P><P><STRONG>Genera</STRONG><STRONG>te Fiori </STRONG><STRONG>UI</STRONG></P><P>On this step you generate UI.</P><P>Use this road map:</P><P><SPAN>Open Palette-&gt;FIORI: </SPAN><SPAN>Open Application Generator</SPAN></P><P>Choose `Worklist Page`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_10-1713550070768.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99036i7FC5A28E3DED242F/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_10-1713550070768.png" alt="lukcad_10-1713550070768.png" /></span></P><P><SPAN>choose template&nbsp; </SPAN><SPAN>List Report </SPAN><SPAN>Page -&gt; Use local CAP project</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_11-1713550070769.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99037i9A37B3BBAD340576/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_11-1713550070769.png" alt="lukcad_11-1713550070769.png" /></span></P><P>Press Next</P><P><SPAN>Choose main entity </SPAN><SPAN>`Orders` and Navigation entity `orderDetails`</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_12-1713550070769.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99041i97AB253A9548C730/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_12-1713550070769.png" alt="lukcad_12-1713550070769.png" /></span></P><P>Press next</P><P>Give these parameters:</P><TABLE><TBODY><TR><TD><P>Module name</P></TD><TD><P>orders</P></TD></TR><TR><TD><P>Application title</P></TD><TD><P>Orders</P></TD></TR><TR><TD><P>Description</P></TD><TD><P><SPAN>Orders </SPAN><SPAN>management</SPAN></P></TD></TR><TR><TD><P>Allow FLP configuration</P></TD><TD><P>Yes</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_13-1713550070770.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99040i78AA6E38C19313CA/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_13-1713550070770.png" alt="lukcad_13-1713550070770.png" /></span></P><P>Press next</P><P>Give these parameters for FLP:</P><TABLE><TBODY><TR><TD><P>Semantic Object</P></TD><TD><P>zmlorders</P></TD></TR><TR><TD><P>Action</P></TD><TD><P>Management</P></TD></TR><TR><TD><P>Title</P></TD><TD><P><SPAN>Orders </SPAN><SPAN>Management</SPAN></P></TD></TR></TBODY></TABLE><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_14-1713550070771.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99039i88AD9915FA8D257E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_14-1713550070771.png" alt="lukcad_14-1713550070771.png" /></span></P><P>Press Finish</P><P>Finally you should be able for app/products by opening context menu choose `Show Page Map`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_15-1713550070771.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99044i6ED15F6F1D86CEB7/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_15-1713550070771.png" alt="lukcad_15-1713550070771.png" /></span></P><P>Verify application, by start prepared run configuration or start cds server via terminal.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_16-1713550070772.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99042iB32823254DCA9449/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_16-1713550070772.png" alt="lukcad_16-1713550070772.png" /></span></P><P>This Home will be opened for our application:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_17-1713550070773.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99043i3825037CD351ED2E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_17-1713550070773.png" alt="lukcad_17-1713550070773.png" /></span></P><P><SPAN>Open our Fiori application `</SPAN><SPAN>Orders</SPAN><SPAN>`</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_18-1713550070774.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99047iC0B10FE2A88896C4/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_18-1713550070774.png" alt="lukcad_18-1713550070774.png" /></span></P><P>Open details for order:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_19-1713550070775.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99046i27DF643A0538F19F/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_19-1713550070775.png" alt="lukcad_19-1713550070775.png" /></span></P><P>Our application contains all needing components of application to start implementation of business requirements.</P><P><STRONG>Implement business requirements</STRONG></P><P><SPAN>On this phase you have</SPAN><SPAN> to implement </SPAN><SPAN>the </SPAN><SPAN>business requirements:</SPAN></P><P><SPAN>1-- Main list of </SPAN><SPAN>orders </SPAN><SPAN>should have at least</SPAN><SPAN> these columns: Order ID, Order Created, City, Country, Status</SPAN></P><TABLE><TBODY><TR><TD><P>Order ID</P></TD><TD><P>&nbsp;value of Order ID</P></TD></TR><TR><TD><P>Order Created</P></TD><TD><P>&nbsp;value of the Creation Date</P></TD></TR><TR><TD><P>Ship City</P></TD><TD><P>&nbsp;value of shipment City</P></TD></TR><TR><TD><P>Ship Country</P></TD><TD><P>&nbsp;value of Shipment Country</P></TD></TR><TR><TD><P>Ship Status</P></TD><TD><P>&nbsp;Calculated: criticality + value ( shipped or not)</P></TD></TR></TBODY></TABLE><P><SPAN>2</SPAN><SPAN>-- Each record can be editable on</SPAN><SPAN> Details page and have two sections</SPAN><SPAN> `</SPAN><SPAN>Order Header</SPAN><SPAN>`</SPAN><SPAN> which contains general intormation about order</SPAN> <SPAN>and `Order Items` which is list of item positions in orders.</SPAN></P><P>3-- Each position `Order items` has columns:</P><TABLE><TBODY><TR><TD><P>Product</P></TD><TD><P>Editable (chosen from list)</P></TD></TR><TR><TD><P>Quantity</P></TD><TD><P>Editable value of quantity</P></TD></TR><TR><TD><P>Unit price</P></TD><TD><P>Read only:&nbsp; should be taken from Unit Price of Product</P></TD></TR><TR><TD><P>Discount</P></TD><TD><P>Editable value of discount</P></TD></TR><TR><TD><P>Cost</P></TD><TD><P>Calculated field: (Quantity * Unit Price - Discount)</P></TD></TR><TR><TD><P>Status Product</P></TD><TD><P>Calculated: criticality + value (Active or Discontinued)</P></TD></TR></TBODY></TABLE><P>4-- For additional enhancement you can add action `Loyalty`</P><UL><LI>in this version action will return the information pop-up with total cost per current order.</LI></UL><P><STRONG>enhance data model </STRONG></P><P>On level data model we need to apply so named materialized calculated fields. fields that we add as extension to our data model and those will be recalculated and saved in database each time when values in record were changed. This is most effective way to keep calculated fields in database.</P><P>We need according to business requirements 3 calculated fields:</P><P>Into `db/schema.cds` file we add these 3 calculated fields using extend of the correspondent database:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code> /** * * Products has crtiticality positive if it is not discontinued */ extend Products with { criticality : Integer = (case when Discontinued = False then 3 else 2 end ) stored; ProductStatus : String(15) = (case when Discontinued = False then 'Active' else 'Discontinued' end ) stored; } /** * * Orders has crtiticality positive if it is shipped */ extend Orders with { criticality : Integer = (case when ShippedDate is not null then 3 else 2 end ) stored; ShipStatus : String(15) = (case when ShippedDate is not null then 'Shipped' else 'Not' end ) stored; } /** * Cost per each element is needing to easily calculate total price */ extend OrderDetails with { cost : Decimal(10,4) = ( UnitPrice * Quantity - Discount ) stored; }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_20-1713550070775.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99045iC6E89C9F281BF385/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_20-1713550070775.png" alt="lukcad_20-1713550070775.png" /></span></P><P>&nbsp;</P><P>You can open SQL Preview of schema.cds file and check how it looks like on DB level:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_21-1713550070777.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99049i8433A5E8FA6197D0/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_21-1713550070777.png" alt="lukcad_21-1713550070777.png" /></span></P><P>Preview CDS on service layer after added fields:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_22-1713550070778.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99051i495559DE071BC549/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_22-1713550070778.png" alt="lukcad_22-1713550070778.png" /></span></P><P><STRONG>create persistence model for development</STRONG></P><P>Use persistence data base instead of `in-memory` for this example.</P><P>You should add this JSON fragment into `package.json` of project to cluster of settings under `cds/requires`:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-json"><code> , "[development]": { "db": { "kind": "sqlite", "credentials": { "url": "zorders.sqlite" } } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_23-1713550070779.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99048i59BA87C3548AF99E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_23-1713550070779.png" alt="lukcad_23-1713550070779.png" /></span></P><P>And run this command in terminal to create your persistence in the SQLite based database.</P><P style=" text-align : left; padding-left : 30px; "><STRONG>cds deploy</STRONG></P><P>You will find that database for persistence is appeared in your project.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_24-1713550070780.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99054i9EB12AF17419DBB3/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_24-1713550070780.png" alt="lukcad_24-1713550070780.png" /></span></P><P>&nbsp;</P><P><STRONG>modify FIORI pages</STRONG></P><P>Execute `Show Page Map` by using context menu for folder `app/orders`</P><P>Delete third Page, we need only two pages:</P><UL><LI>List Report</LI><LI>Object Page</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_25-1713550070780.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99053iAEF5B3007C17F817/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_25-1713550070780.png" alt="lukcad_25-1713550070780.png" /></span></P><P>Open page `List Report` in Edit mode and for Columns of Table add these fields and remove not necessary.</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>Field:</P></TD><TD><P>Label:</P></TD></TR><TR><TD><P>OrderID</P></TD><TD><P>Order ID</P></TD></TR><TR><TD><P>OrderDate</P></TD><TD><P>Order Created</P></TD></TR><TR><TD><P>ShipCIty</P></TD><TD><P>Ship City</P></TD></TR><TR><TD><P>ShipCountry</P></TD><TD><P>Ship Country</P></TD></TR><TR><TD><P>ShipName</P></TD><TD><P>Ship Name</P></TD></TR><TR><TD><P>ShipStatus</P></TD><TD><P>Ship Status</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_26-1713550070781.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99052iBB2DA9C6653BF378/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_26-1713550070781.png" alt="lukcad_26-1713550070781.png" /></span></P><P>For `Ship Status` set Criticality to `criticality` field.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_27-1713550070782.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99056iF27AEB723A009EF9/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_27-1713550070782.png" alt="lukcad_27-1713550070782.png" /></span></P><P>Return to `Page Map` and start Edit `Object Page`</P><P>Rename Section `General Information` to `Order Header`</P><P>Add section `Order Items` by using `Add Table Section` with parameters:</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>&nbsp;Label</P></TD><TD><P>Order Items</P></TD></TR><TR><TD><P>Value Source</P></TD><TD><P>orderDetails</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_28-1713550070782.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99055i4AC7753790AC329F/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_28-1713550070782.png" alt="lukcad_28-1713550070782.png" /></span></P><P>You should have 2 sections added:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_29-1713550070783.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99057iD5456F1DBC06DF0E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_29-1713550070783.png" alt="lukcad_29-1713550070783.png" /></span></P><P>Open Section `Order Header` and change fields in Fields of Form :</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>Field:</P></TD><TD><P>Label:</P></TD></TR><TR><TD><P>OrderId</P></TD><TD><P>Order ID</P></TD></TR><TR><TD><P>OrderDate</P></TD><TD><P>Order Created</P></TD></TR><TR><TD><P>RequiredDate</P></TD><TD><P>Order Required</P></TD></TR><TR><TD><P>ShippedDate</P></TD><TD><P>Order Shipped</P></TD></TR><TR><TD><P>ShipVia</P></TD><TD><P>Ship Via</P></TD></TR><TR><TD><P>Freight</P></TD><TD><P>Freight</P></TD></TR><TR><TD><P>ShipName</P></TD><TD><P>Ship Name</P></TD></TR><TR><TD><P>ShipAddress</P></TD><TD><P>Ship Address</P></TD></TR><TR><TD><P>ShipCity</P></TD><TD><P>Ship City</P></TD></TR><TR><TD><P>ShipRegion</P></TD><TD><P>Ship Region</P></TD></TR><TR><TD><P>ShipPostalCode</P></TD><TD><P>Ship Postal Code</P></TD></TR><TR><TD><P>ShipCountry</P></TD><TD><P>Ship Country</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_30-1713550070783.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99058i10CA186C7CDB483A/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_30-1713550070783.png" alt="lukcad_30-1713550070783.png" /></span></P><P>Open Section `Order Items` and add fields in columns of Table:</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>Field:</P></TD><TD><P>Label:</P></TD><TD><P>Text</P></TD><TD><P>Restriction</P></TD><TD><P>Text Arragement</P></TD><TD><P>criticality</P></TD></TR><TR><TD><P>product_ID</P></TD><TD><P>Product</P></TD><TD><P>product/ProductName</P></TD><TD><P>&nbsp;</P></TD><TD><P>Text Only</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><P>Quantity</P></TD><TD><P>Quantity</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><P>UnitPrice</P></TD><TD><P>Unit Price</P></TD><TD><P>&nbsp;</P></TD><TD><P>Read only</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><P>Discount</P></TD><TD><P>Discount</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><P>cost</P></TD><TD><P>Cost</P></TD><TD><P>&nbsp;</P></TD><TD><P>Read Only</P></TD><TD><P>&nbsp;</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><P>ProductStatus</P></TD><TD><P>Product Status</P></TD><TD><P>&nbsp;</P></TD><TD><P>Read Only</P></TD><TD><P>&nbsp;</P></TD><TD><P>product/criticality</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_31-1713550070784.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99059iEEC9D58827DA0D0E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_31-1713550070784.png" alt="lukcad_31-1713550070784.png" /></span></P><P>For field Product you should make more adjustments to let user choose Product by name from value help name with two additional fields `Unit Price` and `Discontinued`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_32-1713550070785.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99060iB8E5A3FF91AB6CCC/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_32-1713550070785.png" alt="lukcad_32-1713550070785.png" /></span></P><P>If you now start use this application and go to for modification of product in position of order (section&nbsp; `Order Items` ), you will have inconsistency for `Unit Price` after saving, even you will be able to see correct price by dropdown list `out` determination.</P><P>As example of wrong behavior of currently achieved UI:</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>Before your change:</P></TD><TD><P>What is wrong?</P></TD></TR><TR><TD><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_33-1713550070785.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99062iA6AB2FC4BC38ADF5/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_33-1713550070785.png" alt="lukcad_33-1713550070785.png" /></span></TD><TD>&nbsp;</TD></TR><TR><TD><P>After your change of product:</P></TD><TD><P>&nbsp;</P></TD></TR><TR><TD><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_34-1713550070786.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99061i0D2A910FB8CA6A06/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_34-1713550070786.png" alt="lukcad_34-1713550070786.png" /></span><P>&nbsp;</P><P>&nbsp;</P></TD><TD><P>Unit price has not changed together with product during editing `Order Items`, so Cost is wrong as well</P></TD></TR></TBODY></TABLE><P>&nbsp;</P><P>It will be not acceptable by customer.</P><P>So what you can do with it, we have to extend manually code in srv/service.js and create in folder `srv/code` files with manual methods of our code, you can't use here Joule in this piece of programming currently, because we create code witch suppose to interact with drafts records of table `OrderDetails`.</P><P>This is what you can do:</P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>-- modify</P><P><STRONG>srv/service.js</STRONG></P></TD><TD><P>you add new two event handlers here to feel modification of&nbsp; `<STRONG>OrderDerails.drafts</STRONG>` (notice name of entity with draft information against service looks like adding suffix `.drafts`)</P></TD></TR><TR><TD><P>-- add</P><P><STRONG>srv/code/orderdetails_draft_create_logic.js</STRONG></P></TD><TD><P>your custom code for creating draft record, here your code does simple set up of filed `Discount` if it is null.</P></TD></TR><TR><TD><P>-- add</P><P><STRONG>srv/code/orderdetails_draft_update_logic.js</STRONG></P></TD><TD><P>your custom code for updating draft record, here your code does modification of `UnitPrice` according to chosen `Product`</P></TD></TR></TBODY></TABLE><P><STRONG>modify srv/service.js</STRONG></P><P>Put this code into your file:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code> /** * Code is auto-generated by Application Logic, DO NOT EDIT. * @version(2.0) */ const LCAPApplicationService = require('@sap/low-code-event-handler'); const orders_Loyalty_Logic = require('./code/orders-loyalty-logic'); const orderdetails_draft_update_Logic = require('./code/orderdetails_draft_update_logic'); const orderdetails_draft_create_Logic = require('./code/orderdetails_draft_create_logic.js'); class NorthwindSrv extends LCAPApplicationService { async init() { this.on('Action1', 'Orders', async (request, next) =&gt; { await orders_Loyalty_Logic(request); return next(); }); this.before(['UPDATE'], 'OrderDetails.drafts', async (request) =&gt; { await orderdetails_draft_update_Logic(request); }); this.before(['CREATE'], 'OrderDetails.drafts', async (request) =&gt; { await orderdetails_draft_create_Logic(request); }); return super.init(); } } module.exports = { NorthwindSrv };</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_35-1713550070786.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99063i0B78E5FE3C3113A5/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_35-1713550070786.png" alt="lukcad_35-1713550070786.png" /></span></P><P><STRONG>create srv/code/orderdetails_draft_create_logic.js</STRONG></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code> /** * This initiate default value of Discount to avoid null for new records * @Before(event = { "CREATE" }, entity = "NorthwindSrv.OrderDetails.drafts") * {Object} req - User information, tenant-specific CDS model, headers and query parameters */ module.exports = async function (req) { // Your code here if (!req.data.Discount) { req.data.Discount = 0 } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_36-1713550070787.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99065i981D993B31D00B08/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_36-1713550070787.png" alt="lukcad_36-1713550070787.png" /></span></P><P><STRONG>create srv/code/orderdetails_draft_update_logic.js</STRONG></P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-abap"><code> /** * This changes UnitPrice in draft record to expose it when record is applied * @Before(event = { "UPDATE" }, entity = "NorthwindSrv.OrderDetails.drafts") * {Object} req - User information, tenant-specific CDS model, headers and query parameters */ module.exports = async function(req) { // Your code here if (req) { if (req.data) { if (req.data.product_ID) { const northSrv = await cds.connect.to("NorthwindSrv"); let prod_id = req.data.product_ID let sqlprod = SELECT.from`Products`.where` ID=${prod_id}` let productstm = await northSrv.get(sqlprod) req.data.UnitPrice = productstm[0].UnitPrice } } } }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_37-1713550070787.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99064i0933D9B1C7F53EBD/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_37-1713550070787.png" alt="lukcad_37-1713550070787.png" /></span></P><P><STRONG>manual testing</STRONG><STRONG> business requirements</STRONG></P><P>Now you can go and test application.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_38-1713550070788.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99067i1A74735D58AA311A/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_38-1713550070788.png" alt="lukcad_38-1713550070788.png" /></span></P><P>You can see that all fields in list and Ship Status should Shipped with criticality level 3 (green)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_39-1713550070789.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99070iE91E7C983342E459/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_39-1713550070789.png" alt="lukcad_39-1713550070789.png" /></span></P><P>You add new order without pointing shipment date:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_40-1713550070790.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99068i68F5FB02ABAD0310/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_40-1713550070790.png" alt="lukcad_40-1713550070790.png" /></span></P><P>&nbsp;</P><P>As a result of adding new record which is not not shipped (date of shipment was not entered) you can see that orders has `Ship status` with value Not and criticality 2 (orange).</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_41-1713550070790.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99069i8837C8647DC19E3A/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_41-1713550070790.png" alt="lukcad_41-1713550070790.png" /></span></P><P>&nbsp;</P><P>You can add new order Item in Edit mode by pressing `Create` for section `Order Items` and you see that `Discount` has value by default 0:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_42-1713550070791.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99073iCEF0A25FFC975569/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_42-1713550070791.png" alt="lukcad_42-1713550070791.png" /></span></P><P>You can change product `Chai` to `Chef Anton's Cajun Seasoning` which has different unit price:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_43-1713550070791.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99074iAC43EC44F83926B4/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_43-1713550070791.png" alt="lukcad_43-1713550070791.png" /></span></P><P>After saving your change of product you can find that `Order Items` has modified product with proper Unit Price:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_44-1713550070792.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99072iD4597CD5022E88EC/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_44-1713550070792.png" alt="lukcad_44-1713550070792.png" /></span></P><P><STRONG>Add additional functionality(action).</STRONG></P><P>We will add action which will be used in future to let manager of orders press action `Loyalty` to understand total cost of order and add any another information (this will be added by another document, so here just for understanding approach will be added in information message after pressing action just simple total cost of order which will be dynamically calculated by code which Joule will be able to generate).</P><P><STRONG>add action</STRONG></P><P>Open `srv/service.cds` by `CDS Graphical Modeler` and for `Orders` entity choose `Add Action `</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_45-1713550070792.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99075i0FF520B36FF1ED7F/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_45-1713550070792.png" alt="lukcad_45-1713550070792.png" /></span></P><P>Add `Action1` and choose details for action to set up return type to `LargeString`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_46-1713550070793.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99078iFC1591B4CCF15B82/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_46-1713550070793.png" alt="lukcad_46-1713550070793.png" /></span></P><P>If you look at `srv/service.cds` file of your project you will find where and how your action has been added.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_47-1713550070794.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99077i274559CE6DA9F672/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_47-1713550070794.png" alt="lukcad_47-1713550070794.png" /></span></P><P>Open for folder app/orders context menu and choose `Show Page Map` and open `Object page` for edit mode</P><P>and go to sections `Order header` and `Actions` of Form</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_48-1713550070795.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99080i8F85FD7C7F90370E/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_48-1713550070795.png" alt="lukcad_48-1713550070795.png" /></span></P><P>Add action `Northwind.Action1`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_49-1713550070795.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99079iFA8DC6EB6AF7EE75/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_49-1713550070795.png" alt="lukcad_49-1713550070795.png" /></span></P><P>Change Label of action from `Action1` to `Loyalty`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_50-1713550070796.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99081iD6FA3B6A83BA6FD6/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_50-1713550070796.png" alt="lukcad_50-1713550070796.png" /></span></P><P>Go back to Graphical representation of `srv/service.cds` and start applying logic to Action1.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_51-1713550070797.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99083iCFABE1C83A472B55/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_51-1713550070797.png" alt="lukcad_51-1713550070797.png" /></span></P><P>Add application logic with name `orders-loyalty-logic`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_52-1713550070798.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99082i178CBF82702EF398/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_52-1713550070798.png" alt="lukcad_52-1713550070798.png" /></span></P><P>And open code editor for implementation logic</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_53-1713550070798.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99084i38542004F0134885/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_53-1713550070798.png" alt="lukcad_53-1713550070798.png" /></span></P><P>You are in position where you can ask Joule to find for you code to implement your idea.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_54-1713550070799.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99085i44073CC3AB76E390/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_54-1713550070799.png" alt="lukcad_54-1713550070799.png" /></span></P><P><STRONG>commit your project to GitHub with version 1.0.0</STRONG></P><P>&nbsp;</P><P><STRONG>generate data logic of action by Joule</STRONG></P><P>&nbsp;</P><TABLE><TBODY><TR><TD><P>Tell to Joule:</P></TD><TD><P>select all rows from `OrderDetails` that associated to selected `ID` from `Orders`. and then calculate sum of by field `cost` as `totalcost`. show result into `info` pop-up.</P></TD></TR></TBODY></TABLE><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_55-1713550070800.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99088iFBD71730B41BA685/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_55-1713550070800.png" alt="lukcad_55-1713550070800.png" /></span></P><P>You should just slightly change code which Joule is generated, use order ID from parameter of request instead of selection:</P><P>&nbsp;</P><P>&nbsp;</P><pre class="lia-code-sample language-javascript"><code> /** * * (event = { "Action1" }, entity = "NorthwindSrv.Orders") * {Object} req - User information, tenant-specific CDS model, headers and query parameters */ module.exports = async function(req) { const tx = cds.transaction(req); const orderID = req._params[0].ID; // req.data.ID; const orderDetails = await tx.run( SELECT .from('NorthwindSrv.OrderDetails') .where({ order_ID: orderID }) ); let totalCost = 0; for (const detail of orderDetails) { totalCost += detail.cost; } req.info(`The total cost of order ${orderID} is ${totalCost}`); }</code></pre><P>&nbsp;</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_56-1713550070801.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99086iE98E66AE7F6D68F3/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_56-1713550070801.png" alt="lukcad_56-1713550070801.png" /></span></P><P><STRONG>testing action</STRONG></P><P>run your application</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_57-1713550070802.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99090iE993390A8B708EC8/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_57-1713550070802.png" alt="lukcad_57-1713550070802.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_58-1713550070803.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99089iEA84A908CA4D6746/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_58-1713550070803.png" alt="lukcad_58-1713550070803.png" /></span></P><P>go to details, find in `Order header` link 'Loyalty`</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_59-1713550070803.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99091iCEA88CF698A2A1D0/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_59-1713550070803.png" alt="lukcad_59-1713550070803.png" /></span></P><P>press loyalty, you should have `Information` message about total cost of order.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukcad_60-1713550070804.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99093iB78CDD353F44DEA6/image-size/large?v=v2&amp;px=999" role="button" title="lukcad_60-1713550070804.png" alt="lukcad_60-1713550070804.png" /></span></P><P><STRONG>commit your project to GitHub with version 1.0.1</STRONG></P><P>Thank you,</P><P>you have ready-to-use simplified application for management orders.</P><P>Main take aways from this example:</P><UL><LI>the DB model can be enhanced by materialized calculation fields.</LI><LI>on level Fiori pages you can provide value help with out determinations to modify related data.</LI><LI>how you can modify related data in draft records.</LI><LI>how to add action and expose result of action to pop-up.</LI><LI>how to use Joule for creating model, samples of data and for generating code.</LI></UL><P>&nbsp;</P><P>Happy programming!</P><P>Yours sincerely,</P><P>Mikhail.</P><P>PS: you can find code on GitHub here:</P><P><A href="https://github.com/lukcad/zorders.git" target="_blank" rel="noopener nofollow noreferrer">https://github.com/lukcad/zorders.git</A></P> 2024-04-24T10:50:40.906000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/5-easy-apps-that-can-be-created-right-away-using-joule-ai-assistant/ba-p/13680151 5 Easy apps that can be created right away using Joule AI Assistant 2024-04-26T03:36:30.013000+02:00 abhishekmodi https://community.sap.com/t5/user/viewprofilepage/user-id/7118 <P>This blog aims to:</P><UL><LI>Show how easy it is to create a working prototype using Joule AI</LI><LI>Create MVP in minutes using Joule AI</LI><LI>Explore the generated code</LI><LI>Explore some simple use cases</LI></UL><P>The GitHub links for source code are provided as well to study the code as it is generated by the AI assistant. If any of the below areas sound like a real use case then the project created is a great way to kickstart the dev activity. Again - we want to explore how much of code can be generated right away from the prompt that can serve as working MVP (Minimum Viable Product) as well.&nbsp;</P><P>Let's get started.</P><P>Open SAP Build Code - BAS and Press&nbsp;<SPAN>Win+Shift+P or Cmd+Shift+P to access the command pallet -&gt; New Project from Template. Click on the tile - Full-Stack Project.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-23 at 2.08.01 PM.png" style="width: 111px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/100687iAD367D120E921635/image-dimensions/111x113?v=v2" width="111" height="113" role="button" title="Screenshot 2024-04-23 at 2.08.01 PM.png" alt="Screenshot 2024-04-23 at 2.08.01 PM.png" /></span></SPAN></P><P>In the subsequent screens, fill the values for project specific details and click on Finish button. Once the template project loads completely, click on the Joule icon to launch the contexts on right hand side panel. Choose SAP Fiori UI -&gt; Create an SAP Fiori Application Directly from your Business Requirements and click on Open Joule button. Follow the below prompts for specific use cases.</P><H2 id="toc-hId-993386657"><SPAN>1. Use Case - Office Library App</SPAN></H2><H4 id="toc-hId-1055038590"><SPAN>Goal</SPAN></H4><P>To maintain the list of all books, journals and magazines within a small office library.</P><H4 id="toc-hId-858525085"><SPAN>Prompt</SPAN></H4><P><EM>"Create an app to maintain list of all books in office library with entities books and authors, where each book is linked to its author."</EM></P><H4 id="toc-hId-662011580"><SPAN>Output</SPAN></H4><P>We can see some famous books have been automatically added as mock data by Joule AI. It has author as separate entity as well, hence there is an association created automatically.&nbsp;</P><P><A href="https://github.com/amodi00/OfficeLibraryApp.git" target="_blank" rel="noopener nofollow noreferrer">Here</A> is the source code on git for reference.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 7.43.27 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102021i531C0601BE98FCC4/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 7.43.27 PM.png" alt="Screenshot 2024-04-25 at 7.43.27 PM.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 7.43.43 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102022iACEE0526A23CA6CD/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 7.43.43 PM.png" alt="Screenshot 2024-04-25 at 7.43.43 PM.png" /></span></P><H2 id="toc-hId-207332637"><SPAN>2. Use Case - Incident Tracking App</SPAN></H2><H4 id="toc-hId-268984570"><SPAN>Goal</SPAN></H4><P>To facilitate an app for customers to report incidents for technical issues</P><H4 id="toc-hId-72471065"><SPAN>Prompt</SPAN></H4><P><EM>"Create an app where customers can report incidents. Each incident includes replacement items, and each replacement is linked to a product, which has its own entity"</EM></P><H4 id="toc-hId--124042440"><SPAN>Output</SPAN></H4><P>The mock data generated in this case resembles very closely to real life incidents. This is again a great example of hierarchical data where the AI assistant has created automatically along with relevant association.&nbsp;</P><P><A href="https://github.com/amodi00/IncidentTrackingApp.git" target="_blank" rel="noopener nofollow noreferrer">Here</A> is the source code on git for reference.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 7.53.28 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102024i487A339DFF2B0C2A/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 7.53.28 PM.png" alt="Screenshot 2024-04-25 at 7.53.28 PM.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 7.53.42 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102023i1E7E464452F4845E/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 7.53.42 PM.png" alt="Screenshot 2024-04-25 at 7.53.42 PM.png" /></span></P><H2 id="toc-hId--578721383"><SPAN>3. Use Case - Payment Tracker App</SPAN></H2><P>To provide an app for external users - outside to organization to track their payments against their own invoice numbers (external invoice numbers)</P><H4 id="toc-hId--517069450"><SPAN>Prompt</SPAN></H4><P><EM>"Create an app to track the list of external invoices and payments made against them. Each invoice can have several line items which is linked to a product, which has its own entity.</EM>"</P><H4 id="toc-hId--1211300050"><SPAN>Output</SPAN></H4><P><SPAN>This is meant to be used by external users such as freight vendors who can login to system to check the status of their invoices. Since this is autogenerated MVP code, it won't be actually connected to the system to pull the statuses however it is a great code to start with.&nbsp;</SPAN></P><P><SPAN><A href="https://github.com/amodi00/PaymentTrackerApp.git" target="_blank" rel="noopener nofollow noreferrer">Here</A> is the source code on git for reference.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 8.04.34 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102026i2EE1295B0945319C/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 8.04.34 PM.png" alt="Screenshot 2024-04-25 at 8.04.34 PM.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 8.10.56 PM.png" style="width: 509px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102027i95F9156BC09870F6/image-dimensions/509x442?v=v2" width="509" height="442" role="button" title="Screenshot 2024-04-25 at 8.10.56 PM.png" alt="Screenshot 2024-04-25 at 8.10.56 PM.png" /></span></P><H2 id="toc-hId--821007541"><SPAN>4. Use Case - Employee Feedback App&nbsp;</SPAN></H2><H4 id="toc-hId--1604327060"><SPAN>Goal</SPAN></H4><P><SPAN>To create an app for the employees to log complaints and suggestions.&nbsp;</SPAN></P><H4 id="toc-hId--1800840565"><SPAN>Prompt</SPAN></H4><P><SPAN><EM>"Create an app to register complaints and suggestions from employee for an office floor</EM>"</SPAN></P><H4 id="toc-hId--1997354070"><SPAN>Output</SPAN></H4><P><SPAN><A href="https://github.com/amodi00/FeedbackApp.git" target="_blank" rel="noopener nofollow noreferrer">Here</A> is the source code on git for reference.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 8.20.04 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102030iD38D042A2EA05F57/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 8.20.04 PM.png" alt="Screenshot 2024-04-25 at 8.20.04 PM.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 8.20.23 PM.png" style="width: 412px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/102029iC8466158DE878052/image-dimensions/412x539?v=v2" width="412" height="539" role="button" title="Screenshot 2024-04-25 at 8.20.23 PM.png" alt="Screenshot 2024-04-25 at 8.20.23 PM.png" /></span></P><H2 id="toc-hId--1607061561"><SPAN>5. Use Case - Survey App</SPAN></H2><H4 id="toc-hId-1904586216"><SPAN>Goal</SPAN></H4><P><SPAN>To survey for a cafeteria in office to get an opinion on overall quality of service.</SPAN></P><H4 id="toc-hId-1708072711"><SPAN>Prompt</SPAN></H4><P><SPAN><EM>"Create an app to survey the quality of food in office cafeteria. The survey should include questions about quality, serving size, staff friendliness, weight time and overall experience.</EM>"</SPAN></P><H4 id="toc-hId-1511559206"><SPAN>Output</SPAN></H4><P><SPAN>Check out the generated source code <A href="https://github.com/amodi00/SurveyApp" target="_blank" rel="noopener nofollow noreferrer">here</A>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 12.37.43 PM.png" style="width: 354px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101965iA62379CD93CFD433/image-dimensions/354x410?v=v2" width="354" height="410" role="button" title="Screenshot 2024-04-25 at 12.37.43 PM.png" alt="Screenshot 2024-04-25 at 12.37.43 PM.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 12.37.26 PM.png" style="width: 590px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101966i07834F221414E824/image-dimensions/590x270?v=v2" width="590" height="270" role="button" title="Screenshot 2024-04-25 at 12.37.26 PM.png" alt="Screenshot 2024-04-25 at 12.37.26 PM.png" /></span></P><H4 id="toc-hId-1315045701"><SPAN>Conclusion</SPAN></H4><P><SPAN>Joule AI can help kickstart the MVP creating entities, associations, screens and mock data based on the context or user story provided. It may not provide the full end to end solution and the idea is not to provide full solution to a given use case since the definition varies a lot but to aid the developer to speed up the development activity.</SPAN></P><P><SPAN><a href="https://community.sap.com/t5/c-khhcw49343/SAP+Build+Code/pd-p/73555000100800004372" class="lia-product-mention" data-product="1208-1">SAP Build Code</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/Joule/pd-p/d0136351-8a9c-4881-aebc-bf414b785998" class="lia-product-mention" data-product="1207-1">Joule</a>&nbsp;<a href="https://community.sap.com/t5/c-khhcw49343/Artificial+Intelligence/pd-p/c3c3a408-33ea-4c2a-ae6f-05461e76982d" class="lia-product-mention" data-product="307-1">Artificial Intelligence</a>&nbsp;</SPAN></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-04-26T03:36:30.013000+02:00 https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/getting-down-to-business-with-ai-step-by-step-video-tutorials/ba-p/13682852 Getting down to business with AI: Step-by-step video tutorials 2024-04-29T10:56:09.993000+02:00 amycross https://community.sap.com/t5/user/viewprofilepage/user-id/3780 <P>AI is revolutionizing businesses by transforming the way they operate, make decisions, and interact with customers. With its ability to analyze vast amounts of data, AI enables you to gain valuable insights and make more informed decisions by automate repetitive tasks, improving efficiency, and upleveling productivity.&nbsp;<SPAN class=""><A href="https://www.sap.com/products/artificial-intelligence/what-is-generative-ai.html" target="_self" rel="noopener noreferrer"><SPAN class="">Generative</SPAN> </A><SPAN class=""><A href="https://www.sap.com/products/artificial-intelligence/what-is-generative-ai.html" target="_self" rel="noopener noreferrer">AI</A>, specifically,&nbsp;</SPAN><SPAN class="">enables</SPAN> <SPAN class="">completely</SPAN> <SPAN class="">new</SPAN> <SPAN class="">capabilities</SPAN> <SPAN class="">in</SPAN> <SPAN class="">business</SPAN> <SPAN class="">software, such as&nbsp;</SPAN><SPAN class="">creating</SPAN>&nbsp;<SPAN class="">new</SPAN> <SPAN class="">content</SPAN><SPAN class="">,</SPAN> <SPAN class="">summarizing&nbsp;</SPAN><SPAN class="">complex</SPAN> <SPAN class="">information,</SPAN> <SPAN class="">writing</SPAN>&nbsp;<SPAN class="">computer</SPAN> <SPAN class="">code</SPAN><SPAN class="">, reasoning</SPAN> <SPAN class="">through</SPAN> <SPAN class="">problems</SPAN><SPAN class="">,</SPAN> <SPAN class="">and</SPAN> <SPAN class="">more.</SPAN><SPAN class="">&nbsp;</SPAN></SPAN><SPAN class="">&nbsp;</SPAN></P><P><SPAN>Did you know that AI already exists in most of your SAP solutions?&nbsp;AI is already a central, integrated capability of our enterprise applications and business technology, used by tens of thousands of our cloud customers.</SPAN></P><P><SPAN>Learn how to activate and configure AI capabilities across&nbsp;your business with step-by-step video tutorials.</SPAN></P><P><STRONG>Source, Engage, and Hire the Right Talent with Agility</STRONG></P><P>By shifting the focus from job titles and degrees to a comprehensive understanding of employees’ skills, businesses can have a more accurate and efficient evaluation of talent across all levels. With the <A href="https://www.sap.com/products/artificial-intelligence/human-resources.html" target="_self" rel="noopener noreferrer">AI-assisted interview question generation and job description enhancement functionalities</A> in SAP SuccessFactors solutions, recruiters can now generate an enhanced job description and interview questions using the power of generative AI. In this episode of Getting Down to Business with AI, we'll take you through enabling the AI-assisted Content Generator in SAP SuccessFactors, configuring the job requisition fields, setting up the integration between SAP SuccessFactors and Microsoft 365, and enabling the interview alerts and assessment in Microsoft Teams</P><P><A href="https://www.sap.com/products/artificial-intelligence.html?video=6cd5b497-a27e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.15.51 PM.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101987iAF54FF32D8286B07/image-size/medium?v=v2&amp;px=400" role="button" title="Screenshot 2024-04-25 at 3.15.51 PM.png" alt="Screenshot 2024-04-25 at 3.15.51 PM.png" /></span></SPAN></A></P><P><A class="" title="Watch the video" href="https://www.sap.com/assetdetail/2023/12/6cd5b497-a27e-0010-bca6-c68f7e60039b.rc.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></P><DIV class=""><H5 id="toc-hId-1380701124">Quickly Resolve Finance Issues Before Payments</H5><P>Adding intelligent technology to the auditing process allows your team to review expenses more efficiently and reimburse employees faster. With greater visibility into spending, auditors can also hold employees accountable and resolve spending discrepancies before they become problems. SAP Concur solutions <A href="https://www.sap.com/products/artificial-intelligence/finance.html" target="_self" rel="noopener noreferrer">use AI to enhance and automate processes</A>, give auditors more visibility into spending, and protect your company’s bottom line. In this episode of Getting Down to Business with AI, we’ll take you through the configuration of AI in Verify, SAP Concur’s intelligent technology solution that streamlines processes, provides visibility into spending, and helps auditors to be more agile. Verify uses AI to analyze each item in expense reports and performs a series of checks for receipt and policy violations.</P></DIV><P><A href="https://www.sap.com/products/artificial-intelligence.html?video=905e8f7b-9b7e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.17.02 PM.png" style="width: 431px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101988iBF1A0F715B58EFB5/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 3.17.02 PM.png" alt="Screenshot 2024-04-25 at 3.17.02 PM.png" /></span></SPAN></A></P><P><A class="" title="Watch the video " href="https://www.sap.com/assetdetail/2023/11/905e8f7b-9b7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></P><H5 id="toc-hId-1184187619">Optimize Customer Relevance and Business Impact</H5><P class=""><SPAN>Intelligent selling service is a technology-driven approach to sales that<A href="https://www.sap.com/products/artificial-intelligence/sales.html" target="_self" rel="noopener noreferrer"> leverages AI to automate and optimize sales processes</A>. It improves product discovery and increases brand engagement, drives conversion rates and raises average order value, and increases customer satisfaction and loyalty. The AI-based Intelligent Selling Services for the SAP Commerce Cloud solution captures and analyzes behavioral data in real-time across each customer’s commerce journey to create individualized customer experiences, which are optimized for both customer relevance and business impact. In this episode of Getting Down to Business with AI, we'll take you through the configuration of AI-based selling services, how to validate the foundation and merchandising modules, introduce tracking to the storefront, define product mix and strategy, and insert the strategy in the shop page templates.</SPAN></P><P><A href="https://www.sap.com/products/artificial-intelligence.html?video=90f2b497-a27e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.19.22 PM.png" style="width: 431px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101989iA86075AF5C298050/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 3.19.22 PM.png" alt="Screenshot 2024-04-25 at 3.19.22 PM.png" /></span></SPAN></A></P><P><A class="" title="Watch the video" href="https://www.sap.com/assetdetail/2023/12/90f2b497-a27e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></P><H5 id="toc-hId-987674114">Tailor Recommendations, Save Costs, and Maintain Compliance with Guided Buying</H5><P class="">Giving employees a <A href="https://www.sap.com/products/artificial-intelligence/procurement.html" target="_self" rel="noopener noreferrer">personalized, guided experience when making purchases on the job</A> allows users to save their company costs, stay compliant with organizational policies, and expedite the entire procurement process. In this episode of Getting Down to Business with AI, we’ll walk through the configuration of the AI capabilities within SAP Ariba Guided Buying AI, where you can deliver item recommendations that are tailored, cost effective, and compliant. You’ll learn about setting up and managing parameters, and quantity requirements for recommendations and usage reports.</P><P class=""><A href="https://www.sap.com/products/artificial-intelligence.html?video=c0b777c7-ab7e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.21.34 PM.png" style="width: 433px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101990iC250648F698F65A3/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 3.21.34 PM.png" alt="Screenshot 2024-04-25 at 3.21.34 PM.png" /></span></A></P><P class=""><A class="" title="Watch the video" href="https://www.sap.com/assetdetail/2024/02/c0b777c7-ab7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></P><H5 id="toc-hId-791160609">Increasing Productivity and Product Quality</H5><P class="">Today’s manufacturing companies are not only looking to improve their overall first-pass yields and quality, but to also support continuous improvement programs that exist at the manufacturing-level. It’s not just about correcting things in line with the process, but how can larger corrective actions and workflows be applied around this process. AI-based Visual Inspection in SAP Digital Manufacturing is a feature that every manufacturing company is looking for. In this episode of Getting Down to Business with AI, we’ll take you through the configuration of Visual Inspection, the AI-based solution that defect detection to increase productivity on the shop floor, ensures product quality, and <A href="https://www.sap.com/products/artificial-intelligence/supply-chain.html#manufacture" target="_self" rel="noopener noreferrer">provides immediate added value</A> for manufacturing companies.</P><P class=""><A href="https://www.sap.com/products/artificial-intelligence.html?video=f6fbd4e9-9d7e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.22.47 PM.png" style="width: 430px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101991i4223D9E02EF829FA/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 3.22.47 PM.png" alt="Screenshot 2024-04-25 at 3.22.47 PM.png" /></span></A></P><P class=""><A class="" title="Watch the video" href="https://www.sap.com/assetdetail/2023/12/f6fbd4e9-9d7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></P><DIV class=""><DIV class=""><H5 id="toc-hId-594647104">Gain Confidence, Speed, and Agility with Intelligent Product Recommendations</H5><P class="">Manufacturers of complex configurable products often rely on the expertise of sales personnel to recommend the suitable product offering to their customers. This approach can be difficult to scale and result in a subpar buying experience for customers. In this episode of Getting Down to Business with AI, we’ll walk you through setting up the AI capabilities in SAP Industry Cloud with Intelligent Product Recommendations. You can <A href="https://www.sap.com/products/artificial-intelligence/industries.html" target="_self" rel="noopener noreferrer">recommend the optimal product</A> (configurable or standard) and default configuration along with commercial attributes, such as lead time and price.</P></DIV></DIV><DIV class=""><DIV class=""><DIV class=""><DIV class="">&nbsp;</DIV><DIV class="">&nbsp;<A href="https://www.sap.com/products/artificial-intelligence.html?video=dcaa77c7-ab7e-0010-bca6-c68f7e60039b" target="_self" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-04-25 at 3.23.48 PM.png" style="width: 430px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/101992i46E7AAB95A9F2319/image-size/large?v=v2&amp;px=999" role="button" title="Screenshot 2024-04-25 at 3.23.48 PM.png" alt="Screenshot 2024-04-25 at 3.23.48 PM.png" /></span></A></DIV><DIV class=""><A class="" title="Watch the video" href="https://www.sap.com/assetdetail/2024/02/dcaa77c7-ab7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Watch the video &gt;</A></DIV><DIV class="">&nbsp;</DIV><DIV class=""><SPAN>SAP gives customers </SPAN><A href="https://www.sap.com/products/artificial-intelligence.html" target="_self" rel="noopener noreferrer">AI capabilities embedded into SAP applications</A><SPAN>, empowering their business processes with AI that's as intuitive as it is flexible and powerful. Our Business AI capabilities enable smarter decisions and efficiencies at scale, while our unwavering commitment to responsibility ensures trust and compliance in every interaction.</SPAN></DIV><DIV class=""><P><EM>Interested in learning more?</EM></P><UL><LI><A href="https://www.sap.com/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer">Learn more about SAP Business AI</A></LI><LI><A href="https://www.sap.com/products/artificial-intelligence/ai-assistant.html" target="_blank" rel="noopener noreferrer">Meet Joule, SAP’s AI copilot</A></LI><LI><A href="https://www.sap.com/products/artificial-intelligence/what-is-generative-ai.html" target="_blank" rel="noopener noreferrer">What is generative AI?</A></LI></UL></DIV></DIV></DIV></DIV> 2024-04-29T10:56:09.993000+02:00 https://community.sap.com/t5/crm-and-cx-blogs-by-sap/welcome-to-the-product-inspiration-series-for-industries-amp-cx/ba-p/13697877 Welcome to the Product Inspiration Series for Industries & CX 2024-05-13T15:20:57.917000+02:00 SvenFeurer https://community.sap.com/t5/user/viewprofilepage/user-id/210 <P><EM><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GetReadyAndExperienceICXfrom SAP.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108782i8595B5B493A2E75B/image-size/large?v=v2&amp;px=999" role="button" title="GetReadyAndExperienceICXfrom SAP.png" alt="GetReadyAndExperienceICXfrom SAP.png" /></span></EM></P><P><EM>Curious to learn more about SAP Industries &amp; Customer Experience product innovations and seeing them in action? Then what we've prepared is exactly made for you. </EM></P><P>According to the motto "<STRONG>Get Ready and Experience Intelligent CX from SAP</STRONG>" we from the SAP product team are happy to invite you to the <STRONG>Industries &amp; CX Product Inspiration Series 2024</STRONG>.&nbsp;Starting in May we are planning to release multiple deep-dive videos made specifically for you, our dear customers, partners, colleagues and all SAP industries &amp; CX enthusiasts out there.</P><P>Each&nbsp;<STRONG>product inspiration video<SPAN>&nbsp;</SPAN></STRONG><SPAN>covers a specific domain of the&nbsp;</SPAN><SPAN class=""><STRONG>Intelligence CX</STRONG>&nbsp;portfolio by highlighting latest innovations and technologies used e.g.&nbsp;<STRONG>SAP Business AI </STRONG>powered scenarios&nbsp;along with&nbsp;<STRONG>Generative AI</STRONG> and <STRONG>SAP Joule</STRONG>.</SPAN></P><P><SPAN class="">By definition each video...</SPAN></P><UL><LI>does not contain any slides (<STRONG>zero slides rule</STRONG>),</LI><LI>covers specific <STRONG>innovations</STRONG> as part of the Intelligent CX portfolio,</LI><LI>is made from <STRONG>product and/or industry experts</STRONG> for experts,</LI><LI>typically starts with a short <STRONG>Q&amp;A</STRONG> at the beginning (why, what, how),</LI><LI>consists of <STRONG>deep-dive </STRONG>and/or <STRONG>process demos</STRONG>,</LI><LI>wants to <STRONG>inspire you&nbsp;</STRONG>by showcasing real software,</LI><LI>is produced in <STRONG>high quality</STRONG> to offer a jaw-dropping viewing experience,</LI><LI>helps you to understand the Industries &amp; CX <STRONG>product strategy</STRONG>,&nbsp;</LI><LI>and ultimately is <STRONG>made with love and dedication</STRONG> for you.</LI></UL><P>And here's the list of the first videos which made it through the finish line...</P><OL><LI><A href="https://www.sap.com/assetdetail/2024/04/404d571e-ba7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN class="">Introduction to the Video Series</SPAN></A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V0001 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111686iC018DE9CB8A4924E/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V0001 Thumbnail.png" alt="V0001 Thumbnail.png" /></span><BR /><BR /></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/3609bcb6-ba7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN class="">SAP Business AI powered SAP Sales and Service Cloud Version 2</SPAN></A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1002 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111687i6021C31C92E0F0D0/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1002 Thumbnail.png" alt="V1002 Thumbnail.png" /></span></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/4affbbb6-ba7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN class="">SAP Business AI powered SAP Emarsys Customer Engagement</SPAN></A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1003 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111688iD40D1C88E647C1BD/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1003 Thumbnail.png" alt="V1003 Thumbnail.png" /></span><BR /><BR /></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/b090b0b6-ba7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN class="">SAP Sales and Service Cloud Version 2 with SAP S/4HANA in Action</SPAN></A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1301 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111689iBA4D86695F5B541B/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1301 Thumbnail.png" alt="V1301 Thumbnail.png" /></span><BR /><BR /></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/4cd6b0b6-ba7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><SPAN class="">SAP CX AI Toolkit for Commerce</SPAN></A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1007 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111690i6EB5525B2DDCD633/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1007 Thumbnail.png" alt="V1007 Thumbnail.png" /></span><BR /><BR /></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/7c58ec57-bd7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">SAP Business AI powered SAP Intelligent Product Recommendation</A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1005 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/112181i40E2ED63539FE86C/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1005 Thumbnail.png" alt="V1005 Thumbnail.png" /></span><BR /><BR /></LI><LI><A href="https://www.sap.com/assetdetail/2024/05/5e12ff58-bd7e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">SAP Customer Data Platform and SAP Emarsys Integration Deep Dive</A><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="V1201 Thumbnail.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/112182i80A084EF394710EF/image-dimensions/400x225?v=v2" width="400" height="225" role="button" title="V1201 Thumbnail.png" alt="V1201 Thumbnail.png" /></span><BR /><BR /></LI></OL><P>We hope you like it and you're as excited as we are…</P><P>Enjoy and have fun!</P> 2024-05-13T15:20:57.917000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/technovation-summit-2024-expand-your-ai-and-btp-horizons/ba-p/13697831 Technovation Summit 2024: Expand your AI and BTP Horizons 2024-05-13T15:21:27.786000+02:00 ChrisGrundy https://community.sap.com/t5/user/viewprofilepage/user-id/171629 <P>This week the SAPinsider <A href="https://reg.eventmobi.com/technovation-summit-barcelona-2024-ai-sap-btp" target="_blank" rel="noopener nofollow noreferrer">Technovation Summit</A> will commence its inaugural event, with the topics of <A href="https://www.sap.com/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer">Artificial Intelligence</A> (AI) and <A href="https://www.sap.com/products/technology-platform.html" target="_blank" rel="noopener noreferrer">SAP Business Technology Platform</A> (BTP) the stars of the show. And following on just a few short months from the last SAPinsider EMEA conference, it will be great to see if the buzz and excitement around these two topics is just as palpable in Barcelona as it was in <A href="https://community.sap.com/t5/technology-blogs-by-sap/wonderful-wonderful-sap-btp-your-conference-guide-to-sapinsider-copenhagen/ba-p/13576363" target="_blank">Copenhagen</A>.</P><P>Technovation Summit 2024 is a 1.5-day event designed for anyone interested in AI or SAP BTP and offers an agenda rich in informational sessions and learning opportunities for any technology enthusiast seeking to expand their knowledge and understanding of the development, application and best practices in these two hot topics. And in addition to hearing from a wide range of speakers at the event, there will also be ample opportunity to network and dive into deeper technology discussions with technology experts and industry peers.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="280278_GettyImages-500050785_medium.jpg" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/108736i77B471D5BA85A9E6/image-size/medium?v=v2&amp;px=400" role="button" title="280278_GettyImages-500050785_medium.jpg" alt="280278_GettyImages-500050785_medium.jpg" /></span>Barcelona of course is a wonderful city location for an event like this. After spending a long day inside, absorbing all the sessions that one can fit into a day, building your knowledge and expanding your horizons of the potential that AI and BTP has to offer your business, what better place could there be to then relax and reflect on the day by taking the time to visit the beach, enjoy a city walk, or unwind and eat Tapas in one of the many tavernas on Las Ramblas, while marveling at the diverse and unique architecture.</P><H3 id="toc-hId-1123608099">6 of the Best for Barcelona</H3><P>The trouble with attending any event, is selecting which sessions to see that will prove to be of most value to you, especially when there are so many opportunities to learn new things. My advice is simple, try and plan as much in advance, and create your personal agenda as early as possible, so that when you get to the event you can spend less time planning and more time networking and seeking answers to the burning questions that are most important to you and your business. &nbsp;</P><P>So why don’t I help a little and start you off with some suggestions for your agenda. Let’s simply assume that everyone will plan to attend the day-1 and day-2 keynotes, to be delivered by <STRONG><EM>Iver van de Zand (14 May, 9:30am)</EM></STRONG> and <STRONG><EM>Prof. Marek Kowalkiewicz</EM> <EM>(15 May, 9:30am)</EM> </STRONG>who will share their own insights and experiences of AI, and in the case of Iver BTP too, setting the scene and the tone for each day of the summit. But after the keynotes, what next? Here are my personal 6 picks for Barcelona:</P><OL><LI><EM>Generating the Future: SAP Business AI and the Generative AI Roadmap, 14 May, 10:45am to 11:30am</EM></LI><LI><EM>AI Ethics – A Primer to Guide your Organization on the Opportunities and Risks, 14 May, 11:45am to 12:30pm</EM></LI><LI><EM>How to Automate Document Streams using SAP BTP and Machine Learning, 14 May, 1:30pm to 2:30pm</EM></LI><LI><EM>Case Study: Moving From On-Premises to The Cloud with SAP Integration Suite, 14 May, 3:00pm to 4:00pm</EM></LI><LI><EM>What's on your Mind? Maximize the Potential of SAP BTP &amp; AI, 14 May, 4:15pm to 5:00pm</EM></LI><LI><EM>What's on your Mind? Unveiling the Magic of Digital Transformation, 15 May, 11:45am to 12:30pm</EM></LI></OL><P>And, if you don’t mind, I’ll take a liberty and add one more to see. This isn’t strictly a session, but it will cover many topics that are BTP and AI related, and this is delivered in the form of a <STRONG><EM>BTP: Technology News Update</EM></STRONG><EM>, </EM>which will take place at the SAP booth during the<EM> <STRONG>networking break at 10:15 on 14 May</STRONG>. </EM>Please head to the booth to hear from our presenter Carles, and then network with the SAP onsite team to ask them any questions that spring to mind. Don’t be afraid to challenge them – they’ll appreciate you spending the time to talk with them!</P><P>Of course, these are just a few suggestions, and there are many more sessions available for you to select from the agenda. Why not take a look at the SAPinsider Technovation Summit website and look at the event <A href="https://reg.eventmobi.com/technovation-summit-barcelona-2024-ai-sap-btp/pages/Sessions" target="_blank" rel="noopener nofollow noreferrer">sessions list</A>, or even better download the SAPinsider2024 event app to your smart device (available on the App Store and Google Play) and to see a full list of available sessions, and to create your own personal agenda.</P><H3 id="toc-hId-927094594">Continue Your Learning After the Event</H3><P>While I’m sure you’ll enjoy your experience and learning opportunities in Barcelona, I expect that you’ll also want to continue your own personal learning journey after the event too. In this case why not explore other learning opportunities from SAP. For example, find out how to build software applications, side-by-side extensions, and integrations to and from cloud applications by exploring <A href="https://learning.sap.com/learning-journeys/discover-sap-business-technology-platform?url_id=text-sapcommunity-prdteng-BTP" target="_blank" rel="noopener noreferrer">SAP’s free learning content on SAP BTP</A>. It is made for both integration designers and extension developers from all levels of expertise and will help you stay up to date with the latest <A href="https://learning.sap.com/learning-journey/discover-sap-business-technology-platform?url_id=text-sapcommunity-prdteng-BTP" target="_blank" rel="noopener noreferrer">SAP BTP</A> innovations. And check out even more role-based learning resources and opportunities to get certified in one place on <A href="https://learning.sap.com/?url_id=text-sapcommunity-prdteng" target="_blank" rel="noopener noreferrer">SAP Learning site</A>.</P><P>For those of you travelling to Barcelona this week, I do hope that you find the SAPinsider Technovation Summit to be an informative and stimulating experience. My best wishes for safe travels, and I hope that you enjoy the event!</P><P>Chris Grundy</P><P>Product Marketing, SAP BTP</P> 2024-05-13T15:21:27.786000+02:00 https://community.sap.com/t5/technology-blogs-by-sap/develop-with-joule-in-sap-build-code/ba-p/13695326 Develop with Joule in SAP Build Code 2024-05-16T22:12:27.753000+02:00 ale_biagi https://community.sap.com/t5/user/viewprofilepage/user-id/7035 <P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AI-team-software-development-2048x1075.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107505i413D961E3FA33892/image-size/large?v=v2&amp;px=999" role="button" title="AI-team-software-development-2048x1075.jpg" alt="AI-team-software-development-2048x1075.jpg" /></span></P><P><FONT size="2"><SPAN>Authors:&nbsp;</SPAN><A href="https://community.sap.com/t5/user/viewprofilepage/user-id/7035" target="_self">@ale_biagi</A><SPAN>&nbsp;|&nbsp;</SPAN><A href="https://community.sap.com/t5/user/viewprofilepage/user-id/7022" target="_self">@YatseaLi</A></FONT></P><P>This blog post is part of a webinar series to show you how to explore the Generative AI capabilities of SAP AI Foundation on SAP BTP, along with proof of concepts in the form of use cases. You will have the opportunity to earn a knowledge badge with the title "<U><STRONG>Generative AI development with SAP BTP</STRONG></U>" by <SPAN class=""><SPAN>taking the <STRONG>first three</STRONG> sessions or <A href="https://partneredge.sap.com/en/library/education/products/btp/build/e_ep_use-cases_ai-foundation.html?#accordion-panel-section-libraryItem-descriptionSection-accordionitem_694022185" target="_self" rel="noopener noreferrer">replays</A> and passing its associated <A href="https://performancemanager.successfactors.eu/sf/learning?destUrl=https%3a%2f%2fsaplearninghub%2eplateau%2ecom%2flearning%2fuser%2fdeeplink%5fredirect%2ejsp%3flinkId%3dPROGRAM%5fDETAILS%26programID%3dPE%5fKB%5fGEN%5fAI%5fBTP%5fWA%26fromSF%3dY&amp;company=learninghub" target="_self" rel="nofollow noopener noreferrer">web assessment</A></SPAN></SPAN></P><H4 id="toc-hId-1252626405"><A href="https://partneredge.sap.com/en/library/education/psd/2024/mar/e_oe_te_w_PSD_WEB_00005664.html" target="_self" rel="noreferrer noopener"><SPAN class="">Replay: Develop with Joule in SAP Build Code</SPAN></A></H4><P><SPAN class=""><SPAN>Here we will explore Generative AI-based code development using <STRONG>Joule in SAP Build Code</STRONG> with a sample use case, following the <STRONG>Clean Core</STRONG> approach and <STRONG>extending SAP S/4HANA Cloud</STRONG> with <STRONG>side-by-side extensibility</STRONG>.</SPAN></SPAN></P><P><SPAN class=""><SPAN>Here you will find the source code of the final solution developed in SAP Build Code with the assistance of Joule:&nbsp;<A href="https://github.com/SAP-samples" target="_blank" rel="author nofollow noopener noreferrer">SAP-samples&nbsp;</A>/&nbsp;<STRONG><A href="https://github.com/SAP-samples/btp-generative-ai-hub-use-cases/tree/main/03-develop-with-joule-in-sap-build-code" target="_blank" rel="nofollow noopener noreferrer">develop-with-joule-in-sap-build-code</A></STRONG></SPAN></SPAN></P><H2 id="toc-hId-797947462"><SPAN class=""><SPAN>Why Generative AI-based Code Development matters?</SPAN></SPAN></H2><P>Let’s start by reviewing why&nbsp;<STRONG>Generative AI-based Code Development </STRONG>matters nowadays, especially in the context of the SAP ecosystem.</P><H3 id="toc-hId-730516676">The Developers Dilemma</H3><P>A recent research from IDC shows that <STRONG>developers spend only 20% of their time</STRONG> doing what they’re supposed to do: <STRONG>develop high quality business applications</STRONG>. The other 80% are spent performing peripheral overhead activities. This has a huge impact on their productivity.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_0-1715177298186.png" style="width: 736px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107551iD339A784906028BD/image-dimensions/736x414?v=v2" width="736" height="414" role="button" title="ale_biagi_0-1715177298186.png" alt="ale_biagi_0-1715177298186.png" /></span></P><P>Developers wear many different hats.&nbsp; Instead of spending their time coding developers are having to spend more time performing tests, implementing CI/CD, fine tuning performance and making sure the application is secure.&nbsp; All of this is necessary to create resilient applications, but in the end all developers want to be more productive and produce applications more efficiently.</P><P>Developers are more productive when they have the proper tools at their fingertips, when they can easily access data, and when they can reduce or eliminate tedious tasks.&nbsp;</P><P>To make a developer more productive, it comes at a cost.&nbsp; Developers need to implement a solution to handle CI/CD, another tool to access API’s, another tool to do transport management and they are always looking at ways to eliminate repetitive tasks. These are ways to increase developer productivity, but it comes at a cost when looking at solutions that come from multiple vendors to support development.</P><P>So, what is SAP doing to help with the Total Cost of Development and the Total Cost of Ownership when looking for application and extension development? That's exactly what we will discuss in the upcoming paragraphs.</P><H3 id="toc-hId-534003171">How does this dilemma affect the SAP ecosystem?</H3><P>All of you should have already noticed that the <STRONG>core </STRONG><STRONG>of</STRONG> <STRONG>SAP’s</STRONG> <STRONG>strategy</STRONG>, lies in the <STRONG>Case for Cloud</STRONG> led by the <STRONG>Cloud ERP</STRONG> and its peripheral cloud solutions, powered by the <STRONG>Business Technology Platform</STRONG> as their foundation and driving force.</P><P>Such core strategy is executed through two main global programs:<STRONG>&nbsp;</STRONG></P><UL><LI><STRONG>RISE with SAP</STRONG>: focused on the installed base and private cloud;</LI><LI><STRONG>GROW with SAP</STRONG>: focused on net new names and public cloud</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_2-1715177900894.png" style="width: 740px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107562iA7F21DC80C9D3337/image-dimensions/740x333?v=v2" width="740" height="333" role="button" title="ale_biagi_2-1715177900894.png" alt="ale_biagi_2-1715177900894.png" /></span></P><P>So, what are the biggest <STRONG>roadblocks</STRONG> and <STRONG>challenges</STRONG> when executing this strategy?</P><P>For the cases of <STRONG>brown-field conversion</STRONG>, we noticed that technology-driven organizations have historically built on top of standard functionality to extend the capability to meet business needs. However, continuing to maintain <STRONG>decades-old technology</STRONG> now limits benefits and increases the cost of adopting new technologies.</P><P>Organizations cannot drive the next level of business transformation while carrying significant technical debt, because they are slower to innovate, more expensive to run and upgrade, and riskier to operate.</P><P>And for the cases of <STRONG>green-field implementation</STRONG>, what would be the challenge, then?</P><P>Thinking in terms of a <STRONG>cloud mindset</STRONG>, the concept of <STRONG>fit-to-standard</STRONG> should be applied in most of the cases whenever possible, leveraging the high flexibility provided by cloud solutions regarding configurations and personalization. When it’s not possible, a quick implementation for rapid turnaround of digital transformation should rely on the <STRONG>fast development of new loosely coupled solution extensions</STRONG>.</P><H3 id="toc-hId-337489666">SAP's approach to fast-paced Cloud ERP innovation</H3><P>And here is where the <STRONG>Clean Core Concept</STRONG> comes into play!</P><P>Such concept is essentially based in four main principles:</P><UL><LI><SPAN>First, every solution extension should be built as a <STRONG>loosely coupled service</STRONG> instead of a tightly coupled monolithic application</SPAN></LI><LI>Then, when building such services, as they’re loosely coupled, they’re supposed to <STRONG>extend the transactions from the backend system</STRONG> instead of modifying them in terms of either data and code</LI><LI>To do so, it’s imperative to <STRONG>strictly consume officially released APIs</STRONG> from the backend system, thus ensuring that changes to the core do not affect extensions as those APIs are maintained by SAP and backwards compatibility is guaranteed. This opens the path for continuous innovation through constant upgrades.</LI><LI>And last, but not least, by building extensions in a <STRONG>multi-tenant approach</STRONG> the extended functionality can benefit several customers with one single code-base.</LI></UL><P>By envisioning this concept as the <STRONG>backbone for continuously evolved cloud software</STRONG>, SAP has provided several tools and technologies in the last couple of years to make it reality for its customers and partners (such as <STRONG>UI5</STRONG>, the <STRONG>Cloud Application Programing Model</STRONG> framework – both NodeJS and Java – coupled with the <STRONG>SAP Cloud SDK</STRONG> – also NodeJS and Java – and the <STRONG>ABAP Cloud</STRONG> with its RESTfull Application Programming model approach).</P><P>All of this has been done so that <STRONG>brown-field</STRONG> ERP migrations can <STRONG>clean-up the backend system core&nbsp;</STRONG>and <STRONG>green-field</STRONG> new implementations <STRONG>do not touch the core</STRONG>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_3-1715178715374.png" style="width: 743px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107568i3A4887B078DDC108/image-dimensions/743x351?v=v2" width="743" height="351" role="button" title="ale_biagi_3-1715178715374.png" alt="ale_biagi_3-1715178715374.png" /></span></P><P>In the context of <STRONG>S/4HANA </STRONG><STRONG>extensibility</STRONG>, we have basically two scenarios: <STRONG>Core </STRONG><STRONG>Solution</STRONG> <STRONG>Extensions</STRONG> (also known as <STRONG>On</STRONG><STRONG>-Stack</STRONG> or <STRONG>In-App</STRONG> Extensions), which run in the same stack of the ERP and the so called <STRONG>Side-by-Side</STRONG> <STRONG>Extensions</STRONG>, running on BTP. I guess you all have already heard about it, right?</P><P>In the On-Stack Extensibility we have the <STRONG>Classic </STRONG><STRONG>Extensibility</STRONG>, which usually modifies transactions’ code and data, and, consequently, is <STRONG>not</STRONG><STRONG> clean core</STRONG>.</P><P>For a <STRONG>clean core approach</STRONG> with start with the <STRONG>Key </STRONG><STRONG>User</STRONG> <STRONG>Extensibility</STRONG> provided by an extensive set of core personalization functionalities and, on top of those, we add the so called <STRONG>Developer</STRONG> <STRONG>Extensibility</STRONG> which is achieved through the <STRONG>Embedded</STRONG> <STRONG>Steampunk</STRONG> – that can be described as an <STRONG>On</STRONG><STRONG>-Stack ABAP </STRONG><STRONG>environment</STRONG> – leveraging <STRONG>ABAP’s</STRONG> <STRONG>RESTfull</STRONG> <STRONG>Application</STRONG> <STRONG>Programming</STRONG><STRONG> Model </STRONG>(in short RAP).</P><P>For the <STRONG>sibe-by-side</STRONG> <STRONG>extensibility</STRONG> powered by <STRONG>SAP BTP</STRONG> (which is <STRONG>clean core by nature</STRONG>), we rely on the broad spectrum of development tools provided by <STRONG>SAP Build</STRONG> and <STRONG>SAP Build </STRONG><STRONG>Code</STRONG> (which is the focus of this post), and the <STRONG>BTP ABAP </STRONG><STRONG>Environment</STRONG>.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_5-1715179088189.png" style="width: 753px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107571i1E43640CD3A0F0B5/image-dimensions/753x385?v=v2" width="753" height="385" role="button" title="ale_biagi_5-1715179088189.png" alt="ale_biagi_5-1715179088189.png" /></span></P><H3 id="toc-hId-140976161">The dynamics of Generative AI into SAP ecosystem</H3><P>Now, coming down to the <STRONG>Generative AI</STRONG> topic, here’s how we envision its dynamics into the SAP ecosystem.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_6-1715179806608.png" style="width: 741px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107577i4B753C212D91C61A/image-dimensions/741x418?v=v2" width="741" height="418" role="button" title="ale_biagi_6-1715179806608.png" alt="ale_biagi_6-1715179806608.png" /></span></P><P>The first thing that will change for customers (and SAP) is that we will <STRONG>use GenAI to Build Code</STRONG>. For customers that have legacy applications the typical strategy is to “do nothing”. Do nothing has the advantage of being low effort, but the downside is that it is high risk. Keeping old school applications rife with technical debt and disconnected to other business processes allows digital natives to leapfrog and disrupt your business. The second approach is to use traditional software development approach powered by humans. This is high effort and high risk: it is also really expensive. The third approach is to infuse Generative AI into software development process which we characterize as medium effort and medium risk.&nbsp; As time goes on our intuition this will become table stakes for all organizations. It is really what sets Generative AI apart from traditional ML in terms of disruption and economic value.</P><P>The second thing that is going to change is <STRONG>analytics</STRONG>: Generative AI is going to be table stakes for analytical applications. SAP cleverly acquired Ask Data over 2 years ago, and we are close to fully embedding it into SAC and as a pattern within Joule. We will see incredible capabilities emerge within SAC and other embedded analytical capabilities in the near future.&nbsp;&nbsp;&nbsp;</P><P>In <STRONG>enterprise applications</STRONG> Generative AI will emerge as a critical capability that powers automation, assistants, and agents. The most obvious example is Joule as an assistant that will power our major LoBs including Success Factors and SAP S/4HANA Cloud (Public Edition and Private Editions).</P><P>In this post we will focus on the first and clearly important vertical.&nbsp;For more information about the <STRONG>Generative AI topic in the SAP ecosystem</STRONG>, please refer to <A href="https://partneredge.sap.com/en/library/education/psd/2024/jan/e_oe_te_w_PSD_WEB_00004648.html" target="_self" rel="noopener noreferrer"><STRONG>this link</STRONG></A>.</P><H2 id="toc-hId--184620063">Overview on SAP Build Code and its Generative AI Capabilities</H2><P>Since it's general availability announcement on March 27th, a lot of good content has been produced about the outstanding capabilities of SAP Build Code. To avoid "reinventing the wheel" we've compiled a short list of selected blog posts describing the many features of SAP Build Code:</P><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/announcing-general-availability-of-sap-build-code-speed-up-development-with/bc-p/13650754" target="_self">Announcement of SAP Build Code</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-build-sap-build-code-when-generative-ai-comes-to-help/ba-p/13584227" target="_self">SAP Build Code - When Generative AI comes to help!</A></LI><LI><A href="https://community.sap.com/t5/application-development-blog-posts/test-drive-joule-s-generative-ai-features-in-sap-build-code-now/ba-p/13649882" target="_self">Test Drive of SAP Build Code</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/joule-in-sap-build-code/ba-p/13576765" target="_self">Joule in SAP Build Code</A></LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-members/sap-build-code-blog-series-1-welcome-to-the-lobby/ba-p/13646093" target="_self">SAP Build Code Blog Series</A></LI></UL><P>We strongly recommend you read through those posts before proceeding with this one. You can also view the <A href="https://partneredge.sap.com/en/library/education/psd/2024/mar/e_oe_te_w_PSD_WEB_00005664.html" target="_self" rel="noopener noreferrer"><STRONG>session replay</STRONG></A> for the live SAP Build Code overview.</P><H3 id="toc-hId--252050849">The Paradigm Shift of Programming with Natural Language</H3><P>So, there’s no doubt that Generative AI will bring a <STRONG>new paradigm </STRONG>to the context of software development within the SAP ecosystem by introducing <STRONG>Natural Language</STRONG> into the <STRONG>programming process.</STRONG></P><P>To understand this paradigm shift, let’s picture a simple ERP migration to the cloud scenario where we usually have a bunch of tightly-coupled classic extensions which have to be converted into clean core extensions.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_0-1715181822085.png" style="width: 757px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107589i5AB45E180F67FD7A/image-dimensions/757x350?v=v2" width="757" height="350" role="button" title="ale_biagi_0-1715181822085.png" alt="ale_biagi_0-1715181822085.png" /></span></P><P>In such context we usually have one or more <STRONG>product or business or process owners</STRONG> (in our case here, Mary) reviewing such extensions and making specifications in natural language.</P><P>Mary, then, passes those specifications to John (the developer), who refine them by transforming them into prompts, and, in SAP BTP, there’s the SAP Build Code subscription containing the <STRONG>Joule copilot</STRONG> to which John passes the prompts. Based on such prompts Joule is able to generate the application’s data model, service definition, test data, Fiori elements UI and business logic as well as unit test scripts to test the logic.</P><P>Finally, using a <STRONG>one-click approach</STRONG>, John can <STRONG>deploy</STRONG> the application to either Cloud Foundry or Kyma.</P><H3 id="toc-hId--448564354">The Flow of the New Paradigm</H3><P>Now, let’s take a look into the flow of such process. So, Mary starts by reviewing functionality of legacy on-stack classic extensions in brown-field scenarios or defining new solutions requirements in green-field scenarios. In both cases she prepares the specifications in <STRONG>natural language</STRONG></P><P>Here’s where John come into play, reviewing Mary’s specifications. He, then, performs <STRONG>prompt engineering</STRONG> (now called <STRONG>code generation prompt engineering</STRONG>) to prepare for the solution development.</P><P>Next, he enters the prompts in Joule,&nbsp;<SPAN>reviews and accepts (or not) the code, refining the prompts if necessary,<STRONG>&nbsp;</STRONG></SPAN><SPAN>does manual adjustments and some additional coding if required (and yes, there’s manual work in the process!), performing unit tests -&nbsp;</SPAN>these three steps are repeated until the desired outcome is achieved -&nbsp;and, finally, john deploys the solution handing it over back to Mary who’s responsible for the final testing and approval.</P><H2 id="toc-hId--774160578">Development Use Case - Customer Loyalty Management App for Retailers</H2><P>Well, for this post we designed an inspiring <STRONG>Use Case</STRONG> to showcase the development process with <STRONG>Joule in SAP Build Code </STRONG>in action. This use case is about a customer loyalty program management app for retailers, let’s start by understanding the business scenario:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_0-1715191974809.png" style="width: 759px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107664i3B880B13B0885832/image-dimensions/759x370?v=v2" width="759" height="370" role="button" title="ale_biagi_0-1715191974809.png" alt="ale_biagi_0-1715191974809.png" /></span></P><P>The business scenario is a customer loyalty program management application for the business partners who make purchases in retailers. It’s a quite simple scenario managed by three personas:</P><OL><LI>The first one is <STRONG>Mary</STRONG>, an <STRONG>ERP administrator</STRONG> who manages products and business partners in&nbsp; S/4HANA Cloud which provides information to the second persona...</LI><LI><STRONG>Jane</STRONG>, a <STRONG>loyalty program manager</STRONG> responsible for providing additional loyalty program data and monitoring purchases and redeemed rewards through an S/4 extension.</LI><LI>Finally, there’s <STRONG>Watson</STRONG>, a <STRONG>customer</STRONG> (actually a business partner in S/4) who basically makes purchases of selected S/4 products and redeems the corresponding rewards.</LI></OL><H3 id="toc-hId--916822733">Solution Architecture</H3><P>Now, let’s see how to design a solution architecture foundation to cover this business scenario:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_1-1715192275082.png" style="width: 752px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107666iDC3D2AAAE6E3F1E4/image-dimensions/752x328?v=v2" width="752" height="328" role="button" title="ale_biagi_1-1715192275082.png" alt="ale_biagi_1-1715192275082.png" /></span></P><P>On one side we have the <STRONG>SAP Business Technology Platform</STRONG>, hosting Cloud Foundry and Kyma run-times and, on the other, there’s the SAP Cloud Solutions with <STRONG>S/4HANA Cloud</STRONG> being one of them.</P><P>As previously mentioned, the ERP admin manages <STRONG>products</STRONG> and <STRONG>business partners</STRONG> in S/4HANA Cloud. Our Customer Loyalty solution extension is deployed to SAP BTP (in our case in Cloud Foundry) using <STRONG>SAP HANA Cloud</STRONG> as data persistence and reading Products and Business Partners from S/4HANA Cloud via <STRONG>Destination</STRONG>.</P><P>Finally, the Customer Loyalty Manager and the Customer can access the solution through a desktop or mobile device.</P><P>The <STRONG>highlighted CAP application</STRONG> is the solution extension that we will develop with <STRONG>SAP Build Code</STRONG> with the assistance of <STRONG>Joule</STRONG> throughout this post.</P><H3 id="toc-hId--1113336238">Fusion Development Approach</H3><P>This architecture can be alternatively extended to leverage a UI built with <STRONG>SAP Build Apps</STRONG> instead of a standard Fiori UI. In this case, the <STRONG>CAP service is exposed</STRONG> as OData to SAP Build Apps via <STRONG>Destination</STRONG>. This is what we call <STRONG>Fusion Development</STRONG>:&nbsp;a combination of low-code/no-code citizen development with pro-code development.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_2-1715192950221.png" style="width: 745px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107671i1C52FADBFBF49BCF/image-dimensions/745x272?v=v2" width="745" height="272" role="button" title="ale_biagi_2-1715192950221.png" alt="ale_biagi_2-1715192950221.png" /></span></P><P>In this post we will focus on the <STRONG>first approach</STRONG>: Fiori Elements UI.</P><H3 id="toc-hId--1309849743">Demo of the Finished Product</H3><P><SPAN>Now, let’s have a look at a live demo of the Customer Loyalty Management application in action:</SPAN></P><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FKFOHVXx8uQg&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DKFOHVXx8uQg&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FKFOHVXx8uQg%2Fhqdefault.jpg&amp;key=b0d40caa4f094c68be7c29880b16f56e&amp;type=text%2Fhtml&amp;schema=youtube" width="400" height="225" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><H2 id="toc-hId--1212960241">Build the Use Case with Generative AI-based Code Development</H2><H3 id="toc-hId--1702876753">Implementation Steps</H3><P>Now that we got to know the generative AI-base code development with Joule in SAP Build Code, let’s have a look at the implementation steps that will be examined one by one in detail in the upcoming paragraphs.</P><OL><LI>We will start with a short demo on how to setup SAP Build Code in your SAP BTP global account</LI><LI>The first block of steps essentially relies on automatic code generation powered by Joule. The steps of this block are:<OL class="lia-list-style-type-lower-alpha"><LI>Build and Run the initial base CAP application…</LI><LI>Generate NodeJS code for business logic and unit tests…</LI><LI>Generate Fiori UI Apps through wizards and enhanced by Joule</LI></OL></LI><LI>The last block is focused on manual coding. Here we will:<OL class="lia-list-style-type-lower-alpha"><LI><SPAN>Manually enhance the app to integrate with S/4HANA Cloud and...</SPAN></LI><LI>Refine the data model and some annotations with manual code.</LI></OL></LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ale_biagi_0-1715198563578.png" style="width: 757px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/107722iB35BF52816DBC774/image-dimensions/757x385?v=v2" width="757" height="385" role="button" title="ale_biagi_0-1715198563578.png" alt="ale_biagi_0-1715198563578.png" /></span></P><P>The above steps are quite well demonstrated in a series of <STRONG>hands-on videos</STRONG> listed below (or you can choose to view the <A href="https://partneredge.sap.com/en/library/education/psd/2024/mar/e_oe_te_w_PSD_WEB_00005664.html" target="_self" rel="noopener noreferrer"><STRONG>session replay</STRONG></A> to watch them in sequence):</P><UL><LI><A href="https://youtu.be/R_bt59hSIaQ" target="_blank" rel="noopener nofollow noreferrer">On-boarding</A><UL><LI><STRONG>Auto Code Generation</STRONG><UL><LI><EM><STRONG>Build &amp; Run the Initial App</STRONG></EM><UL><LI><A href="https://youtu.be/HmaN3SIuuyc" target="_blank" rel="noopener nofollow noreferrer">Create Project</A></LI><LI><A href="https://youtu.be/LAGSGjGIHJ4" target="_blank" rel="noopener nofollow noreferrer">Data Model &amp; Service</A></LI><LI><A href="https://youtu.be/2ibK0zXC8rE" target="_blank" rel="noopener nofollow noreferrer">Sample Data &amp; Run</A></LI></UL></LI><LI><EM><STRONG>Generate Business Logic &amp; Unit Test</STRONG></EM><UL><LI><A href="https://youtu.be/Y3OrzR1vLUw" target="_blank" rel="noopener nofollow noreferrer">Business Logic</A></LI><LI><A href="https://youtu.be/9NP3cDSkOVY" target="_blank" rel="noopener nofollow noreferrer">Unit Tests</A></LI></UL></LI><LI><EM><STRONG>Generate UI Apps</STRONG></EM><UL><LI><A href="https://youtu.be/DXl1wZmn25w" target="_blank" rel="noopener nofollow noreferrer">Generate Fiori Elements App</A></LI><LI><A href="https://youtu.be/SQtQhpjyv7A" target="_blank" rel="noopener nofollow noreferrer">Generate Free Style UI App</A></LI></UL></LI></UL></LI><LI><STRONG>Manual Coding</STRONG><UL><LI><EM><STRONG>SAP S/4HANA Cloud Integration</STRONG></EM><UL><LI><A href="https://youtu.be/UphNx-atPak" target="_blank" rel="noopener nofollow noreferrer">Add S/4 BP Resource</A></LI><LI><A href="https://youtu.be/EiyezALdx74" target="_blank" rel="noopener nofollow noreferrer">Data Model Enhancement</A></LI><LI><A href="https://youtu.be/P42e0APLPbY" target="_blank" rel="noopener nofollow noreferrer">Service Enhancement</A></LI><LI><A href="https://youtu.be/99xXKK5E4QY" target="_blank" rel="noopener nofollow noreferrer">UI Adaptation</A></LI><LI><A href="https://youtu.be/8G6oSCk3fqc" target="_blank" rel="noopener nofollow noreferrer">Live Data Config</A></LI><LI><A href="https://youtu.be/JNo7Udss-qc" target="_blank" rel="noopener nofollow noreferrer">UI Enhancement</A></LI></UL></LI><LI><A href="https://youtu.be/pwbo3SwLQdY" target="_blank" rel="noopener nofollow noreferrer">Manual Enhancement</A></LI></UL></LI></UL></LI></UL><H2 id="toc-hId--1605987251">Best Practices of Code Development with Joule in SAP Build Code</H2><P>To get the best from SAP Build Code, here are some best practices that can be considered.</P><P>As we have seen in the previous demos, the structured guided development process with proven best practices has been innate in SAP Build Code, which we should follow throughout the whole development lifecycle.</P><P>The Storyboard allows you to develop applications using graphical editors and wizards. Use the Storyboard as the entry point to all the artifacts of the project.</P><P>In terms of UI, SAP Build Code provides the wizard templates for UI App creation, and the awesome graphical page editor for UI annotation. Use these wizards and graphical page editor instead of Joule for UI.</P><P>When using Joule in SAP Build Code, here’s a list of some best practices for<STRONG> prompt engineering</STRONG>:</P><UL><LI>As a rule of thumb for prompt engineering, the more <STRONG>specific</STRONG>, <STRONG>descriptive</STRONG>, and <STRONG>detailed</STRONG> the prompts are, the <STRONG>better</STRONG> are the <STRONG>results</STRONG> they yield.</LI><LI>Use <STRONG>explicit constraints</STRONG> (e.g. when to use simple associations or compositions in entity relationships).</LI><LI>For Data Modelling, please <STRONG>avoid</STRONG> using <STRONG>technical CDS terms</STRONG> in the Data Model description, such as aspect, enumeration, code list etc. which will be filtered by Joule.</LI><LI><STRONG>Do not include</STRONG> any detail about the <STRONG>application logic</STRONG> in the <STRONG>Data Model</STRONG>, as it will be ignored by Joule.</LI><LI>In the application logic for <STRONG>actions</STRONG> and <STRONG>unit tests</STRONG>, give detailed information on <STRONG>how data is passed</STRONG> into the request.</LI><LI>For <STRONG>unit tests</STRONG>, provide the <STRONG>appropriate data</STRONG> for positive and negative cases to make sure the tests pass accordingly.</LI><LI><STRONG>Always review</STRONG> the generated code or data, regenerate if necessary, iterate and fine-tune the prompt as much as needed.</LI><LI>And last, but not least, it doesn’t matter how much you try to be the most precise and perfect in your prompts, there will be always situations when editing the code directly will be quite more quicker and effective.</LI></UL><P>Still in the prompt engineering topic, when you are not sure how to get started on the solution and need some inspirations, here are some tips:</P><UL><LI>Get inspiration with the target <STRONG>solution name</STRONG> and its <STRONG>entities</STRONG> in Joule (e.g. “Create a customer loyalty management app with customer, purchase and reward redemption entities”). Joule will automatically generate <STRONG>5 fields for each entity</STRONG>, so you can take it from here to enhance it further.</LI><LI>Alternatively,&nbsp; ask another LLM chatbot (e.g. <STRONG>Prompt Editor of SAP Generative AI Hub</STRONG>, <STRONG>ChatGPT</STRONG>, etc.) to describe the entities relationship of your solution as an inspiration for data model description(e.g. "Describe the the entities relationship model for customer loyalty management solution"), and edit the generated entities relationship if needed. Then pass it to Joule in SAP Build Code as the prompt for generating the data model.<span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Describe Entity Relationship with Prompt Editor in SAP Generative AI Hub" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111302iCAF8E3E82BD88DB2/image-size/large?v=v2&amp;px=999" role="button" title="Promt_Editor_ER.jpg" alt="Describe Entity Relationship with Prompt Editor in SAP Generative AI Hub" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Describe Entity Relationship with Prompt Editor in SAP Generative AI Hub</span></span><P>&nbsp;</P></LI></UL><H2 id="toc-hId--1802500756">Findings Summary of CAP Development with Joule in SAP Build Code</H2><P>Here’s a brief summary of findings gathered during the development process of the customer loyalty extension, with short recommendations. You will notice that only the modification of the business logic and its corresponding unit tests is done with pure manual coding. All the rest can be achieved with full or partial assistance from Joule combined with the productivity tools and some possible manual coding. Our <STRONG>conclusion</STRONG> is that <STRONG>SAP Build Code proves in practice that it’s truly capable of turbocharging software development</STRONG> especially in the context of the SAP ecosystem</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Findings Summary" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/111304i8A03A205C669E82C/image-size/large?v=v2&amp;px=999" role="button" title="Fing_Summary_updated.jpg" alt="Findings Summary" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Findings Summary</span></span></P><H2 id="toc-hId--1999014261">Conclusions and Takeaways</H2><P>These are the main takeaways we foresee when applying this new development paradigm in the context of the SAP ecosystem, by turbocharging software development&nbsp; leveraging SAP Build Code with the assistance of Joule Copilot:</P><UL><LI>Speed-up migration of legacy on-stack extensions to the cloud following the Clean Core principles</LI><LI>Safeguard technology investments by avoiding vendor lock-in and reducing TCO</LI><LI>Take advantage of a learning opportunity to quickly adopt industry standard technology and the new natural language programming paradigm</LI><LI>Accelerate time-to-market with quick prototyping and monetization of solution extensions</LI><LI>And last, but not least, prepare for fast-paced future innovations peculiar to cloud software either in the backend system and in the extensions themselves</LI></UL><H2 id="toc-hId-2099439530">Frequent Asked Questions:</H2><P>During our webinar sessions, there are quite a number of questions have been raised. Here summarize the the most frequent asked questions and answers.</P><P><STRONG>Q1: Can we use Joule to refactor an existing CAP project?</STRONG></P><P><STRONG>Answer</STRONG><SPAN>: Not as of 14 May 2024. However, the new feature of Refactoring existing CAP code using generative AI is under development and scheduled for Q2 of 2024. </SPAN><SPAN><BR /></SPAN><SPAN>It allows developers using Joule to generate SAP Cloud Application Programming Model (CAP) data models, application logic, and unit tests to:</SPAN></P><UL><LI>Add or remove an entity</LI><LI>Add, modify, or remove the properties of entities</LI><LI>Create or remove associations between entities</LI><LI>Get more support on a service projection definition</LI></UL><P><SPAN>&nbsp;Please find more detail <A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;range=CURRENT-LAST#Q2%202024;INNO=4B1ACEFEF2C91EDEB9D0FFD56DB789FE" target="_self" rel="noopener noreferrer">here</A>. </SPAN></P><P><STRONG>Q2: Can the classic CAP NodeJS application(not generated by Joule) leverage the productivity tools such as Story Board, Page Editor etc.?</STRONG></P><P><STRONG>Answer</STRONG><SPAN>:&nbsp; As of 14 May 2024, the productivity tools is now only available in SAP Build Code. However, it will be also available in SAP Business Application Studio for classic CAP NodeJS Application development, which is planned for Q2 2024. Please check <A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;range=CURRENT-LAST#Q2%202024;INNO=139B28CB2E8C1EDEA7AF7FCF6DEFA26E" target="_self" rel="noopener noreferrer">here</A> for more detail. </SPAN></P><P><STRONG>Q3</STRONG>: <STRONG>Can I use Joule in SAP Build Code for CAP Java Application development?</STRONG></P><P><STRONG>Answer</STRONG><SPAN>: As of 14 May 2024, only CAP NodeJS Application development is supported with Joule in SAP Build Code. However, CAP Java Application development is planned in Q3 2024. Please check <A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;q=java&amp;range=CURRENT-LAST#;INNO=D5DC47561FA21EDEB58FCC2E2488A770" target="_self" rel="noopener noreferrer">here</A> for more detail. </SPAN></P><P><STRONG>Q4: How can I jump start with SAP Build Code? </STRONG></P><P><STRONG>Answer: </STRONG><SPAN>Please follow <A href="https://developers.sap.com/mission.sap-build-code-test-drive.html" target="_self" rel="noopener noreferrer">this developer tutorial</A> to have a test drive with SAP Build Code. </SPAN></P><P><STRONG>Q5: What license do I need to use SAP Build Code? Do I need SAP Generative AI Hub in my SAP BTP Global Account for it?</STRONG><BR /><STRONG>Answer</STRONG>: You will just need the license and entitlement of SAP Build Code in your SAP BTP account to use it. No extra license required.</P><P>SAP Build Code is available on <STRONG>Trial </STRONG>and the <STRONG>Free-tier</STRONG> plan of SAP BTP for free evaluation, and commercially available through <STRONG>SAP BTPEA</STRONG> and <STRONG>Pay-As-You-Go</STRONG> for production. For partners, it is also available in <STRONG>TDD</STRONG> license.</P><P><STRONG>Q6: What are the differences between SAP Build Code and SAP Business Application Studio? </STRONG></P><P><STRONG>Answer: </STRONG>SAP Build Code is built on top of SAP Business Application Studio with <STRONG>generative AI capabilities</STRONG> for code generation, <STRONG>guided development</STRONG> and <STRONG>end-to-end unified development experience</STRONG> of SAP solution and extension.&nbsp; It offers unparalleled efficiency and effectiveness in application development.</P><P><STRONG>Q7: What is the future of SAP Business Application Studio? We have seen the evolution of SAP Web IDE, then SAP Business Application Studio, Now SAP Build Code.<BR /></STRONG></P><P><STRONG>Answer: </STRONG>SAP Business Application Studio remain as a separated product for development of&nbsp; classic CAP application, Fiori application, mobile application development etc. It will be also evolved and improved overtime. For example, The productivity tools such as Story Board, New Fiori Template Wizard and Page Editor will be also available in Business Application Studio to improve the developer efficiency and experience. However, the generative-AI capabilities are exclusively available in SAP Build Code. Please check its <A href="https://roadmaps.sap.com/board?range=CURRENT-LAST&amp;PRODUCT=67837800100800007077#Q2%202024" target="_self" rel="noopener noreferrer">roadmap</A> for more detail.</P><P><STRONG>Q8: When should I choose SAP Build Code? And When should I use ABAP side-by-side or On-stack extensibility for Clean Core development? </STRONG></P><P><STRONG>Answer: </STRONG>It is not a simple answer, which depends on the use case and technical capability of the team. Here you have use case pattern of SAP S/4HANA Cloud extension in high-level.</P><P><STRONG>On-Stack Extensibility:</STRONG></P><UL><LI>Adapt SAP Standard applications(UI, Custom Field, Custom Data Model) through public extension point</LI><LI>Full-stack application or new integration in embedded steampunk with public local API</LI></UL><P><STRONG>Side-by-Side Extensibility:</STRONG></P><UL><LI>Full-stack application: single tenant, multi-tenant SaaS, hub scenario.</LI><LI>Mobile applications</LI><LI>Process Automation among multiple systems</LI></UL><P><SPAN>Please to go through </SPAN><A href="https://help.sap.com/docs/sap-btp-guidance-framework/extension-architecture-guide/what-is-extension-architecture-guide" target="_self" rel="noopener noreferrer"><STRONG>Extension Architecture Guide </STRONG></A><SPAN>for more details.</SPAN>&nbsp;</P><P><STRONG>Q9: Will be similar generative-AI capability available for ABAP?</STRONG><BR /><STRONG>Answer</STRONG>: Yes. Similar <STRONG>generative-AI capability </STRONG>is planned for ABAP Cloud. Please stay tuned.</P><P><STRONG>Q10: Is it Clean Core only applicable with side-by-side extensibility? How about On-Stack extensibility?</STRONG><STRONG>Answer: </STRONG>Not, Clean Core can be through both On-Stack extensibility and Side-by-Side extensibility.</P><P><STRONG>Q11: Is there any plan to make extension development easier for SAP S/4HANA Cloud with SAP Build Code?<BR />Answer: </STRONG>There are some features planned in SAP Build Code about closer integration with ABAP, such as:</P><UL><LI><A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;range=CURRENT-LAST&amp;q=bapi#Q3%202024;INNO=ABC1893F1B121EEEB9BD9D89D2AE9F00" target="_self" rel="noopener noreferrer">Enabling remote function call consumption</A></LI><LI><A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;q=abap&amp;range=CURRENT-LAST#;INNO=4B1ACEFEF2C91EDEB9BD7CA30CD289F1" target="_self" rel="noopener noreferrer">Generation of services in ABAP RESTful application programming model for building extensions</A></LI><LI><A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;q=abap&amp;range=CURRENT-LAST#;INNO=452DD1C72D3A1EEEB9BD8C4B7EFE18F5" target="_self" rel="noopener noreferrer">Generation of services in ABAP RESTful application programming model from business objects in SAP S/4HANA</A></LI><LI><A href="https://roadmaps.sap.com/board?PRODUCT=73555000100800004515&amp;range=CURRENT-LAST&amp;q=abap#Q3%202024" target="_self" rel="noopener noreferrer">more</A> ...</LI></UL><H2 id="toc-hId-1902926025">Additional Material</H2><P>In this final section, we have compiled additional materials you can check, in order to deepen your knowledge on this topic:</P><H3 id="toc-hId-1581193204">Generative AI at SAP</H3><UL><LI><U><A href="https://open.sap.com/courses/genai1" target="_blank" rel="noopener noreferrer">OpenSAP</A></U><U><A href="https://open.sap.com/courses/genai1" target="_blank" rel="noopener noreferrer"> Course | Generative AI with SAP</A></U></LI><LI><A href="https://pages.community.sap.com/topics/machine-learning" target="_blank" rel="noopener noreferrer">SAP Community | Artificial Intelligence and Machine Learning at SAP</A></LI><LI><A href="https://www.sap.com/products/artificial-intelligence.html" target="_blank" rel="noopener noreferrer">SAP Global Site | SAP Business AI</A></LI></UL><H3 id="toc-hId-1384679699">SAP Build Code</H3><UL><LI><U><A href="https://www.sap.com/products/technology-platform/developer-tools.html" target="_blank" rel="noopener noreferrer">SAP Global Site | SAP Build Code</A></U></LI><LI><U><A href="https://pages.community.sap.com/topics/build-code" target="_blank" rel="noopener noreferrer">SAP Community | SAP Build Code</A></U></LI><LI><U><A href="https://help.sap.com/docs/build_code/d0d8f5bfc3d640478854e6f4e7c7584a/504854f457cc4fbf9f79136dbc773618.html" target="_blank" rel="noopener noreferrer">SAP Help Portal | SAP Build Code</A></U></LI><LI><U><A href="https://discovery-center.cloud.sap/serviceCatalog/sap-build-code?service_plan=standard&amp;region=all&amp;commercialModel=cloud" target="_blank" rel="noopener nofollow noreferrer">Discovery Center | SAP Build Code</A></U></LI><LI><U><A href="https://developers.sap.com/tutorial-navigator.html?tag=software-product%3Atechnology-platform%2Fsap-build-code%2Fsap-build-code" target="_blank" rel="noopener noreferrer">SAP Developers Portal | SAP Build Code Tutorials &amp; Missions </A></U></LI></UL><H3 id="toc-hId-1188166194">Additional Materials of this session</H3><UL><LI><U><A href="https://github.com/SAP-samples/btp-generative-ai-hub-use-cases/tree/main/03-develop-with-joule-in-sap-build-code" target="_blank" rel="noopener nofollow noreferrer">Customer Loyalty Program App – GitHub repository</A></U></LI><LI><U><A href="https://performancemanager.successfactors.eu/sf/learning?destUrl=https%3a%2f%2fsaplearninghub%2eplateau%2ecom%2flearning%2fuser%2fdeeplink%5fredirect%2ejsp%3flinkId%3dPROGRAM%5fDETAILS%26programID%3dPE%5fKB%5fGEN%5fAI%5fBTP%5fWA%26fromSF%3dY&amp;company=learninghub" target="_blank" rel="noopener nofollow noreferrer">Web Assessment to earn the Knowledge badge of "</A><A href="https://performancemanager.successfactors.eu/sf/learning?destUrl=https%3a%2f%2fsaplearninghub%2eplateau%2ecom%2flearning%2fuser%2fdeeplink%5fredirect%2ejsp%3flinkId%3dPROGRAM%5fDETAILS%26programID%3dPE%5fKB%5fGEN%5fAI%5fBTP%5fWA%26fromSF%3dY&amp;company=learninghub" target="_blank" rel="noopener nofollow noreferrer">Generative AI development with SAP BTP</A>"</U></LI><LI><U><SPAN class=""><SPAN><A href="https://partneredge.sap.com/en/library/education/products/btp/build/e_ep_use-cases_ai-foundation.html?#accordion-panel-section-libraryItem-descriptionSection-accordionitem_694022185" target="_self" rel="noopener noreferrer">Replays of the series about&nbsp;Augment your SAP BTP Use Cases with AI Foundation </A></SPAN></SPAN></U></LI></UL> 2024-05-16T22:12:27.753000+02:00