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
- Transaction Reception: Inbound EDI transactions are received from Orderful through the standard polling mechanism
- Custom Process Detection: The system checks if the transaction type is configured with "Process as Custom" enabled
- Status Assignment: If enabled, the transaction status is set to
Pending - Custom Process
instead of processing automatically - 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
- Navigate to the Customer or Vendor record in NetSuite
- Go to the Orderful EDI Customer Transactions subtab
- Find or add the transaction type you want to process as custom
- Check the Process as Custom checkbox
- Save the record
2. Monitor Custom Process Transactions
Custom Process transactions can be found by:
- Searching for Orderful Transaction records
- Filtering by Status = "Pending - Custom Process"
- The transactions will contain the complete EDI message payload in the Message field
Use Cases
Common Scenarios for Custom Process
-
Complex Validation Requirements
- Transactions requiring special business rule validation
- Multi-step approval workflows
- Data enrichment from external systems
-
Non-Standard Transaction Types
- EDI transaction types not fully supported by standard processing
- Custom document types specific to your business
-
Manual Review Workflows
- High-value transactions requiring manual approval
- New trading partner onboarding
- Exception handling for specific conditions
-
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
- Create a saved search for Custom Process transactions
- Add workflow or SuiteScript buttons to process individual transactions
- Implement custom forms or Suitelets for data review and approval
Important Notes
Limitations
-
No Automatic Processing: Transactions marked for custom process will not:
- Create NetSuite transactions automatically
- Generate automatic acknowledgments
- Trigger standard validation or mapping
-
Manual Status Management: You must manually update the transaction status if you do not implement an automated status update.
Best Practices
- Error Handling: Implement comprehensive error handling in custom processing scripts
- Logging: Maintain detailed logs of custom processing activities
- Status Updates: Always update transaction status after processing (Success/Error)
- Documentation: Document custom processing logic for each transaction type
- Testing: Thoroughly test custom processing in sandbox before production deployment
Support
For additional assistance with Custom Process transactions:
- Review the transaction's Message field for the complete EDI payload
- Check NetSuite script logs for any processing errors
- Verify the entity's transaction type configuration
- Contact your NetSuite administrator or Orderful support for complex issues
Updated about 16 hours ago