2012-05-01 5 views
0

Microsoft SQL Serverデータベースの一部のデータをSAPにプッシュする古いプログラムがあります。 mySAP Business Suite用のMicrosoft .NETデータプロバイダを使用してSAPに接続し、完璧に動作します。SAP .NET Connector 3.0、データをSAPにプッシュする際にエラーが発生しました

改善計画の一環として、Microsoftドライバから新しいSAP .Net Connectorバージョン3.0に移行するよう依頼しました。 MicrosoftコネクタもSAPコネクタも使用していないので、ドキュメントから始めました。宿題をやったとは思うが、私は解決できない、または何か情報を見つけることができないというエラーが出ている。

私の主な機能:

log.Debug("Get the SAP destination") 
    Dim destination As RfcDestination = RfcDestinationManager.GetDestination("SAP") 

    log.Debug("Fetch the function metadata") 
    Dim rfcFunction As IRfcFunction = destination.Repository.CreateFunction("Z_TEC_CAT") 

    log.Debug("Set the import parameters") 
    Dim am As RfcStructureMetadata = destination.Repository.GetStructureMetadata("ZTEC_CAT") 
    Dim exportTable As IRfcTable = rfcFunction.GetTable("ZTEC_CAT") 
    FillIrfTable(exportTable, invoices) 

    log.Debug("Invoking the function Z_TEC_CAT") 
    rfcFunction.Invoke(destination) 


ヘルパーは、私がSAPに送信する必要がテーブルを移入する:

Private Sub FillIrfTable(ByVal sapTable As IRfcTable, ByVal dt As DataTable) 

    log.Debug("Started FillIrfTable") 
    For Each row As DataRow In dt.Rows 
     sapTable.Append() 
     Dim index As Integer = 0 
     Do While (index < dt.Columns.Count) 
      Dim columName As String = dt.Columns.Item(index).ColumnName 
      Dim columnValue = row.Item(index) 
      sapTable.SetValue(columName, columnValue) 
      index = (index + 1) 
     Loop 
    Next 

    log.Debug("Completed FillIrfTable") 

End Sub 


エクスポート変数が空である

、I NO_DATA例外を取得しても問題ありませんが、テーブルにレコードがある場合は、スローされます。

Failed calling SAP Function Module Z_TEC_CAT 
SAP.Middleware.Connector.RfcAbapException: BDC_OPEN_ERROR 
    at SAP.Middleware.Connector.RfcConnection.ThrowRfcErrorMsg() 
    at SAP.Middleware.Connector.RfcConnection.RfcReceive(RfcFunction function) 
    at SAP.Middleware.Connector.RfcFunction.RfcDeserialize(RfcConnection conn, IRfcIOStream stream) 
    at SAP.Middleware.Connector.RfcFunction.RfcCallReceive(RfcConnection conn, IRfcIOStream stream, RFCID rid) 
    at SAP.Middleware.Connector.RfcFunction.RfcCallReceive(RfcConnection conn) 
    at SAP.Middleware.Connector.RfcFunction.Invoke(RfcDestination destination) 


誰が起こっことができるか知っていますか?どんな提案も大歓迎です。

は、私が起こっていたものを見つけたと、私は出版それはそれで多くの時間を費やすしないように他人を助けるかもしれないと思い、この戦いのagainsの週間後、

答えて

2

をありがとう。

SAPコネクタがコールにスペースを挿入する(Microsoftコネクタではない)ように見えます。そのため、SAPシステムは送信したパラメータ(exportTable)をマップできず、失敗しました。

もう一方の側のSAPプログラマは関数を変更したので、スペースを認識してすべて正常に動作します。

関連する問題