簡體   English   中英

長文本不會通過 BAPI_MATERIAL_SAVEDATA 更改?

[英]Long texts are not changed via BAPI_MATERIAL_SAVEDATA?

我的 BAPI 有問題。 我想寫一個程序來大量讀取和更改SAP中的材料長文本,但不知何故我無法讀取表格和更改數據。

如您所見,我嘗試更改其中的一些數據並且這有效。

如果我嘗試獲取表MATERIALLONGTEXT ,我什至會獲取任何數據,其中保存了一個長文本。

數據表

然后我嘗試在表中設置一些值並得到一個錯誤。 它說:

{“TABLE [STRUCTURE BAPI_MLTX]:無法設置值(存儲元素值的數組為空)”}

顯然很清楚,當沒有什么可設置的時候。 有任何想法嗎?

Dim BAPI_MATERIAL_SAVEDATA As IRfcFunction = _test.Repository.CreateFunction("BAPI_MATERIAL_SAVEDATA")
Dim oFuBa As IRfcFunction = _test.Repository.CreateFunction("RFC_READ_TABLE")

Dim HEADDATA As IRfcStructure = BAPI_MATERIAL_SAVEDATA.GetStructure("HEADDATA")
Dim MATNR As String = "000000000000561862"
HEADDATA.SetValue("MATERIAL", MATNR)
BAPI_MATERIAL_SAVEDATA.SetValue("HEADDATA", HEADDATA)

Dim CLIENTDATA As IRfcStructure = BAPI_MATERIAL_SAVEDATA.GetStructure("CLIENTDATA")
Dim CLIENTDATAX As IRfcStructure = BAPI_MATERIAL_SAVEDATA.GetStructure("CLIENTDATAX")
Dim PUR_STATUS As String = "20"
CLIENTDATA.SetValue("PUR_STATUS", PUR_STATUS)
CLIENTDATAX.SetValue("PUR_STATUS", "X")
BAPI_MATERIAL_SAVEDATA.SetValue("CLIENTDATA", CLIENTDATA)
BAPI_MATERIAL_SAVEDATA.SetValue("CLIENTDATAX", CLIENTDATAX)

Dim MATERIALLONGTEXT As IRfcTable = BAPI_MATERIAL_SAVEDATA.GetTable("MATERIALLONGTEXT")

Dim LANGU_ISO As String = "DE"
Dim TEXT_ID As String = "GRUN"

MATERIALLONGTEXT.SetValue("TEXT_NAME", MATNR)
MATERIALLONGTEXT.SetValue("APPLOBJECT", "MATERIAL")
MATERIALLONGTEXT.SetValue("FORMAT_COL", "*")
MATERIALLONGTEXT.SetValue("LANGU_ISO", LANGU_ISO)
MATERIALLONGTEXT.SetValue("TEXT_ID", TEXT_ID)
MATERIALLONGTEXT.SetValue("TEXT_LINE", "BLALBAFDFGS")

BAPI_MATERIAL_SAVEDATA.Invoke(_test)
Dim BAPI_RETURN As IRfcStructure = BAPI_MATERIAL_SAVEDATA.GetStructure("RETURN")

工作正常,如果我添加 MATERIALLONGTEXT.Insert() or.Append()

Insert() 只需要執行一次,在每一行之后附加(),例如:

MATERIALLONGTEXT.Insert()
MATERIALLONGTEXT.SetValue("TEXT_NAME", MATNR)
MATERIALLONGTEXT.SetValue("APPLOBJECT", "MATERIAL")
MATERIALLONGTEXT.SetValue("FORMAT_COL", "*")
MATERIALLONGTEXT.SetValue("LANGU_ISO", LANGU_ISO)
MATERIALLONGTEXT.SetValue("TEXT_ID", TEXT_ID)
MATERIALLONGTEXT.SetValue("TEXT_LINE", "BLALBAFDFGS")


BAPI_MATERIAL_SAVEDATA.Invoke(_test)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM