---
schema_version: "1"
id: ab614dcd81c4a9eaff2eaaa56370f79ad67151080600ad803e160b8c4a7a6440
title: Examples of DataWeave in Apex
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/DataWeaveInApex_UseCase.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/DataWeaveInApex_UseCase.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 9566fa4bc3e3005c3372f5a78acc4a9130b5320f1123bcdc1b0a6b80fdb3687b
description: Here are code samples that demonstrate DataWeave in Apex.
---
# Examples of DataWeave in Apex

Here are code samples that demonstrate DataWeave in Apex.

To use DataWeave in Apex, follow these instructions with associated examples.

- Create a DataWeave script source file.
    
    For example: csvToContacts.dwl.
    
    %dw 2.0
    input records application/csv
    output application/apex
    ---
    records map(record) -> {
     FirstName: record.first\_name,
     LastName: record.last\_name,
     Email: record.email
    } as Object {class: "Contact"}
- Create the associated metadata file.
    
    For example: csvToContacts.dwl-meta.xml.
    
    <?xml version="1.0" encoding="UTF-8"?>
    <DataWeaveResource xmlns="http://soap.sforce.com/2006/04/metadata">
        <apiVersion\>58.0</apiVersion\>
        <isGlobal\>false</isGlobal\>
    </DataWeaveResource\>
- Push the source to the scratch org using Salesforce CLI version v7.151.9 or higher. See [Salesforce CLI Release Notes](https://github.com/forcedotcom/cli/blob/main/releasenotes/sfdx/README.md#71511-may-19-2022 "HTML (New Window)").
- Invoke the DataWeave script from Apex and check the results from anonymous Apex.
    
    This example invokes the csvToContacts.dwl script.
    
    // CSV data for Contacts
    String inputCsv = 'first\_name,last\_name,email\\nCodey,"The Bear",codey@salesforce.com'; 
    DataWeave.Script dwscript = new DataWeaveScriptResource.csvToContacts();
    DataWeave.Result dwresult = dwscript.execute(new Map<String, Object\>{'records' => inputCsv});
    List<Contact> results = (List<Contact>)dwresult.getValue();
    
    Assert.areEqual(1, results.size());
    Contact codeyContact = results\[0\];
    Assert.areEqual('Codey',codeyContact.FirstName);
    Assert.areEqual('The Bear',codeyContact.LastName);

![Note](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/images/icon_note.png)

#### Note

Extensive code samples that demonstrate the DataWeave in Apex feature are available on [Developerforce](https://github.com/developerforce/DataWeaveInApex "HTML (New Window)").