AnyToAny Engine FAQ.

Common questions about the Redix AnyToAny Format Converter Engine — architecture, X12 support, API interfaces, performance optimization, and licensing.

What is the difference between AnyToAny and AnyToXML Format Converter Engines?

AnyToXML converts EDI or flat files to XML in the same data order as the source file. No OFD (Output File Descriptor) is needed — the engine reads the source using an IFD and outputs XML directly.

AnyToAny handles conversions where the target data order differs from the source, or where data manipulation, mapping, and reformulation are required. An OFD file defines the target format and transformation rules.

Use AnyToXML when you need a straightforward same-order XML representation. Use AnyToAny when you need to transform, reorder, or map data between different formats.

Does the AnyToAny Engine support X12 version 5010 and later?

Yes. The AnyToAny Engine supports all X12 transactions across the following versions:

  • 3040
  • 4010, 4020, 4030
  • 5010, 5020, 5030, 5040, 5050

This includes the HIPAA-mandated 5010 version and all subsequent releases.

How do I fix the EXCEPTION_STACK_OVERFLOW error in Java?

This is a Java stack error that can occur in any JDK version. To resolve it, use the editbin utility to increase the java.exe stack size:

editbin /STACK:1000000 java.exe

The editbin utility is installed with the Redix GUI Mapper v4.10 and later.

How can I pass data to an existing OFD?

Use the user_data parameter in the redix_app_extA API function. External data is passed as a comma-separated delimited string.

In the OFD, reference the data elements using:

  • userdata(0) — first element
  • userdata(1) — second element
  • userdata(2) — third element, and so on

Up to 100 data elements can be passed. This allows runtime parameters such as trading partner IDs, dates, or configuration values to be injected into an OFD without modifying it.

How can I extract error information from a Redix error file?

Use the geterrorinfo OFD function. Pass the error file name, the original input file, and database credentials via userdata.

The function can write extracted error information to a SQL Server database for centralized error tracking and reporting.

To execute, use either:

  • The redixscr command-line utility
  • The redix_scrA() API function
How can I transfer my license?

GUI Mapper: Open the Help menu and select "Transfer the license."

Engine: Run the Redix License Manager (enginelic.exe) and click the "Transfer License" button.

If the system has internet connectivity, the transfer is sent automatically to the Redix License server. Without internet, email the transfer code to support@redix.com. On the new system, install and activate normally.

How do I improve engine performance?

Four techniques for optimizing AnyToAny Engine performance:

(a) Reduce IFD message definition size. Remove unused segments and loops from the Trading Partner's guide. This can yield up to 300% improvement — in a benchmark test, IFD reduction from 196KB to 41KB improved processing from 0.196s to 0.061s.

(b) Optimize OFD traversals. Add if-conditions to the OFD to eliminate unnecessary traverses of source data segments.

(c) Order type "A" code checks efficiently. Place the most commonly matched codes first in type "A" code check lists, so the engine finds matches earlier.

(d) Consolidate type "D" code checks. Use a single codebase file with the ElementNumber:CodeValue format instead of multiple separate codebase files.

How do I program a user-defined procedure?

To create a user-defined procedure:

  • Create a users32 project in Visual C++
  • Add trav_upr.cpp from the Redix folder to the project
  • Implement the checkid1 routine with your custom validation logic
  • Compile the project to produce a DLL
  • Copy the DLL to the Redix folder

The checkid1 routine returns 1 for valid or 0 for invalid. In the GUI Mapper, set the user-defined procedure field to "1" to activate it.

Can I use VB.Net to interface with the Redix engine?

Yes. Declare the redix_app_extA function from rfcx.dll:

Private Declare Function redix_app_extA Lib "rfcx.dll" ( _
    ByVal InputFile As String, ByVal IFDFile As String, _
    ByVal OFDFile As String, ByVal ACKFile As String, _
    ByVal ERRFile As String, ByVal OutputFile As String, _
    ByVal CONVFlag As String, ByVal SEGMENT As String, _
    ByVal ELEMENT As String, ByVal COMPOSITE As String, _
    ByVal Release As String, ByVal UserData As String, _
    ByVal WarningLevel As String, ByVal TA1File As String _
) As Integer

Create a Redix class with properties for each parameter (InputFile, IFDFile, OFDFile, ACKFile, ERRFile, OutputFile, CONVFlag, SEGMENT, ELEMENT, COMPOSITE, Release, UserData, WarningLevel, TA1File), then call the convert() function to execute the conversion.

Can I use VB 6 to interface with the "redix" command line?

Yes. Use CreateProcessA with WaitForSingleObject to shell the redix command with a configuration file.

Create a .cfg file specifying the conversion parameters:

INFILE=input.edi
IFD=mymap.ifd
OFD=mymap.ofd
ACKFILE=ack.txt
ERRFILE=errors.err
OUTFILE=output.dat
CONVFLAG=0
SEGSEP=~
ELEMSEP=*
COMPSEP=:
RELCHAR=
USERDATA=
WARNINGLEVEL=0
TA1FILE=

Then invoke the command line:

commandLine = "redix config.cfg"

Use CreateProcessA to launch the process and WaitForSingleObject to wait for completion before checking the output and error files.

Still have questions? Contact us or try our AI Chat for instant answers.