Exception SAP NCO问题(不支持非ABAP RFC客户端(合作伙伴类型)

Exception SAP NCO问题(不支持非ABAP RFC客户端(合作伙伴类型),exception,sap-dotnet-connector,Exception,Sap Dotnet Connector,我对SAP NCO 3.0有问题。建立连接并且SAP系统向我的服务器实现发送IDoc后,NCO引发以下异常: SAP.Middleware.Connector.RfcServerApplicationException:未捕获异常SAP.Middleware.Connector.RfcUnsupportedPartnerException:在执行RFC服务器函数ARFC_DEST_SHIP时在SAP.Middleware.Connector.RfcUnsupportedPartnerExcept

我对SAP NCO 3.0有问题。建立连接并且SAP系统向我的服务器实现发送IDoc后,NCO引发以下异常:

SAP.Middleware.Connector.RfcServerApplicationException:未捕获异常SAP.Middleware.Connector.RfcUnsupportedPartnerException:在执行RFC服务器函数ARFC_DEST_SHIP时在SAP.Middleware.Connector.RfcUnsupportedPartnerException:非ABAP RFC客户端(合作伙伴类型)中引发不支持 位于SAP.Middleware.Connector.RfcConnection.ReadUpTo(RFCGET readState、RfcFunction function、RFCID toRid) 在SAP.Middleware.Connector.RfcConnection.Dispatch()中 在SAP.Middleware.Connector.RfcTransaction.Playback()中 位于SAP.Middleware.Connector.RfcServer.arfcdestshipmp(RfcServerContext ctx,IRfcFunction func) 位于SAP.Middleware.Connector.RfcServer.InvokeServerFunction(RfcConnection conn、ServerFunctionInfo、ServerFunctionInfo、RFCServerFunctionImp)

功能实现:

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();
    }
}
class RfcFunctionImpl
{
[RfcServerFunction(Name=“STFC_CONNECTION”,默认值=false)]
公共静态void StfcConnection(RfcServerContext-servercontext,IRfcFunction-rfcffunction)
{
string dataFileName=string.Format(“{0}.idoc”,serverContex.TransactionID);
FileStream dataFile=newfilestream(dataFileName,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter writer=新的StreamWriter(数据文件);
IRfcTable iDoc=rfcFunction.GetTable(“iDoc_DATA_REC_40”);
foreach(iDoc中的IRfcStructure记录)
{
for(int i=0;i
我尝试了不同的实现,但没有任何帮助

我希望有人能帮助我

问候
Thorsten

好的,我有办法了。SAP系统必须设置为Unicode。我们需要在ServerConfig中配置RepositoryDestination。例如:参数Add(RfcConfigParameters.RepositoryDestination,“PRN_000”);谢谢你的积极反馈。你会把你的评论变成一个答案并接受它吗?这会帮助很多未来的访问者回答同样的问题。非常感谢。