on 2023 Jul 31 5:09 PM
Hello Experts,
I am working on a CAP solution wherein I want to make multiple GET calls to SAP on-premise. So I decided to go with $batch request instead of individual calls.
The below code snippet shows how I made the call:
let oSAPConnection = await cds.connect.to('approvalService_sapOthers');
let oImportedCaseDetails =
await oSAPConnection.send({
method: 'POST',
path: `/$batch`,
headers: { 'Content-Type': 'multipart/mixed;boundary=batch' },
data:
`--batch
Content-Type: application/http
Content-Transfer-Encoding: binary
GET LtFscmInfoSet('5406695') HTTP/1.1
--batch--`,
});
In Package.json,
However, I am getting the error as follows:
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR [remote] - Error: Error during request to remote service:
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR In the context of Data Services an unknown internal server error occurred
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at run (/home/vcap/app/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js:306:31)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async RemoteService.<anonymous> (/home/vcap/app/node_modules/@sap/cds/libx/_runtime/remote/Service.js:295:20)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async next (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:79:17)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async RemoteService.handle (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:77:10)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async importCaseService.<anonymous> (/home/vcap/app/srv/importCaseService.js:46:21)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async next (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:79:17)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async importCaseService.handle (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:77:10)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at async /home/vcap/app/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js:52:16 {
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR statusCode: 502,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR reason: AxiosError: Error during request to remote service:
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDOUT Error Occurred on SAP Connection: Error: Error during request to remote service:
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR In the context of Data Services an unknown internal server error occurred
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at settle (/home/vcap/app/node_modules/axios/dist/node/axios.cjs:1909:12)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at IncomingMessage.handleStreamEnd (/home/vcap/app/node_modules/axios/dist/node/axios.cjs:2989:11)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at IncomingMessage.emit (node:events:525:35)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at endReadableNT (node:internal/streams/readable:1359:12)
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDOUT In the context of Data Services an unknown internal server error occurred
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR code: 'ERR_BAD_RESPONSE',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR config: {
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR timeout: 0,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR xsrfCookieName: 'XSRF-TOKEN',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR xsrfHeaderName: 'X-XSRF-TOKEN',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR maxContentLength: -1,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR maxBodyLength: -1,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR proxy: false,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR method: 'post',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR baseURL: 'http://saphoxxxxet:443',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR url: '/sap/opu/odata/sap/YxxxxATA_SRV/$batch',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR data: '--batch\n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' Content-Type: application/http\n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' Content-Transfer-Encoding: binary\n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' \n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR " GET LtFscmInfoSet('5406695') HTTP/1.1\n" +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' \n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' \n' +
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR ' --batch--'
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR },
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR request: {
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR method: 'POST',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR url: 'http://saphoxxxxet:443/sap/opu/odata/sap/YxxxxATA_SRV/$batch',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR headers: [AxiosHeaders]
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR },
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR response: {
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR status: 500,
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR statusText: 'Internal Server Error',
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR headers: [AxiosHeaders],
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR body: [Object]
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR },
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR correlationId: '55435bd1-7d8d-4eb7-6d8a-f61aa7b10abf'
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR }
2023-07-31T15:34:48.545+0000 [APP/PROC/WEB/0] STDERR }
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR [cds] - Error: SAP Connection Error
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR at importCaseService.<anonymous> (/home/vcap/app/srv/importCaseService.js:70:21)
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR at async next (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:79:17)
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR at async importCaseService.handle (/home/vcap/app/node_modules/@sap/cds/lib/srv/srv-dispatch.js:77:10)
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR at async /home/vcap/app/node_modules/@sap/cds/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js:52:16 {
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR code: 400,
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR numericSeverity: 4,
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR id: '1350040',
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR level: 'ERROR',
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR timestamp: 1690817688546
2023-07-31T15:34:48.548+0000 [APP/PROC/WEB/0] STDERR }
2023-07-31T15:34:48.551+0000 [RTR/31] STDOUT hxxxx.cfapps.eu10.hana.ondemand.com - [2023-07-31T15:34:47.604128636Z] "POST /odata/v4/import-case/ImportCase HTTP/1.1" 400 10 85 "-" "PostmanRuntime/7.28.4" "10.0.136.5:30146" "10.36.193.16:61111" x_forwarded_for:"103.28.246.145, 10.0.136.5" x_forwarded_proto:"https" vcap_request_id:"55435bd1-7d8d-4eb7-6d8a-f61aa7b10abf" response_time:0.947239 gorouter_time:0.048076 app_id:"e2b28e07-b36c-435d-92d3-73cab0636550" app_index:"0" instance_id:"3e6e266b-f9d9-4c44-6a04-a388" x_cf_routererror:"-" x_correlationid:"-" tenantid:"-" sap_passport:"-" x_scp_request_id:"1cc70c70-17b4-4981-9668-f5873aede14a-64C7D497-3E32D12" x_cf_app_instance:"-" x_forwarded_host:"-" x_custom_host:"-" x_ssl_client:"-" x_ssl_client_session_id:"-" x_ssl_client_verify:"-" x_ssl_client_subject_dn:"-" x_ssl_client_subject_cn:"-" x_ssl_client_issuer_dn:"-" x_ssl_client_notbefore:"-" x_ssl_client_notafter:"-" x_cf_forwarded_url:"-" traceparent:"-" x_b3_traceid:"55435bd17d8d4eb76d8af61aa7b10abf" x_b3_spanid:"6d8af61aa7b10abf" x_b3_parentspanid:"-" b3:"55435bd17d8d4eb76d8af61aa7b10abf-6d8af61aa7b10abf"
If a batch request is still not supported in CAP, is there any alternative to achieve this? I have checked SAP Cloud-SDK for batch requests. But is there anyone who achieved it through that? If so, kindly share some sample codes.
Request clarification before answering.
This could be due to the new line character "\n" that is part of your multipart body. Scenarios using SAP Integration Suite with a manual multipart body also require an additional step to convert new lines to "\r\n" (example).
I would try to change your code to use explicit New Line + Carriage Return "\r\n" characters to construct the body instead of relying on the backtick notation.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
71 | |
21 | |
9 | |
7 | |
6 | |
6 | |
4 | |
4 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.