Servicenow:表格中的自定义附件小部件未在提交时上传文档
Posted
技术标签:
【中文标题】Servicenow:表格中的自定义附件小部件未在提交时上传文档【英文标题】:Servicenow: Custom attachment widget in table not uploading documents onSubmit 【发布时间】:2020-04-28 05:32:31 【问题描述】:我们的团队正在开发 ServiceNow 的纽约版本,并尝试将附件合并到表格小部件中。我们通过复制此post 中所做的内容创建了一个自定义附件小部件。该附件小部件的代码如下:
<now-attachments-list template="sp_attachment_single_line" ></now-attachments-list>
<label style="float:left;font-weight:normal;cursor:pointer;">
<sp-attachment-button></sp-attachment-button>
<!--<span style="padding-left:4px;">$please fill them in excel and attach it to this request.<br>Click <a>here</a> to add an attachment</span>-->
</label>
<sp-message-dialog name="delete_attachment"
title=""
message=""
ok=""
cancel=""
dialog-class="delete-dialog"/>
function ($scope, $http, spUtil, nowAttachmentHandler, $rootScope, $sanitize, $window, $sce)
var c = this;
c.quantity = 1;
//$scope.data.sc_cat_item.description = $sce.trustAshtml($scope.data.sc_cat_item.description);
$scope.m = $scope.data.msgs;
$scope.submitButtonMsg = $scope.m.submitMsg;
var ah = $scope.attachmentHandler = new nowAttachmentHandler(setAttachments, function() );
ah.setParams('sp_portal', $scope.data._attachmentGUID, 1024 * 1024 * 24);
function setAttachments(attachments, action)
$scope.attachments = attachments;
$scope.attachmentHandler.getAttachmentList();
$scope.confirmDeleteAttachment = function(attachment, $event)
$rootScope.$broadcast("dialog.delete_attachment.show",
parms:
ok: function()
$scope.attachmentHandler.deleteAttachment(attachment);
$rootScope.$broadcast("dialog.delete_attachment.close");
,
cancel: function()
$rootScope.$broadcast("dialog.delete_attachment.close");
,
details: attachment.name
)
(function()
var m = data.msgs = ;
m.submitMsg = gs.getMessage("Submit");
m.submittedMsg = gs.getMessage("Submitted");
m.createdMsg = gs.getMessage("Created");
m.trackMsg = gs.getMessage("track using 'Requests' in the header or");
m.clickMsg = gs.getMessage("click here to view");
m.dialogTitle = gs.getMessage("Delete Attachment");
m.dialogMessage = gs.getMessage("Are you sure?");
m.dialogOK = gs.getMessage("OK");
m.dialogCancel = gs.getMessage("Cancel");
if (input)
data.sys_id = input.sys_id;
else
data.sys_id = $sp.getParameter("sys_id") || $sp.getParameter('sl_sys_id');
data._attachmentGUID = gs.generateGUID();
// portal can specify a catalog home page
data.sc_catalog_page = $sp.getDisplayValue("sc_catalog_page") || "sc_home";
var validatedItem = new GlideappCatalogItem.get(data.sys_id);
if (!validatedItem.canView())
return;
)()
在我们的表格小部件中,我们将上述附件小部件嵌入到一个列中:
<td>
<widget id="custom-attachments"></widget>
</td>
最终结果如下所示:
现在,这允许我们按行“附加”文档,这正是我们想要的。然而,一旦我们按下提交,什么也没有发生。一旦用户点击提交,我们希望为表中的每一行创建一个新案例,并将相应的附件上传并附加到每个新案例。我们在添加附件小部件之前的代码创建了案例,但现在什么都没有创建,也没有任何反应。控制台中也没有错误,所以我们不确定到底发生了什么。有什么建议吗?
【问题讨论】:
【参考方案1】:目前您似乎没有指定任何服务器端代码来处理提交。是否有您排除的其他代码可以通过?
如果没有,您似乎需要编写一个处理程序来为您创建记录,另一个处理程序上传附件,然后将它们添加到创建的记录中。
【讨论】:
以上是关于Servicenow:表格中的自定义附件小部件未在提交时上传文档的主要内容,如果未能解决你的问题,请参考以下文章