Hello,
Getrecord command is a command that initiates saving and sending of the high priority record to the server after the device receives the command.
on_demand_trackingX is an activating feature where device starts to generate high priority records and initiate data sending to the server based on the configuration of this feature in the device, for more details, you can read this article "Tracking on Demand".
The main difference between these two commands is, getrecord is generating the high priority record once the device receives the command and sends the result to the server without requiring any trigger, but the second command "on_demand_trackingX" is used to enable and disable the feature that used to send the high priority record to the server based on activation trigger using IO (single or multiple).
I hope my answer covers your concern.
Best Regards,
Mahmoud A.M Khalil