Проблема с SAP NCO (клиент RFC, отличный от ABAP (тип партнера), не поддерживается)

У меня проблема с SAP NCO 3.0. После того, как соединение установлено и система SAP отправит IDoc в мою реализацию сервера, NCO вызвал следующее исключение:

SAP.Middleware.Connector.RfcServerApplicationException: Неперехваченное исключение SAP.Middleware.Connector.RfcUnsupportedPartnerException, выброшенное в SAP.Middleware.Connector.RfcServer.ARfcDestShipImp при выполнении функции RFC-сервера ARFCIP.fcdestShipImp: RFC-IP-Server_DEST_CAPP_CAPPID_RFC_DEST_SAPC_RFC_DEST_SAPC_RFC_DEST_SAPC_RFC_DEST_SAPC_RFC_DEST_SAPC_RFC_DEST_SAPC_RFC_DEST_SAPP_SAPC_RF_DEST_SAPC_RFC_DEST_SAPC_SAPP_SAPP_DEST_SAPC… клиент (тип партнера) не поддерживается в SAP.Middleware.Connector.RfcConnection.ReadUpTo(RFCGET readState, функция RfcFunction, RFCID toRid) в SAP.Middleware.Connector.RfcConnection.Dispatch() в SAP.Middleware.Connector.RfcTrans () в SAP.Middleware.Connector.RfcServer.ARfcDestShipImp(RfcServerContext ctx, IRfcFunction func) в SAP.Middleware.Connector.RfcServer.InvokeServerFunction(RfcConnection conn, ServerFunctionInfo server function

Реализация функции:

class RfcFunctionImpl
{
    [RfcServerFunction(Name = "STFC_CONNECTION", Default = false)]
    public static void StfcConnection(RfcServerContext serverContex, IRfcFunction rfcFunction)
    {
        string dataFileName = string.Format("{0}.idoc", serverContex.TransactionID);
        FileStream dataFile = new FileStream(dataFileName, FileMode.OpenOrCreate, FileAccess.Write);
        StreamWriter writer = new StreamWriter(dataFile);
        IRfcTable iDoc = rfcFunction.GetTable("IDOC_DATA_REC_40");
        foreach (IRfcStructure record in iDoc)
        {
            for (int i = 0; i < record.Count; i++)
            {
                if (i == record.Count - 1)
                    writer.WriteLine(record.GetString(i));
                else
                    writer.Write("{0};", record.GetString(i));
            }
        }
        writer.Flush();
        dataFile.Close();
    }

    [RfcServerFunction(Default = true)]
    public static void GrDestAKLEllipta(RfcServerContext serverContex, IRfcFunction rfcFunction)
    {
        string dataFileName = string.Format("{0}.idoc", serverContex.TransactionID);
        FileStream dataFile = new FileStream(dataFileName, FileMode.OpenOrCreate, FileAccess.Write);
        StreamWriter writer = new StreamWriter(dataFile);
        IRfcTable iDoc = rfcFunction.GetTable("IDOC_DATA_REC_40");
        foreach (IRfcStructure record in iDoc)
        {
            for (int i = 0; i < record.Count; i++)
            {
                if (i == record.Count - 1)
                    writer.WriteLine(record.GetString(i));
                else
                    writer.Write("{0};", record.GetString(i));
            }
        }
        writer.Flush();
        dataFile.Close();
    }
}

Пробовал разные реализации, но ничего не помогает.

Я надеюсь, что кто-то может мне помочь!

С уважением, Торстен

0 ответов

Другие вопросы по тегам