SAP ERP 6.0 EHP7 - стандартные электронные документы — различия между версиями
(→BADI для команды Create XML Invoice) |
(→Описание команды Create XML Invoice) |
||
Строка 279: | Строка 279: | ||
######Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке. | ######Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке. | ||
######Запуск метода-обработчика Х. Например '''CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE'''. | ######Запуск метода-обработчика Х. Например '''CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE'''. | ||
− | #######'''CL_J3RF_DIGINV_PROCESSOR=>MATCH_INT_CUSTOMER''' (дебитор key-kunnr). Получение ид. | + | |
− | #######'''CL_J3RF_DIGINV_PROCESSOR=>GET_COMPANY_INFO''' (БЕ). Получение ид. | + | |
− | #######'''CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_AND_STORE'''. (настройки трансформации iv_ddx_setting, ид. | + | |
− | ########'''CL_J3RF_DIGINV_PROCESSOR=>GET_OPERATOR''' (БЕ). Получение данных оператора. | + | #######'''CL_J3RF_DIGINV_PROCESSOR=>MATCH_INT_CUSTOMER''' (дебитор key-kunnr). Получение ид. дебитора lv_customer_id по его коду. |
+ | #######'''CL_J3RF_DIGINV_PROCESSOR=>GET_COMPANY_INFO''' (БЕ). Получение ид. БЕ и адресных данных БЕ lv_company_info. | ||
+ | #######'''CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_AND_STORE'''. (настройки трансформации iv_ddx_setting, ид. БЕ lv_company_info-id, ид.дебитора lv_customer_id, код дебитора key-kunnr). Сохраняем xml в таблицу J_3RFDI_ARC. Изменяем данные с-ф lr_data, xml-данные cv_ddx_doc. Получаем количество созданных записей ev_record_id. | ||
+ | ########'''CL_J3RF_DIGINV_PROCESSOR=>GET_OPERATOR''' (БЕ). Получение ид. и данных оператора. Внутри запускается BADI '''J_3RF_DIGITAL_INVOICE_BADI->GET_OPERATOR'''. | ||
########'''CL_J3RF_DIGINV_PROCESSOR=>SET_PROGRAM_INFO'''. Получение версии xml. | ########'''CL_J3RF_DIGINV_PROCESSOR=>SET_PROGRAM_INFO'''. Получение версии xml. | ||
− | ########'''CL_J3RF_DIGINV_PROCESSOR=>SET_SIGNATURE'''. Получение адресных данных из доп данных БЕ. | + | ########'''CL_J3RF_DIGINV_PROCESSOR=>SET_SIGNATURE'''. Получение адресных данных из доп данных БЕ. Внутри запускается BADI '''J_3RF_DIGITAL_INVOICE_BADI->GET_COMPANY_INFO'''. |
########'''CL_J3RF_DIGINV_PROCESSOR=>GENERATE_FILENAME'''. Генерация имени файла xml. | ########'''CL_J3RF_DIGINV_PROCESSOR=>GENERATE_FILENAME'''. Генерация имени файла xml. | ||
########'''CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_TO_XML''' (данные с-ф ir_data, настройки ls_setting). Запуск трансформации xml. Изменяет cv_ddx_doc - структуру с xml-данными. | ########'''CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_TO_XML''' (данные с-ф ir_data, настройки ls_setting). Запуск трансформации xml. Изменяет cv_ddx_doc - структуру с xml-данными. |
Версия 09:08, 16 сентября 2015
Содержание
- 1 Общие сведения
- 2 Журнал счетов-фактур
- 3 Журнал накладных и актов
- 4 Журнал универсальных передаточных документов (УПД)
- 5 Структура таблиц журнала счетов-фактур
- 6 Структура таблиц журнала накладных и актов
Общие сведения
Модуль предназначен для создания, отправки и получения электронных счетов-фактур, актов, накладных и универсальных передаточных документов в формате xml ФНС. Модуль является составной частью пакета локализации для России.
Транзакции:
- J3RFREGINV - Журнал электронных счетов-фактур.
- J3RFREGTORG - Журнал электронных накладных и актов.
Журнал счетов-фактур
Общие сведения
Журнал электронных счетов-фактур – транзакция, которая отображает список входящих и исходящих счетов-фактур и их электронную версию в системе SAP.
- Меню: Accounting>Finantial Accounting>Accounts Receivable>Reporting>Russia>Invoice Journal.
- Техническое имя меню J3RF-FDMN-REP-RU.
- Техническое имя транзакции J3RFREGINV.
- Техническое имя программы J_3RF_REGINV.
Журнал использует таблицы:
- J_3RF_REGINV_IN – входящие счета-фактуры
- J_3RF_REGINV_OUT – исходящие счета-фактуры
- J_3RF_REGINV_LOG – история статусов счетов-фактур
- J_3RFDI_ARC – архив электронных счетов с XML-данными
Программа J_3RF_REGINV состоит из частей:
- Описание переменных (DATA, TYPES)
- Экран выбора (SELECTION-SCREEN)
- Обработка событий на экране выбора (AT SELECTION-SCREEN)
- Набор данных (START-OF-SELECTION)
- Вывод данных (END-OF-SELECTION)
- Обработка событий на экране вывода (USER-COMMAND)
При запуске программы на экране выбора необходимо выбрать режим:
- показать исходящие счета
- показать входящие счета
- вывести выходную форму журнала
- добавить входящие счета
Список доступных команд на экране вывода (USER-COMMAND):
- Общие
- REFR - refresh list - обновить список
- INSR - insert entry - вставить запись
- COPY - copy entry - скопировать запись
- &EDI - edit entry - редактировать запись
- DELE - delete entry - удалить запись
- DISP - display entry - показать запись
- HIST - Display History of Status Changes - просмотреть историю статусов
- VLOG - View Application Log - просмотреть историю операций
- Для входящих счетов-фактур
- IADD - Register incoming invoices - зарегистрировать входящие счтеа
- EREQ - Create XML Request for Clarification - создать xml запроса на уточнение
- SGNR - Sign/Encrypt XML Request for Clarification - подписать запрос на уточнение
- SNDR - Send XML Request for Clarification - отправить запрос на уточнение
- DREQ - Display Clarification Request - показать запрос на уточнение
- HNDL - Set Status Request for Clarification Handled - установить статус "запрос на уточнение обработан"
- Для исходящих счетов-фактур
- &RVS - Print Revision for Entry - печать исправленного
- EINV - Create XML Invoice - создать xml счета-фактуры
- SGNI - Sign/Encrypt XML Invoice - подписать счет-фактуру
- SNDI - Send XML Invoice - отправить счет-фактуру
- DXML - Display XML Invoice - показать xml счета-фактуры
- DPDF - Display XML in PDF - показать xml в dpf
- HNDL - Set Status Request for Clarification Handled - установить статус "запрос на уточнение обработан"
Настройки журнала
Связь с Финансами и Сбытом
Настройки расположены в меню:
SPRO-Финансы-Бухгалтерия дебиторов и кредиторов-Бизнес-операции-Параметры настройки для страны-Россия-Счета-фактуры-Журнал счетов
- Активировать бизнес-функции FIN_LOC_CI_33 ( FIN_LOC_CI_35 ???).
- Меню: SPRO-Активировать бизнес-функции.
- Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
- Появится пункт меню: SPRO-Финансы-БухгДебКред-Бизнес операции-Параметры настройки для стран-Россия-Счета-фактуры-Электронное выставление счета.
- ???Поставить транспорт из ноты 1691843 - Transport Delivery: Invoice Journal (Russia).
- ???Настроить журнал регистрации счетов-фактур согласно ноте 1691844.
- Прописать в FIBF продукт по ноте 1691844. J3RFREGI=J3RF. Меню-Параметры настройки-Продукты-Партнеры.
- Присвоение диапазонов номеров вход. документов.
- Ввести БЕ и нажать кнопку Ведение интервалов.
- Нажать кнопку Новый диапазон.
- Ввести номер диапазона 01, год, начальный и конечный номера.
- Сохранить.
- Определение кодов видов операций.
- Нажать кнопку Новые записи.
- Ввести код например 24, описание, например "Регистрация счетов-фактур в книге покупок".
- Сохранить.
- Присвоение кодов видов операций кодам налога.
- Нажать кнопку Новые записи.
- Ввести БЕ, вид документа FI, код НДС, код вида операции.
- Сохранить.
- Ведение ид.текстовых объектов для входящих счетов
- Нажать кнопку Новые записи.
- Ввести текстовый объект BELEG, ид.внешнего номера, ид.внешней даты.
- Сохранить.
- Если текстовые ид. не заданы или соответствующие текстовые поля в документе не заполнены, номер внешнего документа берется из поля Номер ссылочного документа (BKPF-XBLNR), а дата внешнего документа — из поля Дата документа (BKPF-BLDAT).
- Настройка автоматической регистрации входящих счетов.
- Нажать кнопку Новые записи.
- Ввести БЕ, вид документа FI, галочки оставить пустыми.
- Сохранить.
- Настройка автоматической регистрации исходящих счетов из FI.
- Нажать кнопку Новые записи.
- Ввести БЕ, идентификатор корреспонденции например ZSA19, Установить галочку Предпросмотр, не ставить галочку Создать как зарегистрированный, не ставить галочку Выбор даты отправки (help.sap.com).
- Сохранить.
- Настройка автоматической обработки сторнирований.
- Нажать кнопку Новые записи.
- Ввести БЕ, причину сторно, режим удаления.
- Сохранить.
Электронное выставление счета
- Создать основную запись поставщика через транзакцию FK01. Например Оператор ЭДО 6 .
- Присвоить операторам электронные ид.
- Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
- Нажать Новые записи.
- Ввести БЕ, код поставщика-оператора ЭДО например 6, ид. оператора например OP6.
- Сохранить.
- Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_CCOP.
- Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета-Ведение электронных ид.
- Нажать Новые записи.
- Ввести БЕ, оператор БЕ например 6, электронный ид. БЕ например ZUCH.
- Сохранить.
- Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_PCCODE (устар).
- Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
- транз SE11.
- Войти на редактирование в ракурс J_3RFV_DI_PCCODE. Нажать Новые записи.
- Ввести БЕ, электронный ид. БЕ например ZUCH.
- Сохранить.
- Присвоить поставщикам электронные ид.
- Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
- Нажать Новые записи.
- Ввести БЕ, код кредитора например 1, оператора кредитора OP6, ид. кредитора например KRED1.
- Сохранить.
- Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUSTN.
- Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
- Нажать Новые записи.
- Ввести БЕ, код дебитора например 100000, оператор клиента например OP6, электронный ид. клиента например DEBI100000.
- Сохранить.
- Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUST (устар).
- Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
- транз.SE11.
- Войти в ракурс J_3RFV_DI_PCUST на редактирование.
- Нажать Новые записи.
- Ввести БЕ, код дебитора например 100000, электронный ид. клиента например ZUCH100000.
- Сохранить.
- Ведение сроков.
- Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
- Ввести вид с-ф, Статус документа эл.счета, срок, тип срока.
- Сохранить.
- Ведение правил обработки и удаления.
- Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
- Ввести БЕ, статус документа эл. счета, галочки Не обрабатывать, Не удалять.
- Сохранить.
- Мэппинг преобразований.
- Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
- Настроены виды документов, направление, версия xml, xml-преобразование, класс преобр, метод преобр, имя типа.
- Активировать xml-преобразования.
- Транзакция STRANS.
- Войти в преобразование.
- Нажать Проверить и Активировать.
- Если выдает ошибку и ссылку на другое преобразование, то проверить и активировать другое преобразование.
Настройки BADI
Настройки расположены в меню:
- SPRO-Финансы-Бухгалтерия дебиторов и кредиторов-Бизнес-операции-Параметры настройки для страны-Россия-Счета-фактуры-BADI
- SPRO-Сбыт-Фактурирование-Фактуры-Национальные особенности-Россия-BADI
Содержат следующие пункты:
- BAdI: авансовый отчет (J_3R_AO1_BADI_INTERFACE)
- BAdI: изменение адреса (J_3RF_CH_ADDR)
- BAdI: обновление данных печати для налогового счета (J_3R_INV_BADI)
Ввод исходящих счетов в журнал
Ручной ввод
Ручной ввод добавляет одну запись в журнал. Номер, год, БЕ, внешний номер, дату, сумму необходимо указывать вручную, что при ошибках может вызвать несоответствие введенного документа документу FI. Помимо ручного ввода в журнале ввести исх. счета вручную можно при помощи транзакции V_J_3RFREGINVOUT - Регистрация исх.счетов в журнале.
- В журнале на экране выбора необходимо нажать радиокнопку "Просмотреть список исходящих счетов".
- Ограничить выбор, ввести год, номер, и т.д.
- Запустить отчет.
- Выводится список исходящих счетов. Нажать кнопку Новый ввод (Создать запись, команда INSR).
- Выводится экран ввода документа. Ввести данные БЕ, номер исходного счета-фактуры (номер из FI), год исходного счета-фактуры (год из FI). Номер исходного счета-фактуры можно найти через средство поиска из FI. Далее вводим дату исходного счета-фактуры, внешний номер, дату поступления, формат обмена (печать, электронный), вид операции, код дебитора, валюту, сумму брутто.
- Система проверяет, что записи с таким ключом (БЕ, исходный номер, исходный год) еще не создано.
- Сохранить.
- Экран ввода документа закроется, в списке вывода появится новая строка.
- В таблицу J_3RF_REGINV_OUT добавляются новые записи, которые содержит внутр. номер, номер FI, внешний номер, БЕ, год, код дебитора и др. данные.
BADI:
Автоматический ввод из Финансов
Исходящие счета-фактуры закачиваются автоматически из модуля Финансы (FI) при помощи программы печати документа.
- В FI должна быть настроена корреспонденция SAPR3, программе печати J_3RF_INV_A присвоен Ид. формуляра pdf EI . Это настраивается в меню: SPRO-Финансы-Параметры настройки Финансов-Корреспонденция.
- Запустить программу печати J_3RF_INV_A (FI). Указать ИдФормуляра EI, код корреспонденции SAPR3, БЕ, год, номер документа. При этом печати не происходит, только закачка данных в журнал.
- Документ должен появиться в журнале с-ф.
- BADI J_3R_INV_BADI метод UPDATE_DATA - изм данных в прогр печати. Входные параметры: индикатор модуля FI, id текстов, флаг новый с-ф, статус документа. Изменяемые параметры: флаг изменяемый/не изменяемый, заголовок с-ф, доп. заголовок УТД, тексты док, позиции с-ф.
- BADI J_3RF_CH_ADDR метод SHIP_TO_PARTY_ADDR - получение адреса ship-to-party. Входные параметры: балансовая единица,номер с-ф, год с-ф, позиция с-ф. Изменяемые параметры: addr_knwe - структура с адресными данными.
Автоматический ввод из Сбыта
Исходящие счета-фактуры закачиваются автоматически из модуля Сбыт (SD) при печати документа.
- Создать с-ф из SD.
- Необходимо использовать программу печати J_3RV_INV_A (SD).
- Документ должен появиться в журнале с-ф.
Ввод входящих счетов в журнал
Ручной ввод
Ручной ввод добавляет одну запись в журнал. Номер, год, БЕ, внешний номер, дату, сумму необходимо указывать вручную, что при ошибках может вызвать несоответствие введенного документа документу FI. Помимо ручного ввода в журнале ввести вх. счета вручную можно при помощи транзакции V_J_3RFREGINVIN - Регистрация вх.счетов в журнале.
- В журнале на экране выбора необходимо нажать радиокнопку "Просмотреть список входящих счетов".
- Ограничить выбор, ввести год, номер, и т.д.
- Запустить отчет.
- Выводится список входящих счетов. Нажать кнопку Новый ввод (Создать запись, команда INSR).
- Выводится экран ввода документа. Ввести данные БЕ, номер исходного счета-фактуры (номер из FI), год исходного счета-фактуры (год из FI). Номер исходного счета-фактуры можно найти через средство поиска из FI. Далее вводим дату исходного счета-фактуры, внешний номер, дату поступления, формат обмена (печать, электронный), вид операции, код кредитора, валюту, сумму брутто.
- Система проверяет, что записи с таким ключом (БЕ, исходный номер, исходный год) еще не создано.
- Сохранить.
- Экран ввода документа закроется, в списке вывода появится новая строка.
- В таблицу J_3RF_REGINV_IN добавляется новая запись, которая содержит внутр. номер, номер FI, внешний номер, БЕ, год, код кредитора и др. данные.
Автоматический ввод из Финансов
Входящие счета-фактуры могут закачиваться автоматически из модуля Финансы (FI). Те счета, которые уже есть в журнале, не добавляются.
- В журнале на экране выбора необходимо нажать радиокнопку "Добавить отсутств. входящие счета".
- Запустить отчет.
- На вкладке "Критерии выбора отсутствующих счетов" необходимо задать параметры выбора из таблиц FI. Например, год 2015, вид документа KR вх.счет.
- Выводится список тех счетов из Финансов, которых нет в журнале. Сравнение происходит по БЕ, году и номеру FI документа, например ZUCH 2015 1900000001.
- Выделить нужные строки.
- Для сохранения выделенных записей в журнале необходимо нажать кнопку Сохранить.
- В таблицу J_3RF_REGINV_IN добавляются новые записи, которые содержит внутр. номер, номер FI, внешний номер, БЕ, год, код кредитора и др. данные.
Привязка файлов xml к входящим с-ф в системе
Для того чтобы прикрепить файлы xml к документам их необходимо загрузить в систему.
- Активировать бизнес-функции FIN_LOC_CI_33 ( FIN_LOC_CI_35 ???).
- Меню: SPRO-Активировать бизнес-функции.
- Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
- Запустить программу J_3RF_DI_PROC_IN, которая загружает XML файлы из папки на сервере в SAP.
- Просмотреть загруженные электронные с-ф в журнале.
- Осуществить привязку XML-документа к счету-фактуре, зарегистрированному в системе, через программу J3RFINVOFFLINK.
Команда Create XML Invoice
Описание команды Create XML Invoice
Описание Создает xml для выделенных на экране исходящих счетов-фактур, используя номера документов.
Аргументы Выделенные строки в списке счетов-фактур с содержанием номеров и статусов.
Возвращаемое значение Список счетов-фактур с новыми статусами или сообщение об ошибке.
Результат Заголовок, данные в формате string, xml-данные в формате hex, эл.подпись в формате hex добавлаются в таблицу J_3RFDI_ARC. Изменяется статус документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_IN, J_3RF_REGINV_LOG.
Алгоритм
- Формируем список фактур по котором надо сформировать xml документы, среди отмеченных записей списка берем фактуры удовлетворяющие условиям (статус: пусто/создан/подписано; типом обмена: только xml обмен; индикатор "заархивировано": пусто; индикатор "удалено": пусто). Отобранные фактуры помещаем во врем. таблицу t_out_list[]
- SET_XML_TIMESTAMP. Получаем системную дату и время.
- CL_J3RF_DI_REGINV->CREATE_XML_INVOICES (список фактур - врем. таблица t_out_list[]). Получает данные фактуры. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG. Возвращаемое значение: код ошибки.
- Проверяем есть ли в системе BADI J_3R_REGINV_DIG_BADI (должна быть иначе ошибка)
- Перебираем список фактур и в зависимости от типа фактуры (обычная / корректировочная) запускаем разные методы получения данных из БД:
- Для обычной фактуры
- CL_J3RF_DI_REGINV->GET_INV_DATA - получаем данные обычной с-ф. Входной параметр: врем. структура ls_out запись из таблицы J_3RF_REGINV_OUT. Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
- Проверяем откуда пришел документ - из финансов или из сбыта. В зависимости от этого запускаем различные алгоритмы печати.
- Для сбыта анализируем схему печати, согласно техники условий для вида выходного документа RDRU и приложения V3 из таблицы настроек TNAPR получаем программу J_3RV_INV_A и подпрограмму ENTRY. Передаем в нее данные с-ф через id параметр get_sd_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_sd_inv в структуры hd_inv, it_txt, it_inv.
- Для финансов читаем настройки в таблице T048B - присвоение программы печати для корреспонденции. Для корреспонденции SAPR3 получаем программу J_3RF_INV_A и вариант SAPR3. Передаем в нее данные с-ф через id параметр get_fi_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_fi_inv в структуры hd_inv, it_txt, it_inv.
- Проверяем откуда пришел документ - из финансов или из сбыта. В зависимости от этого запускаем различные алгоритмы печати.
- CL_J3RF_DI_REGINV->PREPARE_XML_INVOICE (ls_hd_inv, lt_txt, lt_inv). По полученным данным собираем структуру специального формата для конвертации в xml. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml.
- CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION - получаем данные подписанта. Аргументы: ls_out - врем. строка цикла по врем.таблице it_out_entries[], тип документа счета, ключ с номером счета. Возвращаемые значения: ls_xml_inv-signatory - данные подписанта.
- BADI J_3R_REGINV_DIG_BADI->UPDATE_INV_XML (ls_hd_inv, lt_txt, lt_inv, ls_xml_inv). Можем изменить подготовленную структуру с данными для создания xml ls_xml_inv. См. пункт BADI для команды Create XML Invoice.
- Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table
- CL_J3RF_DI_REGINV->GET_INV_DATA - получаем данные обычной с-ф. Входной параметр: врем. структура ls_out запись из таблицы J_3RF_REGINV_OUT. Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
- Для корректировочной фактуры - аналогично обычной фактуре.
- CL_J3RF_DI_REGINV->GET_CORRINV_DATA. В сбыте для RUCR V3 получаем подпрограмму J_3RV_CORRINV_A-ENTRY. В финансах для корреспонденции ZCORR находим подпрограмму J_3RF_CORRINV_A и вариант FICORR.
- CL_J3RF_DI_REGINV->PREPARE_XML_CORRINV.
- CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION.
- BADI J_3R_REGINV_DIG_BADI->UPDATE_CORRINV_XML. См. пункт BADI для команды Create XML Invoice.
- Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table.
- Для обычной фактуры
- CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING (табл. с-ф lt_inv_table[], индикатор j3rdx_out_create_only). Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG. Возвращает: код ошибки.
- Перебираем список, и в зависимости от операции (создать/созд и подписать/подписать) запускаем разные модули обработки.
- Для создания
- PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяет xml данные ls_ddx_doc. Возвращает lv_record_id - количество сохраненных записей. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG.
- FIND_SETTING_FOR_DOC. Получаем настройки из таблицы xml-трансформаций J_3RF_DI_TRANF в структуру ls_setting. Например, для вида документа электронный с-ф, исходящего направления и последней версии 5.1 получаем xml-трансформацию J_3RF_SFAKT, метод-обработчик Х - CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE и тип данных для подготовки xml J_3RF_DIXML_SFAKT. Если настройки не найдены выводим ошибку.
- CL_J3RF_DIGINV_PROCESSOR->TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск предварительной трансформации xml (не заходит в этот метод из-за флага предв. трансформации). Изменяет cv_ddx_doc - структуру с xml-данными.
- Передача параметров для запуска метода-обработчика Х, полученного из настроек. Входные параметры: данные с-ф ir_data, настройки xml-трансформации и метода-обработчика iv_ddx_setting. Изменяемые параметры: xml данные с-ф cv_ddx_doc. Выходные параметры: число сохраненных записей ev_record_id.
- Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке.
- Запуск метода-обработчика Х. Например CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE.
- PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяет xml данные ls_ddx_doc. Возвращает lv_record_id - количество сохраненных записей. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG.
- Для создания
- Перебираем список, и в зависимости от операции (создать/созд и подписать/подписать) запускаем разные модули обработки.
- CL_J3RF_DIGINV_PROCESSOR=>MATCH_INT_CUSTOMER (дебитор key-kunnr). Получение ид. дебитора lv_customer_id по его коду.
- CL_J3RF_DIGINV_PROCESSOR=>GET_COMPANY_INFO (БЕ). Получение ид. БЕ и адресных данных БЕ lv_company_info.
- CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_AND_STORE. (настройки трансформации iv_ddx_setting, ид. БЕ lv_company_info-id, ид.дебитора lv_customer_id, код дебитора key-kunnr). Сохраняем xml в таблицу J_3RFDI_ARC. Изменяем данные с-ф lr_data, xml-данные cv_ddx_doc. Получаем количество созданных записей ev_record_id.
- CL_J3RF_DIGINV_PROCESSOR=>GET_OPERATOR (БЕ). Получение ид. и данных оператора. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_OPERATOR.
- CL_J3RF_DIGINV_PROCESSOR=>SET_PROGRAM_INFO. Получение версии xml.
- CL_J3RF_DIGINV_PROCESSOR=>SET_SIGNATURE. Получение адресных данных из доп данных БЕ. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_COMPANY_INFO.
- CL_J3RF_DIGINV_PROCESSOR=>GENERATE_FILENAME. Генерация имени файла xml.
- CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск трансформации xml. Изменяет cv_ddx_doc - структуру с xml-данными.
- CL_J3RF_DIGINV_PROCESSOR=>STORE_DOCUMENT (данные с-ф ir_data, данные дебитора iv_partner, ид. получателя iv_receiver_id, ид. отправителя iv_sender_id, статусы док, метка времени lv_doc_timestamp). Сохранение xml данных в таблицу. Изменяем структуру xml-данных cv_ddx_doc. Получаем количество сохраненных строк ev_record_id.
- Для создания и подписи
- PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяем xml данные ls_ddx_doc. Сохраняем xml в БД при помощи модуля, получаемого из настроек??? . Возвращаем lv_record_id - количество сохраненных записей.
- BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
- UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
- Для подписи
- BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
- UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
- Заполнение таблицы статусов J_3RF_REGINV_LOG. Добавляется или обновляется статус электронного с-ф.
- Заполнение кода ошибки как выходного параметра .
- SHOW_XML_RESULT(количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices). Выводит сообщение о результатах работы: "Х строк выделено, Y строк обработано, Z строк с ошибками".
- OUT_INV_SELECT(out_list[]-список счетов-фактур). Обновление список счетов-фактур на экране вывода .
BADI для команды Create XML Invoice
J_3R_REGINV_DIG_BADI
- UPDATE_INV_XML - изменение структуры с данными для создания xml с-ф. Входные параметры: структура заголовка с-ф ls_hd_inv, таблица текстов с-ф lt_txt, таблица позиций с-ф lt_inv. Изменяемые параметры: структура с данными для создания xml ls_xml_inv.
- UPDATE_CORRINV_XML - изменение структуры с данными для создания xml корректировочного с-ф. Входные параметры: структура заголовка корр.с-ф ls_hd_corrinv, таблица текстов корр.с-ф lt_txt, таблица позиций корр.с-ф lt_corrinv. Изменяемые параметры: структура с данными для создания xml ls_xml_corrinv.
J_3RF_DIGITAL_INVOICE_BADI
- SIGN - генерация xml подписи. Используется в Журнале с-ф и в программе Архив с-ф. Изменяемые параметры: структура с данными xml для электронного с-ф ls_ddx_doc. Метод уже реализован в системе и подготавливает данные. Однако метод генерации xml подписи GET_SIGNATURE пустой.
- Алгоритм.
- GET_CAPABILITIES - проверка возможности подписания, проверка настроек. Метод пустой.
- Изменение статуса электронного с-ф на Подписано.
- Получение времени подписания и имени пользователя.
- GET_SIGNER_INFO - получение данных подписавшего.
- SET_SIGNER_IN_XML - передача данных подписавшего в поле с данными для генерации xml.
- GET_SIGNATURE - Генерация xml-подписи и передача данных в структуру с данными xml ls_ddx_doc. Метод пустой.
- GET_COMPANY_INFO. Получение адресных данных из доп данных БЕ.
J_3R_REGINV_BADI
- UPDATE_PRN - изменение данных при печати журнала. Входные параметры: таблица исходящих с-ф, таблица входящих с-ф. Изменяемые параметры: строка заголовка печатной формы, таблица исходящих с-ф, таблица входящих с-ф.
Журнал накладных и актов
Общие сведения
Журнал электронных накладных и актов – транзакция, которая отображает список входящих и исходящих накладных ТОРГ12 и актов и их электронную версию в системе SAP.
- Техническое имя транзакции J3RFREGTORG.
- Техническое имя программы J_3RF_REGTORG.
Журнал использует таблицы:
- J_3RF_RGTORG_IN - входящие накладные
- J_3RF_RGTORG_OUT - исходящие накладные
- J_3RF_RGTORG_IFS - индекс документов
Программа J_3RF_REGTORG состоит из частей:
- Описание переменных (DATA, TYPES)
- Экран выбора (SELECTION-SCREEN)
- Обработка событий на экране выбора (AT SELECTION-SCREEN)
- Набор данных (START-OF-SELECTION)
- Вывод данных (END-OF-SELECTION)
- Обработка событий на экране вывода (USER-COMMAND)
При запуске программы на экране выбора необходимо выбрать режим:
- показать исходящие документы
- показать входящие документы
Список доступных команд на экране вывода (USER-COMMAND):
- Общие
- DXML - Display XML-File - показать xml
- IAKT_PDF - Print Seller Title in PDF form - напечатать данные продавца в pdf
- ZAKT_PDF - Print Buyer Title in PDF form - напечатать данные покупателя в pdf
- DCLFR - Display Clarification Request - показать запрос на уточнение
- TORG2_PROC - Set Status to Processed - установить статус "обработан"
- HIST - Display Status History - просмотреть историю статусов
- VLOG - View Application Log - просмотреть историю операций
- Исходящие документы
- ETORG - Create XML - создать xml
- SGNI - Sign - подписать документ
- SNDI - Send - отправить документ
Как входящие документы попадают в журнал
Вариант 1 (....)
Описание
Алгоритм
Список доступных команд
Команда 1
Описание
Алгоритм
BADI
Журнал универсальных передаточных документов (УПД)
Общие сведения
Структура таблиц журнала счетов-фактур
J_3RF_REGINV_IN – входящие счета-фактуры
J_3RF_REGINV_OUT – исходящие счета-фактуры
J_3RF_REGINV_LOG – история статусов счетов-фактур
J_3RFDI_ARC – архив электронных счетов с XML-данными
Структура таблиц журнала накладных и актов
J_3RF_RGTORG_IN - входящие накладные
J_3RF_RGTORG_OUT - исходящие накладные
J_3RF_RGTORG_IFS - индекс документов
+структура каждой таблицы