Database.insertWithAccess shown in Database class from Illuminated cloud

Issue #1977 resolved
Nagendra Singh created an issue

When typing

Database.

now we see few extra suggestions getting shown. Such as “insertWithAccess“ “mergeWithAccess“ “undeleteWithAccess“ and so on. But when using that and saving the file. Save fails with error message : “Type is not visible: System.AccessLevel“

I think the symbol table is wrongly picking up some internal methods to Salesforce here. Is this expected or is this bug from the plugin?

// Generated by Illuminated Cloud on Tue Sep 14 18:27:48 IST 2021. Do not edit.

global class /*System.*/Database 
{
    global static Database.LeadConvertResult convertLead(Database.LeadConvert leadConvert)
    {
    }

    global static Database.LeadConvertResult convertLead(Database.LeadConvert leadConvert, Boolean allOrNothing)
    {
    }

    global static Database.LeadConvertResult convertLead(Database.LeadConvert leadConvert, Database.DMLOptions DmlOptions)
    {
    }

    global static List<Database.LeadConvertResult> convertLead(List<Database.LeadConvert> leadConverts)
    {
    }

    global static List<Database.LeadConvertResult> convertLead(List<Database.LeadConvert> leadConverts, Boolean allOrNothing)
    {
    }

    global static List<Database.LeadConvertResult> convertLead(List<Database.LeadConvert> leadConverts, Database.DMLOptions DmlOptions)
    {
    }

    global static Database.LeadConvertResult convertLeadWithAccess(Database.LeadConvert leadConvert, AccessLevel AccessLevel)
    {
    }

    global static Database.LeadConvertResult convertLeadWithAccess(Database.LeadConvert leadConvert, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.LeadConvertResult convertLeadWithAccess(Database.LeadConvert leadConvert, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static List<Database.LeadConvertResult> convertLeadWithAccess(List<Database.LeadConvert> leadConverts, AccessLevel AccessLevel)
    {
    }

    global static List<Database.LeadConvertResult> convertLeadWithAccess(List<Database.LeadConvert> leadConverts, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.LeadConvertResult> convertLeadWithAccess(List<Database.LeadConvert> leadConverts, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static Integer countQuery(String query)
    {
    }

    global static Integer countQueryWithAccess(String query, AccessLevel accessLevel)
    {
    }

    global static Database.DeleteResult delete(Id id)
    {
    }

    global static Database.DeleteResult delete(Id id, Boolean allOrNothing)
    {
    }

    global static List<Database.DeleteResult> delete(List<Id> ids)
    {
    }

    global static List<Database.DeleteResult> delete(List<Id> ids, Boolean allOrNothing)
    {
    }

    global static List<Database.DeleteResult> delete(List<SObject> sobjects)
    {
    }

    global static List<Database.DeleteResult> delete(List<SObject> sobjects, Boolean allOrNothing)
    {
    }

    global static Database.DeleteResult delete(SObject sobject)
    {
    }

    global static Database.DeleteResult delete(SObject sobject, Boolean allOrNothing)
    {
    }

    global static List<Database.DeleteResult> deleteAsync(List<SObject> sobjects)
    {
    }

    global static List<Database.DeleteResult> deleteAsync(List<SObject> sobjects, DataSource.AsyncDeleteCallback callback)
    {
    }

    global static Database.DeleteResult deleteAsync(SObject sobject)
    {
    }

    global static Database.DeleteResult deleteAsync(SObject sobject, DataSource.AsyncDeleteCallback callback)
    {
    }

    global static List<Database.DeleteResult> deleteImmediate(List<SObject> sobjects)
    {
    }

    global static Database.DeleteResult deleteImmediate(SObject sobject)
    {
    }

    global static Database.DeleteResult deleteWithAccess(Id id, AccessLevel accessLevel)
    {
    }

    global static Database.DeleteResult deleteWithAccess(Id id, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.DeleteResult> deleteWithAccess(List<Id> ids, AccessLevel accessLevel)
    {
    }

    global static List<Database.DeleteResult> deleteWithAccess(List<Id> ids, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.DeleteResult> deleteWithAccess(List<SObject> sobjects, AccessLevel accessLevel)
    {
    }

    global static List<Database.DeleteResult> deleteWithAccess(List<SObject> sobjects, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.DeleteResult deleteWithAccess(SObject sobject, AccessLevel accessLevel)
    {
    }

    global static Database.DeleteResult deleteWithAccess(SObject sobject, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.EmptyRecycleBinResult> emptyRecycleBin(List<Id> ids)
    {
    }

    global static List<Database.EmptyRecycleBinResult> emptyRecycleBin(List<SObject> sobjects)
    {
    }

    global static Database.EmptyRecycleBinResult emptyRecycleBin(SObject sobject)
    {
    }

    global static String executeBatch(Database.Batchable batchable)
    {
    }

    global static String executeBatch(Database.Batchable batchable, Integer batchSize)
    {
    }

    global static Database.DeleteResult getAsyncDeleteResult(Database.DeleteResult deleteResult)
    {
    }

    global static Database.DeleteResult getAsyncDeleteResult(String asyncLocator)
    {
    }

    global static String getAsyncLocator(Object result)
    {
    }

    global static Database.SaveResult getAsyncSaveResult(Database.SaveResult saveResult)
    {
    }

    global static Database.SaveResult getAsyncSaveResult(String asyncLocator)
    {
    }

    global static Database.GetDeletedResult getDeleted(String sobjectType, Datetime startDate, Datetime endDate)
    {
    }

    global static Database.QueryLocator getQueryLocator(List<SObject> query)
    {
    }

    global static Database.QueryLocator getQueryLocator(String query)
    {
    }

    global static Database.GetUpdatedResult getUpdated(String sobjectType, Datetime startDate, Datetime endDate)
    {
    }

    global static List<Database.SaveResult> insert(List<SObject> sobjects)
    {
    }

    global static List<Database.SaveResult> insert(List<SObject> sobjects, Boolean allOrNothing)
    {
    }

    global static List<Database.SaveResult> insert(List<SObject> sobjects, Database.DMLOptions DmlOptions)
    {
    }

    global static Database.SaveResult insert(SObject sobject)
    {
    }

    global static Database.SaveResult insert(SObject sobject, Boolean allOrNothing)
    {
    }

    global static Database.SaveResult insert(SObject sobject, Database.DMLOptions DmlOptions)
    {
    }

    global static List<Database.SaveResult> insertAsync(List<SObject> sobjects)
    {
    }

    global static List<Database.SaveResult> insertAsync(List<SObject> sobjects, DataSource.AsyncSaveCallback callback)
    {
    }

    global static Database.SaveResult insertAsync(SObject sobject)
    {
    }

    global static Database.SaveResult insertAsync(SObject sobject, DataSource.AsyncSaveCallback callback)
    {
    }

    global static List<Database.SaveResult> insertImmediate(List<SObject> sobjects)
    {
    }

    global static Database.SaveResult insertImmediate(SObject sobject)
    {
    }

    global static List<Database.SaveResult> insertWithAccess(List<SObject> sobjects, AccessLevel AccessLevel)
    {
    }

    global static List<Database.SaveResult> insertWithAccess(List<SObject> sobjects, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.SaveResult> insertWithAccess(List<SObject> sobjects, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static Database.SaveResult insertWithAccess(SObject sobject, AccessLevel AccessLevel)
    {
    }

    global static Database.SaveResult insertWithAccess(SObject sobject, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.SaveResult insertWithAccess(SObject sobject, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static Database.MergeResult merge(SObject master, Id duplicate)
    {
    }

    global static Database.MergeResult merge(SObject master, Id duplicate, Boolean allOrNothing)
    {
    }

    global static List<Database.MergeResult> merge(SObject master, List<Id> duplicates)
    {
    }

    global static List<Database.MergeResult> merge(SObject master, List<Id> duplicates, Boolean allOrNothing)
    {
    }

    global static List<Database.MergeResult> merge(SObject master, List<SObject> duplicates)
    {
    }

    global static List<Database.MergeResult> merge(SObject master, List<SObject> duplicates, Boolean allOrNothing)
    {
    }

    global static Database.MergeResult merge(SObject master, SObject duplicate)
    {
    }

    global static Database.MergeResult merge(SObject master, SObject duplicate, Boolean allOrNothing)
    {
    }

    global static Database.MergeResult mergeWithAccess(SObject master, Id duplicate, AccessLevel accessLevel)
    {
    }

    global static Database.MergeResult mergeWithAccess(SObject master, Id duplicate, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.MergeResult> mergeWithAccess(SObject master, List<Id> duplicates, AccessLevel accessLevel)
    {
    }

    global static List<Database.MergeResult> mergeWithAccess(SObject master, List<Id> duplicates, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.MergeResult> mergeWithAccess(SObject master, List<SObject> duplicates, AccessLevel accessLevel)
    {
    }

    global static List<Database.MergeResult> mergeWithAccess(SObject master, List<SObject> duplicates, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.MergeResult mergeWithAccess(SObject master, SObject duplicate, AccessLevel accessLevel)
    {
    }

    global static Database.MergeResult mergeWithAccess(SObject master, SObject duplicate, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<SObject> query(String query)
    {
    }

    global static List<SObject> queryWithAccess(String query, AccessLevel accessLevel)
    {
    }

    global static void rollback(Savepoint savepoint)
    {
    }

    global static Savepoint setSavepoint()
    {
    }

    global static Database.UndeleteResult undelete(Id id)
    {
    }

    global static Database.UndeleteResult undelete(Id id, Boolean allOrNothing)
    {
    }

    global static List<Database.UndeleteResult> undelete(List<Id> ids)
    {
    }

    global static List<Database.UndeleteResult> undelete(List<Id> ids, Boolean allOrNothing)
    {
    }

    global static List<Database.UndeleteResult> undelete(List<SObject> sobjects)
    {
    }

    global static List<Database.UndeleteResult> undelete(List<SObject> sobjects, Boolean allOrNothing)
    {
    }

    global static Database.UndeleteResult undelete(SObject sobject)
    {
    }

    global static Database.UndeleteResult undelete(SObject sobject, Boolean allOrNothing)
    {
    }

    global static Database.UndeleteResult undeleteWithAccess(Id id, AccessLevel accessLevel)
    {
    }

    global static Database.UndeleteResult undeleteWithAccess(Id id, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.UndeleteResult> undeleteWithAccess(List<Id> ids, AccessLevel accessLevel)
    {
    }

    global static List<Database.UndeleteResult> undeleteWithAccess(List<Id> ids, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.UndeleteResult> undeleteWithAccess(List<SObject> sobjects, AccessLevel accessLevel)
    {
    }

    global static List<Database.UndeleteResult> undeleteWithAccess(List<SObject> sobjects, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.UndeleteResult undeleteWithAccess(SObject sobject, AccessLevel accessLevel)
    {
    }

    global static Database.UndeleteResult undeleteWithAccess(SObject sobject, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.SaveResult> update(List<SObject> sobjects)
    {
    }

    global static List<Database.SaveResult> update(List<SObject> sobjects, Boolean allOrNothing)
    {
    }

    global static List<Database.SaveResult> update(List<SObject> sobjects, Database.DMLOptions DmlOptions)
    {
    }

    global static Database.SaveResult update(SObject sobject)
    {
    }

    global static Database.SaveResult update(SObject sobject, Boolean allOrNothing)
    {
    }

    global static Database.SaveResult update(SObject sobject, Database.DMLOptions DmlOptions)
    {
    }

    global static List<Database.SaveResult> update(List<SObject> recordsToUpdate, Database.DMLOptions dmlOptions)
    {
    }

    global static List<Database.SaveResult> updateAsync(List<SObject> sobjects)
    {
    }

    global static List<Database.SaveResult> updateAsync(List<SObject> sobjects, DataSource.AsyncSaveCallback callback)
    {
    }

    global static Database.SaveResult updateAsync(SObject sobject)
    {
    }

    global static Database.SaveResult updateAsync(SObject sobject, DataSource.AsyncSaveCallback callback)
    {
    }

    global static List<Database.SaveResult> updateImmediate(List<SObject> sobjects)
    {
    }

    global static Database.SaveResult updateImmediate(SObject sobject)
    {
    }

    global static List<Database.SaveResult> updateWithAccess(List<SObject> sobjects, AccessLevel accessLevel)
    {
    }

    global static List<Database.SaveResult> updateWithAccess(List<SObject> sobjects, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.SaveResult> updateWithAccess(List<SObject> sobjects, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static Database.SaveResult updateWithAccess(SObject sobject, AccessLevel accessLevel)
    {
    }

    global static Database.SaveResult updateWithAccess(SObject sobject, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.SaveResult updateWithAccess(SObject sobject, Database.DMLOptions DmlOptions, AccessLevel accessLevel)
    {
    }

    global static List<Database.UpsertResult> upsert(List<SObject> sobjects)
    {
    }

    global static List<Database.UpsertResult> upsert(List<SObject> sobjects, Boolean allOrNothing)
    {
    }

    global static List<Database.UpsertResult> upsert(List<SObject> sobjects, SObjectField field)
    {
    }

    global static List<Database.UpsertResult> upsert(List<SObject> sobjects, SObjectField field, Boolean allOrNothing)
    {
    }

    global static Database.UpsertResult upsert(SObject sobject)
    {
    }

    global static Database.UpsertResult upsert(SObject sobject, Boolean allOrNothing)
    {
    }

    global static Database.UpsertResult upsert(SObject sobject, SObjectField field)
    {
    }

    global static Database.UpsertResult upsert(SObject sobject, SObjectField field, Boolean allOrNothing)
    {
    }

    global static List<Database.UpsertResult> upsertWithAccess(List<SObject> sobjects, AccessLevel accessLevel)
    {
    }

    global static List<Database.UpsertResult> upsertWithAccess(List<SObject> sobjects, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static List<Database.UpsertResult> upsertWithAccess(List<SObject> sobjects, SObjectField field , AccessLevel accessLevel)
    {
    }

    global static List<Database.UpsertResult> upsertWithAccess(List<SObject> sobjects, SObjectField field, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.UpsertResult upsertWithAccess(SObject sobject, AccessLevel accessLevel)
    {
    }

    global static Database.UpsertResult upsertWithAccess(SObject sobject, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }

    global static Database.UpsertResult upsertWithAccess(SObject sobject, SObjectField field, AccessLevel accessLevel)
    {
    }

    global static Database.UpsertResult upsertWithAccess(SObject sobject, SObjectField field, Boolean allOrNothing, AccessLevel accessLevel)
    {
    }
}

Comments (1)

  1. Scott Wells repo owner

    Hi. Those methods are from the "User Mode Database Operations" feature that went into pilot in Summer '21:

    https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_UserMode_Database_Operations_Pilot.htm&type=5&release=232

    Illuminated Cloud 2's offline symbol table is generated based on the latest API version and may include symbols that are not yet broadly-available. That way those symbols are available to those who have access. This may not match the API version that a given project uses, but given the wide variance in the Apex system types, system SObjects, system Visualforce/Aura/LWC components, etc., it would prohibitive to generate a perfect OST for the project's selected API version, especially given that individual metadata files (Apex classes, etc.) can specify their own API versions.

  2. Log in to comment