0

MicrosoftSQLサーバーデータベースからSAPにデータをプッシュする古いプログラムがあります。mySAPBusinessSuite用のMicrosoft.NETData Providerを使用してSAPに接続し、完全に機能するまでは。

現在、改善計画の一環として、Microsoftドライバーから新しいSAP.NetConnectorバージョン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


エクスポート可能な変数が空の場合、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)


何が起こっているのか誰か知っていますか?任意の提案をいただければ幸いです。

ありがとうございました、

1月

4

1 に答える 1

2

これとの戦いの1週間後、私は何が起こっているのかを知り、それを公開することは他の人がそれに多くの時間を費やさないようにするのに役立つかもしれないと思います。

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

もう一方の端のSAPプログラマーは関数を変更したため、スペースを認識し、すべてが正常に機能します。

于 2012-05-03T13:45:11.917 に答える