---
schema_version: "1"
id: d6d9599aa1f842ff828ffb7174886bfb147cfc45c355508c4212eef48fe01cf8
title: Access Apex Examples
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/analytics/bi_dev_guide_wave_templates/guides/reference/bi-templatesdev-apex-access-class-examples.md
canonical_url: https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-apex-access-class-examples.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 1cdbd736b9927487faa75dcba012190ed56f8895104721dbc4c7c42dd0f4d4c7
products:
  - Analytics Templates Developer Guide
  - analytics
---

# 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.**

```nolang
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.**

```nolang
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:**

```nolang
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:**

```nolang
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));
        }
    }
}
```
