Adobe Certification

AD0-E331 — Adobe Campaign Classic Developer Study Guide

100 practice questions with correct answers and detailed explanations. Use this guide to review concepts before taking the practice exam.

▶ Take Practice Exam 100 questions  ·  Free  ·  No registration

About the AD0-E331 Exam

The Adobe Adobe Campaign Classic Developer (AD0-E331) certification validates professional expertise in Adobe technologies. This study guide covers all 100 practice questions from our AD0-E331 practice test, complete with correct answers and explanations to help you understand each concept thoroughly.

Review each question and explanation below, then test yourself with the full interactive practice exam to measure your readiness.

100 Practice Questions & Answers

Q1 Medium

When implementing a custom schema in Adobe Campaign Classic, what is the primary purpose of defining a 'pathExpr' attribute in a schema element?

  • A To configure validation rules for incoming data
  • B To specify the database column name that the element maps to ✓ Correct
  • C To establish relationships between multiple schemas
  • D To define the XPath expression used to locate the element in the XML structure
Explanation

The 'pathExpr' attribute explicitly maps a schema element to its corresponding database column, allowing the XML structure to differ from the physical database structure.

Q2

In Adobe Campaign Classic, which JavaScript context should be used to execute code that requires access to database queries and document manipulation?

  • A Client-side JavaScript in web forms
  • B Server-side JavaScript in workflows ✓ Correct
  • C Browser console JavaScript
  • D CSS preprocessor scripts
Explanation

Server-side JavaScript in workflows provides access to the full Campaign API, database functions, and document objects needed for advanced data operations.

Q3 Medium

What is the correct syntax for referencing a linked schema attribute in an Adobe Campaign Classic XPath expression?

  • A @linkedSchema|@attribute
  • B @linkedSchema.@attribute
  • C @linkedSchema->@attribute ✓ Correct
  • D @linkedSchema/@attribute
Explanation

Adobe Campaign uses the arrow notation '->' to traverse relationships between linked schemas in XPath expressions, similar to pointer dereferencing in C-style syntax.

Q4 Medium

When creating a workflow in Adobe Campaign Classic, what does the 'NoEmptyTransition' property on an activity accomplish?

  • A It prevents the activity from generating an outbound transition if no records are processed ✓ Correct
  • B It removes empty rows from the working table before processing
  • C It allows the activity to skip execution when the previous step has no output
  • D It ensures the workflow pauses if the activity receives empty input
Explanation

Setting 'NoEmptyTransition' to true prevents an outbound transition from being created if the activity processes zero records, enabling cleaner workflow logic.

Q5 Medium

In Adobe Campaign Classic, which of the following correctly describes the relationship between the nms:recipient schema and campaign personalization variables?

  • A Personalization variables must inherit from nms:recipient to be accessible in content
  • B Only the primary key of nms:recipient can be used in personalization blocks
  • C Campaign personalization requires manual mapping of nms:recipient fields to custom variables
  • D Attributes from nms:recipient and linked schemas can be referenced using <% %> syntax in delivery content ✓ Correct
Explanation

Adobe Campaign allows direct referencing of recipient attributes and linked schema data in delivery content using the <%= attribute %> syntax.

Q6 Medium

What is the primary difference between using 'exec query' and 'JavaScript code' activities in an Adobe Campaign Classic workflow?

  • A JavaScript code provides more flexibility for complex transformations but may be slower than optimized SQL ✓ Correct
  • B JavaScript code is mandatory for any data manipulation tasks in workflows
  • C exec query can only retrieve data while JavaScript code can modify the working table
  • D exec query is faster because it uses native SQL directly on the database
Explanation

JavaScript code activities offer greater flexibility for complex business logic and transformations, but optimized SQL queries in exec query are typically more performant for large datasets.

Q7 Hard

In Adobe Campaign Classic, how do you properly declare a collection element in an XML schema?

  • A Using a 'collection' tag directly inside the parent element
  • B Using the 'collection' attribute within an 'element' tag
  • C Collections are automatically created when multiple elements share the same name
  • D Using an 'element' tag with 'unbound="true"' and defining a 'key' attribute ✓ Correct
Explanation

Collections in Adobe Campaign schemas are defined by setting 'unbound="true"' on an element, which allows multiple instances, and optionally defining a 'key' attribute for identification.

Q8 Hard

What does the 'noDbMapping' attribute accomplish when applied to a schema element in Adobe Campaign Classic?

  • A It prevents the element from being indexed in the database
  • B It removes the element from all database queries automatically
  • C It marks the element as read-only in the user interface
  • D It specifies that the element exists in the XML structure but does not have a corresponding database column ✓ Correct
Explanation

Elements marked with 'noDbMapping="true"' exist in the XML schema for use in the application but do not require or use a physical database column, useful for computed or temporary values.

Q9

When implementing input validation in an Adobe Campaign Classic form, which attribute ensures that a field cannot be left empty?

  • A notNull='true'
  • B mandatory='true' ✓ Correct
  • C allowBlank='false'
  • D required='true'
Explanation

The 'mandatory' attribute on form input fields enforces that the field must contain a value before the form can be submitted.

Q10

In Adobe Campaign Classic, what is the purpose of the 'sqlTable' attribute in a schema definition?

  • A It specifies multiple tables that are automatically joined by the schema
  • B It creates a SQL view that replaces the actual table
  • C It specifies the physical database table name that the schema represents ✓ Correct
  • D It defines a temporary table used only during workflow execution
Explanation

The 'sqlTable' attribute explicitly maps a schema to its corresponding physical database table, allowing the XML schema structure to have a different name than the actual table.

Q11 Medium

What is the correct method to handle an error in an Adobe Campaign Classic workflow using the 'Jump' activity?

  • A Use 'Jump' to skip activities when certain conditions are not met during execution
  • B Configure 'Jump' in workflow properties to automatically retry failed activities
  • C Add a 'Jump' activity connected to an error transition from a previous activity ✓ Correct
  • D Jump is only for navigating between different workflow branches, not for error handling
Explanation

The 'Jump' activity in Adobe Campaign is commonly used to redirect the error transition from an activity to another part of the workflow, enabling error recovery logic.

Q12 Medium

In Adobe Campaign Classic, when extending the nms:recipient schema with custom attributes, what is the correct naming convention for new fields?

  • A There is no strict convention; any naming is acceptable as long as it does not conflict with existing fields
  • B Fields should use the namespace prefix of the hosting schema, such as 'cus:fieldName' ✓ Correct
  • C Fields should begin with 'custom_' prefix to clearly identify them as custom extensions
  • D Fields must be prefixed with the instance name to ensure global uniqueness
Explanation

Adobe Campaign uses namespace prefixes for custom schema extensions; custom fields are typically prefixed with 'cus:' to distinguish them from standard fields.

Q13

What does the 'enum' type in an Adobe Campaign Classic schema provide?

  • A A mechanism to create user-defined data types across multiple schemas
  • B A performance optimization for large text fields
  • C Automatic enumeration of all possible values in the database
  • D A way to restrict attribute values to a predefined set of options ✓ Correct
Explanation

The enum type in Adobe Campaign schemas allows you to define a limited set of valid values for an attribute, enforcing data integrity at the schema level.

Q14 Medium

In Adobe Campaign Classic, how can you ensure that a workflow activity only processes records that meet specific criteria without using a query activity?

  • A Create a separate workflow to pre-filter the data before importing it
  • B Apply filtering conditions directly in the activity's 'Additional data' tab
  • C Use the 'Where' clause in the activity's targeting dimension or specify filtering in the activity properties ✓ Correct
  • D Filter records using custom JavaScript that iterates through the working table
Explanation

Most Adobe Campaign activities allow inline filtering through properties like the 'Where' clause or by modifying the targeting dimension, eliminating the need for a separate query activity.

Q15 Medium

What is the primary advantage of using the 'Update data' activity instead of 'JavaScript code' for modifying existing records in a workflow?

  • A JavaScript code is only available in advanced workflows, not standard ones
  • B JavaScript code cannot modify records; it can only read and transform data
  • C Update data is more efficient for bulk operations on large datasets and generates optimized SQL ✓ Correct
  • D Update data does not require defining the target schema beforehand
Explanation

The 'Update data' activity is optimized for bulk updates and generates native SQL statements, making it significantly more performant than iterating through records with JavaScript.

Q16 Medium

In Adobe Campaign Classic, what is the correct syntax to access a campaign variable within a delivery's personalization content?

  • A <%= vars['variableName'] %>
  • B <%= ctx.vars.variableName %> ✓ Correct
  • C <%= campaign.variableName %>
  • D <%= this.variableName %>
Explanation

Campaign variables are accessed in personalization content using the 'ctx.vars' object, which is the standard context object for accessing workflow and delivery variables.

Q17

When designing a custom data schema in Adobe Campaign Classic, what is the purpose of the 'label' attribute?

  • A It generates SQL column comments in the database
  • B It is purely decorative and has no functional impact on the schema
  • C It provides a human-readable name for the schema element that appears in the user interface ✓ Correct
  • D It creates localized versions of the schema for different languages automatically
Explanation

The 'label' attribute provides a user-friendly display name for schema elements that appears in Adobe Campaign's interface, separate from the technical element name.

Q18 Medium

In Adobe Campaign Classic, what does the 'expr' attribute specify in a calculated field definition?

  • A It specifies the database column that the field retrieves its data from
  • B It establishes the relationship between two schemas for field inheritance
  • C It configures the expression language parser for the entire schema
  • D It defines the XPath or SQL expression used to compute the field's value ✓ Correct
Explanation

The 'expr' attribute in a computed field contains the expression (XPath or SQL-like syntax) that Adobe Campaign evaluates to determine the field's value at runtime.

Q19 Hard

What is the correct approach to handle NULL values in an Adobe Campaign Classic workflow when joining data from multiple sources?

  • A Implement custom JavaScript to manually check for NULL values before processing
  • B Use the 'Enrichment' activity with 'Join' option to define how NULL values from outer joins are handled ✓ Correct
  • C NULL values are automatically filtered out during any join operation
  • D Configure database constraints to prevent NULL values at the schema level
Explanation

The Enrichment activity in Adobe Campaign allows precise control over join behavior, including how NULL values from outer joins are treated in the working table.

Q20 Medium

In Adobe Campaign Classic, when should you use a 'Fork' activity instead of multiple outbound transitions from a single activity?

  • A When you want to combine multiple incoming transitions into a single workflow branch
  • B When you need to create parallel branches that process data independently without waiting for each other ✓ Correct
  • C Fork activity is deprecated and should never be used in new workflows
  • D When different branches should process different subsets of the same data simultaneously
Explanation

The Fork activity in Adobe Campaign creates independent parallel processing branches that execute simultaneously, allowing efficient processing of complex workflows.

Q21

What is the purpose of the 'defaultValue' attribute in an Adobe Campaign Classic schema element?

  • A It sets a constant value that cannot be changed by users after creation
  • B It defines the initial filter value in query activities
  • C It specifies the value automatically assigned to the field if no value is provided during record creation ✓ Correct
  • D It represents the value displayed in empty form fields as a placeholder
Explanation

The 'defaultValue' attribute automatically populates a schema field with a specified value when a new record is created and no explicit value is provided.

Q22 Hard

In Adobe Campaign Classic, how do you define a foreign key relationship between two custom schemas?

  • A Create a 'foreignKey' element in the child schema that references the parent schema's primary key
  • B Foreign keys are automatically created when schemas share common attribute names
  • C Manually define database constraints outside of the schema definition
  • D Add a 'link' element in the parent schema with 'integrity="referential"' attribute pointing to the target schema ✓ Correct
Explanation

Adobe Campaign defines relationships between schemas using 'link' elements with attributes specifying the target schema, cardinality, and optional referential integrity constraints.

Q23 Hard

What is the correct method to pass complex data structures between workflow activities in Adobe Campaign Classic?

  • A Store the data in the working table and reference it through the activity's targeting dimension ✓ Correct
  • B Complex data must be broken down into simple types; structures are not supported
  • C Use instance variables created in JavaScript code that persist across activities
  • D Serialize the data to JSON and store it in a temporary text field
Explanation

Adobe Campaign workflows use the working table as the primary mechanism for passing data between activities, with each activity reading from and writing to this shared table.

Q24 Hard

In Adobe Campaign Classic, what does the 'ordered' attribute accomplish when applied to a 'collection' element?

  • A It automatically sorts collection elements alphabetically by their primary key
  • B It specifies that elements in the collection maintain insertion order and can be sequenced ✓ Correct
  • C It prevents duplicate entries from being added to the collection
  • D It determines whether the collection is indexed in the database for query performance
Explanation

The 'ordered' attribute on a collection element specifies that the collection maintains the order of its elements, which is important for sequences and lists.

Q25 Easy

What is the primary purpose of the Adobe Campaign Classic data model?

  • A To encrypt sensitive information at rest
  • B To store only transactional records
  • C To define the structure and relationships of customer and campaign data ✓ Correct
  • D To manage user interface layouts
Explanation

The Adobe Campaign Classic data model defines how data is organized, including tables, fields, and relationships between different entities like recipients, deliveries, and workflows.

Q26 Medium

In Adobe Campaign Classic, what does the 'xtk:queryDef' schema element define?

  • A A query definition used for database operations ✓ Correct
  • B Campaign delivery scheduling rules
  • C The visual styling of form elements
  • D User authentication tokens
Explanation

xtk:queryDef is a fundamental schema element that defines queries for selecting and filtering data from the Campaign database, enabling developers to structure complex data retrievals.

Q27 Medium

Which SOAP API method is used to create a new recipient in Adobe Campaign Classic?

  • A WriteObject
  • B InsertData
  • C CreateObject
  • D ExecuteUpdate ✓ Correct
Explanation

The ExecuteUpdate SOAP method is used to insert, update, or delete records in Adobe Campaign Classic by executing DML operations through the SOAP API.

Q28 Easy

What is the correct syntax for declaring a variable in an Adobe Campaign Classic workflow JavaScript activity?

  • A create myVariable := 'value'
  • B var myVariable = 'value'; ✓ Correct
  • C define myVariable = 'value'
  • D declare myVariable as 'value'
Explanation

Adobe Campaign Classic uses standard JavaScript syntax for variable declaration, so 'var' keyword is the correct approach within JavaScript activities in workflows.

Q29 Easy

In Adobe Campaign Classic, what does the 'nms:recipient' schema represent?

  • A A configuration file for email service providers
  • B The standard recipient table containing customer profile information ✓ Correct
  • C A temporary cache for session data
  • D An archive of deleted campaign records
Explanation

nms:recipient is the core out-of-the-box schema in Adobe Campaign Classic that defines the recipient table structure with standard fields for customer profiles and contact information.

Q30 Medium

Which of the following best describes a form in Adobe Campaign Classic?

  • A An XML definition that creates a user interface for data entry and manipulation ✓ Correct
  • B An automated script that runs batch operations
  • C A database backup configuration tool
  • D A pre-built template for email content
Explanation

Forms in Adobe Campaign Classic are XML-based definitions that generate user interfaces for creating, editing, and viewing data records within the console or web applications.

Q31 Medium

What is the purpose of the 'linkage' element in an Adobe Campaign Classic schema?

  • A To configure external API connections
  • B To create hyperlinks in email deliveries
  • C To manage user access permissions
  • D To define relationships between tables and enable data joining ✓ Correct
Explanation

The linkage element in a schema definition establishes foreign key relationships between tables, allowing campaigns to access related data through navigation links and SQL joins.

Q32 Medium

In Adobe Campaign Classic workflows, what does a 'Fork' activity do?

  • A It splits the workflow execution into multiple parallel branches ✓ Correct
  • B It terminates the workflow and logs results
  • C It creates a conditional branch based on a single condition
  • D It merges multiple incoming transitions into one
Explanation

A Fork activity in Adobe Campaign Classic divides the workflow into concurrent paths that execute in parallel, enabling simultaneous processing of different workflow branches.

Q33 Medium

What is the correct way to reference a workflow variable in Adobe Campaign Classic JavaScript?

  • A $myVariableName
  • B vars.myVariableName ✓ Correct
  • C workflow::myVariableName
  • D this.myVariableName
Explanation

Workflow instance variables are accessed through the 'vars' object in JavaScript activities, allowing you to read and modify workflow-scoped variables across different activities.

Q34 Hard

Which method would you use to execute a custom SQL query in Adobe Campaign Classic?

  • A ExecSQL stored procedure call
  • B QueryDef and ExecuteQuery SOAP methods ✓ Correct
  • C DatabaseQuery JavaScript function
  • D RunSQL command through the console menu
Explanation

QueryDef is used to structure queries and ExecuteQuery SOAP method executes them against the Campaign database, providing a programmatic way to run custom SQL operations.

Q35 Medium

In Adobe Campaign Classic, what is the primary function of an 'enumeration' (enum)?

  • A To list all active campaigns in the instance
  • B To create automatic numbering sequences for records
  • C To enumerate all database tables in the system
  • D To define a list of predefined values for a schema attribute ✓ Correct
Explanation

Enumerations in Adobe Campaign Classic define restricted value sets for schema fields, ensuring data consistency and providing dropdown lists in user interfaces.

Q36 Hard

What does the 'xtk:session' schema provide in Adobe Campaign Classic?

  • A Email delivery session tracking
  • B Database connection pooling configuration
  • C Workflow execution history storage
  • D User session management and authentication context ✓ Correct
Explanation

xtk:session manages user login sessions, authentication, and provides context information about the connected user within Adobe Campaign Classic operations.

Q37 Medium

Which Adobe Campaign Classic component is responsible for sending emails at scheduled times?

  • A The Scheduler Service
  • B The Inbound Router
  • C The Web Module
  • D The MTA (Message Transfer Agent) ✓ Correct
Explanation

The MTA (Message Transfer Agent) is the core component that processes and sends email messages according to delivery schedules and configuration in Adobe Campaign Classic.

Q38 Easy

In Adobe Campaign Classic, what is the purpose of the 'Deduplication' workflow activity?

  • A To split large audiences into smaller segments
  • B To verify email address validity
  • C To create backup copies of important data
  • D To remove duplicate records from a target population ✓ Correct
Explanation

The Deduplication activity identifies and removes duplicate records based on specified fields, ensuring each recipient appears only once in the workflow's target population.

Q39 Medium

What does the 'nms:delivery' schema in Adobe Campaign Classic contain?

  • A Scheduling rules for automated campaigns
  • B The structure defining campaign delivery properties and configuration ✓ Correct
  • C Email template designs and layouts
  • D Recipient contact information and preferences
Explanation

nms:delivery defines the delivery object structure including delivery type, audience, scheduling, content, and all configuration properties needed for campaign execution.

Q40 Hard

How would you implement custom business logic in a workflow without modifying core Campaign code?

  • A Use JavaScript activities and custom schema extensions ✓ Correct
  • B Modify the Campaign source code directly
  • C Deploy custom compiled libraries to the server
  • D Create stored procedures in the external database
Explanation

Adobe Campaign Classic provides JavaScript activities within workflows and allows schema extension through XML, enabling custom logic without touching core product code.

Q41 Hard

In Adobe Campaign Classic, what is a 'workflow schema'?

  • A A backup schema created before workflow execution
  • B A visual diagram showing workflow execution paths
  • C A schema that defines data structures and attributes used within workflows ✓ Correct
  • D A template for creating new workflow activities
Explanation

A workflow schema extends the data model to include workflow-specific fields and objects, enabling workflows to process and manipulate data according to business requirements.

Q42 Medium

What is the correct method to access recipient data in an Adobe Campaign Classic delivery template?

  • A Using personalization blocks and field references like <%=recipient.firstName%> ✓ Correct
  • B Using SQL SELECT statements embedded in the template
  • C Using JavaScript fetch() calls to retrieve data
  • D Using external API calls within the content editor
Explanation

Adobe Campaign Classic delivery templates use personalization syntax with field references enclosed in <% %> tags to dynamically insert recipient data into email content.

Q43 Hard

Which of the following best describes the 'targeting dimension' concept in Adobe Campaign Classic?

  • A The main entity (schema) that a workflow or delivery targets for communication ✓ Correct
  • B The physical size limitations of audience segments
  • C The geographic regions where campaigns can be deployed
  • D The number of parallel processes used during execution
Explanation

The targeting dimension specifies the primary schema (like nms:recipient or a custom table) that a workflow or delivery operates on, determining what data is processed.

Q44 Medium

In Adobe Campaign Classic, what does the 'nms:seedMember' schema represent?

  • A Archive records for historical analysis
  • B Temporary recipient records during import
  • C Internal Campaign system accounts
  • D Seed list members used for testing and quality assurance of deliveries ✓ Correct
Explanation

nms:seedMember defines seed list records—test recipients used to validate delivery content and functionality before sending to production audiences.

Q45 Hard

What is the primary advantage of using 'linked resources' in Adobe Campaign Classic schemas?

  • A They improve email delivery rates
  • B They automatically encrypt sensitive data fields
  • C They prevent users from accessing certain schema fields
  • D They enable efficient retrieval of related data without redundant storage and maintain data integrity through relationships ✓ Correct
Explanation

Linked resources (relationships) in schemas allow campaigns to access related data from other tables efficiently through SQL joins while maintaining referential integrity and avoiding data duplication.

Q46 Hard

How do you define a custom index in an Adobe Campaign Classic schema for performance optimization?

  • A Using the Performance Tuning wizard
  • B Using the 'index' element within the schema XML definition ✓ Correct
  • C By executing SQL CREATE INDEX commands
  • D Through the Campaign console Index Manager menu
Explanation

Custom indexes are defined in the schema XML using the 'index' element to specify which fields should be indexed, improving query performance for frequently filtered or sorted columns.

Q47 Medium

In Adobe Campaign Classic, what is the purpose of the 'Intersection' workflow activity?

  • A To identify and keep only records that exist in all input populations ✓ Correct
  • B To exclude a population from another
  • C To combine multiple audience segments into one
  • D To randomly sample records from a large audience
Explanation

The Intersection activity produces an output containing only recipients that are present in all incoming transitions, effectively finding the common subset across multiple populations.

Q48 Medium

What is the correct approach to implement conditional delivery in Adobe Campaign Classic workflows?

  • A Use the Conditional Delivery activity if available
  • B Embed conditional logic within the delivery template JavaScript
  • C Use a Test activity to evaluate conditions and route to different delivery branches ✓ Correct
  • D Set delivery conditions directly in the nms:delivery schema
Explanation

The Test activity in workflows evaluates conditions and creates conditional branches, allowing different audience segments to receive different deliveries based on business logic.

Q49 Medium

When creating a custom schema in Adobe Campaign Classic, which element is used to define the primary key of a table?

  • A @pk="true"
  • B @key="primary"
  • C @autopk="true" ✓ Correct
  • D @id="pk"
Explanation

The @autopk="true" attribute on an element automatically creates a primary key for the table. This is the standard method for defining auto-incrementing primary keys in Campaign schemas.

Q50 Medium

What is the purpose of the 'nms:seedMember' schema in Adobe Campaign Classic?

  • A To manage the seed list for email deliveries and traps ✓ Correct
  • B To configure the default seed values for random data generation
  • C To define the structure of test profiles used for quality assurance
  • D To store the configuration settings for seed accounts
Explanation

The nms:seedMember schema is used to manage seed addresses (test profiles and traps) that are added to deliveries for quality assurance and monitoring purposes.

Q51 Medium

In Adobe Campaign Classic, how do you prevent a field from being updated after initial creation?

  • A Use the @noupdate="true" attribute on the element ✓ Correct
  • B Configure the field with @modifiable="false" in the schema
  • C Set the @readonly="true" attribute on the element
  • D Set @updatable="false" in the dbindex definition
Explanation

The @noupdate="true" attribute prevents a field from being modified after the record is initially created, ensuring data integrity for critical fields.

Q52 Hard

What does the 'folderModel' attribute control in Adobe Campaign Classic schemas?

  • A The XML model definition for organizing nested folders
  • B The default folder path for schema backups
  • C The folder structure where schema-based documents are stored ✓ Correct
  • D The template used for creating new folders in the file system
Explanation

The folderModel attribute determines where documents created from the schema will be stored in the Campaign folder tree, controlling the organizational structure.

Q53 Medium

Which JavaScript context variable provides access to the current recipient in a workflow activity?

  • A this.recipient
  • B event.recipient
  • C vars.recipient ✓ Correct
  • D recipient
Explanation

In Adobe Campaign workflows, the 'vars' object contains variables that can be accessed and modified throughout the workflow, including the current recipient context.

Q54 Medium

What is the correct syntax to reference a custom field from an extended schema in an XPath query?

  • A @[customField]
  • B ${customField}
  • C @customField ✓ Correct
  • D [@customField]
Explanation

In XPath queries within Campaign, custom fields extended on a schema are referenced using the @ symbol prefix, such as @customField, to access their values.

Q55 Easy

In Adobe Campaign Classic, what does the 'label' element represent in a schema definition?

  • A The database column name for the field
  • B The XML namespace identifier for the element
  • C The user-friendly display name shown in the Campaign interface ✓ Correct
  • D The validation rule applied to the field
Explanation

The 'label' element provides a human-readable name for schema fields that appears in the Campaign user interface, separate from the actual database column name.

Q56 Hard

Which attribute must be set on a schema to enable it to be used as a target dimension in workflows?

  • A @schemaType="delivery"
  • B @isATargetDimension="true" ✓ Correct
  • C @targetDimension="true"
  • D @mappingType="sql"
Explanation

The @isATargetDimension="true" attribute designates a schema as a valid target dimension, making it available for use as the main working population in workflows.

Q57 Hard

What is the purpose of the 'computation' element in Adobe Campaign Classic schema definitions?

  • A To specify server-side processing rules for field validation
  • B To set mathematical operations on fields for reporting
  • C To define calculated fields that are computed at query time without being stored in the database ✓ Correct
  • D To configure automatic value calculations during workflow execution
Explanation

The 'computation' element allows you to define fields that are calculated dynamically based on expressions, without persisting the values in the database.

Q58 Medium

In Adobe Campaign Classic, what does the 'expr' attribute in a schema element define?

  • A The encryption method for the field value
  • B The SQL expression used to populate the field ✓ Correct
  • C The XPath expression for accessing related data
  • D The JavaScript expression for client-side validation
Explanation

The 'expr' attribute contains a SQL expression that defines how a field's value is computed or derived from database operations.

Q59 Easy

Which method is used to access the logger object in Adobe Campaign Classic JavaScript code?

  • A logger.log() and logger.warn()
  • B console.log() and console.warn()
  • C log.info() and log.warn()
  • D logInfo() and logWarn() ✓ Correct
Explanation

Adobe Campaign provides logInfo() and logWarn() functions as global methods for writing messages to the Campaign logs from JavaScript code.

Q60 Medium

What is the correct way to define a join between two schemas in Adobe Campaign Classic?

  • A Using the 'join' element with @schema and @condition attributes
  • B Using the 'reference' element with @foreign-key attributes
  • C Using the 'link' element with @relationship and @target attributes ✓ Correct
  • D Using the 'association' element with @source and @destination
Explanation

In Campaign schemas, the 'link' element defines relationships between schemas, using @relationship to specify the type (1-1, 1-N, N-N) and @target to identify the related schema.

Q61 Medium

In Adobe Campaign Classic, what does the 'sortOrder' attribute control in a schema?

  • A The sequence in which fields are processed during data import
  • B The default sort order when displaying records in list views ✓ Correct
  • C The priority order for executing schema validation rules
  • D The alphabetical order of fields in the schema definition file
Explanation

The 'sortOrder' attribute on a schema element specifies the default column by which records are sorted when displayed in the Campaign interface.

Q62 Medium

What is the purpose of the 'dbindex' element in an Adobe Campaign schema?

  • A To configure backup and recovery points for the database
  • B To establish referential integrity constraints
  • C To define database indexes that improve query performance ✓ Correct
  • D To specify the primary index used for sorting results
Explanation

The 'dbindex' element creates database indexes on specified fields to optimize query performance and reduce search times for frequently queried columns.

Q63 Medium

In Adobe Campaign Classic, how is a field defined as a collection (one-to-many relationship)?

  • A By defining a 'collection' container element in the schema
  • B By adding @cardinality="many" to the field definition
  • C By setting @type="collection" on the element
  • D By using a 'link' element with @relationship="1-N" ✓ Correct
Explanation

One-to-many relationships in Campaign are defined using 'link' elements with @relationship="1-N", which creates a collection that can contain multiple related records.

Q64 Hard

What is the primary advantage of using the 'srcSchema' attribute when extending a standard Campaign schema?

  • A It prevents accidental modification of the original schema definitions
  • B It allows you to inherit all fields and structure from the parent schema without duplication ✓ Correct
  • C It enables encryption of inherited fields from the parent schema
  • D It provides version control and rollback capabilities for schema changes
Explanation

The 'srcSchema' attribute allows schema extension to inherit the parent schema's complete structure, reducing code duplication and maintaining consistency.

Q65 Medium

In Adobe Campaign Classic workflows, what does the 'Instance' variable represent?

  • A The delivery instance number assigned to each message
  • B The current workflow execution environment and context ✓ Correct
  • C A reference to the campaign instance being executed
  • D The session ID for the currently logged-in user
Explanation

The 'Instance' variable in workflows provides access to the current workflow execution context, allowing you to access properties and perform operations on the workflow itself.

Q66 Hard

Which condition would you use to filter recipients in a workflow based on a custom schema field?

  • A vars.@customField = 'value'
  • B this.@customField = 'value'
  • C targetData.@customField = 'value' ✓ Correct
  • D recipient.@customField = 'value'
Explanation

The 'targetData' object in workflow filtering provides access to fields from the target dimension's schema, including custom fields referenced with the @ prefix.

Q67 Hard

What is the correct method to programmatically add an attachment to a delivery in Adobe Campaign Classic?

  • A delivery.attachments.push({name: fileName, path: filePath})
  • B var att = <attachment src="filePath"/>; delivery.content.appendChild(att)
  • C delivery.attachment = {file: filePath}
  • D delivery.addAttachment(fileName, filePath) ✓ Correct
Explanation

The addAttachment() method on the delivery object is the standard way to programmatically attach files to deliveries in Campaign JavaScript.

Q68 Medium

In Adobe Campaign Classic, what does the '@visible' attribute control on a schema element?

  • A Whether the field appears in the Campaign user interface forms ✓ Correct
  • B Whether the field can be accessed via the SOAP API
  • C Whether the field is included in database backups
  • D Whether the field is encrypted in the database
Explanation

The @visible attribute determines whether a field is displayed in Campaign interface forms and lists, allowing you to hide internal or system fields from users.

Q69 Medium

Which XPath function is used to count the number of elements matching a condition in Adobe Campaign?

  • A count(//element[@condition]) ✓ Correct
  • B total(//element[@condition])
  • C size(//@element[@condition])
  • D length(//element[@condition])
Explanation

The XPath count() function counts the number of nodes matching a specified condition, returning an integer result used in queries and calculations.

Q70 Easy

What is the purpose of the 'nms:operation' schema in Adobe Campaign Classic?

  • A To configure system-level operational parameters and settings
  • B To track database operations and transaction logs
  • C To manage user permissions and security operations
  • D To define the structure and manage marketing campaigns and operations ✓ Correct
Explanation

The nms:operation schema defines the structure for campaigns and operations in Campaign, allowing you to organize, manage, and track marketing initiatives.

Q71 Hard

In Adobe Campaign Classic, how do you define a schema element that should only be visible in advanced mode?

  • A Set @visibleIf="advanced" on the element
  • B Add the element inside an <advancedOptions> container
  • C Use @advanced="true" attribute ✓ Correct
  • D Set @advancedMode="true" on the element
Explanation

The @advanced="true" attribute on a schema element hides it from standard view in the Campaign interface, making it visible only to users in advanced mode.

Q72 Easy

What is the primary function of the 'nms:delivery' schema in Adobe Campaign Classic?

  • A To define the structure of email templates used for campaigns
  • B To configure delivery channel settings and retry policies
  • C To store and manage delivery configuration, content, and execution details ✓ Correct
  • D To track delivery performance metrics and reporting data
Explanation

The nms:delivery schema defines the core structure for deliveries in Campaign, including content, targeting, scheduling, and execution information.

Q73 Easy

In Adobe Campaign Classic, what does the 'default' attribute specify in a schema element?

  • A The default validation rule for the field
  • B The default value assigned to new records if no value is provided ✓ Correct
  • C The SQL default constraint applied at the database level
  • D The default sort order for query results
Explanation

The 'default' attribute provides a default value that is automatically assigned to a field when a new record is created without specifying a value.

Q74 Hard

Which method would you use to retrieve the list of records matching a query in Adobe Campaign Classic SOAP API?

  • A reader.read(schemaName, queryString)
  • B session.query(queryDef)
  • C client.executeQuery(xml) ✓ Correct
  • D api.getRecords(schemaName, filter)
Explanation

The executeQuery() method in the SOAP API executes a query definition and returns the matching records as XML, allowing external applications to retrieve data from Campaign.

Q75 Medium

When creating a custom schema extension in Adobe Campaign Classic, what is the primary consideration for adding a new field to a built-in schema?

  • A You should extend the schema using the <element> tag with appropriate attributes like name, type, and label ✓ Correct
  • B Custom fields can only be added to custom schemas, never to built-in schemas
  • C Extension fields are automatically created without requiring any schema modification
  • D You must always create a new schema instead of extending existing ones
Explanation

In Adobe Campaign Classic, extending built-in schemas is done by adding new <element> tags with appropriate attributes (name, type, label) to avoid modifying core structures directly. This approach maintains upgrade compatibility.

Q76 Medium

What is the correct way to reference an enumeration value in a JavaScript activity within a workflow?

  • A Reference the enum using getEnum('schemaName', 'fieldName') function
  • B Use vars.abc = 'value' to directly assign the enumeration value
  • C Enumerations cannot be accessed in JavaScript activities
  • D Use instance.vars.abc = '1' where '1' is the enumeration key, not the label ✓ Correct
Explanation

When working with enumerations in JavaScript activities, you must use the enumeration key (numeric value) rather than the label. The instance.vars object is used to store workflow variables.

Q77 Medium

In Adobe Campaign Classic, which approach is recommended for optimizing query performance when working with large recipient tables?

  • A Avoid using JOINs entirely and perform multiple separate queries instead
  • B Always select all fields in your query regardless of necessity, then filter results in the application layer
  • C Use indexed fields in WHERE clauses, limit the result set with LIMIT, and only select required columns ✓ Correct
  • D Create temporary tables for every query to cache results and improve performance
Explanation

Query optimization in Campaign involves using indexed fields in filters, limiting results, and selecting only necessary columns. This reduces database load and improves execution time significantly.

Q78 Easy

What is the purpose of the 'sourceSchema' attribute in a form definition in Adobe Campaign Classic?

  • A It determines the encryption method for form data transmission
  • B It specifies the CSS stylesheet to be applied to the form rendering
  • C It defines the database schema that the form is bound to and determines available fields ✓ Correct
  • D It indicates the user role required to access the form
Explanation

The 'sourceSchema' attribute in form definitions specifies which database schema the form is connected to, making all fields from that schema available for use in the form layout.

Q79 Medium

How should you handle timezone conversions when storing timestamps in Adobe Campaign Classic?

  • A Timezone conversion is not supported in Campaign and should be avoided
  • B Use the getTimeZone() function to automatically handle all conversions
  • C Store all timestamps in the user's local timezone and convert on display
  • D Store all timestamps in UTC and convert to local timezone for display based on user/instance settings ✓ Correct
Explanation

Best practice in Campaign is to store all timestamps in UTC in the database and perform timezone conversion at the application layer based on user or instance settings for display purposes.

Q80 Easy

When creating a JavaScript activity in a workflow, what is the correct syntax to access a workflow variable that was defined in a previous activity?

  • A var myVar = getVariable('myVarName');
  • B var myVar = workflow.variables['myVarName'];
  • C var myVar = instance.vars.myVarName; ✓ Correct
  • D var myVar = variables.myVarName;
Explanation

In Adobe Campaign workflow JavaScript activities, workflow variables are accessed using the instance.vars object. This provides access to variables defined in previous activities in the same workflow.

Q81 Medium

What is the primary difference between a 'Split' activity and a 'Test' activity in Adobe Campaign Classic workflows?

  • A Split and Test activities are functionally identical with different naming conventions
  • B Split activity modifies data while Test activity only reads data
  • C Split activity creates multiple outbound transitions based on conditions, while Test activity only creates two outbound transitions (true/false) ✓ Correct
  • D Test activity is used for database queries while Split is used for workflow control
Explanation

The Split activity can create multiple outbound transitions with different conditions and percentages, while the Test activity creates only two outbound transitions based on a single condition (true or false).

Q82 Hard

In Adobe Campaign Classic, what is the correct method to execute a stored procedure from a workflow?

  • A Stored procedures cannot be called from workflows and must be executed directly from the database
  • B Use a JavaScript activity with the xtk.queryDef.ExecuteQuery() method to call the stored procedure
  • C Use a 'SQL Script' activity if available, or a JavaScript activity to execute the procedure using the appropriate database client method
  • D Use a 'Query' activity with the 'Execute a SQL script' option and call the procedure using EXEC syntax ✓ Correct
Explanation

In Campaign Classic, stored procedures can be executed from a Query activity by enabling the 'Execute a SQL script' option and using the appropriate database syntax (EXEC for SQL Server, CALL for MySQL).

Q83 Medium

What is the purpose of the 'folder' attribute in a schema definition?

  • A It controls the database table partition location
  • B It defines the navigation tree folder where the schema's data records appear in the Campaign explorer interface ✓ Correct
  • C It specifies which physical folder on the server stores the schema XML file
  • D It determines which users have permission to modify the schema
Explanation

The 'folder' attribute in schema definitions determines where records of that schema type appear in the Campaign explorer's navigation tree, providing organizational structure in the user interface.

Q84 Hard

How would you implement a custom validation rule that prevents a recipient from being saved if they have an invalid email format in Adobe Campaign Classic?

  • A Create a custom form with client-side JavaScript validation only
  • B Implement the validation in the <element> definition using the 'check' attribute with a regular expression or SQL condition ✓ Correct
  • C Use a JavaScript activity in a workflow to validate all records before saving
  • D Add a computed field with the validation logic and mark it as non-storable
Explanation

Custom validation rules in Campaign schemas are implemented using the 'check' attribute on element definitions, which can contain SQL conditions or regular expressions. This validation occurs at the database level.

Q85 Medium

What is the correct approach for managing sensitive data like passwords in Adobe Campaign Classic configuration files?

  • A Encrypt passwords using Campaign's encryption utility and reference the encrypted values in configuration files ✓ Correct
  • B Passwords should not be stored at all and must be entered manually for each process
  • C Use environment variables exclusively without storing anything in configuration files
  • D Store passwords in plain text in the serverConf.xml file for easier management
Explanation

Adobe Campaign provides encryption utilities to encrypt sensitive data like passwords in configuration files. Encrypted values should be used instead of plain text passwords for security.

Q86 Medium

In Adobe Campaign Classic, what does the 'autopk' attribute in a schema element definition do?

  • A It automatically backs up the field data
  • B It prevents duplicate values in the field
  • C It automatically creates a primary key based on the element name
  • D It enables automatic increment for integer fields, typically used for generating unique sequence numbers ✓ Correct
Explanation

The 'autopk' attribute, when set to true on an integer field, enables automatic incrementation, typically used to generate unique sequential primary keys for records.

Q87 Easy

What is the proper way to create a delivery template that can be reused across multiple campaigns in Adobe Campaign Classic?

  • A Create a delivery template in the 'Resources > Templates > Delivery templates' folder with predefined content, variables, and personalization rules ✓ Correct
  • B Create a standard delivery and mark it as 'shared' in the properties
  • C Use a workflow with a Delivery activity and save it as a workflow template
  • D Copy an existing delivery to a new delivery and manually update it for each use
Explanation

Delivery templates in Campaign are created in the Resources > Templates > Delivery templates folder and can include predefined content, variables, and personalization logic for reuse across campaigns.

Q88 Hard

When implementing a custom recipient attribute, which schema modification approach ensures backward compatibility after a Campaign upgrade?

  • A Store custom attributes in a separate table and manually manage the relationships
  • B Create a custom schema linked to nmsRecipient and add your attributes to the extension schema rather than the core schema ✓ Correct
  • C Only use computed fields since they don't require schema modifications
  • D Always modify the built-in nmsRecipient schema directly to ensure the attributes are recognized
Explanation

To maintain upgrade compatibility, custom recipient attributes should be added through extension schemas linked to nmsRecipient, not by directly modifying the core nmsRecipient schema.

Q89 Medium

What is the purpose of the 'joinType' attribute when defining a link element in a schema?

  • A It specifies the SQL JOIN type (inner, left, right) used when querying related data ✓ Correct
  • B It controls the order of records when retrieving linked data
  • C It determines whether the link creates a foreign key constraint in the database
  • D It defines the encryption method for the linked data
Explanation

The 'joinType' attribute in schema link definitions specifies the type of SQL JOIN to use when querying related records, affecting which records are retrieved based on the relationship.

Q90 Medium

How should you implement conditional content blocks in a delivery that change based on recipient segment or profile data?

  • A Use a workflow to generate separate delivery variants for each segment
  • B Use dynamic content blocks with IF conditions that reference recipient fields and personalization variables ✓ Correct
  • C Include all content variants in the email and let recipients manually choose which to view
  • D Create multiple deliveries for each segment and manually select the appropriate one
Explanation

Adobe Campaign supports dynamic content blocks using IF conditions that reference recipient fields and variables, allowing content to change based on recipient data without creating multiple deliveries.

Q91 Medium

In Adobe Campaign Classic, what is the correct syntax for creating a user-defined variable in a workflow that persists across multiple workflow activities?

  • A Variables cannot persist across multiple activities and must be recreated in each activity
  • B Use instance.vars.myVar = 'value' in a JavaScript activity to create and persist workflow-level variables ✓ Correct
  • C Use the 'Variable' activity to declare the variable with a specific name and type at the beginning of the workflow
  • D Declare variables in JavaScript using var myVar = 'value' and they automatically persist across activities
Explanation

Workflow variables are created and persisted using the instance.vars object in JavaScript activities. These variables remain available to subsequent activities in the same workflow execution.

Q92 Medium

What is the best practice for handling error scenarios in Adobe Campaign Classic workflows to ensure notifications are sent to administrators?

  • A Assume all activities will succeed and do not plan for error handling
  • B Configure error management using the 'Add error transition' option on activities and link error transitions to notification activities or log recording ✓ Correct
  • C Add an 'AND' transition to each activity, then add 'Wait' activities to delay processing if errors occur
  • D Manually monitor workflow logs and send emails when errors are detected
Explanation

Best practice is to use the error transition option on activities and connect these to notification activities or end activities that log the error and alert administrators automatically.

Q93 Hard

When designing a database schema in Adobe Campaign Classic, what is the purpose of setting the 'noDbMapping' attribute to true on an element?

  • A It forces the element to be stored in a separate database table
  • B It prevents the element from being created as a database column, making it a transient calculated field ✓ Correct
  • C It enables automatic replication of the element to secondary databases
  • D It makes the element invisible in the interface
Explanation

Setting 'noDbMapping' to true on a schema element prevents it from being created as a database column, making it a transient field useful for calculations or intermediate processing without database storage.

Q94 Hard

How would you implement a many-to-many relationship between two custom schemas in Adobe Campaign Classic?

  • A Many-to-many relationships are not supported in Campaign and should be denormalized into separate one-to-many relationships
  • B Create an intermediate junction schema with link elements to both target schemas, establishing the many-to-many relationship through this intermediary ✓ Correct
  • C Use a direct link element with cardinality (0,n) to (0,n) between the two schemas
  • D Use a computed field to join the two schemas without creating an actual database relationship
Explanation

Many-to-many relationships in Campaign are implemented using a junction schema (intermediate table) with link elements pointing to both target schemas, following database normalization principles.

Q95 Easy

What is the purpose of the 'label' attribute in schema element definitions, and why is it important for campaign functionality?

  • A It provides a user-friendly display name in the interface and is used in generated forms and reports without affecting the database structure ✓ Correct
  • B It encrypts the field data for security purposes
  • C It specifies the database column name and cannot be changed without rebuilding the database
  • D It creates an index on the database column to improve query performance
Explanation

The 'label' attribute provides the human-readable display name shown in the Campaign interface and auto-generated forms, while the 'name' attribute specifies the actual database column name.

Q96 Hard

In Adobe Campaign Classic, what is the correct way to implement a trigger-based action that automatically generates a delivery when a recipient performs a specific action?

  • A Set up a JavaScript event listener in the database to monitor for the action and call the delivery API
  • B Use an Event activity in a workflow to listen for the action and trigger a delivery in real-time
  • C Trigger-based deliveries require manual intervention and cannot be automated in Campaign
  • D Create a reactive workflow that uses an 'Event reception' activity with a trigger message definition to initiate the delivery upon receiving the specific event ✓ Correct
Explanation

Reactive workflows in Campaign use the 'Event reception' activity combined with trigger message definitions to automatically execute workflows when specific events or actions are received.

Q97 Medium

What is the recommended approach for managing multiple language versions of campaign content in Adobe Campaign Classic?

  • A Use variant conditions based on the recipient's language preference field to display appropriate language blocks within a single delivery ✓ Correct
  • B Store translations in a separate database and retrieve them via complex custom coding
  • C Require all campaigns to be in English only to avoid complexity
  • D Create separate campaigns for each language and manually manage each version
Explanation

Adobe Campaign supports multilingual content through dynamic blocks with conditions based on recipient language preference fields, allowing management of multiple languages within a single delivery.

Q98 Medium

When implementing custom SOAP web services to integrate with Adobe Campaign Classic, what authentication method is typically required?

  • A No authentication is needed as SOAP services are public by default
  • B All SOAP calls require OAuth2 tokens generated through a separate authentication service
  • C SOAP services in Campaign only support Windows-integrated authentication
  • D Campaign uses HTTP Basic Authentication with username and password credentials passed in the SOAP header ✓ Correct
Explanation

Adobe Campaign Classic SOAP web services typically require HTTP Basic Authentication where credentials are passed in the request headers, or alternative authentication mechanisms configured on the Campaign instance.

Q99 Medium

What is the purpose of the 'expr' attribute in a schema element definition, and when would you use it?

  • A It defines the SQL expression used to calculate the field value, creating a computed or derived field ✓ Correct
  • B It determines the encryption expression for sensitive data
  • C It defines the regular expression used to validate user input
  • D It specifies the default value that will be assigned when creating a new record
Explanation

The 'expr' attribute defines a SQL expression that calculates the field value dynamically, creating computed fields that derive their values from other fields or database functions without requiring separate storage.

Q100 Hard

In Adobe Campaign Classic, how should you handle the scenario where you need to update recipient preferences without triggering standard update workflows or notifications?

  • A Use the 'Update data' activity with the 'Without reconciliation' option to update records without triggering standard Campaign processing logic ✓ Correct
  • B Use a JavaScript activity to modify the in-memory recipient object
  • C Directly update the database tables using SQL commands to bypass Campaign logic
  • D It is not possible to update data without triggering workflows in Campaign
Explanation

The 'Update data' activity in workflows can be configured with the 'Without reconciliation' option to perform updates while bypassing standard Campaign reconciliation and trigger logic.

Ready to test your knowledge?

You've reviewed all 100 questions. Take the interactive practice exam to simulate the real test environment.

▶ Start Practice Exam — Free