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
    })


Discard
Save

On this page

Review Changes ← Back to Content
Message Status Space Raised By Last update on