Symptom
When attempting to extract data from specific SAP Views (such as USER_ADDR or V_USR_NAME) using the SAP ERP connection type, the extraction job fails.
If the underlying RFC_READ_TABLE function module is tested directly in the SAP backend (using transaction SE37) with the exact parameters passed by SAP Signavio Process Intelligence, the following error is observed in the debugger:
-
Exception:
OPTION_NOT_VALID -
System Message (SY-MSGV4):
The parser produced the error: "ORDER BY PRIMARY K "
Data extraction from other views, such as V_ADDR_USR, completes successfully without this error.
Environment
-
SAP Signavio Process Intelligence
-
Process Data Management (PDM) Bridge
-
On-premises Package (OPP) / Extractor
-
SAP ERP Connection
-
On-premises SAP ERP system
Reproducing the Issue
In SAP Signavio Process Intelligence:
-
Configure a Source Data entity using the SAP ERP connection type that includes Extra Connection Argument
GET_SORTED. -
Select a view where all fields constitute the composite primary key (e.g.,
USER_ADDRorV_USR_NAME) as the extraction target. -
Preview or Extract the View.
-
It will fail with the
OPTION_NOT_VALIDexception.
In the SAP Backend (via SE37):
-
Log into the SAP GUI and launch transaction SE37 (Function Builder).
-
Execute the function module
RFC_READ_TABLEin test mode. -
Provide the table name (e.g.,
USER_ADDR). -
Set the parameter
GET_SORTED = X(this mimics the sorting instruction sent by the connection argument). -
Execute the module. It will fail with the
OPTION_NOT_VALIDexception. -
Inspecting the error variables in the debugger reveals
SY-MSGV4 = The parser produced the error: "ORDER BY PRIMARY K ".
Cause
SAP Signavio uses SAP's standard RFC_READ_TABLE function module to retrieve data. To ensure consistent pagination and reliable data retrieval, Signavio Process Intelligence connections that have the Extra Connection Argument GET_SORTED instruct SAP to sort the output by passing the parameter GET_SORTED=X.
However, SAP's internal Open SQL parser cannot process the resulting ORDER BY PRIMARY K instruction for certain specific view architectures (such as USER_ADDR and V_USR_NAME). Because SAP Signavio Process Intelligence RFC type connections rely entirely on SAP's native extraction module, any structural or parsing limitations encountered directly within SAP will cascade down to the Signavio extraction.
Ultimately, if executing RFC_READ_TABLE natively in SAP via SE37 with GET_SORTED=X fails with an OPTION_NOT_VALID exception, the extraction will inherently fail in SAP Signavio Process Intelligence as well.
Resolution
Method 1 (Recommended): Extract Base Tables. Instead of attempting to extract the problematic views directly, configure the SAP Signavio Process Intelligence Source Data to extract the underlying transparent tables that make up the view. Once the raw tables are ingested, recreate the view's joining logic within a Data View in the PDM pipeline.
Method 2: Create a Dedicated Connection for which GET_SORTED is not added to the Extra Connection Arguments. Create a Source Data entity specifically for USER_ADDR (and potentially other joined Database Views) linking to the dedicated Connection created earlier. This Source Data can then be added to the PDM Pipeline object in addition to any existing ones.
Keywords
soe, PDM, PDM Bridge, RFC Connection, Extractor, CData JDBC, SAP ERP, RFC_READ_TABLE, OPTION_NOT_VALID, ORDER BY PRIMARY KEY, GET_SORTED, Extra Connection Argument, SE37, USER_ADDR, V_USR_NAME , KBA , BPI-SIG-PI-DS , Data Source (CSV, Connector) , Problem
SAP Knowledge Base Article - Public