点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
让我们想象一下,我有这样定义的表函数:
功能" com.sap.functions :: GetClientsAmount" ( inQueueIdList" com.sap.api :: types.TT_QueueList" ) 返回" com.sap.api :: types.TT_ClientAmount" 语言SQLSCRIPT SQL安全调用者 开始 ... 结束;
其中
表类型TT_QueueList { id:Integer64; };
现在,我想对功能进行单元测试。 为此,我使用了单独的Node.js模块,可以在其中从调用表函数的位置创建xsjslib单元测试文件。
因此,我执行以下操作:
let queueIdList = []; connection.executeQuery('SELECT * from'+ '" com.sap.functions :: GetClientsAmount"(?)',queueIdList);
不幸的是,在这种情况下,我得到一个错误:
错误:无效参数:输入参数不足于表参数:第1行第64行(在pos 63)
我尝试将queueIdList初始化为{},但是遇到了相同的错误。 在测试过程中,我知道我们可以传递一个带有对象[{id:1},{id:2}]的数组,但是看来这里的方法不一样。 而且,这种方式在这里适用于传递整数参数,因此我假设表参数可以用相同的方式完成,但似乎不行。
那么,应该怎么做?
已被问及回答过两次。
在这种情况下,数据库客户端无法传递表类型的参数,并且您的XSJS程序是数据库客户端。
可以在SQLScript上下文(或相应的块)中创建和处理表类型参数。
您可以使用匿名块,例如:
最后一次选择的结果将位于隐式结果集中,因此对于您的测试设置,您可以像调用任何过程一样调用此构造,并获取结果集以与正确的值进行比较。
一周热门 更多>