Как создать LONGTEXTS с помощью BAPI_QUALNOT_CREATE в SAP?

Я использую BAPI_QUALNOT_CREATE в JCo для создания уведомления о качестве, и это работает. Единственное, что не работает, это создание LONGTEXTS.

Я использую следующий код:

JCoTable tblText = function.getTableParameterList().getTable("LONGTEXTS")
if (tblText == null) {
    throw new Exception("...")
}

def rowNo = 0
tblText.appendRows(meldungsTextLang.size())
for (String text : meldungsTextLang) {
    if (text != null && text.length() > 132) text = text.substring(0, 132)
    tblText.setRow(rowNo++)
    tblText.setValue("FORMAT_COL", "*")
    tblText.setValue("TEXT_LINE", text)
} 

Но текст никогда не появляется в уведомлении о качестве. Что не так с моим кодом?

Как и для справки, в документации BAPI есть специальные инструкции для длинных текстов.

andrecito 15.02.2019 16:53

т.е. компоненты OBJTYPE и OBJKEY LONGTEXTS должны быть заполнены в соответствии с правилами, изложенными в документации

Sandra Rossi 15.02.2019 22:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
436
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Objtyp и objkey не заполняются в коде, который является обязательным, поэтому попробуйте приведенный ниже исправленный код.

JCoTable tblText = function.getTableParameterList().getTable("LONGTEXTS")
if (tblText == null) {
    throw new Exception("...")
}

def rowNo = 0
tblText.appendRows(meldungsTextLang.size())
for (String text : meldungsTextLang) {
    if (text != null && text.length() > 132) text = text.substring(0, 132)
    tblText.setRow(rowNo++)
    tblText.setValue("OBJTYP","QMSM")
    tblText.setValue("OBJKEY","1")
    tblText.setValue("FORMAT_COL", "*")
    tblText.setValue("TEXT_LINE", text)
}  

Это OBJTYPE с финальным E (не OBJTYP/в документации есть опечатка). QMSM только для уведомления "задача", могут быть и другие значения в зависимости от параметра NOTIF_TYPE. В настоящее время мы не знаем, какой тип уведомления хочет создать SipCat.

Sandra Rossi 18.02.2019 08:59

Другие вопросы по теме