Code Monkey home page Code Monkey logo

teched2021-developer-keynote's Introduction

SAP TechEd 2021 Developer Keynote - Improving Developers' Lives

REUSE status

Description

Join the SAP Developer Advocates and friends as they highlight SAP technologies with a clear focus on features that accelerate the development process, improve the developer experience and increases developer productivity and efficiency when developing end to end solutions or extending existing applications. Several aspects of application development will be represented including: AI/ML, ABAP, CAP, Data & Analytics, Low-Code/No-Code.

๐Ÿ“บ The Developer Keynote, and the on-stage Q&A discussion afterwards, is available for replay: Improve Developers' Lives: Developer Keynote and Open Discussion.

Content

In the context of the Developer Keynote, the content here is presented in the form of bite-sized sections, each one with a different angle, but all of them are focused on the same thing - making developers' lives better. The sections have been designed to be consumed quickly on the first pass, but are rich with layers that can be explored over time.

The fun thing this year is that the sections are on different topics, and stand independently, so you can consume them in any order, and dive in to the ones that speak to you.

Sections

Here are those sections, in no particular order.

  • Command Line Magic - learn how the command line is a powerful and scriptable environment that can help you get your job done faster, more directly, and perhaps most importantly, in a way that you can automate and customize. The primary focus for this section is on the CLI tool for the SAP Business Technology Platform - the BTP CLI.

  • Data Lake in SAP HANA Cloud - find out how straightforward it can be to bring in files with a tabular data into your enterprise data landscape and explore using SQL-on-Files. See how the SAP HANA Cloud, Data Lake is used, with SAP Data Intelligence Cloud too. And there's a powerful command line tool as well as a REST API that is WebHDFS compatible.

  • ABAP Extensibility with Embedded Steampunk - learn how SAP S/4HANA Cloud customers and partners can extend SAP functionality in a cloud-ready way while continuing to keep the core clean by leveraging Embedded Steampunk.

  • SAP Fiori elements apps for OData V4 - explore the code that leverages the flexible programming model to extend SAP Fiori elements apps for OData V4. This projects build on an existing CAP demo that can be found in this repo as well.

  • SAP Cloud Application Programming Model Consuming Remote Services - In this demo we show how CAP can also be used to consume Remote Service. From importing the service definition, to creating extended entities that are mixture of remote service and local persistenence, to coding the logic to make this all work; you will find all of this in this CAP example project.

  • Low / No Code Development - For this demo section, we see how the new SAP offerings in both Low and No Code development offer the opportunity to expand how much content can be delivered to a business. Either through improving the productivity of professional developers or creating opportunities for citizen developers or business builders; the expanded possibilites are impressive.

  • SAP Fiori for iOS ARKit Open Source project - learn how this project lets you build powerful augmented reality apps from the comfort of your Xcode development environment, while benefiting from the SAP Fiori design guidelines. Imagination is your only limit.

  • Eventing and CI/CD in Kyma - you're now able to incorporate SAP Event Mesh into Kyma, which is a great alternative to NATS. Additionally you'll learn how you can set up a Continuous Integration / Continuous Delivery (CI/CD) within a Kyma namespace to make your development workflow smoother.

  • Automating your dev workflow with git commit hooks - with a few dev dependencies in your project you can set up a super comfortable mechanism that will take the drudgery out of your development workflow - for automatically formatting files and running unit tests on commit.

  • Your first steps with AI - you don't have to be a Data Scientist to be able to embrace and make use of AI services. See how easy it is to get started with pre-trained models from the AI Business Services on SAP Business Technology Platform.

How to obtain support

Create an issue in this repository if you find a bug or have questions about the content.

For additional support, ask a question in SAP Community.

License

Copyright (c) 2021 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

teched2021-developer-keynote's People

Contributors

btbernard avatar iobert avatar jarjarbentley avatar jung-thomas avatar kevinriedelsheimer avatar mmoudy49 avatar qmacro avatar rich-heilman avatar schellk avatar sygyzmundovych avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teched2021-developer-keynote's Issues

Is this API header key example fiction?

https://github.com/SAP-samples/teched2021-developer-keynote/blob/main/section/cap/srv/cat-service.js#L23

I'd expect OAuth 2.0 SAML bearer assertion is used to authenticate with the SF OData API, but I cannot see any traces of this in the sample. For this you'd need to include the sap-successfactors-extensibility service in the project and I would like to see what is needed for CAP to propagate the req.user.id to the external service using OAuth 2.0 SAML bearer assertion.

Could the sample be updated so that it's designed to work with the production destination 'sfsfDest' (in the cds.env) in the first place?

Issue when trying to access an external odata service(with creentials)

Hi Thomas,

I was trying the same way to access one external odata service which have credentials as well, while trying to access the json data afetr running "CDS WATCH", I am getting this error, I am not able to understand what i have done wrong, Can you please help by looking at this error what is going wrong

user: sap-ibp-promotions $ cds watch

cds serve all --with-mocks --in-memory?
watching: cds,csn,csv,ts,mjs,cjs,js,json,properties,edmx,xml,env,css,gif,html,jpg,png,svg...
live reload enabled for browsers
_______________________

[cds] - model loaded from 2 file(s):

./srv/catalog-service.cds
./srv/external/SapIbp.csn

[cds] - connect using bindings from: { registry: '~/.cds-services.json' }
[cds] - connect to db > sqlite { database: ':memory:' }
[cds] - connect to SapIbp > odata-v2 {
url: 'https://my3011-api.scmibp1.ondemand.com/sap/opu/odata/IBP/PLANNING_DATA_API_SRV',
authentication: '...',
username: 'BTPUSER',
password: '...'
}
[cds] - serving CatalogService { at: '/catalog', impl: './srv/catalog-service.js' }

[cds] - server listening on { url: 'http://localhost:4004' }
[cds] - launched at 12/26/2021, 10:10:55 PM, in: 550.699ms
[cds] - [ terminate with ^C ]

[cds] - GET /catalog/BTPPROMO
[remote] - Error: Error during request to remote service: Request failed with status code 400
at createError (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/adapters/http.js:269:11)
at IncomingMessage.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1317:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
config: {
url: "/commit?P_TransactionID='undefined'",
method: 'get',
proxy: false,
baseURL: 'https://my3011-api.scmibp1.ondemand.com/sap/opu/odata/IBP/PLANNING_DATA_API_SRV',
timeout: 60000,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
data: undefined
},
request: {
method: 'GET',
url: "https://my3011-api.scmibp1.ondemand.com/sap/opu/odata/IBP/PLANNING_DATA_API_SRV/commit?P_TransactionID='undefined'",
headers: {
Accept: 'application/json,text/plain',
authorization: 'Basic ...',
'accept-language': 'en',
'User-Agent': 'axios/0.21.4'
}
},
response: {
status: 400,
statusText: 'Bad Request',
headers: {
'set-cookie': [
'sap-usercontext=sap-client=100; path=/',
'SAP_SESSIONID_BBT_100=ud8ssJ49wDcgirRIiclHfbgZ13lmmBHsrYv6Fj4KKec%3d; path=/; secure; HttpOnly'
],
'content-type': 'application/json;charset=utf-8',
'content-length': '1067',
dataserviceversion: '1.0',
'sap-server': 'true',
'sap-perf-fesrec': '140349.000000',
'x-content-type-options': 'nosniff',
'strict-transport-security': 'max-age=31536000; includeSubDomains',
'x-xss-protection': '1; mode=block'
},
body: {
error: {
code: '/IBP/EXTRACT_MSG/064',
message: {
lang: 'en',
value: 'Transaction ID undefined does not exist.'
},
innererror: {
application: {
component_id: 'SCM-IBP-INT-ODT',
service_namespace: '/IBP/',
service_id: 'PLANNING_DATA_API_SRV',
service_version: '0001'
},
transactionid: '3372965542570250E0061C8E835D6D26',
timestamp: '20211226221105.2749840',
Error_Resolution: {
SAP_Transaction: 'For backend administrators: use ADT feed reader "SAP Gateway Error Log" or run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details',
SAP_Note: 'See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)'
},
errordetails: [
{
ContentID: '',
code: '/IBP/CX_PLNG_DATA_DI_API',
message: 'Transaction ID undefined does not exist.',
propertyref: '',
severity: 'error',
transition: false,
target: ''
},
{
ContentID: '',
code: '/IWBEP/CX_MGW_BUSI_EXCEPTION',
message: 'Transaction ID BATCH_ID does not exist.',
propertyref: '',
severity: 'error',
transition: false,
target: ''
}
]
}
}
}
},
isAxiosError: true,
correlationId: 'c229a4d8-319e-467f-a904-3d923dc0264b'
}
[cds] - Error: Error during request to remote service: Request failed with status code 400
at run (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js:248:25)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async RemoteService. (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/libx/_runtime/remote/Service.js:179:20)
at async next (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Service-dispatch.js:74:17)
at async RemoteService.handle (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Service-dispatch.js:72:10)
at async next (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Service-dispatch.js:74:17)
at async RemoteService.handle (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Service-dispatch.js:72:10)
at async RemoteService.commit (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Transaction.js:66:34)
at async ODataRequest.emit (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/req/context.js:55:9)
at async ApplicationService.commit (/home/user/projects/sap-ibp-promotions/node_modules/@sap/cds/lib/serve/Transaction.js:113:7) {
statusCode: 502,
innererror: Error: Error during request to remote service: Request failed with status code 400
at createError (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/core/createError.js:16:15)
at settle (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/home/user/projects/sap-ibp-promotions/node_modules/axios/lib/adapters/http.js:269:11)
at IncomingMessage.emit (events.js:412:35)
at endReadableNT (internal/streams/readable.js:1317:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
config: {
url: "/commit?P_TransactionID='undefined'",
method: 'get',
proxy: false,
baseURL: 'https://my3011-api.scmibp1.ondemand.com/sap/opu/odata/IBP/PLANNING_DATA_API_SRV',
timeout: 60000,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
data: undefined
},
request: {
method: 'GET',
url: "https://my3011-api.scmibp1.ondemand.com/sap/opu/odata/IBP/PLANNING_DATA_API_SRV/commit?P_TransactionID='undefined'",
headers: {
Accept: 'application/json,text/plain',
authorization: 'Basic ...',
'accept-language': 'en',
'User-Agent': 'axios/0.21.4'
}
},
response: {
status: 400,
statusText: 'Bad Request',
headers: {
'set-cookie': [
'sap-usercontext=sap-client=100; path=/',
'SAP_SESSIONID_BBT_100=ud8ssJ49wDcgirRIiclHfbgZ13lmmBHsrYv6Fj4KKec%3d; path=/; secure; HttpOnly'
],
'content-type': 'application/json;charset=utf-8',
'content-length': '1067',
dataserviceversion: '1.0',
'sap-server': 'true',
'sap-perf-fesrec': '140349.000000',
'x-content-type-options': 'nosniff',
'strict-transport-security': 'max-age=31536000; includeSubDomains',
'x-xss-protection': '1; mode=block'
},
body: {
error: {
code: '/IBP/EXTRACT_MSG/064',
message: {
lang: 'en',
value: 'Transaction ID undefined does not exist.'
},
innererror: {
application: {
component_id: 'SCM-IBP-INT-ODT',
service_namespace: '/IBP/',
service_id: 'PLANNING_DATA_API_SRV',
service_version: '0001'
},
transactionid: '3372965542570250E0061C8E835D6D26',
timestamp: '20211226221105.2749840',
Error_Resolution: {
SAP_Transaction: 'For backend administrators: use ADT feed reader "SAP Gateway Error Log" or run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details',
SAP_Note: 'See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)'
},
errordetails: [
{
ContentID: '',
code: '/IBP/CX_PLNG_DATA_DI_API',
message: 'Transaction ID undefined does not exist.',
propertyref: '',
severity: 'error',
transition: false,
target: ''
},
{
ContentID: '',
code: '/IWBEP/CX_MGW_BUSI_EXCEPTION',
message: 'Transaction ID BATCH_ID does not exist.',
propertyref: '',
severity: 'error',
transition: false,
target: ''
}
]
}
}
}
},
isAxiosError: true,
correlationId: 'c229a4d8-319e-467f-a904-3d923dc0264b'
},
id: '1867977',
level: 'ERROR',
timestamp: 1640556665315
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.