In particular the SPN is a 19 bits field (16 first bits for standard values + 3 bits for proprietary values) that have to be transmitted on CAN as following:
To observe on CAN the DTC details and get the 19 bits SPN correctly displayed in Trace as it is in the DTC Monitor please use the following method:
Define in the dbc the DTC as a 32-Bit Signal with Signal Attribute SigType=DTC like indicated below. You will then be able to see the different fields of the DTC in Trace. In CAPL you will have to use bit operations to manually get the 19 bits long SPN out of the 32 bits.
This method is for instance used in the dbc out of the J1939SystemDemo.cfg Sample Configuration of your CANoe/CANalyzer installation.