Server Calls (AJAX)
frappe.call
frappe.call(method, args)
Makes an AJAX request to the server, where the method is the REST API path, which is executed and the return value is sent as the response.
// call with no parameters
frappe.call('ping')
.then(r => {
console.log(r)
// {message: "pong"}
})
// call with a single parameter
frappe.call('cybersecurity-get_profile', {
profile: 'Test'
}).then(r => {
console.log(r.message)
})
// call with all options
frappe.call({
method: 'cybersecurity-get_profile',
args: {
profile: 'Test'
},
// disable the button until the request is completed
btn: $('.primary-action'),
// freeze the screen until the request is completed
freeze: true,
callback: (r) => {
// on success
},
error: (r) => {
// on error
}
})
frappe.db.get_doc
frappe.db.get_doc(doctype, name, filters)
Returns the Document object of doctype and name. If name is not provided, gets the first document matched by filters.
// get doc by name
frappe.db.get_doc('Task', 'TASK00002')
.then(doc => {
console.log(doc)
})
// get doc by filters
frappe.db.get_doc('Task', null, { status: 'Open' })
.then(doc => {
console.log(doc)
})
frappe.db.get_list
frappe.db.get_list(doctype, { fields, filters })
Returns a list of records of doctype with fields and filters.
frappe.db.get_list('Task', {
fields: ['subject', 'description'],
filters: {
status: 'Open'
}
}).then(records => {
console.log(records);
})
frappe.db.get_value
frappe.db.get_value(doctype, name, fieldname)
Returns a document's field value or a list of values.
// single value
frappe.db.get_value('Task', 'TASK00004', 'status')
.then(r => {
console.log(r.message.status) // Open
})
// multiple values
frappe.db.get_value('Task', 'TASK00004', ['status', 'subject'])
.then(r => {
let values = r.message;
console.log(values.status, values.subject)
})
// using filters
frappe.db.get_value('Task', {status: 'Open'}, 'subject')
.then(r => {
let values = r.message;
console.log(values.subject)
})
frappe.db.get_single_value
frappe.db.get_single_value(doctype, field)
Returns a field value from a Single DocType.
frappe.db.get_single_value('System Settings', 'time_zone')
.then(time_zone => {
console.log(time_zone);
})
frappe.db.set_value
frappe.db.set_value(doctype, docname, fieldname, value, callback)
Sets a document's property using frappe.get_doc and doc.save on server.
// update a field's value
frappe.db.set_value('Task', 'TASK00004', 'status', 'Open')
.then(r => {
let doc = r.message;
console.log(doc);
})
// update multiple fields
frappe.db.set_value('Task', 'TASK00004', {
status: 'Working',
priority: 'Medium'
}).then(r => {
let doc = r.message;
console.log(doc);
})
frappe.db.insert
frappe.db.insert(doc)
Insert a new document.
frappe.db.insert({
doctype: 'Task',
subject: 'New Task'
}).then(doc => {
console.log(doc);
})
frappe.db.count
frappe.db.count(doctype, filters)
Returns number of records for a given doctype and filters.
// total number of Task records
frappe.db.count('Task')
.then(count => {
console.log(count)
})
// total number of Open Tasks
frappe.db.count('Task', { status: 'Open' })
.then(count => {
console.log(count)
})
frappe.db.delete_doc
frappe.db.delete_doc(doctype, name)
Delete a document identified by doctype and name.
frappe.db.delete_doc('Task', 'TASK00004')
frappe.db.exists
frappe.db.exists(doctype, name)
Returns true if a document record exists.
frappe.db.exists('Task', 'TASK00004')
.then(exists => {
console.log(exists) // true
})