Custom Process Inbound Transactions

A guide for supporting non-native EDI transaction workflows and types in NetSuite

Overview

Custom Process is a feature that allows inbound EDI transactions to be received and stored in NetSuite without automatic processing of NetSuite transactions. This provides flexibility for implementing custom business logic or manual review workflows for specific transaction types.

How It Works

Transaction Flow

  1. Transaction Reception: Inbound EDI transactions are received from Orderful through the standard polling mechanism
  2. Custom Process Detection: The system checks if the transaction type is configured with "Process as Custom" enabled
  3. Status Assignment: If enabled, the transaction status is set to Pending - Custom Process instead of processing automatically
  4. Manual/Custom Handling: The transaction remains in this state for custom processing via:
    • Manual review and processing
    • Custom scripts or workflows
    • Third-party integrations

Key Components

Transaction Status

  • Status Value: PendingCustomProcess (transaction_status_pending_cust_process)
  • Purpose: Indicates the transaction requires custom processing

Configuration

Custom Process is configured at the EnabledTransactionType level:

  • Field: isProcessAsCustom (boolean)
  • Location: Customer/Vendor entity transaction type configuration
  • Path: Entity → Enabled Transaction Types → Process as Custom checkbox

Configuration Steps

1. Enable Custom Process for a Transaction Type

  1. Navigate to the Customer or Vendor record in NetSuite
  2. Go to the Orderful EDI Customer Transactions subtab
  3. Find or add the transaction type you want to process as custom
  4. Check the Process as Custom checkbox
  5. Save the record

2. Monitor Custom Process Transactions

Custom Process transactions can be found by:

  1. Searching for Orderful Transaction records
  2. Filtering by Status = "Pending - Custom Process"
  3. The transactions will contain the complete EDI message payload in the Message field

Use Cases

Common Scenarios for Custom Process

  1. Complex Validation Requirements

    • Transactions requiring special business rule validation
    • Multi-step approval workflows
    • Data enrichment from external systems
  2. Non-Standard Transaction Types

    • EDI transaction types not fully supported by standard processing
    • Custom document types specific to your business
  3. Manual Review Workflows

    • High-value transactions requiring manual approval
    • New trading partner onboarding
    • Exception handling for specific conditions
  4. Integration with External Systems

    • Transactions that need to be processed by external ERP/WMS systems
    • Data synchronization with third-party applications
    • Custom routing based on business logic

Implementation Examples

Example 1: Processing Custom Transactions via Scheduled Script

// Custom scheduled script to process pending custom transactions
const processCustomTransactions = () => {
  // Search for pending custom process transactions
  const searchResults = search.create({
    type: 'customrecord_orderful_transaction',
    filters: [
      ['custrecord_orderful_transaction_status', 'is', 'transaction_status_pending_cust_process']
    ],
    columns: ['internalid', 'custrecord_orderful_transaction_message']
  }).run().getRange(0, 100);

  searchResults.forEach(result => {
    const transactionId = result.getValue('internalid');
    const messagePayload = JSON.parse(result.getValue('custrecord_orderful_transaction_message'));
    
    // Implement your custom processing logic here
    processCustomLogic(messagePayload);
    
    // Update transaction status after processing
    record.submitFields({
      type: 'customrecord_orderful_transaction',
      id: transactionId,
      values: {
        custrecord_orderful_transaction_status: 'transaction_status_success'
      }
    });
  });
};

Example 2: Manual Processing Workflow

  1. Create a saved search for Custom Process transactions
  2. Add workflow or SuiteScript buttons to process individual transactions
  3. Implement custom forms or Suitelets for data review and approval

Important Notes

Limitations

  1. No Automatic Processing: Transactions marked for custom process will not:

    • Create NetSuite transactions automatically
    • Generate automatic acknowledgments
    • Trigger standard validation or mapping
  2. Manual Status Management: You must manually update the transaction status if you do not implement an automated status update.

Best Practices

  1. Error Handling: Implement comprehensive error handling in custom processing scripts
  2. Logging: Maintain detailed logs of custom processing activities
  3. Status Updates: Always update transaction status after processing (Success/Error)
  4. Documentation: Document custom processing logic for each transaction type
  5. Testing: Thoroughly test custom processing in sandbox before production deployment

Support

For additional assistance with Custom Process transactions:

  1. Review the transaction's Message field for the complete EDI payload
  2. Check NetSuite script logs for any processing errors
  3. Verify the entity's transaction type configuration
  4. Contact your NetSuite administrator or Orderful support for complex issues