<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Let's Secure Access]]></title><description><![CDATA[Security with Purpose. Secure by Design.]]></description><link>https://www.idsingh.com</link><image><url>https://substackcdn.com/image/fetch/$s_!T0V_!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d4dc21e-c99e-4fd2-aa34-f1e8d7f7d037_608x608.png</url><title>Let&apos;s Secure Access</title><link>https://www.idsingh.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 03 Aug 2026 19:08:37 GMT</lastBuildDate><atom:link href="https://www.idsingh.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[IdSingh]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[idsinghs@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[idsinghs@substack.com]]></itunes:email><itunes:name><![CDATA[IdSingh]]></itunes:name></itunes:owner><itunes:author><![CDATA[IdSingh]]></itunes:author><googleplay:owner><![CDATA[idsinghs@substack.com]]></googleplay:owner><googleplay:email><![CDATA[idsinghs@substack.com]]></googleplay:email><googleplay:author><![CDATA[IdSingh]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Audit Controls for HR Security and Payroll]]></title><description><![CDATA[A Consolidated Control Matrix for Testing Access Governance and Payroll Processing in SAP S/4HANA]]></description><link>https://www.idsingh.com/p/audit-controls-for-hr-security-and</link><guid isPermaLink="false">https://www.idsingh.com/p/audit-controls-for-hr-security-and</guid><dc:creator><![CDATA[IdSingh]]></dc:creator><pubDate>Tue, 07 Jul 2026 19:19:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VOOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Payroll sits at the intersection of two related risks. One is a security risk: who can create an employee, change a pay rate, or release a payroll run. The other is a processing risk: whether time worked, payroll calculations, and disbursements are complete, accurate, and posted in the right period. Rather than testing these as two separate programs, the matrix below brings all forty-eight underlying controls together in a single sequence, following the employee and pay cycle from hire through disbursement and master-data maintenance, while still tagging each control by domain (Security or Payroll) so the type of risk it addresses, and who typically owns it, remains clear at a glance.</p><p style="text-align: justify;">Security-tagged controls are preventive and largely automated: they restrict, at the system level, who can touch HR and payroll data in the first place, and are tested by querying user access (transaction codes and authorization objects) against job responsibilities. Payroll-tagged controls are management is actively reviewing the results of the process, master-data listings, time-evaluation reports, payroll simulations, and disbursement reconciliations and resolving any exceptions found. A single point of access failure and a single missed management review represent different failure modes, so the domain tag stays attached to every row even though the controls are now tested and reported together.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.idsingh.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Let's Secure Access! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong><span>Consolidated Control Matrix</span></strong></h1><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VOOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VOOR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 424w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 848w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 1272w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VOOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png" width="817" height="1029" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1029,&quot;width&quot;:817,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141962,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/205923266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VOOR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 424w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 848w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 1272w, https://substackcdn.com/image/fetch/$s_!VOOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F909d9261-2d45-4157-89d0-c8e8e5f0b31f_817x1029.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tL9D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tL9D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 424w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 848w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 1272w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tL9D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png" width="819" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/adab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:819,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112775,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/205923266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tL9D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 424w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 848w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 1272w, https://substackcdn.com/image/fetch/$s_!tL9D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadab28e1-3bb6-46c2-97fb-fbfb838298b7_819x830.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1><strong><span>Reading the Matrix</span></strong></h1><p>Every control in the matrix is documented the same way, no matter which domain it belongs to. You get a plain description of what the control is supposed to do, whether it&#8217;s meant to prevent a problem or catch one after the fact, whether a person or the system is doing the work, how risky it is, and a quick summary of how to test it. In the full working paper, each row also points to the exact test step and evidence tab where the sampling and results live and wraps up with a simple call: effective or not. If a control doesn&#8217;t hold up, the paper doesn&#8217;t just note that and move on, it records what went wrong, any backup control that&#8217;s catching the risk in the meantime, and management&#8217;s plan and deadline to fix it. That finding stays open until someone actually goes back and confirms the fix worked.</p><p>Read straight through, the matrix basically tells the story of one pay period, start to finish. HR1 makes sure the people being added to the system are real employees. HR2 makes sure the people leaving are actually taken off. HR3 through HR5 check that hours worked are captured in full and on time. HR6 is about the payroll run itself making sure it&#8217;s controlled properly and that only the right people can trigger it. HR7 checks that what employees were actually paid matches what was recorded. And HR8 ties it all together by confirming that changes to master data keep getting reviewed and that no one person can do too much on their own.</p><div><hr></div><h3><strong>Disclaimer</strong></h3><p><strong>This article is provided for educational and informational purposes only.</strong><span> Organizations should assess their own business, security, and compliance requirements before making any authorization or access control decisions.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.idsingh.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Let's Secure Access! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[SAP Fiori Catalog Creation : A Complete Step-by-Step Tutorial]]></title><description><![CDATA[Fiori Authorisation Design with help of the details points]]></description><link>https://www.idsingh.com/p/sap-fiori-catalog-creation-a-complete</link><guid isPermaLink="false">https://www.idsingh.com/p/sap-fiori-catalog-creation-a-complete</guid><dc:creator><![CDATA[IdSingh]]></dc:creator><pubDate>Mon, 22 Jun 2026 08:31:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nZ3k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>1. What is an SAP Fiori Catalog? </h2><p>An <strong>SAP Fiori Catalog</strong> is a collection of tiles (app shortcuts) grouped together and made available to users on the SAP Fiori Launchpad. Think of it as a curated &#8220;app library&#8221; &#8212; you define which apps belong together, configure their navigation targets, and then expose them to specific users through roles and authorization.</p><p>A catalog is the <strong>backbone</strong> of the Fiori Launchpad experience. Without a properly configured catalog:</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.idsingh.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Let's Secure Access! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Users won&#8217;t see tiles on the Launchpad</p></li><li><p>Navigation between apps (semantic object routing) won&#8217;t work</p></li><li><p>Backend OData services won&#8217;t be authorized correctly</p></li></ul><div><hr></div><h2>2. Key Terminology &amp; Quick Reference</h2><p>Before diving into the steps, familiarize yourself with these key values used throughout the process:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nZ3k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nZ3k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 424w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 848w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 1272w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nZ3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png" width="1049" height="575" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:575,&quot;width&quot;:1049,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99454,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/203056144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nZ3k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 424w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 848w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 1272w, https://substackcdn.com/image/fetch/$s_!nZ3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390c9c0b-87d0-4642-8039-d7932d401535_1049x575.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>3. End-to-End Process Overview </h2><p>The entire catalog creation process spans <strong>12 logical steps</strong> across <strong>3 phases</strong>:</p><pre><code><code>Step 1  &#8594; Fiori App Library (find your target app)
Step 2  &#8594; Collect App Details (Semantic Object, Action, OData service)
Step 3  &#8594; Plan IDs (catalog ID, tile ID, target mapping ID)
Step 4  &#8594; Create Transport Request (SE10)
Step 5  &#8594; Create Catalog (/UI2/FLPD_CUST)
Step 6  &#8594; Add Business Catalog as Reference
Step 7  &#8594; Configure Target Mapping
Step 8  &#8594; Create Space &amp; Page (/UI2/FLP)
Step 9  &#8594; Create PFCG Role (PFCG)
Step 10 &#8594; Add OData Services (IWSG + IWSV)
Step 11 &#8594; Generate Profile &amp; Assign to User
Step 12 &#8594; Test on Launchpad</code></code></pre><blockquote><p><strong>Critical Rule:</strong> Every step that creates or modifies configuration <strong>must be linked to a Transport Request</strong> before saving. Never skip this changes without a transport can&#8217;t be moved to production.</p></blockquote><div><hr></div><h2>4. Phase 1 &#8211; Design: Launchpad Designer </h2><p><strong>T-Code:</strong> <code>/UI2/FLPD_CUST</code></p><p>This phase involves creating your catalog and configuring the tile that users will see.</p><h3>Step 1: Research in the Fiori App Library</h3><p>Before touching any T-Code, go to the <strong>SAP Fiori Apps Reference Library</strong> (apps.sap.com/fiori) and search for your target app. You need to collect:</p><ul><li><p>The <strong>Semantic Object</strong> (e.g., <code>InternalSales</code>)</p></li><li><p>The <strong>Semantic Action</strong> (e.g., <code>displayOverviewPage</code>)</p></li><li><p>The <strong>OData Service name</strong> (e.g., <code>SD_F2200_OVP_ISR_SRV</code>)</p></li><li><p>The <strong>SAP Business Catalog</strong> it belongs to (e.g., <code>SAP_SD_BC_SALES_OVP_DISPL</code>)</p></li></ul><h3>Step 2: Plan Your IDs</h3><p>Before creating anything, plan your naming convention:</p><ul><li><p><strong>Catalog ID</strong>: Use a <code>Z_</code> prefix (e.g., <code>Z_MY_SALES_CATALOG</code>)</p></li><li><p><strong>Transport Request</strong>: Create this first via SE10</p></li></ul><h3>Step 3: Create the Transport Request</h3><p><strong>T-Code:</strong> <code>SE10</code></p><ol><li><p>Open SE10</p></li><li><p>Click <strong>Create</strong></p></li><li><p>Select <strong>Workbench Request</strong> or <strong>Customizing Request</strong> as appropriate</p></li><li><p>Give it a description: <code>"Fiori Catalog - My Sales Overview"</code></p></li><li><p>Save and note down the transport number (e.g., <code>DEVK900123</code>)</p></li></ol><blockquote><p>You will need this transport number at every subsequent step.</p></blockquote><h3>Step 4: Open Launchpad Designer</h3><p><strong>T-Code:</strong> <code>/UI2/FLPD_CUST</code></p><ol><li><p>Navigate to <code>/UI2/FLPD_CUST</code> (Launchpad Designer &#8212; Customer Scope)</p></li><li><p>You&#8217;ll see the <strong>Catalogs</strong> section on the left panel</p></li><li><p>Click the <strong>&#8220;+&#8221;</strong> icon to create a new catalog</p></li></ol><h3>Step 5: Create a New Catalog</h3><ol><li><p>Enter your <strong>Catalog ID</strong> (e.g., <code>Z_MY_SALES_CATALOG</code>)</p></li><li><p>Enter a <strong>Title</strong> (e.g., <code>My Sales Overview Catalog</code>)</p></li><li><p>When prompted, assign it to your <strong>Transport Request</strong> created in SE10</p></li><li><p>Save the catalog</p></li></ol><h3>Step 6: Add the SAP Business Catalog as a Reference</h3><p>This is the key step where the tile gets created:</p><ol><li><p>Inside your newly created catalog, click <strong>&#8220;Add Reference&#8221;</strong></p></li><li><p>Search for the SAP business catalog: <code>SAP_SD_BC_SALES_OVP_DISPL</code></p></li><li><p><strong>Drag and drop</strong> the business catalog into your catalog area</p></li><li><p>This automatically creates a <strong>tile</strong> referencing the SAP standard app</p></li></ol><blockquote><p><strong>Why a reference?</strong> Using a reference (instead of a copy) means your tile stays in sync with SAP updates. The tile points back to the SAP catalog rather than duplicating it.</p></blockquote><h3>Step 7: Configure the Target Mapping</h3><p>Target Mappings define <strong>where the tile navigates to</strong> when clicked.</p><ol><li><p>In Launchpad Designer, click on <strong>Target Mappings</strong> tab within your catalog</p></li><li><p>Click <strong>&#8220;+&#8221;</strong> to add a new target mapping</p></li><li><p>Fill in:</p><ul><li><p><strong>Semantic Object</strong>: <code>InternalSales</code></p></li><li><p><strong>Action</strong>: <code>displayOverviewPage</code></p></li><li><p><strong>Application Type</strong>: <code>SAPUI5 Application</code></p></li><li><p><strong>Application ID</strong>: (your Fiori app ID)</p></li></ul></li><li><p>Assign to Transport Request</p></li><li><p>Save</p></li></ol><div><hr></div><h2>5. Phase 2 &#8211; Layout: Space &amp; Page Management </h2><p><strong>T-Code:</strong> <code>/UI2/FLP</code></p><p>After creating the catalog and its tiles, you need to define <strong>where on the Launchpad</strong> the tiles will appear. This is done through Spaces and Pages.</p><h3>Understanding Spaces &amp; Pages</h3><ul><li><p>A <strong>Space</strong> is like a tab or section on the Launchpad (e.g., &#8220;Sales&#8221; tab)</p></li><li><p>A <strong>Page</strong> lives inside a Space and holds the actual tile layout</p></li><li><p>Users see Spaces as navigation items; they see Pages as the content within each Space</p></li></ul><h3>Step 8: Create a Space</h3><p><strong>T-Code:</strong> <code>/UI2/FLP</code></p><ol><li><p>Navigate to <code>/UI2/FLP</code></p></li><li><p>Click <strong>Spaces</strong> in the menu</p></li><li><p>Click <strong>&#8220;New&#8221;</strong> to create a Space</p></li><li><p>Enter:</p><ul><li><p><strong>Space ID</strong>: <code>Z_SALES_SPACE</code></p></li><li><p><strong>Title</strong>: <code>Sales</code></p></li></ul></li><li><p>Assign to Transport Request</p></li><li><p>Save</p></li></ol><h3>Step 9: Create a Page within the Space</h3><ol><li><p>Inside the Space you just created, click <strong>&#8220;New Page&#8221;</strong></p></li><li><p>Enter:</p><ul><li><p><strong>Page ID</strong>: <code>Z_SALES_PAGE</code></p></li><li><p><strong>Title</strong>: <code>Sales Overview</code></p></li></ul></li><li><p>In the page layout editor, click <strong>&#8220;Add Section&#8221;</strong></p></li><li><p>Within the section, click <strong>&#8220;Add Tile&#8221;</strong></p></li><li><p>Search for and select the tile from your catalog (<code>Z_MY_SALES_CATALOG</code>)</p></li><li><p>Arrange the tile layout as desired</p></li><li><p>Assign to Transport Request</p></li><li><p>Save</p></li></ol><div><hr></div><h2>6. Phase 3 &#8211; Authorization: PFCG Role Setup</h2><p><strong>T-Code:</strong> <code>PFCG</code></p><p>This is arguably the most critical phase. Without proper role configuration, users won&#8217;t be able to access the app even if the tile appears on the Launchpad.</p><h3>Step 10: Create a New Role in PFCG</h3><p><strong>T-Code:</strong> <code>PFCG</code></p><ol><li><p>Open PFCG (Profile Generator)</p></li><li><p>Enter a new <strong>Role Name</strong>: <code>Z_MY_SALES_OVERVIEW_ROLE</code></p></li><li><p>Click <strong>&#8220;Single Role&#8221;</strong> and press Enter</p></li><li><p>Give it a <strong>Description</strong>: <code>"Role for My Sales Overview Fiori App"</code></p></li><li><p>Save and assign to Transport Request</p></li></ol><h3>Step 11: Add the Space to the Role (Menu Tab)</h3><ol><li><p>In PFCG, go to the <strong>Menu</strong> tab</p></li><li><p>Click <strong>&#8220;Transaction&#8221;</strong> &#8594; <strong>&#8220;SAP Fiori Tile&#8221;</strong></p></li><li><p>Or click the <strong>&#8220;Fiori&#8221;</strong> button to add Fiori apps directly</p></li><li><p>Add your Space: <code>Z_SALES_SPACE</code></p></li><li><p>Save</p></li></ol><h3>Step 12: Add OData Services (Authorization Tab)</h3><p>This is the step many beginners miss. The tile appears but the app throws errors if OData services aren&#8217;t authorized.</p><ol><li><p>In PFCG, go to the <strong>Authorizations</strong> tab</p></li><li><p>Click <strong>&#8220;Change Authorization Data&#8221;</strong></p></li><li><p>You will add <strong>two types</strong> of OData services:</p></li></ol><h4>Frontend OData Service (IWSG)</h4><ol><li><p>In the Authorization Object search, find <code>S_SERVICE</code> (OData service authorization)</p></li><li><p>Add a new entry with:</p><ul><li><p><strong>Service Type</strong>: <code>IWSG</code> (Frontend Server Group)</p></li><li><p><strong>Service Name</strong>: The service group associated with your app</p></li></ul></li><li><p>This generates an <code>S_SERVICE</code> authorization object for frontend access</p></li></ol><h4>Backend OData Service (IWSV)</h4><ol><li><p>Add another <code>S_SERVICE</code> entry with:</p><ul><li><p><strong>Service Type</strong>: <code>IWSV</code> (Backend OData Service)</p></li><li><p><strong>Service Name</strong>: <code>SD_F2200_OVP_ISR_SRV</code></p></li></ul></li><li><p>This authorizes the backend service call</p></li></ol><blockquote><p><strong>Why two types?</strong> SAP Fiori has a two-tier architecture:</p><ul><li><p><strong>Frontend (IWSG)</strong> handles the UI5 app delivery from the Frontend Server</p></li><li><p><strong>Backend (IWSV)</strong> handles the data retrieval from the Backend (ECC/S/4HANA) Both must be authorized separately.</p></li></ul></blockquote><h3>Step 13: Generate the Profile and Assign to User</h3><ol><li><p>After adding all authorizations, click <strong>&#8220;Generate&#8221;</strong> (the shield icon)</p></li><li><p>Give the profile a name (usually auto-suggested based on role name)</p></li><li><p>Click <strong>&#8220;Generate&#8221;</strong> to create the authorization profile</p></li><li><p>Go to the <strong>User</strong> tab in PFCG</p></li><li><p>Enter the <strong>User ID</strong> of the user who should receive access</p></li><li><p>Set a <strong>validity date range</strong></p></li><li><p>Click <strong>&#8220;User Comparison&#8221;</strong> to sync the role to the user</p></li><li><p>Save</p></li></ol><div><hr></div><h2>7. T-Code Cheat Sheet </h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dMiC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dMiC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 424w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 848w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 1272w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dMiC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png" width="1038" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:1038,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/203056144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dMiC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 424w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 848w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 1272w, https://substackcdn.com/image/fetch/$s_!dMiC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72296cdc-fd99-4bbe-bff2-30b1d2fc2107_1038x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>8. Interview Answer Framework </h2><p>When asked <em>&#8220;How do you create an SAP Fiori Catalog?&#8221;</em> in an interview, structure your answer using this <strong>3-Phase Framework</strong>:</p><div><hr></div><h3>Phase 1 &#8211; Design</h3><blockquote><p><em>&#8220;I open Launchpad Designer using </em><code>/UI2/FLPD_CUST</code><em>, create a new catalog, search for the relevant SAP Business Catalog (e.g., </em><code>SAP_SD_BC_SALES_OVP_DISPL</code><em>), and drag it in as a reference tile. I also configure the Target Mapping with the Semantic Object and Action so the tile knows where to navigate.&#8221;</em></p></blockquote><h3>Phase 2 &#8211; Layout</h3><blockquote><p><em>&#8220;I then go to </em><code>/UI2/FLP</code><em> to create a Space and a Page. I add the tile from my catalog into the Page, which makes it visible on the Launchpad when the user logs in.&#8221;</em></p></blockquote><h3>Phase 3 &#8211; Authorization</h3><blockquote><p><em>&#8220;Finally, I create an ABAP role in </em><code>PFCG</code><em>, add the Space to the Menu tab, and then add both the IWSG (frontend) and IWSV (backend) OData service authorizations. This generates the required </em><code>S_SERVICE</code><em> authorization objects. I generate the profile and assign the role to the user.&#8221;</em></p><p><strong>Always end with:</strong> <em>&#8220;And every step is linked to a Transport Request before saving, so changes can be properly transported to Quality and Production.&#8221;</em></p></blockquote><div><hr></div><h2>9. Common Mistakes to Avoid </h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kLPQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kLPQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 424w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 848w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 1272w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kLPQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png" width="1040" height="879" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:879,&quot;width&quot;:1040,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:171647,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/203056144?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kLPQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 424w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 848w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 1272w, https://substackcdn.com/image/fetch/$s_!kLPQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428a45b1-56c0-44c6-9c53-983fef313e5c_1040x879.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Summary</h2><p>SAP Fiori Catalog creation follows a clear 3-phase approach:</p><ol><li><p><strong>Design</strong> (<code>/UI2/FLPD_CUST</code>) &#8594; Create catalog, add reference tile, configure Target Mapping</p></li><li><p><strong>Layout</strong> (<code>/UI2/FLP</code>) &#8594; Create Space and Page so the tile appears on the Launchpad</p></li><li><p><strong>Authorization</strong> (<code>PFCG</code>) &#8594; Create role, add Space, authorize IWSG + IWSV OData services, generate profile, assign to user</p></li></ol><p>Master these three phases, know your 5 T-Codes in point no 7, and always remember to link every change to a Transport Request and you&#8217;ll be well-prepared for both real-world implementation and interview questions on SAP Fiori Catalog creation.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.idsingh.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Let's Secure Access! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[SAP ERP Sytem Audit Essentials: Identifying and Controlling Critical Authorizations]]></title><description><![CDATA[High-Risk Authorization Objects in SAP]]></description><link>https://www.idsingh.com/p/sap-erp-sytem-audit-essentials-identifying</link><guid isPermaLink="false">https://www.idsingh.com/p/sap-erp-sytem-audit-essentials-identifying</guid><dc:creator><![CDATA[IdSingh]]></dc:creator><pubDate>Fri, 12 Jun 2026 12:30:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mlrn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>SAP systems are the backbone of most organizations, supporting critical business functions such as Finance, Human Resources, Procurement, Manufacturing, and Supply Chain operations. Because of their central role, they also become attractive targets for unauthorized access, fraud, and operational misuse.</strong></p><p>Often, security risks do not arise from sophisticated cyberattacks but from excessive or poorly controlled access. A user may be able to schedule background jobs under another user&#8217;s ID, a developer may retain access to production after a project is completed, or a temporary administrative authorization may remain assigned long after its intended purpose has ended. These seemingly minor oversights can create significant security, compliance, and audit concerns.</p><p>Regular SAP security audits play a crucial role in identifying such risks before they lead to data breaches, unauthorized system changes, segregation-of-duties conflicts, or business disruptions.</p><p>This article highlights sixteen critical SAP authorization objects that are frequently reviewed during security and compliance audits. Organized by risk category, it explains the purpose of each authorization object, the associated risks, key audit considerations, and recommended controls to help organizations strengthen their SAP security posture and maintain compliance with internal and regulatory requirements.</p><p><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Batch Job Control (S_BTCH_JOB, S_BTCH_NAM, S_BTCH_ADM, S_BDC_MONI)</mark></strong></em></p><p>Background processing is often the least scrutinized layer of an SAP landscape &#8212; jobs run silently, at odd hours, under technical users nobody questions. That&#8217;s precisely why it&#8217;s attractive to abuse.</p><ul><li><p><strong>S_BTCH_JOB</strong> governs the job lifecycle itself: create, release, cancel, delete. A user with broad release rights can push a sensitive report to execute without the normal approval chain.</p></li><li><p><strong>S_BTCH_NAM</strong> is more insidious &#8212; it lets a job run <em>as someone else</em>. Combined with a privileged technical account, this becomes a way to inherit authorizations the requesting user doesn&#8217;t actually have. Auditors should specifically cross-reference job logs against the user IDs the jobs executed under.</p></li><li><p><strong>S_BTCH_ADM</strong> is essentially &#8220;root&#8221; for batch processing &#8212; full visibility and control over every job in the system, regardless of owner. Treat any non-Basis assignment as a finding requiring justification.</p></li><li><p><strong>S_BDC_MONI</strong> controls SM35 batch input session monitoring. While less powerful than the others, it allows reprocessing of failed mass-upload transactions &#8212; a vector for re-injecting data that was previously rejected for valid reasons.</p></li></ul><p><em><strong>Audit tip:</strong></em><strong> </strong>Pull a sample of jobs scheduled under SAP, DDIC, or other system accounts and verify each was triggered by an authorized process, not a regular user exploiting S_BTCH_NAM.</p><p><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">User and Role Administration (S_USER_AGR, S_USER_GRP, S_USER_PRO)</mark></strong></em></p><p>This cluster is the classic &#8220;who watches the watchmen&#8221; problem. Anyone holding broad rights across all four objects can effectively create a user, build a role with whatever permissions they like, assign it to themselves, and clean up the trail.</p><ul><li><p><strong>S_USER_AGR</strong> (role admin) and <strong>S_USER_PRO</strong> (profile admin) are particularly dangerous in combination profiles bypass the more transparent role-based assignment process and can grant access directly, often without the same approval workflow.</p></li><li><p><strong>S_USER_GRP</strong> restricts user maintenance to specific user groups, which is a useful <em>control</em> when configured correctly, but a gap when group assignments are too broad (e.g., an admin team that can maintain &#8220;all users&#8221; rather than only their designated business unit).</p></li></ul><p><em><strong>Audit tip:</strong></em> The real test isn&#8217;t whether one person has all four  it&#8217;s whether the <em>combination</em> across a team violates segregation of duties. The person who approves access requests should not also be the person who can technically grant them unchecked.</p><p><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Development and Code Execution (S_DEVELOP, S_PROGRAM)</mark></strong></em></p><ul><li><p><strong>S_DEVELOP</strong> is effectively a master key to the ABAP Workbench  SE38, SE80, debugging with change capability, and more. In a development system, this is normal. In production, it&#8217;s a five-alarm finding: it means someone can write and run arbitrary code against live business data, often with the ability to debug-and-replace variables in running processes (a known privilege-escalation technique via debugger).</p></li><li><p><strong>S_PROGRAM</strong> is more nuanced because its risk depends entirely on <em>which</em> programs are in scope. A user authorized to execute a narrow set of reports via SUBMIT is low-risk; a user authorized for program group (*) can run anything, including undocumented or custom programs that bypass standard transaction controls entirely.</p></li></ul><p><em><strong>Audit tip</strong>:</em> For S_DEVELOP in production, ask not just &#8220;who has it&#8221; but &#8220;has it ever been used&#8221;  system logs (SM20/STAD) can show whether dormant access has actually been exercised, which often surfaces unauthorized changes that were never logged through transport management.</p><p><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Table and Cross-System Configuration (S_TABU_DIS, S_TABU_CLI)</mark></strong></em></p><ul><li><p><strong>S_TABU_DIS</strong> controls table maintenance grouped by authorization group &#8212; essentially a permission layer over SM30/SM31. The critical detail auditors miss is the activity value: ACTVT 03 (display) is informational risk, but ACTVT 02 (change) on the wrong table group, say, payroll configuration or pricing tables , is a direct path to financial manipulation.</p></li><li><p><strong>S_TABU_CLI</strong> is the nuclear option: cross-client maintenance means a change in one client ripples across every client on that system, including production. This authorization should be vanishingly rare outside Basis, and any assignment to a functional or business user is almost always a misconfiguration rather than a deliberate decision.</p></li></ul><p><em><strong>Audit tip</strong>:</em> Don&#8217;t just check who has S_TABU_DIS, map the authorization groups assigned against the actual tables in those groups, and flag any group containing both &#8220;harmless&#8221; config tables and sensitive ones (a common design flaw that grants more than intended).</p><p><em><strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">Operating System and Infrastructure Reach (S_DATASET, S_RZL_ADM, S_ADMI_FCD, S_LOG_COM)</mark></strong></em></p><p>This is where SAP authorizations stop being &#8220;application risk&#8221; and start being &#8220;infrastructure risk.&#8221;</p><ul><li><p><strong>S_DATASET</strong> governs file-level access at the OS layer through SAP read, write, delete. Interfaces legitimately need this to exchange files, but unscoped path authorizations (wildcards on directory paths) mean a user could potentially read configuration files, log files, or other sensitive data well outside SAP&#8217;s normal data model.</p></li><li><p><strong>S_RZL_ADM</strong> covers CCMS  the technical nervous system for monitoring and managing application servers. Misuse here is less about data theft and more about availability: someone with this access could disrupt workload distribution or take servers offline.</p></li><li><p><strong>S_ADMI_FCD</strong> is a grab-bag of administrative switches, several of which deserve individual attention: client copy authorizations (which can overwrite entire clients), spool administration (access to potentially sensitive print/output data across the system), and system monitoring functions that can reveal configuration details useful for further attacks.</p></li><li><p><strong>S_LOG_COM</strong> is arguably the most dangerous object on this entire list, it allows SAP to trigger operating-system-level commands defined in SM69. If those command definitions aren&#8217;t tightly controlled, this becomes a direct path from the SAP application layer to the underlying OS shell.</p></li></ul><p><em><strong>Audit tip</strong>:</em> For S_LOG_COM, don&#8217;t stop at &#8220;who has the authorization&#8221;  review the SM69 command table itself. A command defined with a wildcard parameter or shell metacharacter handling issues can turn a &#8220;harmless&#8221; authorization into arbitrary command execution.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mlrn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mlrn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 424w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 848w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 1272w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mlrn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png" width="728" height="326.7911111111111" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:404,&quot;width&quot;:900,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:23927,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.idsingh.com/i/201719165?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mlrn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 424w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 848w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 1272w, https://substackcdn.com/image/fetch/$s_!mlrn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe71d96c6-36cf-4989-8389-6fe8d605a04c_900x404.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Closing Thoughts</h3><p>These authorization objects are essential for running and managing an SAP system, but with great access comes greater responsibility. The goal of an SAP audit is not to remove critical permissions, but to ensure they are assigned only where there is a valid business need and are reviewed regularly. When access is not properly governed, excessive privileges can accumulate over time, increasing the risk of security incidents, compliance violations, and audit findings. Regular reviews and adherence to the principle of least privilege are key to maintaining a secure and compliant SAP environment.</p><div><hr></div><h3>Disclaimer</h3><p><strong>This article is provided for educational and informational purposes only.</strong> Organizations should assess their own business, security, and compliance requirements before making any authorization or access control decisions.</p>]]></content:encoded></item></channel></rss>