SAP ERP 6.0 EHP7 - стандартные электронные документы — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Команда Create XML Invoice)
Строка 88: Строка 88:
  
 
'''Алгоритм'''
 
'''Алгоритм'''
*Очистка временной таблицы t_out_list[] со списком счетов-фактур. Таблица используется для передачи данных сч-ф в подпрограммы.
+
*Формируем список фактур по котором надо сформировать xml документы, среди отмеченных записей списка берем фактуры удовлетворяющие условиям (статус: пусто/создан/подписано; типом обмена: только xml обмен; индикатор "заархивировано": пусто;  индикатор "удалено": пусто). Отобранные фактуры помещаем во врем. таблицу t_out_list[]
*Цикл по строкам временной таблицы out_list[]. Это список счетов-фактур на экране вывода. Обрабатываются только выделенные строки. Если статус счета равен "пусто", "создан", или "подписано", если тип обмена равен "только xml обмен", если индикатор "заархивировано" пустой, если индикатор "удалено" пустой, то строка врем.таблицы out_list[] добавляется во врем. таблицу t_out_list[] для передачи в подпрограммы.
+
*set_xml_timestamp Получаем системную дату время
*Если на экране не выделено ни одной строки, то сообщение "Select at least one entry" и выход из обработчика команды.
+
*cl_j3rf_di_reginv->create_xml_invoices(список фактур - врем. таблица t_out_list[]) Получаем данные фактуры и формируем xml. Возвращаемое значение: код ошибки.  
*Если ни одной строки во внутр. таблицу t_out_list[] не добавлено, то сообщение "Selected entries are not valid, see long text for details" и выход из обработчика команды.
+
**Проверяем есть ли в системе BADI J_3R_REGINV_DIG_BADI (должна быть иначе ошибка)
*Запуск подпрограммы set_xml_timestamp. Получение системной даты и времени во врем структуру gv_xml_tmstmp.
+
**Перебираем список фактур и в зависимости от типа фактуры (j3rdx_dxd_type_invoice - обычная / j3rdx_dxd_type_corr корректировочная) запускаем разные методы получения данных из БД:
*Запуск метода create_xml_invoices из класса cl_j3rf_di_reginv. Аргументы: врем. таблица t_out_list[]. Возвращаемое значение: код ошибки. Подготовка данных и генерация xml.
+
***CL_J3RF_DI_REGINV->get_inv_data(врем. структура ls_out запись из списка фактур) Получаем данные обычной фактуры . Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
**Поиск реализации BADI J_3R_REGINV_DIG_BADI, вывод ошибок если не найдена.
+
****???вероятно запускается программа печати??
**Подготовка данных для генерации xml.
+
****CL_J3RF_DI_REGINV->prepare_xml_invoice По полученным данным собираем структуру специального формата для конвертации в xml  из класса . Аргументы: ls_hd_inv - заголовок, lt_txt - тексты, lt_inv - позиции счетов-фактур. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml.
***Цикл по врем.таблице it_out_entries[], переданной в аргументах, в структуру ls_out.
+
****cl_j3rf_diginv_processor->set_struct_division - получаем данные подписанта. Аргументы: ls_out - врем. строка цикла по врем.таблице it_out_entries[], тип документа счета, ключ с номером счета. Возвращаемые значения: ls_xml_inv-signatory - подпись.  
***Если в строке it_out_entries[] тип документа - j3rdx_dxd_type_invoice - счет-фактура.
+
****BADI J_3R_REGINV_DIG_BADI->UPDATE_INV_XML(ls_hd_inv, lt_txt, lt_inv. ls_xml_inv) - Можем изменить подготовленную структуру ls_xml_inv.  
****Запуск метода get_inv_data из класса CL_J3RF_DI_REGINV. Аргументы: врем. структура ls_out. Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов, lt_inv - врем. таблица с позициями счетов-фактур.
+
****Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv
****Запуск метода prepare_xml_invoice из класса CL_J3RF_DI_REGINV. Аргументы: ls_hd_inv - заголовок, lt_txt - тексты, lt_inv - позиции счетов-фактур. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml.
+
***CL_J3RF_DI_REGINV->get_inv_corrinvdata - подготавливаем структуру и помещаем в lt_xml_inv аналогично обычной фактуре. CL_J3RF_DI_REGINV->prepare_xml_corrinv / cl_j3rf_diginv_processor->set_struct_division / BADI J_3R_REGINV_DIG_BADI->UPDATE_CORRINV_XML
****Запуск метода set_struct_division из класса cl_j3rf_diginv_processor. Аргументы: ls_out - врем. строка цикла по врем.таблице it_out_entries[], тип документа счета, ключ с номером счета. Возвращаемые значения: ls_xml_inv-signatory - подпись. Генерация эл. подписи.
+
***Записываем полученную структуру в таблицу врем. табл. lt_inv_table.
****Запуск метода UPDATE_INV_XML из BADI J_3R_REGINV_DIG_BADI. Аргументы: ls_hd_inv - заголовок, lt_txt - тексты, lt_inv - позиции счетов-фактур. Возвращаемые значения: ls_xml_inv - временная структура с данными для создания xml. Изменение данных кодом пользователя.
+
**cl_j3rf_diginv_processor->process_outgoing(lt_inv_table[], индикатор j3rdx_out_create_only) Возвращаемое значение: код ошибки.
****Добавление врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv[] -
 
***Если в строке it_out_entries[] тип документа - j3rdx_dxd_type_corr - корректировочный счет-фактура
 
***Добавление строки в таблицу lt_inv_table[]. Это врем. таблица с данными для генерации xml.
 
**Генерация xml.
 
***Проверка что  врем. табл. lt_inv_table[] содержит записи.
 
***Запуск метода process_outgoing из класса cl_j3rf_diginv_processor. Аргументы: lt_inv_table[], индикатор j3rdx_out_create_only. Возвращаемое значение: код ошибки.
 
 
****...
 
****...
 
****...
 
****...
Строка 113: Строка 107:
 
*запуск подпрограммы show_xml_result. Аргументы: количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices. Выводит сообщение: "Х строк выделено, Y строк обработано, Z строк с ошибками".
 
*запуск подпрограммы show_xml_result. Аргументы: количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices. Выводит сообщение: "Х строк выделено, Y строк обработано, Z строк с ошибками".
 
*Запуск подпрограммы out_inv_select. Аргумент и возвращаемое значение: список счетов-фактур на экране вывода out_list[].
 
*Запуск подпрограммы out_inv_select. Аргумент и возвращаемое значение: список счетов-фактур на экране вывода out_list[].
*Обновление экрана вывода
 
  
 
'''BADI'''
 
'''BADI'''
Вызываемые BADI: J_3R_REGINV_DIG_BADI
+
J_3R_REGINV_DIG_BADI
*Вызываемый метод BADI: UPDATE_INV_XML - modify data for xml-invoice
+
*UPDATE_INV_XML - modify data for xml-invoice
*Вызываемый метод BADI: UPDATE_CORRINV_XML - modify data for xml-corrective invoice
+
*UPDATE_CORRINV_XML - modify data for xml-corrective invoice
  
 
==Журнал накладных и актов==
 
==Журнал накладных и актов==

Версия 11:03, 1 сентября 2015

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

Модуль предназначен для создания, отправки и получения электронных счетов-фактур, актов, накладных и универсальных передаточных документов в формате 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

Как исходящие документы попадают в журнал

Вариант 1 (....)

Описание краткое описание способа Алгоритм полная последовательность вызовов от начала до конца с кратким описанием каждой функции BADI выделить цветом BADI названия функций - должны быть в алгоритме. описание действия, список входящих параметров описание результата.

Как входящие документы попадают в журнал

Вариант 1 (....)

Описание

Алгоритм

Команда 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. Возвращаемое значение: код ошибки.
    • Проверяем есть ли в системе BADI J_3R_REGINV_DIG_BADI (должна быть иначе ошибка)
    • Перебираем список фактур и в зависимости от типа фактуры (j3rdx_dxd_type_invoice - обычная / j3rdx_dxd_type_corr корректировочная) запускаем разные методы получения данных из БД:
      • CL_J3RF_DI_REGINV->get_inv_data(врем. структура ls_out запись из списка фактур) Получаем данные обычной фактуры . Возвращаемое значение: ls_hd_inv - структура с заголовком счета, lt_txt - врем. таблица текстов (комментариев к документу), lt_inv - врем. таблица с позициями счетов-фактур.
        • ???вероятно запускается программа печати??
        • CL_J3RF_DI_REGINV->prepare_xml_invoice По полученным данным собираем структуру специального формата для конвертации в xml из класса . Аргументы: ls_hd_inv - заголовок, lt_txt - тексты, lt_inv - позиции счетов-фактур. Возвращаемые значения: 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) - Можем изменить подготовленную структуру ls_xml_inv.
        • Добавляем врем. структуры ls_xml_inv во врем. таблицу lt_xml_inv
      • CL_J3RF_DI_REGINV->get_inv_corrinvdata - подготавливаем структуру и помещаем в lt_xml_inv аналогично обычной фактуре. CL_J3RF_DI_REGINV->prepare_xml_corrinv / cl_j3rf_diginv_processor->set_struct_division / BADI J_3R_REGINV_DIG_BADI->UPDATE_CORRINV_XML
      • Записываем полученную структуру в таблицу врем. табл. lt_inv_table.
    • cl_j3rf_diginv_processor->process_outgoing(lt_inv_table[], индикатор j3rdx_out_create_only) Возвращаемое значение: код ошибки.
        • ...
        • ...
      • заполнение кода ошибки как выходного параметра .
  • запуск подпрограммы show_xml_result. Аргументы: количество выделенных строк, количество строк во врем.таблице t_out_list[], код ошибки из create_xml_invoices. Выводит сообщение: "Х строк выделено, Y строк обработано, Z строк с ошибками".
  • Запуск подпрограммы out_inv_select. Аргумент и возвращаемое значение: список счетов-фактур на экране вывода out_list[].

BADI J_3R_REGINV_DIG_BADI

  • UPDATE_INV_XML - modify data for xml-invoice
  • UPDATE_CORRINV_XML - modify data for xml-corrective invoice

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

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

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

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