Populate existing Standard Change with Record Producer or similar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-05-2019 12:31 AM
Our business is one that moves around quite a lot. We're in a situation where we have a Property team who will trigger an office relocation request via email, which comes through as an incident currently, which is a bit crummy and not great in terms of delegating a set list of standard tasks.
I'd like to have our Property team fill out a form on our Service Portal which says what site is moving, when it's moving, who the contact is and how many people there will be. Obviously, I can leverage information from tables from all over (locations, users, etc). I have a standard change in my standard change catalog for Office Relocations but these people are not IT users so I don't really want them to be raising IT requests such as that.
What I'd like, ideally, is a record producer, or something else that's friendly, that populates a standard change with the four pieces of simple information, then I can go through and populate, say, the site's printer in to a change task, arrange for our Telco in another one, etc.
Does anyone have any bright ideas on how this can be achieved, please?
Many thanks,
Your friendly Yorkshireman.
- Labels:
-
Change Management
-
Request Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-05-2019 12:46 AM
If you don't want to use a record producer, you could just have them submit records to a custom table then add the standard change via script from that record. I have the below script include kicking about on my PDI, haven't actually deployed it anywhere but i recall successfully testing it though.
var u_StandardChangeUtils = Class.create();
u_StandardChangeUtils.prototype = {
initialize: function() {
},
createStdChange : function(templateID){
try{
var template = new GlideRecord('std_change_record_producer');
if(template.get(templateID)){
var chg = new GlideRecord('change_request');
chg.initialize();
chg.applyTemplate(template.name);
chg.std_change_producer_version = template.current_version;
chg.type = 'standard';
var sysID = chg.insert();
var link = this.createLinkForObject(chg.getTableName(),sysID,chg.getDisplayValue());
gs.addInfoMessage('A change has been created to process this request, reference ' + link);
}else{
gs.log('A template matching that ID does not exist.');
}
}catch(err){
gs.log('Error occured: '+err.getMessage());
}
return '';
},
createLinkForObject: function(strTableName,strSysID,strRecordNumber){
return '<a href="' + gs.getProperty('glide.servlet.uri') + gs.generateURL(strTableName, strSysID) + '">' + strRecordNumber + '</a>';
},
type: 'u_StandardChangeUtils'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-05-2019 05:07 AM
Why not create a catalog item for office moves? That is what we're going to do where I work. You can ask the questions you want, non IT people can submit through your service catalog and then setup workflow to account for sending tasks to various people? The end user can still have some visibility and they won't submit a ticket that only IT people can see. I'd stick to the tables that are available oob and not go with anything custom the way licensing is changing.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-10-2019 07:28 PM
Hi Tony
When you're creating the catalog item, would you just include the information that you need to capture in variables? I'm happy creating the workflows associated with this (our approval mechanism is like a bowl of spaghetti!) but I don't really know any other way of capturing the required information.
I guess you'd start with the catalog items and then generate sub tasks and changes from that?
I'm very keen on not creating anything custom, table wise - I've been bitten on the nose by that in the past!
Thanks