I am coding in Visual Studio 2005 (VB). I have written a .NET connector (in Visual Studio 2003) and am referencing it in my 2005 project.
I started out trying to call Bapi_Alm_Order_Maintain because I ultimately want to create a PM work order. But, I couldn't get that to work, initially, because I didn't have the proper privileges. Once my privs were granted, I still was not able to successfully call the BAPI. The return codes (in BAPIRET2Table) are
SAP Return Message :IWO_BAPI:121
SAP Return Type E
SAP Return Message :IWO_BAPI:121
SAP Return Type E
SAP Return Message :IWO_BAPI2:113
SAP Return Type E
This is part of my VB code:
With sapMethod
.Refnumber = "000001"
.Objecttype = "HEADER"
.Method = "CREATE"
.Objectkey = "%00000000001"
End With
sapMethodTable.Add(sapMethod)
With sapMethod
.Refnumber = "000001"
.Objecttype = ""
.Method = "SAVE"
.Objectkey = "%00000000001"
End With
sapMethodTable.Add(sapMethod)
With sapHeader
.Orderid = "%00000000001"
.Order_Type = "PM20"
.Funct_Loc = "WAY-BCF-FAC-WTR-FIW"
.Short_Text = "Test Short Text SAA"
.Pmacttype = "202"
End With
sapHeaderTable.Add(sapHeader)
With sapMethod
.Refnumber = "000001"
.Objecttype = "OPERATION"
.Method = "CREATE"
.Objectkey = "%000000000010010"
End With
sapMethodTable.Add(sapMethod)
With sapMethod
.Refnumber = "000001"
.Objecttype = ""
.Method = "SAVE"
.Objectkey = "%00000000001"
End With
sapMethodTable.Add(sapMethod)
With sapOperation
.Activity = "0010"
.Control_Key = "PM01"
.Calc_Key = "1"
.Number_Of_Capacities = 1
.Duration_Normal = "5.0"
.Work_Activity = "5.0"
End With
sapOperationTable.Add(sapOperation)
proxy.Bapi_Alm_Order_Maintain(sapNumbersTable, _
sapParexTable, _
sapOrdComponentTable, _
sapOrdComponentUpTable, _
sapHeaderTable, _
sapOrdSrvdatTable, _
sapOrdSrvdatUpTable, _
sapOrdHeaderUpTable, _
sapMethodTable, _
sapOperationTable, _
sapOrdOperationUpTable, _
sapOrdPartnerMulTable, _
sapOrdPartnerMulUpTable, _
sapOrdRelationTable, _
sapOrdRelationUpTable, _
sapAlmTextTable, _
sapAlmTextLinesTable, _
sapOrdUserStatTable, _
sapReturnTable)
Since I couldn't get the above code to work, I decided to switch gears and try to just retrieve an existing work order. But, I get a similar error when I call Bapi_Alm_Order_Get_Detail. Here's my errors for that one:
SAP Return Message :IWO_BAPI:121 91074418
SAP Return Type E
Here's my code... I am simply providing the order number in the call:
Dim cs As String = "CLIENT=510 USER=XXXXXXX PASSWD=XXXXXXXX LANG=en ASHOST=XXXXXX.xxx.xx.xxxxx.com SYSNR=1"
' Create a new proxy with connection string
Dim proxy As New SAPProxy.SAPConnectorProxy(cs)
Dim sapHeader As New SAPProxy.BAPI_ALM_ORDER_HEADER_E
Dim sapOrdSrvdatTable As New SAPProxy.BAPI_ALM_ORDER_SRVDAT_E
Dim sapOrdComponentTable As New SAPProxy.BAPI_ALM_ORDER_COMPONENT_ETable
Dim sapOrdCostsDetailTable As New SAPProxy.BAPI_ALM_ORDER_COSTS_DETAIL_ETable
Dim sapOrdCostsSumlTable As New SAPProxy.BAPI_ALM_ORDER_COSTS_SUM_ETable
Dim sapOperationTable As New SAPProxy.BAPI_ALM_ORDER_OPERATION_ETable
Dim sapOrdPartnerTable As New SAPProxy.BAPI_ALM_ORDER_PARTNERTable
Dim sapOrdPrtTable As New SAPProxy.BAPI_ALM_ORDER_PRT_ETable
Dim sapOrdRelationTable As New SAPProxy.BAPI_ALM_ORDER_RELATION_EXPORTTable
Dim sapAlmTextLinesTable As New SAPProxy.BAPI_ALM_TEXT_LINESTable
Dim sapAlmTextTable As New SAPProxy.BAPI_ALM_TEXTTable
Dim sapParexTable1 As New SAPProxy.BAPIPAREXTable
Dim sapParexTable2 As New SAPProxy.BAPIPAREXTable
Dim sapReturnTable As New SAPProxy.BAPIRET2Table
Dim strOrderId As String = "91074418"
Try
proxy.Bapi_Alm_Order_Get_Detail(strOrderId, _
sapHeader, _
sapOrdSrvdatTable, _
sapOrdComponentTable, _
sapOrdCostsDetailTable, _
sapOrdCostsSumlTable, _
sapOperationTable, _
sapOrdPartnerTable, _
sapOrdPrtTable, _
sapOrdRelationTable, _
sapAlmTextLinesTable, _
sapAlmTextTable, _
sapParexTable1, _
sapParexTable2, _
sapReturnTable)
Can you help me understand what these errors mean? There's no error text associated with them.
Thank you!