Question about upload the photo to user table
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
7 hours ago
Hi all,
I want to write a scripted api to upload the photo to user table. Here is my code but failed. Please help to correct the code.
(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var requestBody = request.body.dataString;
var parser = new global.JSON();
var parsedData = parser.decode(requestBody);
var correlation_id = parsedData.userID;
//var fileName = 'photo';
var fileContentType = parsedData.contentType;
var fileData = parsedData.fileData;
var rec = new GlideRecord('sys_user');
rec.addQuery('u_correlation_id', correlation_id);
rec.query();
if (rec.next()) {
var attachment_request = new sn_ws.RESTMessageV2();
var endPoint ='https://xxxxxx.service-now.com/api/now/attachment/file?table_name=ZZ_YYsys_user&file_name=photo&tabl...'+rec.sys_id;
attachment_request.setEndpoint(endPoint);
attachment_request.setHttpMethod('POST');
var user = 'xxx';
var password = 'xxxxx';
attachment_request.setBasicAuth(user, password);
attachment_request.setRequestHeader("Accept", "application/json");
attachment_request.setRequestHeader("Content-Type", fileContentType);
attachment_request.setRequestBody(fileData);
var attachment_response = attachment_request.execute();
response.setBody(attachment_response.responseBody);
response.setStatus(attachment_response.getStatusCode());
} else {
var error = "The User ID " + correlation_id + " not found in ServiceNow";
var responseBodyFailure = {
"error": error
};
responseBodyFailure.status = "Failure";
response.setStatus(404);
response.setBody(responseBodyFailure);
}
})(request, response);
10 REPLIES 10
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
You means this solution? but write() is only for plan text?
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { var requestBody = request.body.dataString; var parser = new global.JSON(); var parsedData = parser.decode(requestBody); var number = parsedData.incidentNumber; var fileName = parsedData.fileName; var fileContentType = parsedData.contentType; var fileData = parsedData.fileData; var rec = new GlideRecord('incident'); rec.addQuery('number',number); rec.query(); if(rec.next()){ var sa = new GlideSysAttachment(); sa.write(rec, fileName, fileContentType, fileData); var responseBody = {}; responseBody.incNumber = number; responseBody.status = "Success"; response.setBody(responseBody); } else{ var responseBodyFailure = {}; responseBodyFailure.status = "Failure"; response.setBody(responseBodyFailure); } })(request, response);