abap-BAPI_MATERIAL_SAVEDATA 擴充欄位的使用

來源:互聯網
上載者:User

事情原由: 需要用 jco 來調用 BAPI_MATERIAL_SAVEDATA 建立物料,但是發現有個 可配置欄位,沒有地方傳入 這個 bapi .

imports 和 tables 裡都沒辦法將這個欄位傳入,檢查了一下當初上線匯入的程式,發現當初外部顧問是通過改寫 這個BAPI 的原始碼,通過 memory 方式傳進去的.

當然如果 在 jco 也調一個能 export memory 的 bapi 能串連上這段修改。但是種作法本身就是不合常規的,改標準代碼還是少做的好。 所以仔細研讀了一下關於這個 bapi的 sap 英文線上文檔,其實類似這種擴充欄位,或自訂的欄位是可以通過 EXTENSIONIN 這個 table 參數傳入此bapi 的.

只要找到這種欄位所在的結構,填充結構並最終交結構填充到 EXTENSIONIN 和 EXTENSIONINX 參數裡就可以了。 找結構的話可能根據欄位原本所在的表名 按這種格式找到: bapi_te_<表名> ,bapi_te_<表名> X .  具體填寫參數方式,請參考我的一段java代碼,如果是用 abap 可相應調整一下.

 

// MARA-KZKFG 是否可配置物料

te_mara_data.setValue(entity.getKzkfg(),"KZKFG");

te_mara_data_x.setValue("X","KZKFG");

te_mara_data.setValue(entity.getMaterial_no(),"MATERIAL");

te_mara_data_x.setValue(entity.getMaterial_no(),"MATERIAL");

//更新擴充欄位

extensionin.appendRow();

extensionin_x.appendRow();

extensionin.setValue("BAPI_TE_MARA","STRUCTURE");

extensionin.setValue(te_mara_data.getString("MATERIAL")+te_mara_data.getString("KZKFG"),"VALUEPART1");

extensionin_x.setValue("BAPI_TE_MARAX","STRUCTURE");

extensionin_x.setValue(te_mara_data_x.getString("MATERIAL")+ te_mara_data_x.getString("KZKFG"),"VALUEPART1");

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.