Есть много неочевидных способов хранить файлы. Вот ещё один из примерно двадцати семи.
Есть такой cпособ представления двоичного контента в виде текста: Base64.
Следовательно, любой файл можно представить в виде длинной константы типа string. Чем больше файл, тем длиннее будет строка символов.
DATA lv_base64 TYPE string.
DATA lv_xstring TYPE xstring.
lv_base64 =
'UEsDBBQABgAIAAAAIQCM6YyMfgEAAIwFAAAnRlbnRfVHlwZXNdLnhtbCCi2AEooAAC' &&
'pBt1eSERI0lZjxXtYhzuGcOmA2ewCAP4pLyBjBtNgBRNezkvNb5oz1lDRh8jHtvaZk' &&
'8vZ9godfsKJKolUyquedZFFJdp5+yEHvH3ODG9fzke6typd7qeda5EIcqi5GKd27dL' &&
'9tclyNNJxbnjLu/4a58p/Oa/jFhQWPqE+gYwMEFAAGAAgAAAAhANZUUvOrAQAAQQMA' &&
'iv7jxP56s/Zu87L95Ts5q6ihwqQw1avwiyIj/hnjnGJ+4AtVn63DdqG7gYMZvhhPUU' &&
'zne1zRqIaLwr2HSSswyc9qVxm4Jdrz+evWMfaA7Fy+fiWW0QeIZACzFOGwYFuiMOcc' &&
'Z3MvcHJpbnRlclNldHRpbmdzMS5iaW5QSwEAAAACEAycnEUkoBAAB1AgAAEQAAAAAA' &&
'AAAAAAAAAACFHAAAZG9jUHJvcHMvY29yZS5QAUAAYACAAAACEANbpi6akBAAAzAwAA' &&
'EAAAAAAAAAAAAAAAAAAGHwAAZG9jUHJvcHMFBLBQYAAAAADQANAGwDAADlIQAAAAA='.
lv_xstring = cl_http_utility=>decode_x_base64( encoded = lv_base64 ).
Вот только файл размером 10кб займёт примерно 200 строк текста.
Когда такое может пригодиться?
Например: для юнит-тестов с небольшим исходным файлом. Тестовый класс получается более самодостаточным, переносимым и независимым от внешних обстоятельств.
В моём случае инсайт пришёл при работе с Excel-файлом в моём предыдущем посте “Ещё один способ прочитать содержимое Excel-файла”. Не всегда есть смысл изобретать какое-то особое место хранения файла, если можно положить файл напрямую в код.