コード例 #1
0
        public void CreateFunctionMetaData_ShouldReturnIRfcFunctionMetaData()
        {
            var          connection = new RfcConnection(_interopMock.Object, RfcConfigurationOption);
            RfcErrorInfo errorInfo;

            _interopMock
            .Setup(x => x.GetFunctionDesc(It.IsAny <IntPtr>(), It.IsAny <string>(), out errorInfo))
            .Returns(FunctionDescriptionHandle);

            var functionName = "TEST";
            IRfcFunctionMetaData functionMetaData = connection.CreateFunctionMetaData(functionName);

            functionMetaData.Should().NotBeNull();
        }
コード例 #2
0
ファイル: RfcClient.cs プロジェクト: metalsimyaci/SapCo2
        public List <ParameterMetaData> ReadFunctionMetaData(string name)
        {
            using IRfcConnection rfcConnection = GetConnection();
            IRfcFunctionMetaData functionMetaData = rfcConnection.CreateFunctionMetaData(name);

            List <RfcParameterDescription> parameters = functionMetaData.GetParameterDescriptions();

            List <FieldMetaData> GetFields(IntPtr parameterTypeDescriptionHandler)
            {
                return(functionMetaData.GetFieldDescriptions(parameterTypeDescriptionHandler)
                       ?.Select(s => new FieldMetaData
                {
                    Name = s.Name,
                    Decimals = s.Decimals,
                    NucLength = s.NucLength,
                    NucOffset = s.NucOffset,
                    UcLength = s.UcLength,
                    UcOffset = s.UcOffset,
                    Type = s.Type.ToString()
                })
                       ?.ToList());
            }

            return(parameters.Select(parameter => new ParameterMetaData()
            {
                Name = parameter.Name,
                Description = parameter.ParameterText,
                DefaultValue = parameter.DefaultValue,
                Direction = parameter.Direction.ToString(),
                Decimals = parameter.Decimals,
                NumericLength = parameter.NucLength,
                Optional = parameter.Optional,
                Type = parameter.Type.ToString(),
                UcLength = parameter.UcLength,
                Fields = GetFields(parameter.TypeDescHandle)
            })
                   .ToList());
        }