<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279812#M3145</link>
    <description>&lt;P&gt;(Check out the &lt;A href="https://blogs.sap.com/2023/08/01/sap-developer-challenge-apis/" target="_blank" rel="noopener"&gt;SAP Developer Challenge - APIs&lt;/A&gt; blog post for everything you need to know about the challenge to which this task relates!)&lt;/P&gt;&lt;P&gt;You've made various read-only requests so far; now it's time to create some data.&lt;/P&gt;&lt;H2&gt;Background&lt;/H2&gt;&lt;P&gt;For this task we return briefly to the &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze" target="_self"&gt;Northbreeze service&lt;/A&gt; from &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-2-calculate-northbreeze/td-p/277325" target="_self"&gt;Task 2&lt;/A&gt;. Until now, mostly due to the nature of the deliberate simplicity of the tasks in this Developer Challenge, the actions you've been performing from an HTTP perspective have been read-only.&lt;/P&gt;&lt;P&gt;This time you'll write some data, albeit data that won't last long (the Northbreeze service runs in-memory and has been set up not to use a permanent persistence layer). Then you'll read it back, with a minor difference, to examine what the response looks like. It's that response, compressed, that you'll need for the hash.&lt;/P&gt;&lt;P&gt;The Northwind service traditionally has products, which you've encountered already. Those products are organized into &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Categories" target="_blank" rel="noopener"&gt;categories&lt;/A&gt;, of which there are just a few. A category (taking &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Categories/1" target="_self"&gt;the first one&lt;/A&gt;) looks like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"CategoryName"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Beverages"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"Description"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Soft drinks, coffees, teas, beers, and ales"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;You can get a feel for the distribution of products across categories by asking for &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Products?$apply=groupby((Category_CategoryID),aggregate($count%20as%20productcount))" target="_blank" rel="noopener"&gt;the count of products by category ID&lt;/A&gt; which is expressed like this (showing the path, with whitespace, for easier reading):&lt;/P&gt;&lt;PRE&gt;/odata/v4/northbreeze/Products
  ?$apply=groupby(
    (Category_CategoryID),
    aggregate($count as productcount)
  )&lt;/PRE&gt;&lt;P&gt;This returns a response that looks like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"@odata.context"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"$metadata#Products(Category_CategoryID,productcount)"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"value"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;13&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;10&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;4&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;As you can see, the OData V4 aggregate facilities, and CAP's support for them, is pretty neat!&lt;/P&gt;&lt;H2&gt;Your task&lt;/H2&gt;&lt;P&gt;Your task is to create a new category, and then request it. In other words, you must contruct an appropriate HTTP request to form an OData CREATE operation, to add a new category entity into the entity set. You can see from above that a category has just three properties:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CategoryID - this is the key and must be an integer value&lt;/LI&gt;&lt;LI&gt;CategoryName - a short name for the category&lt;/LI&gt;&lt;LI&gt;Description - a brief summary of what the category is&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;You must supply the following values for these properties when creating your new category:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CategoryID - your SAP Community ID &lt;STRONG&gt;number&lt;/STRONG&gt; (see the Hints and tips section)&lt;/LI&gt;&lt;LI&gt;CategoryName - your SAP Community ID &lt;STRONG&gt;in lower case&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Description - the static text August Developer Challenge&lt;/LI&gt;&lt;/UL&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;You can tell that the CategoryID property must be a number, because of how it's defined in the OData service's metadata document.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Once you've created your new category, you must then construct an appropriate HTTP request to form an OData READ operation to request a representation of your category. There are some important points here:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;you must use an OData READ operation and not an OData QUERY operation&lt;/LI&gt;&lt;LI&gt;you must exclude the Description property, i.e. you should request (and expect) only the category properties CategoryID and CategoryName&lt;/LI&gt;&lt;LI&gt;the representation of the response must be in JSON&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The representation of the response is the value you need to hash and share as a new reply to this discussion thread, as always, and as described in &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-0-learn-to-share-your-task/m-p/276058" target="_blank" rel="noopener"&gt;Task 0&lt;/A&gt;. Note that you'll have to URL encode the entire value, as you will be sending it within the value=('...') part of the hash service URL.&lt;/P&gt;&lt;P&gt;You should ensure that the order of the properties in the JSON object structure returned is sorted (it should already be, but double check or just add that processing to whatever mechanism you build to do this) and that there is no extraneous whitespace in the structure at all.&lt;/P&gt;&lt;P&gt;Here's an example of what a response representation will look like - note the single line and no whitespace, and that the CategoryName value is all lower case:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;SPAN class=""&gt;"@odata.context"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;"some-context-specification"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;"CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;53&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;"CategoryName"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;"qmacro"&lt;/SPAN&gt;&lt;SPAN class=""&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;H2&gt;Hints and tips&lt;/H2&gt;&lt;P&gt;You already know about your SAP Community ID. For example, qmacro is the SAP Community ID for DJ Adams. To get your SAP Community ID number, which is unique, just go to your profile page, and get the number from your profile page's URL. For example, the profile page for DJ Adams is at &lt;A class="" href="https://groups.community.sap.com/t5/user/viewprofilepage/user-id/53" target="_blank" rel="noopener"&gt;https://groups.community.sap.com/t5/user/viewprofilepage/user-id/53&lt;/A&gt; and looks like this:&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.sap.com/assets/qmacro-profile-page.png" border="0" alt="" /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="qmacro-profile-page.png" style="width: 999px;"&gt;&lt;img src="https://community.sap.com/t5/image/serverpage/image-id/42207iABF9875C90105128/image-size/large?v=v2&amp;amp;px=999" role="button" title="qmacro-profile-page.png" alt="qmacro-profile-page.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;You can see the SAP Community ID number in the URL - it's 53. Go to your profile page and get the number from the resulting URL for your profile.&lt;/P&gt;&lt;P&gt;What about the OData READ vs OData QUERY operation question? Both use the same HTTP method (GET) but the structure of the data returned is different. Given that the data and its structure is what you need to ensure is correct before hashing it, it's important you think about how you would request that single new category.&lt;/P&gt;&lt;H2&gt;For discussion&lt;/H2&gt;&lt;P&gt;What is the definition of the CategoryID property, according to the metadata document?&lt;/P&gt;&lt;P&gt;What is the difference between the result of an OData QUERY operation and the result of an OData READ operation? How does this relate to OData's origins? What is the significant difference in data structure returned?&lt;/P&gt;&lt;P&gt;Did you try to request a different representation of your category, such as XML? What happened?&lt;/P&gt;</description>
    <pubDate>Wed, 16 Aug 2023 07:09:33 GMT</pubDate>
    <dc:creator>qmacro</dc:creator>
    <dc:date>2023-08-16T07:09:33Z</dc:date>
    <item>
      <title>SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279812#M3145</link>
      <description>&lt;P&gt;(Check out the &lt;A href="https://blogs.sap.com/2023/08/01/sap-developer-challenge-apis/" target="_blank" rel="noopener"&gt;SAP Developer Challenge - APIs&lt;/A&gt; blog post for everything you need to know about the challenge to which this task relates!)&lt;/P&gt;&lt;P&gt;You've made various read-only requests so far; now it's time to create some data.&lt;/P&gt;&lt;H2&gt;Background&lt;/H2&gt;&lt;P&gt;For this task we return briefly to the &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze" target="_self"&gt;Northbreeze service&lt;/A&gt; from &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-2-calculate-northbreeze/td-p/277325" target="_self"&gt;Task 2&lt;/A&gt;. Until now, mostly due to the nature of the deliberate simplicity of the tasks in this Developer Challenge, the actions you've been performing from an HTTP perspective have been read-only.&lt;/P&gt;&lt;P&gt;This time you'll write some data, albeit data that won't last long (the Northbreeze service runs in-memory and has been set up not to use a permanent persistence layer). Then you'll read it back, with a minor difference, to examine what the response looks like. It's that response, compressed, that you'll need for the hash.&lt;/P&gt;&lt;P&gt;The Northwind service traditionally has products, which you've encountered already. Those products are organized into &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Categories" target="_blank" rel="noopener"&gt;categories&lt;/A&gt;, of which there are just a few. A category (taking &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Categories/1" target="_self"&gt;the first one&lt;/A&gt;) looks like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"CategoryName"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Beverages"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"Description"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Soft drinks, coffees, teas, beers, and ales"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;You can get a feel for the distribution of products across categories by asking for &lt;A href="https://developer-challenge.cfapps.eu10.hana.ondemand.com/odata/v4/northbreeze/Products?$apply=groupby((Category_CategoryID),aggregate($count%20as%20productcount))" target="_blank" rel="noopener"&gt;the count of products by category ID&lt;/A&gt; which is expressed like this (showing the path, with whitespace, for easier reading):&lt;/P&gt;&lt;PRE&gt;/odata/v4/northbreeze/Products
  ?$apply=groupby(
    (Category_CategoryID),
    aggregate($count as productcount)
  )&lt;/PRE&gt;&lt;P&gt;This returns a response that looks like this:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"@odata.context"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"$metadata#Products(Category_CategoryID,productcount)"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"value"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;13&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;10&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;4&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;5&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;7&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount@odata.type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"#Decimal"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"productcount"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;12&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"Category_CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"@odata.id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;As you can see, the OData V4 aggregate facilities, and CAP's support for them, is pretty neat!&lt;/P&gt;&lt;H2&gt;Your task&lt;/H2&gt;&lt;P&gt;Your task is to create a new category, and then request it. In other words, you must contruct an appropriate HTTP request to form an OData CREATE operation, to add a new category entity into the entity set. You can see from above that a category has just three properties:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CategoryID - this is the key and must be an integer value&lt;/LI&gt;&lt;LI&gt;CategoryName - a short name for the category&lt;/LI&gt;&lt;LI&gt;Description - a brief summary of what the category is&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;You must supply the following values for these properties when creating your new category:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;CategoryID - your SAP Community ID &lt;STRONG&gt;number&lt;/STRONG&gt; (see the Hints and tips section)&lt;/LI&gt;&lt;LI&gt;CategoryName - your SAP Community ID &lt;STRONG&gt;in lower case&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;Description - the static text August Developer Challenge&lt;/LI&gt;&lt;/UL&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;You can tell that the CategoryID property must be a number, because of how it's defined in the OData service's metadata document.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Once you've created your new category, you must then construct an appropriate HTTP request to form an OData READ operation to request a representation of your category. There are some important points here:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;you must use an OData READ operation and not an OData QUERY operation&lt;/LI&gt;&lt;LI&gt;you must exclude the Description property, i.e. you should request (and expect) only the category properties CategoryID and CategoryName&lt;/LI&gt;&lt;LI&gt;the representation of the response must be in JSON&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The representation of the response is the value you need to hash and share as a new reply to this discussion thread, as always, and as described in &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-0-learn-to-share-your-task/m-p/276058" target="_blank" rel="noopener"&gt;Task 0&lt;/A&gt;. Note that you'll have to URL encode the entire value, as you will be sending it within the value=('...') part of the hash service URL.&lt;/P&gt;&lt;P&gt;You should ensure that the order of the properties in the JSON object structure returned is sorted (it should already be, but double check or just add that processing to whatever mechanism you build to do this) and that there is no extraneous whitespace in the structure at all.&lt;/P&gt;&lt;P&gt;Here's an example of what a response representation will look like - note the single line and no whitespace, and that the CategoryName value is all lower case:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;SPAN class=""&gt;"@odata.context"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;"some-context-specification"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;"CategoryID"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;53&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN class=""&gt;"CategoryName"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt;&lt;SPAN class=""&gt;"qmacro"&lt;/SPAN&gt;&lt;SPAN class=""&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;H2&gt;Hints and tips&lt;/H2&gt;&lt;P&gt;You already know about your SAP Community ID. For example, qmacro is the SAP Community ID for DJ Adams. To get your SAP Community ID number, which is unique, just go to your profile page, and get the number from your profile page's URL. For example, the profile page for DJ Adams is at &lt;A class="" href="https://groups.community.sap.com/t5/user/viewprofilepage/user-id/53" target="_blank" rel="noopener"&gt;https://groups.community.sap.com/t5/user/viewprofilepage/user-id/53&lt;/A&gt; and looks like this:&lt;/P&gt;&lt;P&gt;&lt;IMG src="https://community.sap.com/assets/qmacro-profile-page.png" border="0" alt="" /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="qmacro-profile-page.png" style="width: 999px;"&gt;&lt;img src="https://community.sap.com/t5/image/serverpage/image-id/42207iABF9875C90105128/image-size/large?v=v2&amp;amp;px=999" role="button" title="qmacro-profile-page.png" alt="qmacro-profile-page.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;You can see the SAP Community ID number in the URL - it's 53. Go to your profile page and get the number from the resulting URL for your profile.&lt;/P&gt;&lt;P&gt;What about the OData READ vs OData QUERY operation question? Both use the same HTTP method (GET) but the structure of the data returned is different. Given that the data and its structure is what you need to ensure is correct before hashing it, it's important you think about how you would request that single new category.&lt;/P&gt;&lt;H2&gt;For discussion&lt;/H2&gt;&lt;P&gt;What is the definition of the CategoryID property, according to the metadata document?&lt;/P&gt;&lt;P&gt;What is the difference between the result of an OData QUERY operation and the result of an OData READ operation? How does this relate to OData's origins? What is the significant difference in data structure returned?&lt;/P&gt;&lt;P&gt;Did you try to request a different representation of your category, such as XML? What happened?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:09:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279812#M3145</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-16T07:09:33Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279817#M3146</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;6444d&lt;/SPAN&gt;&lt;SPAN&gt;ddcbedf9d37b40eca030044c0df44e19f4ba2604de0acf15fbcff899fd4&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:32:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279817#M3146</guid>
      <dc:creator>harsh_itaverma</dc:creator>
      <dc:date>2023-08-16T09:32:08Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279824#M3147</link>
      <description>&lt;P&gt;Not sure if this is correct, as I had to encode the JSON representation to get the hash value.&lt;BR /&gt;&lt;a href="https://community.sap.com/t5/user/viewprofilepage/user-id/53"&gt;@qmacro&lt;/a&gt;&amp;nbsp;are we supposed to do so?&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 06:56:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279824#M3147</guid>
      <dc:creator>harsh_itaverma</dc:creator>
      <dc:date>2023-08-16T06:56:13Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279828#M3148</link>
      <description>&lt;P&gt;Speedy! &lt;span class="lia-unicode-emoji" title=":running_shoe:"&gt;👟&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:10:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279828#M3148</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-16T07:10:44Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279829#M3149</link>
      <description>&lt;P&gt;Well done - yes, you are correct. I've just added a note to the "Your task" section to help make this more explicit for others. Thanks for asking! &lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:11:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279829#M3149</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-16T07:11:26Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279834#M3150</link>
      <description>&lt;P&gt;bfb2201deadd6ffdf1914a0ed5f72ad1f5c3849800aabbfbe0f66707f23aa2f1&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:41:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279834#M3150</guid>
      <dc:creator>vladimirs_semikins</dc:creator>
      <dc:date>2023-08-16T07:41:29Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279835#M3151</link>
      <description>&lt;P&gt;I've used ChatGTP to explain to me what is the difference between OData READ and QUERY&lt;/P&gt;&lt;P&gt;finger cross&lt;span class="lia-unicode-emoji" title=":crossed_fingers:"&gt;🤞&lt;/span&gt;that it explains me correctly &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:42:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279835#M3151</guid>
      <dc:creator>vladimirs_semikins</dc:creator>
      <dc:date>2023-08-16T07:42:28Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279836#M3152</link>
      <description>&lt;P&gt;2c99f60839faf0bd532af31708fc0e05965fc240cf495373759e4bceeed9ae67&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:45:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279836#M3152</guid>
      <dc:creator>ajmaradiaga</dc:creator>
      <dc:date>2023-08-16T07:45:25Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279842#M3153</link>
      <description>&lt;P&gt;I encode the whole response but I don't get the same value as &lt;a href="https://community.sap.com/t5/user/viewprofilepage/user-id/154789"&gt;@harsh_itaverma&lt;/a&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 07:51:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279842#M3153</guid>
      <dc:creator>ajmaradiaga</dc:creator>
      <dc:date>2023-08-16T07:51:38Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279853#M3157</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;47831e26b73993b5f956540378c2f7e7b7fe286459078de9772f7abe2b2d3a08&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 16 Aug 2023 08:29:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279853#M3157</guid>
      <dc:creator>kasch-code</dc:creator>
      <dc:date>2023-08-16T08:29:30Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279864#M3160</link>
      <description>&lt;P&gt;&lt;a href="https://community.sap.com/t5/user/viewprofilepage/user-id/107"&gt;@ajmaradiaga&lt;/a&gt;&amp;nbsp;you would find it funny but I checked my answers imitating yours and&amp;nbsp;&lt;a href="https://community.sap.com/t5/user/viewprofilepage/user-id/312"&gt;@vladimirs_semikins&lt;/a&gt;&amp;nbsp;answer and was happy that it's matching &lt;span class="lia-unicode-emoji" title=":face_with_tongue:"&gt;😛&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;My bad as I posted the wrong hash that I got with the JSON representation without removing the whitespaces.&lt;BR /&gt;Thanks a lot for the heads up.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:24:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279864#M3160</guid>
      <dc:creator>harsh_itaverma</dc:creator>
      <dc:date>2023-08-16T09:24:21Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279872#M3161</link>
      <description>&lt;P&gt;&lt;a href="https://community.sap.com/t5/user/viewprofilepage/user-id/107"&gt;@ajmaradiaga&lt;/a&gt;&amp;nbsp;can you please check once how you tried getting the hash for me cause looks like it was correct &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:43:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279872#M3161</guid>
      <dc:creator>harsh_itaverma</dc:creator>
      <dc:date>2023-08-16T09:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279887#M3164</link>
      <description>&lt;P&gt;Thanks for the hint!&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:58:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279887#M3164</guid>
      <dc:creator>berserk</dc:creator>
      <dc:date>2023-08-16T09:58:07Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279888#M3165</link>
      <description>&lt;P&gt;f8da703135004ae8b7f3111413e80a1b4551dfa9387c4dd70bdde358f917a1d1&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:58:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279888#M3165</guid>
      <dc:creator>berserk</dc:creator>
      <dc:date>2023-08-16T09:58:16Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279899#M3169</link>
      <description>&lt;P&gt;722fba17bfeae45e6787a523f3b12ef69bd51d5fc4b34981de327dfb358ed17c&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 10:27:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279899#M3169</guid>
      <dc:creator>SandipAgarwalla</dc:creator>
      <dc:date>2023-08-16T10:27:45Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279901#M3170</link>
      <description>&lt;P&gt;de5b555ae1d367b049d7d96e4d9f97df8d1e1f8bf1eae50ad2742adfe722007d&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 10:36:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279901#M3170</guid>
      <dc:creator>stickman_0x00</dc:creator>
      <dc:date>2023-08-16T10:36:30Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279924#M3174</link>
      <description>&lt;P&gt;02a4b2a5a12b133de4ed00f94aff580283f8cab4211dcff0c18d5f5d87fcf02c&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 12:00:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279924#M3174</guid>
      <dc:creator>nicoschoenteich</dc:creator>
      <dc:date>2023-08-16T12:00:48Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279926#M3175</link>
      <description>&lt;P&gt;7d66d8c69da53c9c2616a1a7cd40e4a3d0357f06552bdaf4de83965420f0456a&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 12:07:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279926#M3175</guid>
      <dc:creator>Tomas_Buryanek</dc:creator>
      <dc:date>2023-08-16T12:07:39Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279936#M3177</link>
      <description>&lt;P&gt;This was fun!&lt;/P&gt;&lt;P&gt;Like some others, I also decided to ask Chat GPT for some help (OData operations, filters etc..) and was surprised by very helpful and on-point answers. In this sense "Googling" is much worse.&lt;/P&gt;&lt;P&gt;Then I just used REST client. In my case one of the browser extensions&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 12:36:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279936#M3177</guid>
      <dc:creator>Tomas_Buryanek</dc:creator>
      <dc:date>2023-08-16T12:36:21Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 6 - Create a new Northbreeze category</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279939#M3178</link>
      <description>&lt;P&gt;Great! That's one aspect of this challenge that I wanted to stay with - to have tasks that are fun. So that makes me happy that you had fun &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 12:39:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-6-create-a-new-northbreeze-category/m-p/279939#M3178</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-16T12:39:58Z</dc:date>
    </item>
  </channel>
</rss>

