Are there any restrictions pertaining to the use of BAPIs? Restrictions such as "All parameters must be of type C (Character), maximum length 255".

The 255 length restriction is no longer applicable. Concerning data format, all character-type formats (string, date, numerical) are okay. For packed fields (ABAP type P) within structures, you need to do an explicit conversion with

Set V[xxx]  ...  -unpack

For single fields GuiXT does this conversion automatically.

In cases of binary fields (ABAP Type I or X) you need to write a wrapper function that calls the BAPI and returns the values in character format.