Overview
The NAV-SF Integration synchronizes data between Microsoft Dynamics NAV and GoldFinch ERP running on Salesforce. It provides a configurable integration framework that supports dynamic field mapping, data transformation, filtering, scheduling, and bidirectional synchronization.
A single Salesforce organization can connect to multiple NAV databases and multiple NAV companies.
Integration Architecture
The integration supports:
- Real-time and scheduled synchronization
- Multiple NAV databases
- Multiple NAV companies
- Bidirectional data movement
- Dynamic field mapping
- Header/Line and Journal transactions
- Data transformation using mapping functions
- Change tracking
- Detailed logging and error handling
NAV-SF Integration Settings
The Integration Settings page controls the overall behavior of the integration.
Configuration
| Setting | Description |
|---|---|
| Enabled | Enables or disables the entire integration. |
| Salesforce Organization ID | The Salesforce Organization ID that identifies the connected Salesforce instance. |
NAV-SF Setup Wizard
The Setup Wizard simplifies deployment by allowing administrators to export and import integration configurations between Salesforce environments.
Typical use cases include:
- Sandbox to Production deployment
- Backup of integration configuration
- Migrating configuration between customers
NAV-SF Connections
A Connection defines how Salesforce connects to a specific Microsoft Dynamics NAV database and company.
Multiple connections may be created to support:
- Multiple NAV databases
- Multiple companies within a NAV environment
- Multiple tenants
Connection Settings
| Setting | Description |
|---|---|
| Endpoint Base URL | NAV Web Service URL. Must be added as a Salesforce Remote Site Setting. |
| Company Name | NAV company name. |
| Tenant ID | Tenant identifier for multi-tenant NAV deployments. |
| NTLM Authentication | Enables Windows Authentication. |
| Username | NAV user account. |
| Password | NAV password or Web Service Access Key (recommended). |
NAV-SF Object Schema
Before creating mappings, an Object Schema must be generated.
The schema retrieves metadata from:
- NAV web services
- Salesforce objects
The schema lists the available fields used when configuring mappings.
NAV-SF Mapping
A Mapping defines how data moves between NAV and Salesforce.
General Settings
| Setting | Description |
|---|---|
| Direction | Inbound (NAV → Salesforce) or Outbound (Salesforce → NAV). |
| Connection | NAV connection used by the mapping. |
| Break on Error | Stops processing if an error occurs. |
| Child Mapping | Indicates this mapping is used as a child mapping for Header/Line or Journal integrations. |
| Change Tracking Retention Period | Automatically removes old tracking records. |
Web Service Configuration
| Setting | Description |
|---|---|
| Web Service Type | Page or Codeunit. |
| Web Service Operation | Operation exposed by the NAV web service. |
| Web Service Classification | Single Object, Header/Line, or Journal. |
| Web Service Batch Size | Number of records processed per web service call. |
| Number of Query Attempts | Retry attempts before reporting an error. |
Source and Target Objects
Specify:
- Source Object
- Target Object
The source depends on the mapping direction.
Record Processing Options
Delete Before Create
Deletes an existing target record before creating a new one.
Enforce Operation
Controls how inserts and updates are handled.
| Option | Description |
|---|---|
| Insert Only (Strict) | Insert only. Error if record already exists. |
| Insert Only (Loose) | Insert only. Ignore existing records. |
| Update Only (Strict) | Update only. Error if record does not exist. |
| Update Only (Loose) | Update only. Ignore missing records. |
Mapping Filters
Filters determine which records are synchronized.
Typical uses include:
- Incremental synchronization
- Synchronizing only active records
- Company-specific filtering
Filter Options
| Field | Description |
|---|---|
| Track Last Sync'd | Supports incremental synchronization using fields such as Last Modified Date. |
| Field Name | Source field to evaluate. |
| Operator | Comparison operator (e.g., =, <>, >, IN). |
| Option | Function, Mapping Function, or Constant Value. |
Mapping Lines
Mapping Lines define how source fields map to target fields.
Line Types
Field Mapping
Maps one source field to one target field.
Child Mapping
Used for:
- Sales Header/Sales Line
- Purchase Header/Purchase Line
- General Journals
Source Options
The source value can come from:
- Source Field
- System Function
- Mapping Function
Target Options
The target can be:
- Target Field
- Mapping Function (returns the destination field dynamically)
Composite Keys
Multiple fields can be marked as Key to create composite primary keys.
Field Updates
Field Updates automatically modify Salesforce records before or after synchronization.
Currently supported for outbound integrations.
Processing Stages
| Stage | Description |
|---|---|
| Pre-Sync | Update source record before sending data to NAV. |
| Post-Sync | Update source record after synchronization completes. |
Typical examples include:
- Update Sync Status
- Save NAV Document Number
- Store Last Sync Date
Mapping Functions
Mapping Functions perform calculations and transformations during synchronization.
Functions may be nested to create complex expressions.
Data Sources
Parameters may come from:
- Record fields
- Constants
- System functions
- Other mapping functions
Typical uses include:
- String manipulation
- Date calculations
- Numeric calculations
- Conditional logic
- Lookup translations
Job Scheduler
The Job Scheduler automatically executes one or more mappings.
Multiple schedules may be configured for different integration scenarios.
Scheduling Options
| Setting | Description |
|---|---|
| Daily Frequency | Once or Hourly |
| Run Time | Scheduled execution time |
| Start Time | Earliest execution time |
| End Time | Latest execution time |
| Weekly Frequency | Days of the week to execute |
Execution Methods
Sequential
Mappings execute one after another in the order of Job Items.
Recommended when mappings have dependencies.
Concurrent
Mappings execute simultaneously.
Recommended when mappings are independent.
Log Retention
Automatically removes old integration logs after the configured retention period.
Apex Job Information
Displays Salesforce scheduler information, including:
- Apex Job ID
- Next Run Time
Job Items
A Job consists of one or more Job Items.
Each Job Item references a Mapping.
Options
| Setting | Description |
|---|---|
| Execution Order | Controls processing sequence. |
| Break on Error | Stops or continues processing after an error. |
Integration Log
The Integration Log records every synchronization session.
Typical information includes:
- Start time
- End time
- Mapping executed
- Number of successful records
- Number of failed records
- Overall execution status
Integration Records
Each Integration Record represents an individual web service request sent to NAV.
The record stores:
- Request payload
- Response payload
- Processing status
- Error messages (if any)
This information is valuable for troubleshooting failed integrations.
Change Tracking Records
Change Tracking Records maintain synchronization history between Salesforce and NAV.
Each record stores:
- Source record identifier
- Target record identifier
- Synchronization status
- Last synchronized date
- Change tracking information
These records enable efficient incremental synchronization by ensuring that only new or modified records are processed during subsequent integration runs.
Comments
0 comments
Please sign in to leave a comment.