点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我想从工作流项目中的脚...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家, 我想从工作流项目中的脚...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家,
我想从工作流项目中的脚本任务触发邮件通知。 尽管邮件任务是直接选择,但我们的环境不支持该任务。 因此,我试图使用脚本文件来触发邮件。
下面是我试图触发脚本文件中邮件的代码。
我在监视器工作流中收到错误" ReferenceError:在
任何有关此的建议将非常有帮助。
谢谢
Srinivasan Seetharaman
/*全球邮件承诺*/ /*导出的邮件承诺*/ /* eslint no-undef:"错误" */ /* eslint no-unused-vars:"错误" */ /* eslint no-unused-vars:["错误",{" vars":"本地"}] */ /*不添加阴影:["错误",{"提升":"功能"}] */ /* eslint-env es6 */ var mailPromise; 函数http(url){ var core = { ajax:函数(方法,网址,标头,args,mimetype){ mailPromise =新的Promise(函数(解决,拒绝){ var client = new XMLHttpRequest(); var uri = url; if(args && method ==='GET'){ uri + ='?'; var argcount = 0; for(参数中的var键){ 如果(args.hasOwnProperty(key)){ 如果(argcount ++){ uri + ='&'; } uri + = encodeURIComponent(key)+'='+ encodeURIComponent(args [key]); } } } if(args &&(method ==='POST'|| method ==='PUT')){ var data = {}; 对于(参数中的var keyp){ 如果(args.hasOwnProperty(keyp)){ data [keyp] = args [keyp]; } } } client.open(method,uri); if(方法==='POST'||方法==='PUT'){ client.setRequestHeader(" accept"," application/json"); client.setRequestHeader(" content-type"," application/json"); } 用于(标头中的var keyh){ 如果(headers.hasOwnProperty(keyh)){ client.setRequestHeader(keyh,headers [keyh]); } } 如果(数据){ client.send(JSON.stringify(data)); }其他{ client.send(); } client.onload = function(){ 如果(this.status === 200 || this.status === 201){ var oResult = { 回应:this.response, responseHeaders:client.getResponseHeader(" x-csrf-token") }; resolve(oResult); }其他{ 拒绝(this.statusText); } }; client.onerror = function(){ 拒绝(this.statusText); }; }); //返回承诺; } }; 返回{ 'get':函数(标头,参数){ 返回core.ajax('GET',url,headers,args); }, 'post':函数(标题,参数){ 返回core.ajax('POST',url,headers,args); }, 'put':函数(标题,参数){ 返回core.ajax('PUT',url,headers,args); }, 'delete':function(headers,args){ 返回core.ajax('DELETE',url,headers,args); } }; } 函数triggerMail(workflowName,materialApprovedStatus,requesterName,requesterEmail,注释){ 如果(materialApprovedStatus ==="已拒绝"){ var oMail = { 来自:" approverUserId", 到:requesterEmail, 主题:"工作流程" +工作流程名称+"拒绝邮件", 正文:"亲爱的" + requesterName +"," +注释 }; }否则,如果(materialApprovedStatus ===" reworked"){ oMail = { 来自:" masterdata@eagleburgmann.com", 到:requesterEmail, 主题:"返工:" +工作流程名称, 正文:"亲爱的" + requesterName +"," +注释 }; } var oHeaders = { " X-CSRF-TOKEN":"获取" }; http("/img/sendmail")。get(oHeaders).then(function(result){ oHeaders = { " X-CSRF-TOKEN":result.responseHeaders }; http("/img/sendmail")。post(oHeaders,oMail).then(function(){ //sap.ui.core.BusyIndicator.hide(); //var oBundle = this.getView()。getModel(" i18n")。getResourceBundle(); //var sMsg = oBundle.getText(" NotificationSentSuccess"); alert("邮件成功触发"); }); }); } 如果($ .context.requestedMaterial.materialApprovedStatus ==="重做"){ //从现有工作流程上下文中读取 var workingName = $ .context.wftasktitle; var materialApprovedStatus = $ .context.materialApprovedStatus; var userId = $ .context.requestedMaterial.Userid; var requesterEmail = $ .context.requestedMaterial.RequesterEmail; var comments = $ .context.requestedMaterial.Comments; } triggerMail(workflowName,materialApprovedStatus,userId,requesterEmail,注释);
Hi Srinivas,
1)服务任务直接支持CSRF令牌管理。 请参阅服务任务中的相应字段。 您只需指定到返回XSRF令牌的端点的相对于目的地的路径即可。
2)App2AppSSO是UI应用程序不需要登录的概念,如果另一个应用程序中已有会话。 但是,服务任务仅通过OAuth2SAMLBearerAssertion目标类型支持类似的身份验证。
请参阅有关目的地的文档以及对主体传播的引用。 对于Neo,请参见此处:
https://help.sap.com/viewer/ f85276c5069a429fa37d1cd352785c25/Cloud/zh-CN/c4eeb034167e4879b2e3cf86f63e5a5e.html
此致
Tobias
一周热门 更多>