点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的同事, 有...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的同事, 有...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
亲爱的同事,
有什么方法可以调用ServiceLayer JS扩展中的动作(例如取消文档)? 我浏览了文档,发现那里什么也没有。 毫不奇怪,CRUD API仅提供用于CRUD操作的方法。 我什至尝试用另一种方法扩展ServiceLayerContext原型,但这仍然无济于事(再次不足为奇)。
以删除为例,我们可以在JS SDK中找到以下内容:
SAPB1.ServiceLayerContext.prototype.remove =函数(名称,键,callbackFunc){ var entityType = null; 如果(this.hasOwnProperty(name)){ entityType = this [name] .type; } var normalizedKey = SAPB1.Utility.NormalizeKey(key,entityType); var strRet = this.contextHandle.deleteEntity(name,normalizedKey); var jsonRet = JSON.parse(strRet); var ret = new SAPB1.DataServiceResponse('remove',jsonRet.status,jsonRet.body); 如果(!ret.isOK()){ if(ret.getErrCode()== http.ScriptError.TRANSACTION_TOO_LARGE_ERROR){ 抛出新的http.HttpException(ret.status,ret.getErrMsg(),ret.getErrCode()); } } 如果(typeof(callbackFunc)==='函数'){ callbackFunc(jsonRet.status,jsonRet.body); } 返回ret };
contextHandle如下:
函数getContextHandle(){ 返回serviceLayerContext; } this.contextHandle = getContextHandle();
因此,我假定此serviceLayerContext变量是用于执行SL操作的变量(我在这里吗?)。 但我不知道该对象的签名。 我试图记录它,但没有成功。 我的用例是,我主要将SE用于复杂的事务处理,并且如果您需要使用主数据也可以。 但是,当您需要更改AR发票和收款时,通常需要取消链并重新创建。 在这种情况下,如果没有此SL操作,则SE对于我的业务案例是完全没有用的。
感谢您的帮助。
我得到了支持人员的答复,但不幸的是,该答复尚未实现(最高9.3 PL 06)。
回复文本:
亲爱的 Sergei Travkin,
当前,脚本引擎不支持取消之类的操作。
可以从9.3PL5应用以下解决方法来通过服务层取消现有文档:
A/P发票: POST/b1s/v1/购买发票(XX)/取消
A/P贷项通知单:/b1s/v1/购买信用凭证(XX)/取消
由于服务层当前缺少此功能,请遵循注释1028874中的说明进行请求。
感谢您的合作与谅解。
一周热门 更多>