Выполните программу через, ОТПРАВЛЯЮТ, с подавлением GUI

Сделать это рекурсивно

function findId(obj, id, currentPath = "") {
    // Go through every object in the array
    let i = 0;
    for (let child of obj) {
        // If id matches, return
        if (child.id == id) return currentPath + `[${i}]`;
        // Else go through the children, if we find anything there, return it
        let next = findId(child.child, id, currentPath + `[${i}]['child']`);
        if (next) return next;
        i++;
    }

    // We didn't find anything
    return null;
}
6
задан Sandra Rossi 3 July 2019 в 13:36
поделиться

2 ответа

Вот рабочий пример:

SUBMIT SAPF140 
    TO SAP-SPOOL                         "optional"
    SPOOL PARAMETERS print_parameters    "optional"
    WITHOUT SPOOL DYNPRO                 "optional (hides the spool pop-up)"
    VIA JOB jobname NUMBER l_number      "optional"
    AND RETURN                           "optional - returns to the calling prog"
    WITH EVENT   =  REVENT
    WITH BUKRS   IN RBUKRS
    WITH BELNR   IN lRBELNR
    WITH GJAHR   IN RGJAHR
    WITH USNAM   =  SY-UNAME
    WITH DATUM   =  SAVE_DATUM
    WITH UZEIT   =  SAVE_UZEIT
    WITH DELDAYS =  RDELDAYS
    WITH KAUTO   =  'X'
    WITH RPDEST  =  SAVE_PDEST
    WITH TITLE   =  TITLE.

Все операторы "WITH" касаются полей выбора на названной программе, где я использую =, это - оператор PARAMETER (единственное поле), где я использую В нем, оператор SELECT_OPTIONS (диапазон)

Вот простой пример того, как заполнить диапазон:

REFRESH lrbelnr.
lrbelnr-sign = 'I'.
lrbelnr-option = 'EQ'.
lrbelnr-low = HBKORM-belnr.
CLEAR lrbelnr-high.
append lrbelnr.
3
ответ дан 17 December 2019 в 04:53
поделиться

Если Вы хотите подавить эту функциональность как BAPI, Вам необходимо обернуть эту функциональность в модуль Remote Function Call (RFC). Просто реализуйте функциональный блок RFC. В зависимости от того, как реализован отчет, он может использовать объекты ABAP, которые также можно вызывать из вашей реализации RFC. В этом случае у вас есть неплохое решение. Всякий раз, когда отчет корректируется, ваш BAPI также будет отражать изменения. В случае, если это стандартная программа из SAP, которую невозможно обернуть, подумайте о копировании ее в свое пространство имен и настройке. Тем не менее, это может вызвать некоторые неудобства, когда SAP выполняет обновление через Support Package Stack, а вы этого не осознаете. Вывод этих двух методов отличается. Кроме того, если вы захотите вызвать его извне, то нет ничего другого, кроме как реализовать модуль RFC.

Отчет о передаче не может вернуть значения извне. Отчеты всегда предназначены только для GUI-функций, а не для обмена данными. В случае, если в отчете используются выбранные опции, необходимо каким-то образом реализовать эту функцию "вручную" в КСФ, так как эти утверждения нельзя использовать внутри модулей КСФ. Обычно я пытаюсь переделать отчет, модулизировать его и поместить информацию о выборе в центральный класс или, может быть, в другой функциональный блок, который может быть вызван из отчета и вашего BAPI функционального блока. Фильтры, о которых вы говорите, не могут быть реализованы в RFC автоматически. Вы должны реализовать эти диапазоны вручную. Появляющееся предупреждение не может быть подавлено, если вы делаете вызов RFC с удаленной системы и всплывающее окно с предупреждением заканчивается коротким дампом. Поэтому вам нужно переработать отчет и переделать его под свои нужды.

Если вы просто ищете возможность обойти его через планирование заданий, создайте вариант и запланируйте отчет с этим вариантом, но я полагаю, что это не то решение, которое вы ищете.

.
1
ответ дан 17 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: