cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to use parameterized external service programatically in CAP node.js

KM11
Product and Topic Expert
Product and Topic Expert
2,206

Hi Experts

I need to programmatically call an external parameterized service in my cap application.

External service url:

/servicename/ABC(Key=‘123’)/Set


CAP service.cds file:

entity Abc(Key:String(3)) as projection on ext.ABC;


CAP Node.js call: srv.run(SELECT.from(‘Abc(Key:’123’)’)); // tried passing in single quotes and template string both

This created a url like: dest.servicename/?$select=Key


Note: The external service is made out of calc view with parameters


Kindly help. david.kunz2 gregorwolf

Thanks

Kanika

View Entire Topic
KM11
Product and Topic Expert
Product and Topic Expert

Hi david.kunz2

Thanks for the reply!!
Well, I wrote 'key' hypothetically to avoid using exact names as my service.

Passing with and without quotes around the value also, didnt work.
Finally, I found the cqn way of passing which is finally making the correct URL '/ABC(Key=‘123’)/Set'.

Would be happy to try any other way of achieving the same 🙂

SELECT: { from: { ref: [{ id: "Abc", where: [{ ref: ["key"] }, "=", { val: `${value}` }] }, "Set"] }, columns: [ { ref: ["*"] } ], where: [{ ref: ["fieldname"] }, "=", { val: `${value}` }], } };

SELECT: { 
    from: { ref: [{ id: "Abc", where: [{ ref: ["key"] }, "=", { val: `${value}` }] }, "Set"] }, 
    columns: [ { ref: ["*"] } ], 
    where: [{ ref: ["fieldname"] }, "=", { val: `${value}` }], 
  } 
};