/// <summary>
 /// 传入参数,并动态调用,并返回传出参数。
 /// </summary>
 public void Excute()
 {
     if (_funcMeta == null)
     {
         throw new SAPException("函数的元数据为空");
     }
     if (_funcMeta.Is_RFC == false)
     {
         throw new SAPException("非RFC函数,不能远程运行!");
     }
     HandleInput();
     SAPFunction.InvokeFunction(_sysTemName, _functionName, _inputList, out _outputList);
     HandleOutput();
 }
        /// <summary>
        /// 使用JSON调用RFC函数。
        /// </summary>
        /// <param name="sysName"></param>
        /// <param name="funame"></param>
        /// <param name="jsondata"></param>
        /// <returns></returns>
        public static string InvokeFunctionFromJson(string sysName, string funame, string jsondata)
        {
            MetaValueList list = null;

            if (String.IsNullOrWhiteSpace(jsondata))
            {
                list = new MetaValueList();
            }
            else
            {
                try
                {
                    list = JsonConvert.DeserializeObject <MetaValueList>(jsondata);
                }
                catch (Exception ee)
                {
                    return(JsonConvert.SerializeObject(ee));
                }
            }
            MetaValueList outList = null;
            string        output  = "";

            if (list != null)
            {
                SAPFunction.InvokeFunction(sysName, funame, list, out outList);
            }
            //序列化并输出结果
            output = JsonConvert.SerializeObject(outList, new JsonSerializerSettings
            {
                Error = delegate(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
                {
                    // errors.Add(args.ErrorContext.Error.Message);
                    args.ErrorContext.Handled = true;
                }
                // Converters = { new IsoDateTimeConverter() }
            });
            return(output);
        }