I have a problem with my BAPI. I want to write a program to massively read out and change material long text in SAP, but somehow I cannot read out the table and change data.
As you see, I tried changing some data in and this works.
If I try to get the table MATERIALLONGTEXT
I do get any data even, there is a long text saved.
Then I try to set some values in the table and get an error. It says:
{"TABLE [STRUCTURE BAPI_MLTX]: cannot set value (array storing element values is null)"}
Obviously clear, when there is nothing to set. Any ideas?
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")