Sap проверить открыт ли файл
Часовой пояс: UTC + 3 часа
Правила форума
Вопросы по SAP Query и Quick View - сюда
Новое
- Получение инстанции cl_gui_alv_grid для SALV 11.09.2021
- Introduction to ABAP in the Cloud 18.08.2021
- Getting Started with FPM BOPF Integration 01.06.2021
- 30. How to Use Authority Checks in Business Object Processing Framework 29.05.2021
- 29. BOPF Extensibility 29.05.2021
- 28. BOPF Enterprise Procurement Model (EPM) 29.05.2021
- 27. BOPF Integration 29.05.2021
- 26. BOPF Business Configuration Objects 29.05.2021
- 25. BOPF Performance 29.05.2021
- 24. BOPF Supportability 29.05.2021
Последние комментарии
GerAlex_Star 07.04.2022 в 13:51 на Программирование обновлений БД в ABAP Коллеги, для удобства опишу полученные мною результаты тестирования запусков программ через SUBMIT и SUBMIT AND RETURN, а также транзакций с помощью CALL TRANSACTION. На этих примерах можно увидеть, в каких именно случаях происходит неявный DB Commit, как меняется KEY SAP LUW и как ведут себя логиче.
GerAlex_Star 07.04.2022 в 12:04 на Программирование обновлений БД в ABAP Коллеги, при SUBMIT произойдёт неявный DB Commit. Проверил сейчас на примере. В первой программе делаем прямой INSERT, потом делаем SUBMIT 2-й программы (пустой например). Изменения в БД занесутся. Но вот если, например, в первой программе были и прямые изменения (тот же INSERT например) и вызван ФМ.
В SAP предусмотрен один замечательный класс для работы с сервером представления, называется он: CL_GUI_FRONTEND_SERVICES. Далее я опишу применение его основных методов, которые зачастую могут пригодится в написании ABAP отчётов.
Так как версии GUI клиента постоянно обновляются, и существуют разные версии GUI: под MacOS, Web, Windows необходимо проверять поддерживает ли текущая версия возможности GUI, для этого был создан метод: CHECK_GUI_SUPPORT. Пример использования данного метода:
Следующими идут методы экспорта, импорта из буфера обмена ОС: CLIPBOARD_EXPORT, CLIPBOARD_IMPORT. Пример использования метода:
Где data_block внутренняя таблица, rc — код возврата ошибки.
Далее идет группа методов для работы с директориями на сервере представления. Метод DIRECTORY_BROWSE. Служит для отображения диалога выбора директории. Пример использования:
Метод DIRECTORY_CREATE создает папку в указанном месте. Пример использования:
Метод DIRECTORY_DELETE как понятно из названия удаляет указанную директорию, в случае ошибки код возврата RC будет не пустой. Часто приходится проверять существование директории на компьютере пользователя, для этого служит метод DIRECTORY_EXIST. Пример его использования:
Для получения текущей директории (той что используется GUI для выгрузки отчётов и пр.) используется метод: DIRECTORY_GET_CURRENT. Для получения списка файлов в указанной директории используется метод: DIRECTORY_LIST_FILES. Метод позволяет получить список файлов и директорий в указанной вами директории, причем с заданием фильтра — параметр FILTER, вы можете определить нужно ли вам получить только директории параметр DIRECTORIES_ONLY = ‘X’, или только файлы — параметр FILES_ONLY = ‘X’. Пример использования:
DIRECTORY_SET_CURRENT необходим для установки текущей директории (см. выше).
DISABLEHISTORYFORFIELD используется когда надо запретить сохранение в истории значений указанного поля, например на экране выбора.
ENVIRONMENT_GET_VARIABLE используется для получения значения переменной окружения на компьютере пользователя. Противоположный ему метод, для установки значений переменных окружения — ENVIRONMENT_SET_VARIABLE.
Метод EXECUTE запускает на сервере представления документ, директорию, приложение. (В Windows это обёртка над WinApi — ShellExecute, ShellExecuteEx). Параметр DOCUMENT определяет путь к документу который необходимо запустить в приложении APPLICATION, в случае если приложение не указано будет запущено ассоциируемое приложение к данному типу файлов. DEFAULT_DIRECTORY определяет директорию из которой будет происходить файла, в случае если не указан полный путь к файлу в параметре DOCUMENT. OPERATION — Может принимать одно из следующих значений: FIND, EXPLORE, EDIT, OPEN или PRINT, по умолчанию OPEN. MAXIMIZED, MINIMIZED — определяет будет ли запущенное приложение развернутым или свернутым. PARAMETER — список параметров передаваемых запускаемому приложению. SYNCHRONOUS — определяет будет ли запуск синхронным, т.е. GUI будет ждать завершения операции или нет. Пример использования метода:
Далее идет группа методов для работы с файлами. FILE_COPY — копирует файл указанный в параметре — SOURCE, в файл в параметре — DESTINATION, в случае если нет создает, если есть и указан параметр — OVERWRITE перезаписывает.
FILE_DELETE удаляет указанный в параметре — FILENAME файл, в случае ошибки значение параметра RC не 0.
FILE_EXIST — проверяет файл на существование, в случае если файл существует параметр RESULT не пустой.
Для проверки атрибутов файла служит метод FILE_GET_ATTRIBUTES, с помощью него можно определить является ли файл: архивным, только для чтения, скрытым, или нормальным, без вышеупомянутых атрибутов. Для установки атрибутов к файлу служит метод FILE_SET_ATTRIBUTES.
FILE_GET_SIZE судя по названию должен определять размер файла в байтах, но на моей системе данный метод отказывался работать, возможно на более новой версии базиса это было исправлено.
FILE_GET_VERSION получает текущую версию файла.
FILE_OPEN_DIALOG отображает диалог выбора файлов. WINDOW_TITLE — заголовок диалога, DEFAULT_EXTENSION — расширение для файлов, DEFAULT_FILENAME — имя файлов по умолчанию, FILE_FILTER — фильтр для выбора файлов, WITH_ENCODING — возможность выбора кодировки, INITIAL_DIRECTORY — директория в которой открывается диалог, MULTISELECTION — если ‘Х’ позволяет выбирать несколько файлов, FILE_TABLE — список выбранных файлов. USER_ACTION может принимать либо ACTION_OK либо ACTION_CANCEL в зависимости на какую кнопку диалога нажал пользователь. FILE_ENCODING — принимает значение кодировки файла. Пример использования метода:
Метод FILE_SAVE_DIALOG необходим для вызова диалога сохранения файлов, его параметры идентичны предыдущему за исключением: PROMPT_ON_OVERWRITE — запрашивать ли пользователя перезаписать файл, PATH — имя выбранного файла, FULLPATH — полный адрес выбранного файла.
Далее идет группа методов для получения информации о сервере представления.
GET_COMPUTER_NAME — получение имени компьютера.
GET_DESKTOP_DIRECTORY — получение пути к рабочему столу.
GET_DRIVE_FREE_SPACE_MEGABYTE — получение свободного пространства на диске в MB, где DRIVE — буква необходимого диска.
GET_DRIVE_TYPE — определение типа диска, возвращает: FIXED, REMOTE, REMOVABLE, » — в случае если не удалось определить.
GET_FILE_SEPARATOR — определение разделителя в файлах, зависит от платформы. Windows — \.
GET_GUI_VERSION — получение полной версии GUI.
GET_IP_ADDRESS — получение IP адреса на котором запущен GUI.
GET_LF_FOR_DESTINATION_GUI — получение разделителя линий в зависимости от платформы. В случае если возвращает ошибку (sy-subrc <>0) — CL_ABAP_CHAR_UTILITIES=>CR_LF.
GET_PLATFORM — получение платформы сервера представления. Возвращает один из атрибутов класса:
PLATFORM_UNKNOWN
PLATFORM_WINDOWS95
PLATFORM_WINDOWS98
PLATFORM_NT351
PLATFORM_NT40
PLATFORM_NT50
PLATFORM_MAC
PLATFORM_OS2
PLATFORM_LINUX
PLATFORM_HPUX
PLATFORM_TRU64
PLATFORM_AIX
PLATFORM_SOLARIS
PLATFORM_MACOSX
GET_SAPGUI_DIRECTORY — директория в которой лежит SAP GUI.
GET_SAPGUI_WORKDIR — рабочая директория GUI клиента, как правило в документах пользователя.
GET_SAPLOGON_ENCODING — кодировка которая используется в GUI.
GET_SYSTEM_DIRECTORY — получение системной директории (С:\Windows\system32\)
GET_TEMP_DIRECTORY — получение директории для временных файлов.
GET_UPLOAD_DOWNLOAD_PATH — рабочая папка для GUI, тоже что и GET_SAPGUI_WORKDIR.
GET_USER_NAME — имя пользователя на сервере представления.
GET_WINDOWS_DIRECTORY — как видно из названия директория в которой лежит Windows.
IS_TERMINAL_SERVER — Запущен ли GUI на терминальном клиенте.
Далее идут методы для работы с реестром Windows.
REGISTRY_DELETE_KEY — удаляет ключ указанный в KEY, для всех методов по взаимодействию с реестром необходимо указывать корневой узел реестра ( CL_GUI_FRONTEND_SERVICES=>HKEY_CLASSES_ROOT, CL_GUI_FRONTEND_SERVICES=>HKEY_CURRENT_USER, CL_GUI_FRONTEND_SERVICES=>HKEY_LOCAL_MACHINE, CL_GUI_FRONTEND_SERVICES=>HKEY_USERS).
REGISTRY_DELETE_VALUE — чистит значение указанного ключа реестра.
REGISTRY_GET_DWORD_VALUE — получение значения ключа реестра с видом DWORD.
REGISTRY_SET_DWORD_VALUE — установка значения ключа с видом DWORD.
REGISTRY_GET_VALUE — получение значения ключа.
REGISTRY_SET_VALUE — установка значения ключа.
Теперь еще немного об атрибутах данного класса. В тех методах где необходимо указать маску файлов (диалоги открытия, сохранения) можно воспользоваться готовыми атрибутами:
FILETYPE_ALL Все файлы (*.*) *.*
FILETYPE_TEXT Текст. файлы (*.TXT) *.TXT
FILETYPE_XML XML (*.XML) *.XML
FILETYPE_HTML HTML-файлы (*.HTML, *.HTM) *.HTML;*.HTM
FILETYPE_EXCEL Excel-файлы (*.XLS;*.XLSX;*.XLSM) *.XLS;*.XLSX;*.XLSM
FILETYPE_RTF RTF-файлы (*.RTF) *.RTF
FILETYPE_WORD Word-файлы (*.DOC;*.DOCX;*.DOCM) *.DOC;*.DOCX;*.DOCM
FILETYPE_POWERPOINT Файлы Powerpoint (*PPT;*.PPTX;*.PPTM) *PPT;*.PPTX;*.PPTM
Ну и наконец два пожалуй самых часто используемых метода данного класса GUI_DOWNLOAD — служит для выгрузки данных в файл на сервере представления. GUI_UPLOAD — для загрузки содержимого файла. Описание данных методов достаточно большое и будет опубликовано в виде отдельной заметки.
Чистый код может читаться и усовершенствоваться другими разработчиками, кроме его исходного автора. Для него написаны модульные и приемочные тесты. В чистом
коде используются содержательные имена. Для выполнения одной операции в нем используется один путь (вместо нескольких разных). Чистый код обладает минимальными зависимостями, которые явно определены, и четким, минимальным API. Код должен быть грамотным, потому что в зависимости от языка не вся необходимая информация может быть четко выражена в самом коде.
Д. Томас
Физические и логические имена файлов
Все операторы, используемые в файловом интерфейсе, оперируют физическими именами файлов, которые зависят от операционной системы, используемой на сервере приложений. Физическое имя файла представляет из себя описание пути к файлу и его имя (C:\1.txt или /home/123.text). Допускается использование пробелов в именах файлов. Если передано имя файла, без указания пути к нему, по умолчанию путь к файлу берется из профильного параметра DIR_HOME (редактируется в транзакции RZ11):
Имена файлов и директорий можно хранить как текстовые константы в ABAP коде, однако для этого необходимо учитывать то, на какой ОС работает сервер приложений, а если их несколько? Кроме того необходимо иметь возможность генерации имен файлов в зависимости от тех или иных параметров. Облегчить данную задачу поможет концепция логических имен.
Для манипуляции с файлами вне зависимости от платформы, были разработаны логические имена файлов, по сути, являющиеся записью в таблице БД, в которой для каждой ОС обозначен свой физический путь и правила его формирования.
Задать логические имена файлов можно двумя способами:
- Для независимых от манданта имен файлов, через транзакцию FILE
- Для зависимых через транзакцию SF01
Первым делом настраивается определение синтаксической группы (набора правил наименования файлов), для операционной системы:
На данном шаге определяются:
- Код синтаксической группы
- Название синтаксической группы
- Максимальная длинна имени файла
- Использовать ли в качестве расширения формат файла (TXT, BIN и т.п.)
- Активность данной группы
После определения синтаксической группы необходимо присвоить её для ОС:
При получении физического имени файла по логическому, в качестве ОС будет взято значение из системного параметра sy-opsys.
Далее необходимо определить логический путь к файлу, т.е. директорию, в которой он будет обрабатываться:
Для каждого из логического пути можно настроить присвоение физического пути, относительно платформы:
Как видно из рисунка, физический путь представляет из себя специальную строку с параметрами. Могут быть использованы следующие параметры:
В программировании SAP ABAP часто используется обработка файлов.Согласно различным классификациям SAP, существуют файлы серверов и клиентов, текстовые файлы и двоичные файлы (файлы EXE, файлы Office, файлы PDF и т. Д.).
Просмотр файлов сервера
Вы можете использовать TCode: AL11 для просмотра папок и файлов сервера, и вы можете нажать «Настроить» для создания папок и управления ими.
Создавать и изменять файлы сервера
Используйте OPEN DATASET ABAP с оператором FOR OUTPUT, чтобы открыть файл;
Используйте оператор TRANSFER для записи в файл;
Используйте CLOSE DATASET, чтобы закрыть файл (сохранить).
DATA: gdf_filepath type dxfile-filename
DATA: gdt_data type table of gts_data.
DATA: ldf_length type i.
FIELD-SYMBOLS: TYPE gts_data
OPEN DATASET gdf_filepath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT prt_data ASSIGNING .
DESCRIBE FIELD LENGTH ldf_length IN BYTE MODE.
TRANSFER TO prf_file LENGTH ldf_length.
ENDLOOP.
CLOSE DATASET gdf_filepath.
Прочитать файл сервера
Используйте OPEN DATASET ABAP с оператором FOR INPUT, чтобы открыть файл;
Используйте оператор READ DATASET для чтения файла;
Используйте CLOSE DATASET, чтобы закрыть файл.
PARAMETERS p_file TYPE dxfile-filename.
OPEN DATASET p_file IN TEXT MODE ENCODING DEFAULT FOR INPUT.
DO.
READ DATASET p_file INTO gds_data.
IF sy-subrc <> 0.
EXIT.
ENDIF.
APPEND gds_data TO gdt_data.
ENDDO.
CLOSE DATASET p_file.
Проверьте, существует ли файл сервера
Используйте функцию OCS_GET_FILE_INFO
DATA: gdt_ocs_file TYPE TABLE OF ocs_file.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN.
CALL FUNCTION 'OCS_GET_FILE_INFO'
EXPORTING
dir_name = p_file
file_name = '*'
TABLES
dir_list = gdt_ocs_file
или используйте OPEN DATASET, чтобы определить возвращаемое системой значение для определения файла.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN.
OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0.
CLOSE DATASET p_file.
ELSE.
MESSAGE 'the input file does not exist.' TYPE 'E'.
ENDIF.
Прочтите список файлов в папке сервера
Используйте функцию SUBST_GET_FILE_LIST или EPS_GET_DIRECTORY_LISTING
Как пользоваться справкой по поиску
Используйте функцию 'F4_DXFILENAME_4_DYNP'
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_DXFILENAME_4_DYNP'
EXPORTING
dynpfield_filename = 'P_FILE'
dyname = sy-repid
dynumb = sy-dynnr
filetype = 'P'
location = 'A'
server = ' '.
filetype: 'P' represents Physical file name; 'L' represents Logical file name.
location: 'A' represents Application Server; 'P' represents Presentation server.
Используйте функцию F4_DXFILENAME_TOPRECURSION для создания настраиваемой справки по вводу
заметка
Чтобы избежать изменения имен файлов, мы должны использовать логические файлы. Используйте TCODE: FILE может определять логические файлы, используйте функцию FILE_GET_NAME, чтобы получить имя файла;
Создать файл клиента
Используйте функцию GUI_DOWNLOAD
*DATA DECLARATION for GUI_DOWNLOAD.
DATA : lv_filename type STRING.
lv_filename = file.
CONSTANTS: LV_FILETYPE TYPE CHAR10 VALUE 'ASC'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = lv_filename
FILETYPE = 'ASC'
CODEPAGE = 'IBM'
TABLES
DATA_TAB = DATA_TAB
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
file = lv_filename.
Используйте функцию CL_GUI_FRONTEND_SERVICES => GUI_DOWNLOAD
DATA : filename_new TYPE string,
l_filename TYPE string,
l_fullpath TYPE string,
l_path TYPE string.
MOVE filename TO filename_new.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
default_file_name = filename_new
CHANGING
filename = l_filename
path = l_path
fullpath = l_fullpath.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = l_fullpath
filetype = 'ASC'
append = 'X'
TABLES
data_tab = lt_datatab
EXCEPTIONS
OTHERS = 1.
Примечание: DOWNLOAD и WS_DOWNLOAD не рекомендуются
Прочитать файл клиента
Используйте функцию 'GUI_UPLOAD'
DATA : lv_filename type STRING.
CONSTANTS: LV_FILETYPE TYPE CHAR10 VALUE 'ASC'.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = lv_filename
FILETYPE = 'DAT'
CODEPAGE = 'IBM'
TABLES
DATA_TAB = data_tab
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
Используйте метод CL_GUI_FRONTEND_SERVICES => GUI_UPLOAD
Примечание: функции UPLOAD и WS_UPLOAD не рекомендуются.
Проверьте, существует ли файл клиента
Используйте функцию DX_FILE_EXISTENCE_CHECK
DATA: gdf_file_exist(1) TYPE c.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN.
CALL FUNCTION 'DX_FILE_EXISTENCE_CHECK'
EXPORTING
filename = p_file
pc = 'X'
* SERVER =
IMPORTING
file_exists = gdf_file_exist
IF NOT ( sy-subrc = 0 and gdf_file_exist = 'X' )
MESSAGE 'the input file does not exist.' TYPE 'E'.
ENDIF.
Pay attention to the importing parameter 'pc', it should be set as 'X'.
Используйте функцию CL_GUI_FRONTEND_SERVICES => FILE_EXIST
DATA: gdf_file_exist(1) TYPE c.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN.
CALL METHOD cl_gui_frontend_services=>file_exist
EXPORTING
file = p_file
RECEIVING
result = gdf_file_exist
IF NOT ( sy-subrc = 0 and gdf_file_exist = 'X' )
MESSAGE 'the input file does not exist.' TYPE 'E'.
ENDIF.
Прочитать список файлов клиента
Используйте функцию TMP_GUI_DIRECTORY_LIST_FILES
Или метод CL_GUI_FRONTEND_SERVICES => DIRECTORY_LIST_FILES
Воспользуйтесь поисковой справкой
Используйте метод CL_GUI_FRONTEND_SERVICES => FILE_OPEN_DIALOG
DATA: gdt_filetable TYPE filetable.
DATA: gdf_rc TYPE I.
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
WINDOW_TITLE = 'Choose a file'
CHANGING
file_table = gdt_filetable
rc = gdf_rc
IF sy-subrc = 0.
READ TABLE gdt_filetable
INTO gds_filetable INDEX 1.
p_file = gds_filetable-filename.
ENDIF.
Используйте метод CL_GUI_FRONTEND_SERVICES => FILE_SAVE_DIALOG
Используйте функцию WS_FILENAME_GET
Используйте функцию F4_FILENAME (требования к версии: только R / 3 и ECC)
PARAMETERS p_file TYPE dxfile-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME =
* DYNPRO_NUMBER =
* FIELD_NAME =
IMPORTING
file_name = p_file.
Пожалуйста, используйте метод CL_GUI_FRONTEND_SERVICES => DIRECTORY_BROWSE для выбора папок
- Копирование файлов между сервером и клиентом
TCode:CG3Y (from server to frontend)
TCode:CG3Z (from frontend to server)
Используйте метод CL_GUI_FRONTEND_SERVICES => FILE_COPY;
Используйте комбинацию операций сервера и клиента, упомянутую выше, для достижения;
Используйте CL_ABAP_GZIP, этот класс может только сжимать и распаковывать данные в памяти;
На стороне сервера мы можем использовать OPEN DATASET с FILTER для достижения
DATA file TYPE string VALUE `/usr/test.Z`.
OPEN DATASET file FOR OUTPUT IN BINARY MODE
FILTER 'compress'.
.
CLOSE DATASET file.
OPEN DATASET file FOR INPUT IN BINARY MODE
FILTER 'uncompress'.
.
CLOSE DATASET file.
Используйте OLE / DOI для собственных файлов Office (Excel, Word и т. Д.)
Класс CL_GUI_FRONTEND_SERVICES предоставляет большое количество методов для файловых операций.
Программы, которые поддерживают SAP расширение файла
В следующем списке перечислены программы, совместимые с файлами SAP, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с расширением SAP, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Новое
- Получение инстанции cl_gui_alv_grid для SALV 11.09.2021
- Introduction to ABAP in the Cloud 18.08.2021
- Getting Started with FPM BOPF Integration 01.06.2021
- 30. How to Use Authority Checks in Business Object Processing Framework 29.05.2021
- 29. BOPF Extensibility 29.05.2021
- 28. BOPF Enterprise Procurement Model (EPM) 29.05.2021
- 27. BOPF Integration 29.05.2021
- 26. BOPF Business Configuration Objects 29.05.2021
- 25. BOPF Performance 29.05.2021
- 24. BOPF Supportability 29.05.2021
Как открыть файл SAP?
Причин, по которым у вас возникают проблемы с открытием файлов SAP в данной системе, может быть несколько. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Atari SAP Music Format, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.
Шаг 1. Получить SAP Player
Основная и наиболее частая причина, препятствующая открытию пользователями файлов SAP, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы SAP. Наиболее очевидным решением является загрузка и установка SAP Player или одной из перечисленных программ: Winamp, Audio Overload. Выше вы найдете полный список программ, которые поддерживают SAP файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Самый безопасный способ загрузки SAP Player установлен - для этого зайдите на сайт разработчика () и загрузите программное обеспечение, используя предоставленные ссылки.
Шаг 2. Проверьте версию SAP Player и обновите при необходимости
Если у вас уже установлен SAP Player в ваших системах и файлы SAP по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Причиной того, что SAP Player не может обрабатывать файлы с SAP, может быть то, что программное обеспечение устарело. Самая последняя версия SAP Player обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.
Шаг 3. Настройте приложение по умолчанию для открытия SAP файлов на SAP Player
После установки SAP Player (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия SAP файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Выбор приложения первого выбора в Windows
- Выберите пункт Открыть с помощью в меню «Файл», к которому можно щелкнуть правой кнопкой мыши файл SAP.
- Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
- Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен SAP Player, установите флажок Всегда использовать это приложение для открытия SAP файлы свой выбор, нажав кнопку ОК
Выбор приложения первого выбора в Mac OS
Шаг 4. Убедитесь, что файл SAP заполнен и не содержит ошибок
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным SAP файлом. Вероятно, файл поврежден и, следовательно, недоступен.
1. SAP может быть заражен вредоносным ПО - обязательно проверьте его антивирусом.
Если SAP действительно заражен, возможно, вредоносное ПО блокирует его открытие. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл SAP действительно заражен, следуйте инструкциям ниже.
2. Убедитесь, что структура файла SAP не повреждена
Если вы получили проблемный файл SAP от третьего лица, попросите его предоставить вам еще одну копию. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Если файл SAP был загружен из Интернета только частично, попробуйте загрузить его заново.
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
Некоторые файлы требуют повышенных прав доступа для их открытия. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Atari SAP Music Format.
4. Проверьте, может ли ваша система обрабатывать SAP Player
5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов
Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом Atari SAP Music Format. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов SAP.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла SAP мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле SAP.
Программы, обслуживающие файл SAP
Windows
MAC OS
Linux
Как проверить, является ли файл файлом excel в OLE?
Добрый день!
Возникла такая проблема: работаю с OLE, нужно открывать файл, но только файл excel(пользователь может подавать на открытие любой файл). Создаю объект excel, а дальше всё глухо. Так как проверить?
Сначала проверяете существование файла в принципе (cl_gui_frontend_services=>file_exist). Потом создаете объект Excel, выполняете Workbooks.Open(ваш файл) и анализируете sy-subrc сразу после этого Open. Если не 0, то полагаем, что файл - не Excel и прерываемся.
P.S. Не до конца я был прав. Дело в том, что sy-subrc для Open будет равно 0 и при попытке открыть, например, текстовые файлы (CSV, TAB), которые Вы, скорее всего, не захотите считать "экселевскими". В этом случае надо продолжить анализ, прочитав свойство FileFormat объекта Workbook. Список возможных возвращаемых значений можно получить из файла справки или по ссылке: http://msdn.microsoft.com/en-us/library . ormat.aspx . Из общего списка останется отобрать те значения, которые будут являться "настоящими экселевскими" в контексте Вашей задачи.
P.P.S. Подумал, что мне тоже скоро может понадобиться такой функционал, набросал пример:
TYPE-POOLS: ole2.
DATA:
xlapp TYPE ole2_object,
wbks TYPE ole2_object,
wbk TYPE ole2_object,
ffmt TYPE i,
filename TYPE string VALUE 'C:\Книга1.xls',
is_excel.
IF sy-subrc <> 0.
FREE OBJECT: wbk, wbks, xlapp.
MESSAGE 'Excel не может открыть этот файл.' TYPE 'I'.
EXIT.
ELSE.
PERFORM check_file_format CHANGING is_excel.
IF is_excel IS INITIAL.
FREE OBJECT: wbk, wbks, xlapp.
MESSAGE 'Excel может открыть этот файл, но такой файл нам не нужен.' TYPE 'I'.
EXIT.
ELSE.
SET PROPERTY OF xlapp 'Visible' = 1.
MESSAGE 'ДА! ТО, ЧТО НАДО!' TYPE 'I'.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form check_file_format
*&---------------------------------------------------------------------*
FORM check_file_format CHANGING is_excel.
GET PROPERTY OF wbk 'FileFormat' = ffmt.
is_excel = 'X'.
CASE ffmt.
WHEN 43. " Excel 9795
WHEN 50. " Excel 12
WHEN 51. " Workbook default, Open XML Workbook
WHEN 52. " Open XML Workbook Macro Enabled
WHEN 53. " Open XML Template Macro Enabled
WHEN 54. " Open XML Template
WHEN 56. " Excel 8
WHEN OTHERS.
CLEAR is_excel.
ENDCASE.
ENDFORM. "check_file_format
Интересно, что необходимость в проверке по cl_gui_frontend_services=>file_exist вроде как и отпадает, поскольку Workbook.Open и так не пропустит несуществующий файл.
Ребята, а может подскажите, где есть вот это соответствие.
WHEN 43. " Excel 9795
WHEN 50. " Excel 12
WHEN 51. " Workbook default, Open XML Workbook
WHEN 52. " Open XML Workbook Macro Enabled
WHEN 53. " Open XML Template Macro Enabled
WHEN 54. " Open XML Template
WHEN 56. " Excel 8
Ребята, а может подскажите, где есть вот это соответствие.
WHEN 43. " Excel 9795
WHEN 50. " Excel 12
WHEN 51. " Workbook default, Open XML Workbook
WHEN 52. " Open XML Workbook Macro Enabled
WHEN 53. " Open XML Template Macro Enabled
WHEN 54. " Open XML Template
WHEN 56. " Excel 8
Часовой пояс: UTC + 3 часа
Кто сейчас на конференции
Сложность [применения, прим. пер] — признак технической незрелости. Простота использования — знак хорошо спроектированного продукта, будь то банкомат или ракета.
Правила форума
Вопросы по SAP Query и Quick View - сюда
Последние комментарии
GerAlex_Star 07.04.2022 в 13:51 на Программирование обновлений БД в ABAP Коллеги, для удобства опишу полученные мною результаты тестирования запусков программ через SUBMIT и SUBMIT AND RETURN, а также транзакций с помощью CALL TRANSACTION. На этих примерах можно увидеть, в каких именно случаях происходит неявный DB Commit, как меняется KEY SAP LUW и как ведут себя логиче.
GerAlex_Star 07.04.2022 в 12:04 на Программирование обновлений БД в ABAP Коллеги, при SUBMIT произойдёт неявный DB Commit. Проверил сейчас на примере. В первой программе делаем прямой INSERT, потом делаем SUBMIT 2-й программы (пустой например). Изменения в БД занесутся. Но вот если, например, в первой программе были и прямые изменения (тот же INSERT например) и вызван ФМ.
Для манипуляций с файлами на стороне сервера приложений был разработан файловый интерфейс ABAP.
Данный интерфейс реализован набором операторов ABAP и их атрибутов. Как будет видно в следующих статьях, интерфейс позволяет работать с файлами на абстрактном уровне, где ключевым объектом является набор данных (dataset).
Набор данных это нечто вроде файлового дескриптора, при программировании работы с файлами в ОС, на других языках. Так же, как и с дескрипторами, в ABAP можно одновременно работать с несколькими файлами (Читать из одного, а записывать в другой и т.п.), но открывать один и тот же файл без его закрытия в рамках одной программы невозможно (для юникодных программ, для не юникодных программ повторное открытие не приведет к ошибке, но будет проигнорировано).
Следует помнить, так как файловый интерфейс предназначен для работы с текущим сервером приложений, могут возникнуть трудности в системах с несколькими серверами приложений.
В данной статье рассмотрен вопрос хранения путей для директорий и файлов, вне зависимости от ОС и сервера приложений.
Читайте также: