public virtual void RFC_READ_TABLE( [RfcParameter(AbapName = "DELIMITER", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.IN, Length = 1, Length2 = 2)] [XmlElement("DELIMITER", IsNullable = false, Form = XmlSchemaForm.Unqualified)] String DELIMITER, [RfcParameter(AbapName = "NO_DATA", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.IN, Length = 1, Length2 = 2)] [XmlElement("NO_DATA", IsNullable = false, Form = XmlSchemaForm.Unqualified)] String NO_DATA, [RfcParameter(AbapName = "QUERY_TABLE", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = false, Direction = RFCINOUT.IN, Length = 30, Length2 = 60)] [XmlElement("QUERY_TABLE", IsNullable = false, Form = XmlSchemaForm.Unqualified)] String QUERY_TABLE, [RfcParameter(AbapName = "ROWCOUNT", RfcType = RFCTYPE.RFCTYPE_INT, Optional = true, Direction = RFCINOUT.IN, Length = 4, Length2 = 8)] [XmlElement("ROWCOUNT", IsNullable = false, Form = XmlSchemaForm.Unqualified)] Int32 ROWCOUNT, [RfcParameter(AbapName = "ROWSKIPS", RfcType = RFCTYPE.RFCTYPE_INT, Optional = true, Direction = RFCINOUT.IN, Length = 4, Length2 = 8)] [XmlElement("ROWSKIPS", IsNullable = false, Form = XmlSchemaForm.Unqualified)] Int32 ROWSKIPS, [RfcParameter(AbapName = "DATA", RfcType = RFCTYPE.RFCTYPE_ITAB, Optional = false, Direction = RFCINOUT.INOUT)] [XmlArray("DATA", IsNullable = false, Form = XmlSchemaForm.Unqualified)] [XmlArrayItem("item", IsNullable = false, Form = XmlSchemaForm.Unqualified)] ref TAB512Table DATA, [RfcParameter(AbapName = "FIELDS", RfcType = RFCTYPE.RFCTYPE_ITAB, Optional = false, Direction = RFCINOUT.INOUT)] [XmlArray("FIELDS", IsNullable = false, Form = XmlSchemaForm.Unqualified)] [XmlArrayItem("item", IsNullable = false, Form = XmlSchemaForm.Unqualified)] ref RFC_DB_FLDTable FIELDS, [RfcParameter(AbapName = "OPTIONS", RfcType = RFCTYPE.RFCTYPE_ITAB, Optional = false, Direction = RFCINOUT.INOUT)] [XmlArray("OPTIONS", IsNullable = false, Form = XmlSchemaForm.Unqualified)] [XmlArrayItem("item", IsNullable = false, Form = XmlSchemaForm.Unqualified)] ref RFC_DB_OPTTable OPTIONS ) { object[] results = null; results = this.SAPInvoke("RFC_READ_TABLE", new object[] { DELIMITER, NO_DATA, QUERY_TABLE, ROWCOUNT, ROWSKIPS, DATA, FIELDS, OPTIONS }); DATA = (TAB512Table)results[0]; FIELDS = (RFC_DB_FLDTable)results[1]; OPTIONS = (RFC_DB_OPTTable)results[2]; }
public IEnumerable <String> READ_TABLE(String Tabla, String Delimitador, List <String> Campos, List <String> Consulta) { IEnumerable <String> _DATA; RFC_READ_TABLE_ _PROXY = null; try { int ROWCOUNT = 0; int ROWSKIPS = 0; String NO_DATA = String.Empty; TAB512Table DATA = new TAB512Table(); RFC_DB_FLDTable FIELDS = new RFC_DB_FLDTable(); RFC_DB_OPTTable OPTIONS = new RFC_DB_OPTTable(); _PROXY = new RFC_READ_TABLE_(_CONFIG.STRING_CONNECT); foreach (String valor in Campos) { RFC_DB_FLD _FIELD = new RFC_DB_FLD(); _FIELD.Fieldname = valor.ToUpper().Trim(); _FIELD.Fieldtext = valor.ToUpper().Trim(); _FIELD.Length = "000000"; _FIELD.Offset = "000000"; FIELDS.Add(_FIELD); } if (Consulta != null) { foreach (String valor in Consulta) { RFC_DB_OPT _OPTION = new RFC_DB_OPT(); _OPTION.Text = valor.ToUpper().Trim(); OPTIONS.Add(_OPTION); } } Tabla = Tabla.ToUpper().Trim(); Delimitador = (Delimitador == null) ? "|" : Delimitador; _PROXY.RFC_READ_TABLE(Delimitador, NO_DATA, Tabla, ROWCOUNT, ROWSKIPS, ref DATA, ref FIELDS, ref OPTIONS); _DATA = ClearDataRFC(DATA.ToADODataTable()); } catch (Exception ex) { int _code = ex.HResult; String _ERROR = "RFC=READ_TABLE: {0}."; _DATA = null; if (_code.Equals(-2146232832)) { _ERROR = String.Format(_ERROR, "Algunos campos no existen en la tabla " + Tabla); } else { Extra.RunError(ex, "READ_TABLE"); } } finally { _PROXY.Connection.Close(); _PROXY.Dispose(); } return(_DATA); }