RFC_READ_TABLE не возвращает записи

Я пытаюсь получить данные из SAP для анализа, используя RFC_READ_TABLE. Он возвращает Fields правильно. Однако при попытке получить строки он возвращает нулевые строки.

  theFunc = functionCtrl.Add("RFC_READ_TABLE") '  
    Dim returnFunc As Boolean
    Dim returnParam As Object
    Dim retTab As Object
     theFunc.exports("query_table") = "MSKA"
    theFunc.exports("DELIMITER") = ";"
    theFunc.exports("NO_DATA") = "TRUE"
    theFunc.exports("ROWCOUNT") = "50"

    returnFunc = theFunc.call

     retTab = theFunc.tables("DATA")

msgbox retTab.rows.count ' >>>>>> возвращает 0

Последний шаг возвращает ноль по мере подсчета записей. Таблица содержит данные. Когда я ищу таблицу FIELDS , она возвращает поля таблицы правильно. Это связано с проблемами безопасности?

С уважением, Валид


person waleed.makarem    schedule 07.08.2015    source источник


Ответы (1)


Вы не получаете никаких возвращаемых данных, потому что вы заполняете параметр NO_DATA (который в любом случае должен быть одним символом, а не TRUE, например). Вы также не предоставляете предложение WHERE (в параметре таблицы OPTIONS).

Из определения функционального модуля:

RFC_READ_TABLE

Если вы предоставите NO_DATA значение одного пробела (или опустите его, так как один пробел является значением по умолчанию), а также допустимое предложение WHERE в OPTIONS, вы должны получить возвращенные данные.

person mjturner    schedule 07.08.2015
comment
Я уже пытался установить для параметра NO_DATA значение TRUE или FALSE. Все не получают записи. - person waleed.makarem; 07.08.2015
comment
Я также изменил имя таблицы на MARA для описания материала, в котором должны быть данные. Но никакие записи не восстанавливаются. theFunc = functionCtrl.Add(RFC_READ_TABLE) Dim returnFunc As Boolean Dim returnParam As Object Dim retTab As Object theFunc.exports(query_table) = MARA theFunc.exports(DELIMITER) = ; theFunc.exports(NO_DATA) = theFunc.exports(ROWCOUNT) = 50 returnFunc = theFunc.call retTab = theFunc.tables(DATA) msgbox retTab.rows.count - person waleed.makarem; 07.08.2015
comment
Я только что заметил, что вы также не указываете значение в OPTIONS - я расширил свой ответ, включив это - person mjturner; 07.08.2015
comment
Обязательно ли добавлять опции? Кроме того, какие хорошие инструменты вы используете для отображения функционального модуля. это веб-инструмент? - person waleed.makarem; 07.08.2015
comment
что, если я хочу перечислить все записи просто таблицы. мне добавить * в параметр параметров? - person waleed.makarem; 07.08.2015
comment
Этот скриншот из транзакции SE37 в системе SAP. Нет, вам нужно предоставить правильный пункт WHERE - WHERE MATNR = '1234567' и т. д. Если вам нужен диапазон материалов, отрегулируйте его соответствующим образом. - person mjturner; 07.08.2015
comment
как добавить эту опцию. Это не параметр экспорта. Это таблица. как обновить мой код, чтобы включить параметры? Спасибо. - person waleed.makarem; 07.08.2015
comment
Вы должны иметь возможность ссылаться на нее, как и на любые другие таблицы (используя свойство tables для theFunc). - person mjturner; 07.08.2015
comment
Я пробовал, но не уверен, что делаю это правильно - person waleed.makarem; 08.08.2015
comment
theFunc.tables(options).rows.add(Nothing) theFunc.tables(options).rows(1)(1) = WHERE MATNR = 'N999' retTab = theFunc.tables(DATA) returnFunc = theFunc.call - person waleed.makarem; 08.08.2015
comment
theFunc.tables(параметры).rows.add(ничего) - person waleed.makarem; 08.08.2015
comment
theFunc.tables(options).rows(1)(1) = ГДЕ MATNR = 'N999' - person waleed.makarem; 08.08.2015
comment
retTab = theFunc.tables(ДАННЫЕ) - person waleed.makarem; 08.08.2015
comment
returnFunc = theFunc.call - person waleed.makarem; 08.08.2015
comment
MsgBox (найдено строк и retTab.rows.count) - person waleed.makarem; 08.08.2015
comment
Прочтите краткий текст рядом с параметром NO_DATA. В основном все, кроме пробела, не возвращает никаких данных. Не ставьте ИСТИНА или ЛОЖЬ, ставьте . И в обычном (глупом) соглашении SAP поставьте X, если вам не нужны данные. - person snow_FFFFFF; 14.08.2015
comment
Но я уже установил пробел: theFunc.exports(NO_DATA) = .. и до сих пор нет данных - person waleed.makarem; 21.08.2015