Read Access Violation in Task [X12] might occur if both the NOPRINT option and the OUTLIER statement are used


If the NOPRINT option is specified in the PROC X12 statement and the OUTLIER statement is also used in the PROC X12 step, then the procedure might abend with the following Read Access Violation error if potential outliers in the data are identified:

ERROR: Read Access Violation In Task [ X12 ] Exception occurred at (4A9FE00D) Task Traceback Address Frame (DBGHELP API Version 4.0 rev 5) 4A9FE00D 0779EE84 sasx12:mcn_main+0xFD00D 4A931A6D 0779F838 sasx12:mcn_main+0x30A6D 4A987D36 0779F954 sasx12:mcn_main+0x86D36 4A9227FE 0779FECC sasx12:mcn_main+0x217FE 4A901778 0779FF8C sasx12:mcn_main+0x778 015B2854 0779FFA0 sashost:Main+0xC290 0169E038 0779FFB4 sashost:Main+0xF7A74 7C80B713 0779FFEC kernel32:GetModuleFileNameA+0x1B4 

This problem is due to a null pointer being passed to the PotentialOutliers ODS table as a result of the NOPRINT option.

To circumvent the problem, remove the NOPRINT option from the PROC X12 statement and use an ODS SELECT NONE; statement to suppress the display of the ODS tables rendered by the X12 procedure. An ODS SELECT ALL; statement can be subsequently specified to begin displaying procedure output after the PROC X12 step.