<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: SAP Cloud Application Programming: Procedure arguments in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaa-p/12296556#M4608487</link>
    <description>&lt;P&gt;I was doing this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;const {PID, CENTERLAT, CENTERLONG, PTOL, ETOL, CURRLAT, CURRLONG, OPEN_CLOSE, LDATE, LTIME} = req.data


const ip = [{"PID": PID}, {"CENTERLAT": CENTERLAT}, {"CENTERLONG": CENTERLONG}, {"PTOL": PTOL}, {"ETOL": ETOL}, {"CURRLAT": CURRLAT}, {"CURRLONG": CURRLONG}, {"OPEN_CLOSE": OPEN_CLOSE}, {"LDATE": LDATE}, {"LTIME": LTIME}]


const output = await dbConn.callProcedurePromisified(sp, req.data)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Basically deconstructing req.data into a code array and passing it into the callProcedurePromisified function.
Then, I thought why not just pass in req.data? as in the following:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;const output = await dbConn.callProcedurePromisified(sp, req.data)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;It works!!&lt;/P&gt;</description>
    <pubDate>Fri, 28 Aug 2020 17:18:09 GMT</pubDate>
    <dc:creator>robert_schmidt01</dc:creator>
    <dc:date>2020-08-28T17:18:09Z</dc:date>
    <item>
      <title>SAP Cloud Application Programming: Procedure arguments</title>
      <link>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaq-p/12296555</link>
      <description>&lt;P&gt;Hi, I have a SAP Cloud Application that is calling procedures. All the procedures that do not have arguments are working well, but I cannot get the procedure with arguments to work. I have narrowed it down to the following lines in my node.js service file:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;const ip = [{"PID": PID}, {"CENTERLAT": CENTERLAT}, {"CENTERLONG": CENTERLONG}, {"PTOL": PTOL}, {"ETOL": ETOL}, {"CURRLAT": CURRLAT}, {"CURRLONG": CURRLONG}, {"OPEN_CLOSE": OPEN_CLOSE}, {"LDATE": LDATE}, {"LTIME": LTIME}]     

const output = await dbConn.callProcedurePromisified(sp, ip)&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;The error that I am getting is:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;    { code: -20007,
      message: 'Can not bind parameter(0).',
      sqlState: 'HY000' }
    [2020-08-28T16:30:32.649Z | ERROR | 1987505]: An error occurred during serialization of the entity collection.
    [2020-08-28T16:30:32.649Z | ERROR | 1987505]: Error stacktrace: SerializationError: An error occurred during serialization of the entity collection.&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;When I console.log ip, I get:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;    [ { PID: 'ab9359f1-2b72-4a4b-abf2-0295c7913b51' },
      { CENTERLAT: 32.352521 },
      { CENTERLONG: -117.632423 },
      { PTOL: 3.999999 },
      { ETOL: 5 },
      { CURRLAT: 32.321456 },
      { CURRLONG: -117.090456 },
      { OPEN_CLOSE: 'C' },
      { LDATE: '12122059' },
      { LTIME: '121259' } ]&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;My Procedure definition is:&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;PROCEDURE "PointPathDistance" (IN PID NVarChar(36),
                               IN CENTERLAT Double,
                               IN CENTERLONG Double,
                               IN PTOL Double
                               IN ETOL Double,
                               IN CURRLAT Double,
                               IN CURRLONG Double,
                               IN OPEN_CLOSE NVarChar(1),
                               IN LDATE NVarChar (8),
                               IN LTIME NVarChar(8),
                               out result "GUARDIANANGEL_USERLOCATIONS")&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;Any ideas? &lt;/P&gt;
  &lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 28 Aug 2020 16:51:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaq-p/12296555</guid>
      <dc:creator>robert_schmidt01</dc:creator>
      <dc:date>2020-08-28T16:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Cloud Application Programming: Procedure arguments</title>
      <link>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaa-p/12296556#M4608487</link>
      <description>&lt;P&gt;I was doing this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;const {PID, CENTERLAT, CENTERLONG, PTOL, ETOL, CURRLAT, CURRLONG, OPEN_CLOSE, LDATE, LTIME} = req.data


const ip = [{"PID": PID}, {"CENTERLAT": CENTERLAT}, {"CENTERLONG": CENTERLONG}, {"PTOL": PTOL}, {"ETOL": ETOL}, {"CURRLAT": CURRLAT}, {"CURRLONG": CURRLONG}, {"OPEN_CLOSE": OPEN_CLOSE}, {"LDATE": LDATE}, {"LTIME": LTIME}]


const output = await dbConn.callProcedurePromisified(sp, req.data)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Basically deconstructing req.data into a code array and passing it into the callProcedurePromisified function.
Then, I thought why not just pass in req.data? as in the following:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;const output = await dbConn.callProcedurePromisified(sp, req.data)&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;It works!!&lt;/P&gt;</description>
      <pubDate>Fri, 28 Aug 2020 17:18:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaa-p/12296556#M4608487</guid>
      <dc:creator>robert_schmidt01</dc:creator>
      <dc:date>2020-08-28T17:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Cloud Application Programming: Procedure arguments</title>
      <link>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaa-p/12296557#M4608488</link>
      <description>&lt;P&gt;How can I call stored procedure using event handler in node js . &lt;/P&gt;&lt;P&gt;I have tried but it can't works.&lt;/P&gt;&lt;P&gt;I have created a SP&lt;/P&gt;PROCEDURE "stored_p"(    IN ID NVARCHAR (50),    IN title VARCHAR(50),    IN stock NVARCHAR(50),    IN Authors_ID NVARCHAR(50),    OUT result  "MY_BOOKSHOP_BOOKS"&lt;P&gt;)&lt;/P&gt;LANGUAGE SQLSCRIPT   SQL SECURITY INVOKER  --DEFAULT SCHEMA &amp;lt;default_schema_name&amp;gt; AS&lt;P&gt;BEGIN&lt;/P&gt;INSERT INTO "MY_BOOKSHOP_BOOKS" ("ID","TITLE","STOCK","AUTHORS_ID")VALUES (ID,title,stock,Authors_ID);result = select * from "MY_BOOKSHOP_BOOKS" where ID =:ID;JS CODE:this.on('addBook', async req=&amp;gt;{        try{            const {ID,title,stock,Authors_ID} = req.data&lt;BR /&gt;            const ip = [{"ID": ID},{"title":title},{"stock":stock},{"Authors_ID":Authors_ID}];            const db = await cds.connect.to('db')            const dbClass=require("sap-hdbext-promisfied")            let dbConn=new dbClass(await dbClass.createConnection(db.options.credentials))            const hdbext=require("@sap/hdbext")            const sp=await dbConn.loadProcedurePromisified(hdbext,null,'stored_p')            const output=await dbConn.callProcedurePromisified(sp,req.data)            console.log(output.results)            return output.results        }catch(error){            console.error(error)            return {}        }&lt;BR /&gt;})This is cds view action addBook () returns array of Books;&lt;BR /&gt;But i get this error{    "@odata.context": "$metadata#Books",    "value": [        {}    ]}Is there any solution??</description>
      <pubDate>Fri, 12 Aug 2022 11:25:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/sap-cloud-application-programming-procedure-arguments/qaa-p/12296557#M4608488</guid>
      <dc:creator>devboy</dc:creator>
      <dc:date>2022-08-12T11:25:03Z</dc:date>
    </item>
  </channel>
</rss>

