SAP ERP 6.0 EHP7 - стандартные электронные документы

Материал из razgovorov.ru
Версия от 14:53, 16 сентября 2015; Злобин Юрий (обсуждение | вклад) (Команда Send XML Invoice)
Перейти к: навигация, поиск

Содержание

Общие сведения

Модуль предназначен для создания, отправки и получения электронных счетов-фактур, актов, накладных и универсальных передаточных документов в формате 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-Финансы-Бухгалтерия дебиторов и кредиторов-Бизнес-операции-Параметры настройки для страны-Россия-Счета-фактуры-Журнал счетов


  1. Активировать бизнес-функции FIN_LOC_CI_33 ( FIN_LOC_CI_35 ???).
    1. Меню: SPRO-Активировать бизнес-функции.
    2. Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
    3. Появится пункт меню: SPRO-Финансы-БухгДебКред-Бизнес операции-Параметры настройки для стран-Россия-Счета-фактуры-Электронное выставление счета.
  2. ???Поставить транспорт из ноты 1691843 - Transport Delivery: Invoice Journal (Russia).
  3. ???Настроить журнал регистрации счетов-фактур согласно ноте 1691844.
  4. Прописать в FIBF продукт по ноте 1691844. J3RFREGI=J3RF. Меню-Параметры настройки-Продукты-Партнеры.
  5. Присвоение диапазонов номеров вход. документов.
    1. Ввести БЕ и нажать кнопку Ведение интервалов.
    2. Нажать кнопку Новый диапазон.
    3. Ввести номер диапазона 01, год, начальный и конечный номера.
    4. Сохранить.
  6. Определение кодов видов операций.
    1. Нажать кнопку Новые записи.
    2. Ввести код например 24, описание, например "Регистрация счетов-фактур в книге покупок".
    3. Сохранить.
  7. Присвоение кодов видов операций кодам налога.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, вид документа FI, код НДС, код вида операции.
    3. Сохранить.
  8. Ведение ид.текстовых объектов для входящих счетов
    1. Нажать кнопку Новые записи.
    2. Ввести текстовый объект BELEG, ид.внешнего номера, ид.внешней даты.
    3. Сохранить.
    4. Если текстовые ид. не заданы или соответствующие текстовые поля в документе не заполнены, номер внешнего документа берется из поля Номер ссылочного документа (BKPF-XBLNR), а дата внешнего документа — из поля Дата документа (BKPF-BLDAT).
  9. Настройка автоматической регистрации входящих счетов.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, вид документа FI, галочки оставить пустыми.
    3. Сохранить.
  10. Настройка автоматической регистрации исходящих счетов из FI.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, идентификатор корреспонденции например ZSA19, Установить галочку Предпросмотр, не ставить галочку Создать как зарегистрированный, не ставить галочку Выбор даты отправки (help.sap.com).
    3. Сохранить.
  11. Настройка автоматической обработки сторнирований.
    1. Нажать кнопку Новые записи.
    2. Ввести БЕ, причину сторно, режим удаления.
    3. Сохранить.


Электронное выставление счета

  1. Создать основную запись поставщика через транзакцию FK01. Например Оператор ЭДО 6 .
  2. Присвоить операторам электронные ид.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код поставщика-оператора ЭДО например 6, ид. оператора например OP6.
    4. Сохранить.
  1. Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_CCOP.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета-Ведение электронных ид.
    2. Нажать Новые записи.
    3. Ввести БЕ, оператор БЕ например 6, электронный ид. БЕ например ZUCH.
    4. Сохранить.
  2. Присвоить электронный ид. балансовой единице через ракурс J_3RFV_DI_PCCODE (устар).
    1. Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
    2. транз SE11.
    3. Войти на редактирование в ракурс J_3RFV_DI_PCCODE. Нажать Новые записи.
    4. Ввести БЕ, электронный ид. БЕ например ZUCH.
    5. Сохранить.
  3. Присвоить поставщикам электронные ид.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код кредитора например 1, оператора кредитора OP6, ид. кредитора например KRED1.
    4. Сохранить.
  4. Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUSTN.
    1. Меню: S000-Финансы-Дебиторы-Система отчетности-Россия-Журнал счетов-Электронное выставление счета.
    2. Нажать Новые записи.
    3. Ввести БЕ, код дебитора например 100000, оператор клиента например OP6, электронный ид. клиента например DEBI100000.
    4. Сохранить.
  5. Присвоить клиентам электронные ид. через ракурс J_3RFV_DI_PCUST (устар).
    1. Это делается только потому что программа J_3RF_REGINV ищет настройки в устар. ракурсах.
    2. транз.SE11.
    3. Войти в ракурс J_3RFV_DI_PCUST на редактирование.
    4. Нажать Новые записи.
    5. Ввести БЕ, код дебитора например 100000, электронный ид. клиента например ZUCH100000.
    6. Сохранить.
  6. Ведение сроков.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Ввести вид с-ф, Статус документа эл.счета, срок, тип срока.
    3. Сохранить.
  7. Ведение правил обработки и удаления.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Ввести БЕ, статус документа эл. счета, галочки Не обрабатывать, Не удалять.
    3. Сохранить.
  8. Мэппинг преобразований.
    1. Меню: SPRO-Финансы-БухгДебиторовКредиторов-Бизнес операции-Параметры для стран-Россия-Счета-фактуры-Электронное выставление счета.
    2. Настроены виды документов, направление, версия xml, xml-преобразование, класс преобр, метод преобр, имя типа.
  9. Активировать xml-преобразования.
    1. Транзакция STRANS.
    2. Войти в преобразование.
    3. Нажать Проверить.
    4. Если выдает ошибку и ссылку на другое преобразование, то проверить, сгенерировать и активировать другое преобразование.
    5. В меню нажать Сгенерировать, затем Активировать.

Настройки 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 к документам их необходимо загрузить в систему.

  1. Активировать бизнес-функции FIN_LOC_CI_33 ( FIN_LOC_CI_35 ???).
    1. Меню: SPRO-Активировать бизнес-функции.
    2. Поставить галочку напротив FIN_LOC_CI_33, нажать кнопку Активировать.
  2. Запустить программу J_3RF_DI_PROC_IN, которая загружает XML файлы из папки на сервере в SAP.
  3. Просмотреть загруженные электронные с-ф в журнале.
  4. Осуществить привязку 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.

Алгоритм

  1. Формируем список фактур по котором надо сформировать xml документы, среди отмеченных записей списка берем фактуры удовлетворяющие условиям (статус: пусто/создан/подписано; типом обмена: только xml обмен; индикатор "заархивировано": пусто; индикатор "удалено": пусто). Отобранные фактуры помещаем во врем. таблицу t_out_list[]
  2. SET_XML_TIMESTAMP. Получаем системную дату и время.
  3. CL_J3RF_DI_REGINV->CREATE_XML_INVOICES (список фактур - врем. таблица t_out_list[]). Получает данные фактуры. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG. Возвращаемое значение: код ошибки.
    1. Проверяем есть ли в системе BADI J_3R_REGINV_DIG_BADI (должна быть иначе ошибка)
    2. Перебираем список фактур и в зависимости от типа фактуры (обычная / корректировочная) запускаем разные методы получения данных из БД:
      1. Для обычной фактуры
        1. CL_J3RF_DI_REGINV->GET_INV_DATA - получаем данные обычной с-ф. Входной параметр: врем. структура ls_out запись из таблицы J_3RF_REGINV_OUT. Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
          1. Проверяем откуда пришел документ - из финансов или из сбыта. В зависимости от этого запускаем различные алгоритмы печати.
            1. Для сбыта анализируем схему печати, согласно техники условий для вида выходного документа RDRU и приложения V3 из таблицы настроек TNAPR получаем программу J_3RV_INV_A и подпрограмму ENTRY. Передаем в нее данные с-ф через id параметр get_sd_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_sd_inv в структуры hd_inv, it_txt, it_inv.
            2. Для финансов читаем настройки в таблице T048B - присвоение программы печати для корреспонденции. Для корреспонденции SAPR3 получаем программу J_3RF_INV_A и вариант SAPR3. Передаем в нее данные с-ф через id параметр get_fi_inv. Запускаем подпрограмму печати, печати при этом не происходит, только получение данных. Получаем данные с-ф через id параметр get_fi_inv в структуры hd_inv, it_txt, it_inv.
        2. CL_J3RF_DI_REGINV->PREPARE_XML_INVOICE (ls_hd_inv, lt_txt, lt_inv). По полученным данным собираем структуру специального формата для конвертации в xml. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml.
        3. CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION - получаем данные подписанта. Аргументы: ls_out - врем. строка цикла по врем.таблице it_out_entries[], тип документа счета, ключ с номером счета. Возвращаемые значения: ls_xml_inv-signatory - данные подписанта.
        4. 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.
        5. Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table
      2. Для корректировочной фактуры - аналогично обычной фактуре.
        1. CL_J3RF_DI_REGINV->GET_CORRINV_DATA. В сбыте для RUCR V3 получаем подпрограмму J_3RV_CORRINV_A-ENTRY. В финансах для корреспонденции ZCORR находим подпрограмму J_3RF_CORRINV_A и вариант FICORR.
        2. CL_J3RF_DI_REGINV->PREPARE_XML_CORRINV.
        3. CL_J3RF_DIGINV_PROCESSOR->SET_STRUCT_DIVISION.
        4. BADI J_3R_REGINV_DIG_BADI->UPDATE_CORRINV_XML. См. пункт BADI для команды Create XML Invoice.
        5. Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv и lt_inv_table.
    3. CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING (табл. с-ф lt_inv_table[], индикатор j3rdx_out_create_only). Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG. Возвращает: код ошибки.
      1. Перебираем список, и в зависимости от операции (создать/созд и подписать/подписать) запускаем разные модули обработки.
        1. Для создания
          1. PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяет xml данные ls_ddx_doc. Возвращает lv_record_id - номер записи. Формирует xml документ, помещает его в таблицу J_3RFDI_ARC. Добавляет записи в таблицу статусов J_3RF_REGINV_LOG.
            1. 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. Если настройки не найдены выводим ошибку.
            2. CL_J3RF_DIGINV_PROCESSOR->TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск предварительной трансформации xml (не заходит в этот метод из-за флага предв. трансформации). Изменяет cv_ddx_doc - структуру с xml-данными.
            3. Передача параметров для запуска метода-обработчика Х, полученного из настроек. Входные параметры: данные с-ф ir_data, настройки xml-трансформации и метода-обработчика iv_ddx_setting. Изменяемые параметры: xml данные с-ф cv_ddx_doc. Выходные параметры: номер записи ev_record_id.
            4. Проверка, что метод-обработчик Х, полученный из настроек, существует, иначе сообщение об ошибке.
            5. Запуск метода-обработчика Х. Например CL_J3RF_DIGINV_PROCESSOR->PROCESS_OUTGOING_INVOICE.
              1. CL_J3RF_DIGINV_PROCESSOR=>MATCH_INT_CUSTOMER (дебитор key-kunnr). Получение ид. дебитора lv_customer_id по его коду.
              2. CL_J3RF_DIGINV_PROCESSOR=>GET_COMPANY_INFO (БЕ). Получение ид. БЕ и адресных данных БЕ lv_company_info.
              3. 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.
                1. CL_J3RF_DIGINV_PROCESSOR=>GET_OPERATOR (БЕ). Получение ид. и данных оператора. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_OPERATOR.
                2. CL_J3RF_DIGINV_PROCESSOR=>SET_PROGRAM_INFO. Получение версии формата xml.
                3. CL_J3RF_DIGINV_PROCESSOR=>SET_SIGNATURE. Получение данных подписанта из доп данных БЕ. Внутри запускается BADI J_3RF_DIGITAL_INVOICE_BADI->GET_COMPANY_INFO.
                4. CL_J3RF_DIGINV_PROCESSOR=>GENERATE_FILENAME. Генерация имени файла xml.
                5. CL_J3RF_DIGINV_PROCESSOR=>TRANSFORM_TO_XML (данные с-ф ir_data, настройки ls_setting). Запуск трансформации xml. Изменяет cv_ddx_doc - структуру с xml-данными.
                6. CL_J3RF_DIGINV_PROCESSOR=>STORE_DOCUMENT (данные с-ф ir_data, данные дебитора iv_partner, ид. получателя iv_receiver_id, ид. отправителя iv_sender_id, статусы док, метка времени lv_doc_timestamp). Сохранение xml-данных в таблицу J_3RFDI_ARC, изменение статуса в таблице J_3RF_REGINV_OUT, добавление лога в табл. J_3RF_REGINV_LOG. Изменяем структуру xml-данных cv_ddx_doc. Получаем номер записи ev_record_id.
        2. Для создания и подписи
          1. PROCESS_DOCUMENT(document-данные с-ф, l_not_transform-флаг предв. трансформ). Изменяем xml данные ls_ddx_doc. Сохраняем xml в БД при помощи модуля, получаемого из настроек??? . Возвращаем lv_record_id - количество сохраненных записей.
          2. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
          3. UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
        3. Для подписи
          1. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN. Генерация xml подписи. См. пункт BADI для команды Create XML Invoice.
          2. UPDATE_STORED_DOCUMENT. Обновление уже сохраненного документа в БД.
      2. Заполнение таблицы статусов J_3RF_REGINV_LOG. Добавляется или обновляется статус электронного с-ф.
    4. Заполнение кода ошибки как выходного параметра .
  4. SHOW_XML_RESULT(количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices). Выводит сообщение о результатах работы: "Х строк выделено, Y строк обработано, Z строк с ошибками".
  5. 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 пустой.
  1. Алгоритм.
    1. GET_CAPABILITIES - проверка возможности подписания, проверка настроек. Метод пустой.
    2. Изменение статуса электронного с-ф на Подписано.
    3. Получение времени подписания и имени пользователя.
    4. GET_SIGNER_INFO - получение данных подписавшего.
    5. SET_SIGNER_IN_XML - передача данных подписавшего в поле с данными для генерации xml.
    6. GET_SIGNATURE - Генерация xml-подписи и передача данных в структуру с данными xml ls_ddx_doc. Метод пустой.
  • GET_COMPANY_INFO. Изменение адресных данных из доп данных БЕ.
  • GET_OPERATOR. Изменение ид. и данных оператора.

J_3R_REGINV_BADI

  • UPDATE_PRN - изменение данных при печати журнала. Входные параметры: таблица исходящих с-ф, таблица входящих с-ф. Изменяемые параметры: строка заголовка печатной формы, таблица исходящих с-ф, таблица входящих с-ф.


Команда Send XML Invoice

Описание команды Send XML Invoice

Описание Выгружает файлы xml для выделенных на экране исходящих счетов-фактур в локальную папку c:\temp\outgoing.

Аргументы Выделенные строки в списке счетов-фактур с содержанием номеров и статусов.

Возвращаемое значение Список счетов-фактур с новыми статусами или сообщение об ошибке.

Результат В папку выгружен файл xml. Изменен статус документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_IN, J_3RF_REGINV_LOG на Документ отправлен.

Алгоритм

  1. Формируем список фактур по котором надо сформировать xml. Ищем с-ф со статусом Эл.счет создан. Отобранные фактуры помещаем во врем. таблицу t_out_list[].
  2. SET_XML_TIMESTAMP. Получаем системную дату и время.
  3. CL_J3RF_DI_REGINV=>SEND_XML_INVOICES. Чтение xml-данных из таблицы, формирование файла xml, выгрузка файла в локальную папку, обновление статуса документа.
    1. CL_J3RF_DIGINV_PROCESSOR=>SEND_DATA. Чтение xml-данных из таблицы, формирование файла xml, выгрузка файла в локальную папку, обновление статуса документа.
      1. CL_J3RF_DI_ARCLOG=>GET_XMLS_BY_KEY. Чтение xml-данных из таблицы J_3RFDI_ARC по номеру с-ф.
      2. CL_J3RF_DI_ARCLOG=>GET_XMLS_BY_STATUSES. Чтение xml-данных из таблицы J_3RFDI_ARC по статусу с-ф.
      3. BADI J_3RF_DIGITAL_INVOICE_BADI->SIGN (xml-данные с-ф ls_document). Генерация xml-подписи.
      4. BADI J_3RF_DIGITAL_INVOICE_BADI->SEND (xml-данные с-ф lt_documents). Формирование файла xml. Выгрузка файла в локальную папку c:\temp\outgoing.
      5. CL_J3RF_DI_ARCLOG=>UPDATE_RECORD. Обновление xml-данных в таблице J3RFDI_ARC.
      6. CL_J3RF_DI_REGINV=>SET_DOC_STATUS. Обновление статуса документа в таблицах J_3RF_REGINV_OUT, J_3RF_REGINV_IN, J_3RF_REGINV_LOG.
  4. SHOW_XML_RESULT(количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices). Выводит сообщение о результатах работы: "Х строк выделено, Y строк обработано, Z строк с ошибками".
  5. OUT_INV_SELECT(out_list[]-список счетов-фактур). Обновление список счетов-фактур на экране вывода .


BADI для команды Send XML Invoice

J_3RF_DIGITAL_INVOICE_BADI

  • SIGN (xml-данные с-ф ls_document). Генерация xml-подписи.
  • SEND (xml-данные с-ф lt_documents). Формирование файла xml. Выгрузка файла в локальную папку c:\temp\outgoing.

Журнал накладных и актов

Общие сведения

Журнал электронных накладных и актов – транзакция, которая отображает список входящих и исходящих накладных ТОРГ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 - индекс документов

+структура каждой таблицы