cancel
Showing results for 
Search instead for 
Did you mean: 

Calling BAPI_SALESORDER_CHANGE from VB

Former Member
0 Kudos

Hi Gurus,

I am trying to change the Sales Order (Requested Delivery Date) in R/3 from an external VB application using BAPI_SALESORDER_CHANGE. The BAPI documentation clearly states to enter “U” in UPDATEFLAG field in ORDER_HEADER_INX structure. After calling the BAPI, in return code, I am getting error message number 347 and message text “Field header_inx-updateflag is not an input field” but the documentation states to do so. Please help me out, the VB codes are as under:

'----


'----


'SOME VARIABLE DECLARATION AND ASSIGNMENTS

'----


Dim obSAPFnCntrl As Object

Dim obSAPConn As Object

'Creating SAP Function object

obSAPFnCntrl = CreateObject("SAP.Functions")

'Creating Connection Object to connect to SAP

obSAPConn = obSAPFnCntrl.Connection

'SET CONNECTION PARAMETERS WITH PRE ASSIGNED VARIABLES

obSAPConn.ApplicationServer = CNT_STR_APPLN_SRVR

obSAPConn.SystemNumber = CNT_STR_SYS_NUM

obSAPConn.User = CNT_STR_USR

obSAPConn.Password = CNT_STR_PWD

obSAPConn.Language = CNT_STR_LOGON_LANG

obSAPConn.Client = CNT_STR_CLIENT

'NOW CONNECT TO R/3

If obSAPConn.Logon(0, True) = False Then

MsgBox("SAP Logon Failed")

obSAPConn = Nothing

obSAPFnCntrl = Nothing

Else

MsgBox("SAP Logon Succeeded")

End If

'create a BAPI function object

Dim obSAP_CalledBAPI As Object

obSAP_CalledBAPI = obSAPFnCntrl.Add("BAPI_SALESORDER_CHANGE")

'export parameter with assignment - CHAR 10

obSAP_CalledBAPI.Exports("SALESDOCUMENT").Value = "5000539446"

'EXPORT PARAMETER - ONLY FIELD NEEDS CHANGE IN ORDER_HEADER_INX.

'THIS COULD BE THE POTENTIAL SOURCE OF ERROR

obSAP_CalledBAPI.Exports("ORDER_HEADER_INX").Value("REQ_DATE_H") = "U"

'EXPORT PARAMETER - ONLY FIELD NEEDS CHANGE IN ORDER_HEADER_IN.

obSAP_CalledBAPI.Exports("ORDER_HEADER_IN").Value("REQ_DATE_H") = 20080606

'TABLES PARAMETER

Dim obSAP_Tbl_Return As Object

obSAP_Tbl_Return = obSAP_CalledBAPI.Tables("RETURN")

'NOW CALL THE BAPI & COMMIT - BANG!

If obSAP_CalledBAPI.Call = False Then

MsgBox("BAPI Call failed")

Else

MsgBox("BAPI Call successful")

Dim obCommit As Object

obCommit = obSAPFnCntrl.Add("BAPI_TRANSACTION_COMMIT")

If obCommit.Call = False Then

MsgBox("Commit Failed")

Else

MsgBox("Commit successful")

End If

End If

'CHECK THE RETURN CODES & MESSAGE

MsgBox(obSAP_Tbl_Return.Value(1, 4))

'LOGOFF & OBJECTS CLEANUP CODES

'----


'----


NEVER MIND ........ I have figured out my mistake after some tweakings here and there. The correct codes are ...

obSAP_CalledBAPI.Exports("ORDER_HEADER_IN").Value("REQ_DATE_H") = 20080606

obSAP_CalledBAPI.Exports("ORDER_HEADER_INX").Value("UPDATEFLAG") = "U"

obSAP_CalledBAPI.Exports("ORDER_HEADER_INX").Value("REQ_DATE_H") = "X"

Lalit

Edited by: Lalit Mohan on Apr 4, 2008 8:04 PM

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

The correct codes figured out after some tweakings.

gregorw
Active Contributor
0 Kudos

Hi Lalit,

can you please post the Code in the [Code Gallery|https://wiki.sdn.sap.com/wiki/display/Snippets].

Best regards

Gregor