{"id":248776,"date":"2026-08-18T13:33:11","date_gmt":"2026-08-18T11:33:11","guid":{"rendered":"https:\/\/blog.adesso-bc.com\/external-client-side-integration-lessons-sap-integration-pt-3\/"},"modified":"2026-08-18T15:48:37","modified_gmt":"2026-08-18T13:48:37","slug":"external-client-side-integration-lessons-sap-integration-pt-3","status":"publish","type":"post","link":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/","title":{"rendered":"External Client-Side Integration Lessons (SAP Integration pt. 3)"},"content":{"rendered":"\n<p class=\"has-large-font-size wp-block-paragraph\">Why is it not enough for the endpoint to work on the SAP side?<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">In the previous part, I showed how a RAP\/OData V4 service is built on the SAP side. We went through the complete object chain that leads from the physical table, through the CDS view, behavior layer, projection, service definition, and service binding, to an endpoint that can be accessed by an external system.<br\/><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">However, this is only one half of the integration.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Just because a service works on the SAP side does not necessarily mean that it can also be used reliably, securely, and correctly from a business perspective by an external application. The other side is at least equally important: <strong>how the client behaves, what data it sends, how it handles authentication, how it works with the CSRF token, how it maintains the session, and what it does if the SAP-side write operation fails.<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">During the SAP integration of my own smart home management application, this was one of the most important lessons: publishing the endpoint is not the end of the project, but rather the point where the responsibility of the external application truly begins.<\/p>\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>A working GET request does not yet mean complete integration<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">During development, it is easy to develop a false sense of security. If the metadata page of the OData service is accessible, the GET request works, and the data is visible in SAP Gateway Client, it may initially seem that the integration is complete. In reality, at this point we have only proven that the SAP-side service is accessible.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">An external application is in a completely different situation. It does not need to send a one-time test request; instead, it must integrate SAP communication into a real application flow. For example, when a user, an installation, or a smart device is created, the application must decide when to send data to SAP, in what format to send it, and how to handle a situation where the SAP response is not successful.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This is why it is important to distinguish between two statements.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>The first: the endpoint works on the SAP side.<br\/>The second: the external application integrates reliably with the SAP service.<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The two are not the same.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The external client does more than just send HTTP requests<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>In the case of a RAP\/OData service, the external client has more responsibilities than we might initially think.<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>It must communicate with the SAP system using authentication<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>For modifying operations, it must handle the CSRF token<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>It must preserve the cookies associated with the session<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>It must send exactly the payload expected by the SAP-side service<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>In addition, it must also ensure that sensitive or application-specific data is not transferred unnecessarily to SAP<\/strong><\/li>\n<\/ul>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">For this reason, it is not ideal to have raw HTTP calls scattered across different parts of the application. <strong>A cleaner solution is to place SAP communication in a dedicated integration layer.<\/strong> This way, the business logic of the application is not mixed with the details of exactly which header, token, cookie, or endpoint is required for the SAP call.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This layer does not only provide technical convenience. It also creates a system boundary.<\/p>\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>CSRF token and session handling<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">One of the most important technical lessons was CSRF token and session\/cookie handling.<strong><\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>A read-only GET request is generally simpler. A POST, PATCH, PUT, or DELETE request, however, modifies data, so due to SAP-side protection, a CSRF token may also be required.<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The typical flow can be described simply as follows: the client first requests the token, SAP returns it in the response, and then the client sends the same token back with the modifying request. The critical part is that the cookies associated with the session must also be preserved. If the token is available but the session is lost, the modifying request may still fail.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Therefore, if a POST request works from SAP Gateway Client but not from a C# client, the problem is not necessarily on the SAP side. It may be that the external client is not carrying forward the same technical context.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Another common source of errors is the data format used when sending data.<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">An external client should not send what is most convenient for itself, but rather what the published OData service expects. This is particularly important when the C# application and SAP represent certain values differently.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">For example, in a C# model, a true or false value may be natural. On the SAP side, however, a logical state may technically be represented as a character-based value, where the true value is &#8220;X&#8221; and the false value is an empty value. If the client sends this in the wrong format, the request may fail, or incorrect data may be created.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The same applies to identifiers, dates, decimal values, units of measurement, and mandatory fields.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This is why a mapping layer is necessary. <strong>The application&#8217;s internal model and the payload sent to SAP should not be treated as the same concept. The purpose of the mapping layer is to translate the application&#8217;s data into the contract expected by the SAP service.<\/strong><\/p>\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Security boundaries: what do we not send?<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The quality of an integration is not demonstrated only by what data it is capable of transferring. <strong>It is at least equally important to define what it does not transfer. <\/strong>In the project, a fundamental principle was that the SAP mirror must not become an uncontrolled data dump. Only data that has business relevance on the SAP side should be transferred.<\/p>\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Plain-text passwords must not be sent to SAP<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Application-specific tokens must not be sent to SAP<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Session information must not be sent to SAP<\/strong><\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Unnecessary debug data must not be sent to SAP<\/strong><\/li>\n<\/ul>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The same applies to logging. During debugging, it may be tempting to log every header, payload, and response, but this creates a security risk. A good integration log helps identify the problem without containing secrets.<\/p>\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Feature flag and best-effort mirror<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">During the development phase, it was very helpful that the SAP mirror operated as a feature that could be switched on or off.<strong>If the switch is disabled, the application works only locally.<\/strong> If it is enabled, the important business data is also forwarded to SAP. This enables safer development because not every local test automatically creates data on the SAP side.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This also fits the architecture presented in the first part: SAP does not take over the entire operation of the application, but instead appears alongside it as a business integration point.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>This is also where the concept of a best-effort mirror comes into pla<\/strong>y. If the local save operation succeeds but the SAP-side write temporarily fails, it is not always necessary to stop the entire application flow. Naturally, this depends on a business decision. If the SAP-side write is a critical requirement, the process must not continue. However, if the mirror is an additional business representation, it can be handled as a separate failure.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>The key point is that an SAP error must not be swallowed. It must be made visible, logged, and a retry mechanism must be provided for it later.<\/strong><\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Read-after-write:<\/strong> do not blindly assume that it succeeded<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A successful HTTP response is a good sign, but during the development phase it is not always enough.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">If the application creates something on the SAP side, it is worth verifying afterward through a read operation that the data has actually appeared. This is the read-after-write verification.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This is particularly useful because it does not only show that the request was technically executed, but also whether the SAP-side state matches what we expected.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">This can reveal issues such as incorrect field mapping, an invalid boolean representation, a missing identifier, or an incorrect relationship between the user, installation, and device much earlier.<\/p>\n\n<p class=\"has-large-font-size wp-block-paragraph\">Lessons learned<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The first part of the series focused on the architectural decision: why it makes sense to treat SAP not as a database, but as a system that publishes business services.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The second part presented the SAP-side object chain: how the RAP\/OData V4 endpoint is built.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The most important lesson of the third part is that publishing the endpoint is only half of the integration. The other half is the responsibility of the external client.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">An external application must know how to communicate securely, what data it may send, what data it must not send, how to handle tokens and sessions, how to separate local operation from the SAP mirror process, and how to prove that the data has actually appeared on the SAP side.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Together, these three parts lead to the same conclusion: modern SAP integration is not simply about transferring data, but about consciously designing system boundaries.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">In this project, the RAP\/OData-based approach proved to be a good decision because it allowed the custom-developed application to preserve its independent operation while connecting to an SAP system in a controlled and business-relevant way.<\/p>\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The next part will show how to test the endpoint from the SAP side, thereby verifying that the SAP-side service is working correctly.<\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why is it not enough for the endpoint to work on the SAP side? In the previous part, I showed how a RAP\/OData V4 service is built on the SAP side. We went through the complete object chain that leads from the physical table, through the CDS view, behavior layer, projection, service definition, and service [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":248775,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[335],"tags":[839,838],"class_list":["post-248776","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sap","tag-odata-v4","tag-sap-rap","blogauthor-ignac-ferenc"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog\" \/>\n<meta property=\"og:description\" content=\"Why is it not enough for the endpoint to work on the SAP side? In the previous part, I showed how a RAP\/OData V4 service is built on the SAP side. We went through the complete object chain that leads from the physical table, through the CDS view, behavior layer, projection, service definition, and service [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/\" \/>\n<meta property=\"og:site_name\" content=\"adesso business consulting Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/adessoorange\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T11:33:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-18T13:48:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1111\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"martin.kiss\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"martin.kiss\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/\"},\"author\":{\"name\":\"martin.kiss\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/person\\\/b029dbc3cacd8c2d5e3f8553852f7f0d\"},\"headline\":\"External Client-Side Integration Lessons (SAP Integration pt. 3)\",\"datePublished\":\"2026-08-18T11:33:11+00:00\",\"dateModified\":\"2026-08-18T13:48:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/\"},\"wordCount\":1514,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg\",\"keywords\":[\"OData V4\",\"SAP RAP\"],\"articleSection\":[\"SAP\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/\",\"name\":\"External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg\",\"datePublished\":\"2026-08-18T11:33:11+00:00\",\"dateModified\":\"2026-08-18T13:48:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg\",\"width\":2560,\"height\":1111},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/external-client-side-integration-lessons-sap-integration-pt-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"External Client-Side Integration Lessons (SAP Integration pt. 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\",\"name\":\"adesso business consulting Blog\",\"description\":\"Latest developments and exciting topics from the world of SAP\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#organization\",\"name\":\"adesso orange AG\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/adesso-orange-blog-logo-gry.svg\",\"contentUrl\":\"https:\\\/\\\/blog.adesso-bc.com\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/adesso-orange-blog-logo-gry.svg\",\"width\":100,\"height\":100,\"caption\":\"adesso orange AG\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/adessoorange\",\"https:\\\/\\\/www.instagram.com\\\/adesso.orange\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/adesso-orange\",\"https:\\\/\\\/www.xing.com\\\/pages\\\/adesso-orange\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/#\\\/schema\\\/person\\\/b029dbc3cacd8c2d5e3f8553852f7f0d\",\"name\":\"martin.kiss\",\"url\":\"https:\\\/\\\/blog.adesso-bc.com\\\/en\\\/author\\\/martin-kiss\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/","og_locale":"en_US","og_type":"article","og_title":"External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog","og_description":"Why is it not enough for the endpoint to work on the SAP side? In the previous part, I showed how a RAP\/OData V4 service is built on the SAP side. We went through the complete object chain that leads from the physical table, through the CDS view, behavior layer, projection, service definition, and service [&hellip;]","og_url":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/","og_site_name":"adesso business consulting Blog","article_publisher":"https:\/\/www.facebook.com\/adessoorange","article_published_time":"2026-08-18T11:33:11+00:00","article_modified_time":"2026-08-18T13:48:37+00:00","og_image":[{"width":2560,"height":1111,"url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg","type":"image\/jpeg"}],"author":"martin.kiss","twitter_card":"summary_large_image","twitter_misc":{"Written by":"martin.kiss","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#article","isPartOf":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/"},"author":{"name":"martin.kiss","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/person\/b029dbc3cacd8c2d5e3f8553852f7f0d"},"headline":"External Client-Side Integration Lessons (SAP Integration pt. 3)","datePublished":"2026-08-18T11:33:11+00:00","dateModified":"2026-08-18T13:48:37+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/"},"wordCount":1514,"publisher":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#organization"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg","keywords":["OData V4","SAP RAP"],"articleSection":["SAP"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/","url":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/","name":"External Client-Side Integration Lessons (SAP Integration pt. 3) - adesso business consulting Blog","isPartOf":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#primaryimage"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg","datePublished":"2026-08-18T11:33:11+00:00","dateModified":"2026-08-18T13:48:37+00:00","breadcrumb":{"@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#primaryimage","url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg","contentUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2026\/08\/julian-hochgesang-JTsAgJPGP0s-unsplash-1-scaled.jpg","width":2560,"height":1111},{"@type":"BreadcrumbList","@id":"https:\/\/blog.adesso-bc.com\/en\/external-client-side-integration-lessons-sap-integration-pt-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.adesso-bc.com\/en\/"},{"@type":"ListItem","position":2,"name":"External Client-Side Integration Lessons (SAP Integration pt. 3)"}]},{"@type":"WebSite","@id":"https:\/\/blog.adesso-bc.com\/en\/#website","url":"https:\/\/blog.adesso-bc.com\/en\/","name":"adesso business consulting Blog","description":"Latest developments and exciting topics from the world of SAP","publisher":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.adesso-bc.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blog.adesso-bc.com\/en\/#organization","name":"adesso orange AG","url":"https:\/\/blog.adesso-bc.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2022\/03\/adesso-orange-blog-logo-gry.svg","contentUrl":"https:\/\/blog.adesso-bc.com\/wp-content\/uploads\/2022\/03\/adesso-orange-blog-logo-gry.svg","width":100,"height":100,"caption":"adesso orange AG"},"image":{"@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/adessoorange","https:\/\/www.instagram.com\/adesso.orange","https:\/\/www.linkedin.com\/company\/adesso-orange","https:\/\/www.xing.com\/pages\/adesso-orange"]},{"@type":"Person","@id":"https:\/\/blog.adesso-bc.com\/en\/#\/schema\/person\/b029dbc3cacd8c2d5e3f8553852f7f0d","name":"martin.kiss","url":"https:\/\/blog.adesso-bc.com\/en\/author\/martin-kiss\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/comments?post=248776"}],"version-history":[{"count":3,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248776\/revisions"}],"predecessor-version":[{"id":248786,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/posts\/248776\/revisions\/248786"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/media\/248775"}],"wp:attachment":[{"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/media?parent=248776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/categories?post=248776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.adesso-bc.com\/en\/wp-json\/wp\/v2\/tags?post=248776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}