Как предоставить параметр структуры для импорта в вызове Bapi с Cloud SDK v3 - PullRequest
0 голосов
/ 23 апреля 2020

Я использую BAPI BAPI_PR_CREATE в локальной системе S4HANA для создания заявки на покупку с помощью Cloud SDK v3.

Параметры для создания заявки на закупку приведены ниже на основе документации BAPI.

Parameter: PRHEADER

PR_TYPE = NB 

Parameter: PRHEADERX

PR_TYPE = X

Parameter: PRITEM

PREQ_ITEM = 00010

PUR_GROUP = 001

MATERIAL = 100-100

PLANT = 1000

QUANTITY = 5.000

Parameter: PRITEMX

PREQ_ITEM = 00010

PREQ_ITEMX = X

PUR_GROUP = X

MATERIAL = X

PLANT = X

QUANTITY = X

Ниже приведен мой java код. Тип параметра экспорта PRHEADER и PRHEADERX являются структурными. Не могли бы вы предоставить, как построить объект PRHEADER и PRHEADERX?

final BapiRequest bapiCreate = new BapiRequest("BAPI_PR_CREATE")
                                        .withExporting("PRHEADER", "BAPIMEREQHEADER", ????)
                                        .withExporting("PRHEADERX", "BAPIMEREQHEADERX", ????)
                                        .withImporting("NUMBER", "BAPIMEREQHEADER-PREQ_NO")
                                        .withTableAsReturn("BAPIRET2");

        // PR Item table
        bapiCreate.withTable("PRITEM", "BAPIMEREQITEMIMP")
                  .row()
                  // PR Item
                  .field("PREQ_ITEM", "BNFPO", "00010")
                  // Purchase Group
                  .field("PUR_GROUP", "EKGRP", "***")
                  // Material
                  .field("MATERIAL", "MATNR18", "***")
                  // Plant 
                  .field("PLANT", "EWERK", "***")
                  // Requested quantity
                  .field("QUANTITY", "BAMNG", "***")
                  .end();

        // PR ItemX table
        bapiCreate.withTable("PRITEMX", "BAPIMEREQITEMX")
                  .row()
                  // PR Item
                  .field("PREQ_ITEM", "BNFPO", "00010")
                  // PR ItemX
                  .field("PREQ_ITEMX", "BAPIUPDATE", "X")
                  // Purchase Group
                  .field("PUR_GROUP", "BAPIUPDATE", "X")
                  // Material
                  .field("MATERIAL", "BAPIUPDATE", "X")
                  // Plant 
                  .field("PLANT", "BAPIUPDATE", "X")
                  // Requested quantity
                  .field("QUANTITY", "BAPIUPDATE", "X")
                  .end();

Обновление

Мне нужно использовать метод "withExportingFields" для построения данных с типом "Структура" .

final BapiRequest bapiCreate = new BapiRequest("BAPI_PR_CREATE")
                                        .withExportingFields("PRHEADER", "BAPIMEREQHEADER")
                                        .field("PR_TYPE", "BANFN", "NB")
                                        .end();

        bapiCreate.withExportingFields("PRHEADERX", "BAPIMEREQHEADERX")
                  .field("PR_TYPE", "BAPIUPDATE", "X")
                  .end();

1 Ответ

1 голос
/ 23 апреля 2020

Я думаю, что вы можете относиться к "структурам" аналогично "таблицам", например,

bapiCreate.withExportingFields("PRHEADER", "BAPIMEREQHEADER")
.row()
.field("columnName1", "dataType1", "value1")
.field("columnName2", "dataType2", "value2")
.end();

(обновлено withExportingTable до withExportingFields, благодаря обратной связи)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...