function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Kate Porter 3Kate Porter 3 

Onclick Javascript to set record type for new task

I can create a new task from a button and set all the fields I want except the record type. Can anyone help?

I tried myTask.RecordType = "Support Type"; and also RecordTypeID. I either get an error message or no task created.

This code works:

{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")}
var myTask = new sforce.SObject("Task");
myTask.WhatId= "{!Case.Id}";
myTask.Subject = "{!Case.Account} - {!Case.Reason}";
myTask.status = "Not Started";
myTask.Activity_Business_Type__c = "Existing Business";
myTask.Type = "Product Support Task";
myTask.ActivityDate = "{!SUBSTITUTE(TEXT(TODAY()+3), "/", "-")}";
sforce.connection.create([myTask]);
window.location.reload();
AvinashBAvinashB
Hi

Add below code in your existing code.
​var result = sforce.connection.query("Select Id, Name From RecordType Where SobjectType = 'Task' AND Name = 'Support Type'");
var records = result.getArray("records");
myTask.RecordtypeId = records[0].Id;

 
Asha KAsha K
Query the required record type before

RecordType rt = [select Id from RecordType where Name = 'XXX ' and SobjectType = 'Task' limit 1];

Then assing myTask.RecordTypeId = rt.Id
Kate Porter 3Kate Porter 3
Thanks Avinash, I now get the error message "records[0] is undefined"
AvinashBAvinashB
It means query not returning any records. Can you please confirm the RecordType Name and Please paste your complete code again.
​Below is my working code.
{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")}
var myTask = new sforce.SObject("Task");
myTask.WhatId= "{!Case.Id}";
myTask.Subject = "{!Case.Account} - {!Case.Reason}";
myTask.status = "Not Started";
myTask.ActivityDate = "{!SUBSTITUTE(TEXT(TODAY()+3), "/", "-")}";
var result = sforce.connection.query("Select Id, Name From RecordType Where SobjectType = 'Task' AND Name = 'test1'");
var records = result.getArray("records");
myTask.RecordtypeId = records[0].Id;
sforce.connection.create([myTask]);

window.location.reload();