Access Apex Examples

Examples include checking the Integration User access inside your WaveTemplateConfigurationModifier implementation.

Example

In the onConfigurationRetrival implementation, verify the Integration User access to the Account sObject. Add the access result to the template variables.

public class ExampleWaveTemplateConfigurationModifier
    extends wavetemplate.WaveTemplateConfigurationModifier
{
    public override void onConfigurationRetrieval(wavetemplate.WaveTemplateInfo waveTemplate)
    {
        String accessResult = null;
        if (!wavetemplate.Access.integUserHasAccessToSObjectField('Account', 'Industry')) {
           accessResult = 'No Access';
        } else {
           accessResult = 'Access found';
        }
        template.getVariables().get('accountAccess').setComputedValue(accsssResult);
    }
}

Example

In the onConfigurationRetrival implementation, verify the Integration User has access more than 100 records in the Account sObject. Add the result to the template variables.

public class ExampleWaveTemplateConfigurationModifier
    extends wavetemplate.WaveTemplateConfigurationModifier
{
    public override void onConfigurationRetrieval(wavetemplate.WaveTemplateInfo waveTemplate)
    {
        Boolean enoughAcctRecords = true;
        if (!wavetemplate.Access.getCountOfRecordsAsIntegUser('Account') > 100) {
            enoughAcctRecords = false;
        }
        template.getVariables().get('sufficientAcctRecordsFound').setComputedValue(enoughAcctRecords);
    }
}

Example

Before creating the app, verify Integration User access to an sObject field selected during template wizard processing:

public class ExampleWaveTemplateConfigurationModifier
    extends wavetemplate.WaveTemplateConfigurationModifier
{
    public override void beforeAppCreate(wavetemplate.WaveTemplateInfo waveTemplate,
        String previousAppVersion, wavetemplate.Answers answers)
    {
        Boolean access = wavetemplate.Access.integUserHasAccessToSObjectField('sObjectFieldExample', template, answers);

        if (!access) {
            throw new wavetemplate.TemplateInterruptException('Integ User doesn't have access to sObjectFieldExample');
        }
    }
}

Example

Before creating the app, verify if there are any sObject fields the Integration User doesn't have access from an array of fields selected during template wizard processing:

public class ExampleWaveTemplateConfigurationModifier
    extends wavetemplate.WaveTemplateConfigurationModifier
{
    public override void beforeAppCreate(wavetemplate.WaveTemplateInfo waveTemplate,
        String previousAppVersion, wavetemplate.Answers answers)
    {
        List<String> noAccessFields = wavetemplate.Access.checkIntegUserAccessToArrayOfSObjectFields('sobjectFieldArray', template, answers);

        if (!noAccessFields.isEmpty()) {
            throw new wavetemplate.TemplateInterruptException('Integ User doesn't have access to ' + noAccessFields.get(0));
        }
    }
}