Hi Benedict,
Follow some ways that worked in past, currently I can't say exactly for each version I used each one. My suggestion is to try each one and make some variants of it. It's surprised as a space sometimes can provoke an error.
option 1: ** worked for R/O scenario. I expected that it works for you
tp2_scitairp = CE_PROJECTION(:tp_scitairp,
[ "MANDT", "ID", "MASTERCITY", "COUNTRY"],
' "ID" = '':airport_code'' ' );
option 2: ** worked for R/O scenario, I'm affraid it's not working anymore but give a try
tp2_scitairp = CE_PROJECTION(:tp_scitairp,
[ "MANDT", "ID", "MASTERCITY", "COUNTRY"],
' "ID" = string(:airport_code) ' );
option 3: ** No bealty on this but worked even on R/W scenarios but with some performance loss
tp2_scitairp = CE_PROJECTION(:tp_scitairp,
[ "MANDT", "ID", "MASTERCITY", "COUNTRY",
CE_CALC(' string(:airport_code) ',NVARCHAR(3)) AS ID_FILTER
],
' "ID" = "ID_FILTER" ' );
option 4: ** always worked but as you are coding CE you may not reach the top of performance
tp2_scitairp = SELECT "MANDT", "ID", "MASTERCITY", "COUNTRY"
FROM :tp_scitairp
WHERE "ID" = :airport_code;
Regards, Fernando Da Rós