Skip to content

Commit

Permalink
example for filter on Condition Table
Browse files Browse the repository at this point in the history
  • Loading branch information
gregorwolf committed Jan 22, 2024
1 parent 97ee543 commit 40f9bc2
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
7 changes: 7 additions & 0 deletions srv/condition-service.cds
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using {API_SLSPRICINGCONDITIONRECORD_SRV as external} from './external/API_SLSPRICINGCONDITIONRECORD_SRV';

service ConditionService {

function getConditionValidityForTable() returns array of String;

}
46 changes: 46 additions & 0 deletions srv/condition-service.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
const cds = require("@sap/cds");
const LOG = cds.log("condition-service");

const { setGlobalLogLevel } = require("@sap-cloud-sdk/util");

const {
SlsPrcgCndnRecdValidity: sdkSlsPrcgCndnRecdValidity,
SlsPrcgConditionRecord: sdkSlsPrcgConditionRecord,
} = require("./odata-client/slspricingconditionrecord-service");
const { or, and } = require("@sap-cloud-sdk/core");

module.exports = async function () {
this.on("getConditionValidityForTable", async (req) => {
LOG._info && LOG.info("getConditionValidityForTable");
setGlobalLogLevel("debug");

const queryBuilderCondVal = sdkSlsPrcgCndnRecdValidity
.requestBuilder()
.getAll()
.top(10)
.select(
sdkSlsPrcgCndnRecdValidity.MATERIAL,
sdkSlsPrcgCndnRecdValidity.CONDITION_TYPE,
sdkSlsPrcgCndnRecdValidity.CONDITION_VALIDITY_START_DATE,
sdkSlsPrcgCndnRecdValidity.CONDITION_VALIDITY_END_DATE,
sdkSlsPrcgCndnRecdValidity.TO_SLS_PRCG_CONDITION_RECORD.select(
sdkSlsPrcgConditionRecord.CONDITION_TABLE
)
)
.filter(
and(
or(sdkSlsPrcgCndnRecdValidity.MATERIAL.equals("TG11")),
or(sdkSlsPrcgCndnRecdValidity.CONDITION_TYPE.equals("PPR0")),
or(
sdkSlsPrcgCndnRecdValidity.TO_SLS_PRCG_CONDITION_RECORD.filter(
sdkSlsPrcgConditionRecord.CONDITION_TABLE.equals("304")
)
)
)
);
const responseCondVal = await queryBuilderCondVal.execute({
destinationName: "APIBusinessHub",
});
return responseCondVal;
});
};
13 changes: 13 additions & 0 deletions test/API_SLSPRICINGCONDITIONRECORD_SRV.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
### Read Condition Record Validity and filter for ConditionTable
GET {{$dotenv APIBusinessHub}}/sap/opu/odata/sap/API_SLSPRICINGCONDITIONRECORD_SRV/A_SlsPrcgCndnRecdValidity
?$inlinecount=allpages
&$top=5
&$filter=Material eq 'TG11' and ConditionType eq 'PPR0' and to_SlsPrcgConditionRecord/ConditionTable eq '304'
&$select=Material,ConditionType,ConditionValidityStartDate,ConditionValidityEndDate,to_SlsPrcgConditionRecord/ConditionTable
&$expand=to_SlsPrcgConditionRecord
&sap-language=en
Accept: application/json
Accept-Language: en
APIKey: {{$dotenv APIKey}}
###
GET http://localhost:4004/odata/v4/condition/getConditionValidityForTable()

0 comments on commit 40f9bc2

Please sign in to comment.