public BusinessObjectMethod(string sysName) { this._ObjectName = ""; this._MethodName = ""; this._Returns = new BapiReturnCollection(); this.des = SAPDestination.GetDesByName(sysName); }
public BusinessObjectMethod CreateBapi(string BusinessObjectName, string MethodName) { des = SAPDestination.GetDesByName(m_sysName); IRfcFunction function = des.Repository.CreateFunction("SWO_QUERY_API_OBJTYPES"); function["OBJECT_NAME"].SetValue(BusinessObjectName); function.Invoke(des); if (function.GetTable("OBJTYPES").RowCount == 0) { throw new Exception("Unable to find ObjectType for name '" + BusinessObjectName + "'"); } string str = function.GetTable("OBJTYPES")[0]["OBJTYPE"].GetValue().ToString(); IRfcFunction function2 = des.Repository.CreateFunction("SWO_QUERY_API_METHODS"); function2["OBJTYPE"].SetValue(str); function2["WITH_TEXTS"].SetValue(""); function2.Invoke(des); for (int i = 0; i < function2.GetTable("API_METHODS").RowCount; i++) { if (function2.GetTable("API_METHODS")[i]["METHOD"].GetValue().ToString().ToUpper().Equals(MethodName.ToUpper())) { BusinessObjectMethod method = new BusinessObjectMethod(m_sysName) { MethodName = MethodName, ObjectName = BusinessObjectName }; // RFCFunction dest = method; method.Name = function2.GetTable("API_METHODS")[i]["FUNCTION"].GetValue().ToString(); //this.AddParametersAndTablesToUndefinedFunctionObject(ref dest, method.Name); //method.Connection = this; return method; } } throw new Exception(string.Format("Unable to find method_{0}_at Object Type_1", MethodName, str)); }
public Query(string sysName) { this._Name = ""; this._UserGroup = ""; this._Variant = ""; this._Fields = new QueryFieldCollection(); this._SelectionParameters = new QuerySelectionParameterCollection(); this._des = SAPDestination.GetDesByName(sysName); }
public PlainRfcPreparedFunction(string functionName, PlainRfcStructureMapper structureMapper, RfcRepository repository, RfcDestination destination) : base(functionName) { this.repository = repository; this.destination = destination; this.structureMapper = structureMapper; }
public Transaction(string sysName) { this._BatchSteps = new BatchStepCollection(); this._TCode = ""; this._Type = TransactionType.Multiple; this._Returns = new BatchReturnCollection(); this._CustomFunctionName = ""; this._des = SAPDestination.GetDesByName(sysName); this._sysName = sysName.ToUpper().Trim(); }
public ABAPCode(string sysName) { this._sysName = sysName; this._des = SAPDestination.GetDesByName(sysName); this._code = new List<String>(); this._result = new List<String>(); this._LastError = ""; if (_des == null) { throw new SAPException(Messages.Connectionisnotvalid); } }
private static void ReadCustomerEquipments(string customerNumber, RfcDestination destination, JsonWriter writer) { writer.WritePropertyName("equipments"); writer.WriteStartArray(); // Get access to remote function module for the equipments of a customer var functionMetadata = destination.Repository.GetFunctionMetadata("BAPI_EQMT_GETLISTFORCUSTOMER"); // Create function from metadata var function = functionMetadata.CreateFunction(); // Set importing parameters function.SetValue("CUSTOMERNO", customerNumber); function.SetValue("INT_CUSTMODE", "C"); // Invoke remote function module function.Invoke(destination); // Read table data returned by function module var equipmentsTable = function.GetTable("EQUIPMENTS"); // Get access to yet another function module for the notifications of an equipment var notificationMetadata = destination.Repository.GetFunctionMetadata("BAPI_ALM_NOTIF_LIST_EQUI"); for (int i = 0; i < equipmentsTable.RowCount; i++) { writer.WriteStartObject(); equipmentsTable.CurrentIndex = i; WriteRowProperties(equipmentsTable, writer); var equipmentNumber = equipmentsTable.GetString("EQUIPMENT"); // Create function for the notifications var notificationFunction = notificationMetadata.CreateFunction(); notificationFunction.SetValue("EQUIPMENT", equipmentNumber); notificationFunction.Invoke(destination); var notificationsTable = notificationFunction.GetTable("NOTIFICATION"); writer.WritePropertyName("notifications"); writer.WriteStartArray(); for (int k = 0; k < notificationsTable.RowCount; k++) { notificationsTable.CurrentIndex = k; WriteRowObject(notificationsTable, writer); } writer.WriteEndArray(); writer.WriteEndObject(); } writer.WriteEndArray(); }
private void EnsureConnectionIsOpen() { if (!isOpen) { try { this.destination = RfcDestinationManager.GetDestination(destinationName); this.repository = this.destination.Repository; this.isOpen = true; } catch (Exception ex) { throw new SharpRfcCallException("Could not connect to SAP.", ex); } } }
private void EnsureConnectionIsOpen() { if (!IsOpen) { try { var configParameters = ConvertStringToConfigParameters(_connectionString); _destination = RfcDestinationManager.GetDestination(configParameters); IsOpen = true; } catch (Exception ex) { throw new RfcConnectionException("Could not connect to SAP.", ex); } } }
public SAPConnection(string destinationName) { _destinationName = destinationName; _config = new SAPConfiguration(); RfcDestinationManager.RegisterDestinationConfiguration(_config); _config.AddOrEditDestination(_destinationName, UserName, Password, Language, Client, ApplicationServer, SystemNumber); _destination = RfcDestinationManager.GetDestination(_destinationName); }
private static void ReadCustomerContacts(string customerNumber, RfcDestination destination, JsonWriter writer) { writer.WritePropertyName("contacts"); writer.WriteStartArray(); var functionMetadata = destination.Repository.GetFunctionMetadata("BAPI_CUSTOMER_GETCONTACTLIST"); var function = functionMetadata.CreateFunction(); var rangeTable = function.GetTable("CUSTOMERRANGE"); rangeTable.Append(); rangeTable.SetValue("SIGN", "I"); // Include rangeTable.SetValue("OPTION", "EQ"); // Equals rangeTable.SetValue("LOW", customerNumber); function.Invoke(destination); var addressesTable = function.GetTable("CONTACTADDRESSDATA"); for (int i = 0; i < addressesTable.RowCount; i++) { addressesTable.CurrentIndex = i; WriteRowObject(addressesTable, writer); } writer.WriteEndArray(); }
public Boolean CreateConnection() { try { this.con = new SapConnection(); RfcDestinationManager.RegisterDestinationConfiguration(con); this.dest = RfcDestinationManager.GetDestination("NSP"); this.repo = dest.Repository; } catch (Exception ex) { try { // Break connection RfcDestinationManager.UnregisterDestinationConfiguration(con); } catch (Exception ex2) { } throw ex; } return true; }
void TestSap() { ConectorSAP conectaSAP = new ConectorSAP(); conectaSAP.Conectar(); RfcDestination rfcDest = RfcDestinationManager.GetDestination(conectaSAP.rfc); RfcRepository rfcRep = rfcDest.Repository; IRfcFunction function; function = rfcRep.CreateFunction("ZEXTRAE_PROV"); function.Invoke(rfcDest); var result = function.GetTable("T_PROV"); var datatable = result.ToDataTable("test"); }
/// <summary> /// 调用RFC,返回一个内表参数 /// </summary> /// <param name="conn"></param> /// <param name="param">需要传入的字符串参数 例:{"P1|value1","P2|value2"}</param> /// <param name="rfcName"></param> /// <param name="irfcStructureName"></param> /// <param name="irfcStru"></param> public DataTable GetRfcOutTable(string conn, string[] param, string rfcName, string irfcStructureName, IRfcStructure irfcStru, string outTableName) { //1.登录SAP RfcConfigParameters parameters = GetRfcLoginParameters(conn);//获取登录参数 RfcDestination rd = RfcDestinationManager.GetDestination(parameters); RfcRepository repo = rd.Repository; IRfcFunction f = repo.CreateFunction(rfcName); //调用函数名 //传入字符参数 foreach (string value in param) { string[] keyvalue = value.Split('|'); f.SetValue(keyvalue[0], keyvalue[1].Trim());//传递入参数 } //传入 sap结构 参数 f.SetValue(irfcStructureName, irfcStru); f.Invoke(rd); //执行函数 return(ConvertToTable(f.GetTable(outTableName))); }
/// <summary> /// 调用RFC,返回一个IRfcFuntion,当需要返回多个参数的时候调用 /// </summary> /// <param name="conn"></param> /// <param name="rfcName"></param> /// <param name="param"></param> /// <param name="irfcStructureName"></param> /// <param name="irfcStr"></param> /// <param name="irfcTableName"></param> /// <param name="irfcTab"></param> /// <returns></returns> public IRfcFunction GetIRfcFun(string conn, string rfcName, string[] param, string irfcStructureName, IRfcStructure irfcStr, string irfcTableName, IRfcTable irfcTab) { //1.登录SAP RfcConfigParameters parameters = GetRfcLoginParameters(conn);//获取登录参数 RfcDestination rd = RfcDestinationManager.GetDestination(parameters); RfcRepository repo = rd.Repository; IRfcFunction f = repo.CreateFunction(rfcName); //调用函数名 //传入字符参数 foreach (string value in param) { string[] keyvalue = value.Split('|'); f.SetValue(keyvalue[0], keyvalue[1].Trim());//传递入参数 } //--传入 结构参数-- f.SetValue(irfcStructureName, irfcStr); //--传入 内部 参数 f.SetValue(irfcTableName, irfcTab); f.Invoke(rd); //执行函数 return(f); }
private string getNomenclatureGroupName(RfcDestination destination, string groupId) { string groupName = ""; IRfcFunction function = null; try { function = destination.Repository.CreateFunction("RFC_MERCHANDISE_GROUP_READ"); IRfcTable table = function.GetTable("PI_MGDATA"); table.Append(); table.CurrentRow.SetValue("MATKL", groupId); table.CurrentRow.SetValue("SPART", ""); table.CurrentRow.SetValue("LREF3", ""); table.CurrentRow.SetValue("WWGDA", ""); table.CurrentRow.SetValue("WWGPA", ""); table.CurrentRow.SetValue("ABTNR", ""); table.CurrentRow.SetValue("BEGRU", ""); table.CurrentRow.SetValue("SPRAS", ""); table.CurrentRow.SetValue("WGBEZ", ""); table.CurrentRow.SetValue("WGBEZ60", ""); table.CurrentRow.SetValue("FLDELETE", ""); function.Invoke(destination); } catch (RfcBaseException e) { Console.WriteLine(e.ToString()); } IRfcTable oTable = function.GetTable("po_mgdata"); for (int i = 0; i < oTable.RowCount; i++) { oTable.CurrentIndex = i; groupName = oTable.GetString("WGBEZ60"); } return(groupName); }
/// <summary> /// search rfc function in sap system. /// </summary> /// <param name="sysName"></param> /// <param name="functionName"></param> /// <param name="functionGroup"></param> /// <returns></returns> public static DataTable SearchRfcFunctions(string sysName, string functionName, string functionGroup) { try { RfcDestination destination = SAPDestination.GetDesByName(sysName); //string _funame = string.Format("*{0}*", functionName); string _funame = functionName; IRfcFunction RFC_FUNCTION_SEARCH = destination.Repository.CreateFunction("RFC_FUNCTION_SEARCH"); RFC_FUNCTION_SEARCH.SetValue("FUNCNAME", _funame); RFC_FUNCTION_SEARCH.SetValue("GROUPNAME", functionGroup); RFC_FUNCTION_SEARCH.Invoke(destination); IRfcTable FUNCTIONS = RFC_FUNCTION_SEARCH.GetTable("FUNCTIONS"); return(RfcTableToDataTable(FUNCTIONS)); } catch (RfcAbapException rfce) { throw new SAPException(rfce.Key + rfce.Message); } catch (Exception e) { throw new SAPException(e.Message); } }
public void gestiondedepositos(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA , string P_ID_CIERRE, string P_ID_ARQUEO) { try { RETORNO retorno; VIAS_PAGOGD vpgestion; BCO_DESTINO banco_destino; BCO_DEPOSITOS banco_depositos; //DETALLE_REND detallerend; vpgestiondepositos.Clear(); Retorno.Clear(); BancoDest.Clear(); BancoDeposito.Clear(); errormessage = ""; message = ""; IdCaja = ""; Efectivo = "0"; IRfcTable lt_RETORNO; IRfcTable lt_VPGESTIONBANCOS; IRfcTable lt_BANCODEST; IRfcTable lt_BANCODEPOSITOS; connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GESTION_DEPOSITOS"); BapiGetUser.SetValue("LAND", P_PAIS); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE); BapiGetUser.SetValue("ID_ARQUEO", P_ID_ARQUEO); BapiGetUser.Invoke(SapRfcDestination); //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD); //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO"); lt_VPGESTIONBANCOS = BapiGetUser.GetTable("VIAS_PAGO"); if (lt_VPGESTIONBANCOS.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_VPGESTIONBANCOS.RowCount; i++) { try { lt_VPGESTIONBANCOS.CurrentIndex = i; vpgestion = new VIAS_PAGOGD(); vpgestion.SELECCION = lt_VPGESTIONBANCOS[i].GetString("SELECCION"); vpgestion.ID_CAJA = lt_VPGESTIONBANCOS[i].GetString("ID_CAJA"); vpgestion.ID_APERTURA = lt_VPGESTIONBANCOS[i].GetString("ID_APERTURA"); vpgestion.ID_CIERRE = P_ID_CIERRE; vpgestion.TEXT_VIA_PAGO = lt_VPGESTIONBANCOS[i].GetString("TEXT_VIA_PAGO"); vpgestion.FECHA_EMISION = lt_VPGESTIONBANCOS[i].GetString("FECHA_EMISION"); vpgestion.NUM_DOC = lt_VPGESTIONBANCOS[i].GetString("NUM_DOC"); vpgestion.TEXT_BANCO = lt_VPGESTIONBANCOS[i].GetString("TEXT_BANCO"); if (lt_VPGESTIONBANCOS[i].GetString("MONEDA") == "CLP") { string Valor = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); string monedachile = string.Format("{0:0,0}", ValorAux); vpgestion.MONTO_DOC = monedachile; } else { string moneda = Convert.ToString(lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC")); decimal ValorAux = Convert.ToDecimal(moneda); vpgestion.MONTO_DOC = string.Format("{0:0,0.##}", ValorAux); } //vpgestion.MONTO_DOC = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC"); vpgestion.ZUONR = lt_VPGESTIONBANCOS[i].GetString("ZUONR"); vpgestion.FECHA_VENC = lt_VPGESTIONBANCOS[i].GetString("FECHA_VENC"); vpgestion.MONEDA = lt_VPGESTIONBANCOS[i].GetString("MONEDA"); vpgestion.ID_BANCO = lt_VPGESTIONBANCOS[i].GetString("ID_BANCO"); vpgestion.VIA_PAGO = lt_VPGESTIONBANCOS[i].GetString("VIA_PAGO"); vpgestion.SOCIEDAD = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD"); vpgestion.NUM_DEPOSITO = lt_VPGESTIONBANCOS[i].GetString("NUM_DEPOSITO"); vpgestion.USUARIO = lt_VPGESTIONBANCOS[i].GetString("USUARIO"); vpgestion.ID_DEPOSITO = lt_VPGESTIONBANCOS[i].GetString("ID_DEPOSITO"); vpgestion.FEC_DEPOSITO = lt_VPGESTIONBANCOS[i].GetString("FEC_DEPOSITO"); vpgestion.BANCO = lt_VPGESTIONBANCOS[i].GetString("BANCO"); vpgestion.CTA_BANCO = lt_VPGESTIONBANCOS[i].GetString("CTA_BANCO"); vpgestion.BELNR_DEP = lt_VPGESTIONBANCOS[i].GetString("BELNR_DEP"); vpgestion.BELNR = lt_VPGESTIONBANCOS[i].GetString("BELNR"); vpgestion.SOCIEDAD = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD"); vpgestion.HKONT = lt_VPGESTIONBANCOS[i].GetString("HKONT"); vpgestion.ID_COMPROBANTE = lt_VPGESTIONBANCOS[i].GetString("ID_COMPROBANTE"); vpgestion.ID_DETALLE = lt_VPGESTIONBANCOS[i].GetString("ID_DETALLE"); vpgestiondepositos.Add(vpgestion); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) de vias de pago"); } lt_BANCODEST = BapiGetUser.GetTable("BCO_DESTINO"); if (lt_BANCODEST.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_BANCODEST.RowCount; i++) { try { lt_BANCODEST.CurrentIndex = i; banco_destino = new BCO_DESTINO(); banco_destino.BUKRS = lt_BANCODEST[i].GetString("BUKRS"); banco_destino.HBKID = lt_BANCODEST[i].GetString("HBKID"); banco_destino.HKTID = lt_BANCODEST[i].GetString("HKTID"); banco_destino.BANKN = lt_BANCODEST[i].GetString("BANKN"); banco_destino.BANKL = lt_BANCODEST[i].GetString("BANKL"); banco_destino.BANKA = lt_BANCODEST[i].GetString("BANKA"); banco_destino.WAERS = lt_BANCODEST[i].GetString("WAERS"); banco_destino.TEXT1 = lt_BANCODEST[i].GetString("TEXT1"); BancoDest.Add(banco_destino); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) en banco destino"); } lt_BANCODEPOSITOS = BapiGetUser.GetTable("BCO_DEPOSITOS"); if (lt_BANCODEPOSITOS.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_BANCODEPOSITOS.RowCount; i++) { try { lt_BANCODEPOSITOS.CurrentIndex = i; banco_depositos = new BCO_DEPOSITOS(); banco_depositos.MANDT = lt_BANCODEPOSITOS[i].GetString("MANDT"); banco_depositos.BANKS = lt_BANCODEPOSITOS[i].GetString("BANKS"); banco_depositos.BUKRS = lt_BANCODEPOSITOS[i].GetString("BUKRS"); banco_depositos.WAERS = lt_BANCODEPOSITOS[i].GetString("WAERS"); banco_depositos.BANKL = lt_BANCODEPOSITOS[i].GetString("BANKL"); banco_depositos.HBKID = lt_BANCODEPOSITOS[i].GetString("HBKID"); banco_depositos.BANKN = lt_BANCODEPOSITOS[i].GetString("BANKN"); banco_depositos.BANKA = lt_BANCODEPOSITOS[i].GetString("BANKA"); banco_depositos.HKONT = lt_BANCODEPOSITOS[i].GetString("HKONT"); BancoDeposito.Add(banco_depositos); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.Forms.MessageBox.Show("No existe(n) registro(s) en depósitos de banco"); } lt_RETORNO = BapiGetUser.GetTable("RETORNO"); try { for (int i = 0; i < lt_RETORNO.Count(); i++) { lt_RETORNO.CurrentIndex = i; retorno = new RETORNO(); if (lt_RETORNO.GetString("TYPE") == "S") { message = message + " - " + lt_RETORNO.GetString("MESSAGE") + "-" + lt_RETORNO.GetString("MESSAGE_V1").Trim(); NumComprob = lt_RETORNO.GetString("MESSAGE_V4").Trim();; } if (lt_RETORNO.GetString("TYPE") == "E") { errormessage = errormessage + " - " + lt_RETORNO.GetString("MESSAGE"); } retorno.TYPE = lt_RETORNO.GetString("TYPE"); retorno.ID = lt_RETORNO.GetString("ID"); retorno.NUMBER = lt_RETORNO.GetString("NUMBER"); retorno.MESSAGE = lt_RETORNO.GetString("MESSAGE"); retorno.LOG_NO = lt_RETORNO.GetString("LOG_NO"); retorno.LOG_MSG_NO = lt_RETORNO.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = lt_RETORNO.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = lt_RETORNO.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = lt_RETORNO.GetString("MESSAGE_V3"); if (lt_RETORNO.GetString("MESSAGE_V4") != "") { // comprobante = ls_RETORNO.GetString("MESSAGE_V4"); } retorno.MESSAGE_V4 = lt_RETORNO.GetString("MESSAGE_V4"); retorno.PARAMETER = lt_RETORNO.GetString("PARAMETER"); retorno.ROW = lt_RETORNO.GetString("ROW"); retorno.FIELD = lt_RETORNO.GetString("FIELD"); retorno.SYSTEM = lt_RETORNO.GetString("SYSTEM"); Retorno.Add(retorno); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } } else { errormessage = retval; MessageBox.Show("No se pudo conectar a la RFC"); } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } }
public void Call(RfcRepository repo, RfcDestination dest) { }
/// <summary> /// 根据IDOC的IDOC类型,到SAP系统里查找它对应的类型定义 /// </summary> private void GetIdocTypeDefinition() { if (idoc == null) { throw new SAPException("IDOC是空值。"); } if (idoc != null) { if (String.IsNullOrWhiteSpace(this.idocType)) { throw new SAPException("空白的IDOC类型"); } RfcDestination destination = SAPDestination.GetDesByName(sysName); IRfcFunction function = destination.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE"); function.SetValue("PI_IDOCTYP", this.idocType); function.SetValue("PI_CIMTYP", this.cimType); function.Invoke(destination); IRfcTable rfctable_PT_FIELDS = function.GetTable("PT_FIELDS"); EDI_IAPI12 _EDI_IAPI12; for (int i = 0; i < rfctable_PT_FIELDS.RowCount; i++) { _EDI_IAPI12 = new EDI_IAPI12(); _EDI_IAPI12.SEGMENTTYP = rfctable_PT_FIELDS[i].GetString("SEGMENTTYP"); // 段类型(30 字符格式) _EDI_IAPI12.FIELDNAME = rfctable_PT_FIELDS[i].GetString("FIELDNAME"); // 字段名 _EDI_IAPI12.INTLEN = rfctable_PT_FIELDS[i].GetInt("INTLEN"); // 以字节计的内部长度 _EDI_IAPI12.EXTLEN = rfctable_PT_FIELDS[i].GetInt("EXTLEN"); // 输出长度 _EDI_IAPI12.FIELD_POS = rfctable_PT_FIELDS[i].GetInt("FIELD_POS"); // 字段的位置号码 _EDI_IAPI12.BYTE_FIRST = rfctable_PT_FIELDS[i].GetInt("BYTE_FIRST"); // 第一个字节的位置 _EDI_IAPI12.BYTE_LAST = rfctable_PT_FIELDS[i].GetInt("BYTE_LAST"); // 最后一个字节的位置 _EDI_IAPI12.ROLLNAME = rfctable_PT_FIELDS[i].GetString("ROLLNAME"); // 数据元素 (语义域) _EDI_IAPI12.DOMNAME = rfctable_PT_FIELDS[i].GetString("DOMNAME"); // 定义域名 _EDI_IAPI12.DATATYPE = rfctable_PT_FIELDS[i].GetString("DATATYPE"); // ABAP/4 字典: 屏幕绘制器的屏幕数据类型 _EDI_IAPI12.DESCRP = rfctable_PT_FIELDS[i].GetString("DESCRP"); // 对象的简短说明 _EDI_IAPI12.ISOCODE = rfctable_PT_FIELDS[i].GetString("ISOCODE"); // IDoc 开发:字段中的 ISO 代码标识 _EDI_IAPI12.VALUETAB = rfctable_PT_FIELDS[i].GetString("VALUETAB"); // IDoc 段字段的值表 _FIELDS.Add(_EDI_IAPI12); } IRfcTable rfctable_PT_FVALUES = function.GetTable("PT_FVALUES"); EDI_IAPI14 _EDI_IAPI14; for (int i = 0; i < rfctable_PT_FVALUES.RowCount; i++) { _EDI_IAPI14 = new EDI_IAPI14(); _EDI_IAPI14.STRNAME = rfctable_PT_FVALUES[i].GetString("STRNAME"); // 内部结构的名称 _EDI_IAPI14.FIELDNAME = rfctable_PT_FVALUES[i].GetString("FIELDNAME"); // 字段名 _EDI_IAPI14.FLDVALUE_L = rfctable_PT_FVALUES[i].GetString("FLDVALUE_L"); // 下限值 / 单一值 _EDI_IAPI14.FLDVALUE_H = rfctable_PT_FVALUES[i].GetString("FLDVALUE_H"); // 上限值 _EDI_IAPI14.DESCRP = rfctable_PT_FVALUES[i].GetString("DESCRP"); // 说明简要文字 _FVALUES.Add(_EDI_IAPI14); } IRfcTable rfctable_PT_MESSAGES = function.GetTable("PT_MESSAGES"); EDI_IAPI17 _EDI_IAPI17; for (int i = 0; i < rfctable_PT_MESSAGES.RowCount; i++) { _EDI_IAPI17 = new EDI_IAPI17(); _EDI_IAPI17.MESTYP = rfctable_PT_MESSAGES[i].GetString("MESTYP"); // 消息类型 _EDI_IAPI17.DESCRP = rfctable_PT_MESSAGES[i].GetString("DESCRP"); // 对象的简短说明 _EDI_IAPI17.IDOCTYP = rfctable_PT_MESSAGES[i].GetString("IDOCTYP"); // 基本类型 _EDI_IAPI17.CIMTYP = rfctable_PT_MESSAGES[i].GetString("CIMTYP"); // 扩展类型 _EDI_IAPI17.RELEASED = rfctable_PT_MESSAGES[i].GetString("RELEASED"); // 消息类型分配有效的版本 _MESSAGES.Add(_EDI_IAPI17); } IRfcTable rfctable_PT_SEGMENTS = function.GetTable("PT_SEGMENTS"); EDI_IAPI11 _EDI_IAPI11; for (int i = 0; i < rfctable_PT_SEGMENTS.RowCount; i++) { _EDI_IAPI11 = new EDI_IAPI11(); _EDI_IAPI11.NR = rfctable_PT_SEGMENTS[i].GetInt("NR"); // IDoc 类型中段的序列号 _EDI_IAPI11.SEGMENTTYP = rfctable_PT_SEGMENTS[i].GetString("SEGMENTTYP"); // 段类型(30 字符格式) _EDI_IAPI11.SEGMENTDEF = rfctable_PT_SEGMENTS[i].GetString("SEGMENTDEF"); // IDoc 开发:段定义 _EDI_IAPI11.QUALIFIER = rfctable_PT_SEGMENTS[i].GetString("QUALIFIER"); // 标记:IDoc 中限定的段 _EDI_IAPI11.SEGLEN = rfctable_PT_SEGMENTS[i].GetInt("SEGLEN"); // 一个字段的长度(位置的数目) _EDI_IAPI11.PARSEG = rfctable_PT_SEGMENTS[i].GetString("PARSEG"); // 段类型(30 字符格式) _EDI_IAPI11.PARPNO = rfctable_PT_SEGMENTS[i].GetInt("PARPNO"); // 父代段的序列号 _EDI_IAPI11.PARFLG = rfctable_PT_SEGMENTS[i].GetString("PARFLG"); // 父段标记:段是段组的开始 _EDI_IAPI11.MUSTFL = rfctable_PT_SEGMENTS[i].GetString("MUSTFL"); // 标记:强制条目 _EDI_IAPI11.OCCMIN = rfctable_PT_SEGMENTS[i].GetInt("OCCMIN"); // 序列中段的最小数目 _EDI_IAPI11.OCCMAX = rfctable_PT_SEGMENTS[i].GetDouble("OCCMAX"); // 序列中最大段数目 _EDI_IAPI11.HLEVEL = rfctable_PT_SEGMENTS[i].GetInt("HLEVEL"); // IDoc 类型段的层次水平 _EDI_IAPI11.DESCRP = rfctable_PT_SEGMENTS[i].GetString("DESCRP"); // 对象的简短说明 _EDI_IAPI11.GRP_MUSTFL = rfctable_PT_SEGMENTS[i].GetString("GRP_MUSTFL"); // 组标记:强制 _EDI_IAPI11.GRP_OCCMIN = rfctable_PT_SEGMENTS[i].GetInt("GRP_OCCMIN"); // 序列中最小组号 _EDI_IAPI11.GRP_OCCMAX = rfctable_PT_SEGMENTS[i].GetDouble("GRP_OCCMAX"); // 序列中最大组号 _EDI_IAPI11.REFSEGTYP = rfctable_PT_SEGMENTS[i].GetString("REFSEGTYP"); // 段类型(30 字符格式) _SEGMENTS.Add(_EDI_IAPI11); } } }
public void MontoEfectivo(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_ID_APERTURA, string P_SOCIEDAD, string P_VIA_PAGO) { resumenVp.Clear(); errormessage = ""; IRfcTable lt_resumen_vp; RESUMEN_VP resumen_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_MON_EFEC"); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD); BapiGetUser.SetValue("VIA_PAGO", P_VIA_PAGO); BapiGetUser.Invoke(SapRfcDestination); lt_resumen_vp = BapiGetUser.GetTable("RESUMEN_VP"); if (lt_resumen_vp.Count > 0) { for (int i = 0; i < lt_resumen_vp.Count(); i++) { lt_resumen_vp.CurrentIndex = i; resumen_resp = new RESUMEN_VP(); resumen_resp.LAND = lt_resumen_vp.GetString("LAND"); resumen_resp.ID_CAJA = lt_resumen_vp.GetString("ID_CAJA"); resumen_resp.SOCIEDAD = lt_resumen_vp.GetString("SOCIEDAD"); resumen_resp.SOCIEDAD_TXT = lt_resumen_vp.GetString("SOCIEDAD_TXT"); resumen_resp.VIA_PAGO = lt_resumen_vp.GetString("VIA_PAGO"); resumen_resp.TEXT1 = lt_resumen_vp.GetString("TEXT1"); resumen_resp.MONEDA = lt_resumen_vp.GetString("MONEDA"); resumen_resp.MONTO = lt_resumen_vp.GetString("MONTO"); Efectivo = Convert.ToString(Convert.ToDouble(resumen_resp.MONTO)); resumen_resp.CANT_DOCS = lt_resumen_vp.GetString("CANT_DOCS"); resumenVp.Add(resumen_resp); } Double Efect = Convert.ToDouble(Efectivo); CultureInfo elGR = CultureInfo.CreateSpecificCulture("el-GR"); Console.WriteLine(Efect.ToString("0,0", elGR)); Console.WriteLine(String.Format(elGR, "{0:0,0}", Efect)); Efectivo = Efect.ToString("0,0", elGR); Efectivo = String.Format(elGR, "{0:0,0}", Efect); } } else { errormessage = retval; } GC.Collect(); }
public SAPProxy_YBAPI_UPD_INSTKEY1(RfcDestination destination) { this.destination = destination; }
public void docsreimpresion(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_COMPROBANTE, string P_RUT , string P_ID_APERTURA, string P_LAND, string P_IDCAJA, string P_BATCH) { Documentos.Clear(); ViasPago.Clear(); Retorno.Clear(); errormessage = ""; message = ""; IRfcTable lt_documentos; IRfcTable lt_viaspago; IRfcTable lt_retorno; // PART_ABIERTAS PART_ABIERTAS_resp; DOCUMENTOS DOCUMENTOS_resp; VIAS_PAGO2 VIASPAGO_resp; RETORNO retorno_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_BUSCA_COMP_REIMP"); BapiGetUser.SetValue("ID_COMPROBANTE", P_COMPROBANTE); BapiGetUser.SetValue("RUT", P_RUT); BapiGetUser.SetValue("LAND", P_LAND); BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); BapiGetUser.SetValue("ID_CAJA", P_IDCAJA); BapiGetUser.SetValue("BATCH", P_BATCH); BapiGetUser.Invoke(SapRfcDestination); lt_documentos = BapiGetUser.GetTable("DOCUMENTOS"); lt_viaspago = BapiGetUser.GetTable("VIAS_PAGO"); lt_retorno = BapiGetUser.GetTable("RETORNO"); if (lt_documentos.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_documentos.RowCount; i++) { try { lt_documentos.CurrentIndex = i; DOCUMENTOS_resp = new DOCUMENTOS(); DOCUMENTOS_resp.MANDT = lt_documentos[i].GetString("MANDT"); DOCUMENTOS_resp.LAND = lt_documentos[i].GetString("LAND"); DOCUMENTOS_resp.ID_COMPROBANTE = lt_documentos[i].GetString("ID_COMPROBANTE"); DOCUMENTOS_resp.POSICION = lt_documentos[i].GetString("POSICION"); DOCUMENTOS_resp.CLIENTE = lt_documentos[i].GetString("CLIENTE"); DOCUMENTOS_resp.TIPO_DOCUMENTO = lt_documentos[i].GetString("TIPO_DOCUMENTO"); DOCUMENTOS_resp.SOCIEDAD = lt_documentos[i].GetString("SOCIEDAD"); DOCUMENTOS_resp.NRO_DOCUMENTO = lt_documentos[i].GetString("NRO_DOCUMENTO"); DOCUMENTOS_resp.NRO_REFERENCIA = lt_documentos[i].GetString("NRO_REFERENCIA"); DOCUMENTOS_resp.CAJERO_RESP = lt_documentos[i].GetString("CAJERO_RESP"); DOCUMENTOS_resp.CAJERO_GEN = lt_documentos[i].GetString("CAJERO_GEN"); DOCUMENTOS_resp.ID_CAJA = lt_documentos[i].GetString("ID_CAJA"); DOCUMENTOS_resp.FECHA_COMP = lt_documentos[i].GetString("FECHA_COMP"); DOCUMENTOS_resp.HORA = lt_documentos[i].GetString("HORA"); DOCUMENTOS_resp.NRO_COMPENSACION = lt_documentos[i].GetString("NRO_COMPENSACION"); DOCUMENTOS_resp.TEXTO_CABECERA = lt_documentos[i].GetString("TEXTO_CABECERA"); DOCUMENTOS_resp.NULO = lt_documentos[i].GetString("NULO"); DOCUMENTOS_resp.USR_ANULADOR = lt_documentos[i].GetString("USR_ANULADOR"); DOCUMENTOS_resp.NRO_ANULACION = lt_documentos[i].GetString("NRO_ANULACION"); DOCUMENTOS_resp.APROBADOR_ANULA = lt_documentos[i].GetString("APROBADOR_ANULA"); DOCUMENTOS_resp.TXT_ANULACION = lt_documentos[i].GetString("TXT_ANULACION"); DOCUMENTOS_resp.EXCEPCION = lt_documentos[i].GetString("EXCEPCION"); DOCUMENTOS_resp.FECHA_DOC = lt_documentos[i].GetString("FECHA_DOC"); DOCUMENTOS_resp.FECHA_VENC_DOC = lt_documentos[i].GetString("FECHA_VENC_DOC"); DOCUMENTOS_resp.NUM_CUOTA = lt_documentos[i].GetString("NUM_CUOTA"); if (lt_documentos[i].GetString("MONEDA") == "CLP") { string Valor = lt_documentos[i].GetString("MONTO_DOC").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); string Cualquiernombre = string.Format("{0:0,0}", ValorAux); DOCUMENTOS_resp.MONTO_DOC = Cualquiernombre; } else { string moneda = Convert.ToString(lt_documentos[i].GetString("MONTO_DOC")); decimal ValorAux = Convert.ToDecimal(moneda); DOCUMENTOS_resp.MONTO_DOC = string.Format("{0:0,0.##}", ValorAux); } //DOCUMENTOS_resp.MONTO_DOC = lt_documentos[i].GetString("MONTO_DOC"); if (lt_documentos[i].GetString("MONEDA") == "CLP") { string Valor = lt_documentos[i].GetString("MONTO_DIFERENCIA").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); string Cualquiernombre = string.Format("{0:0,0}", ValorAux); DOCUMENTOS_resp.MONTO_DIFERENCIA = Cualquiernombre; } else { string moneda = Convert.ToString(lt_documentos[i].GetString("MONTO_DIFERENCIA")); decimal ValorAux = Convert.ToDecimal(moneda); DOCUMENTOS_resp.MONTO_DIFERENCIA = string.Format("{0:0,0.##}", ValorAux); } //DOCUMENTOS_resp.MONTO_DIFERENCIA = lt_documentos[i].GetString("MONTO_DIFERENCIA"); DOCUMENTOS_resp.TEXTO_EXCEPCION = lt_documentos[i].GetString("TEXTO_EXCEPCION"); DOCUMENTOS_resp.PARCIAL = lt_documentos[i].GetString("PARCIAL"); DOCUMENTOS_resp.TIME = lt_documentos[i].GetString("TIME"); DOCUMENTOS_resp.APROBADOR_EX = lt_documentos[i].GetString("APROBADOR_EX"); DOCUMENTOS_resp.MONEDA = lt_documentos[i].GetString("MONEDA"); DOCUMENTOS_resp.CLASE_CUENTA = lt_documentos[i].GetString("CLASE_CUENTA"); DOCUMENTOS_resp.CLASE_DOC = lt_documentos[i].GetString("CLASE_DOC"); DOCUMENTOS_resp.NUM_CANCELACION = lt_documentos[i].GetString("NUM_CANCELACION"); DOCUMENTOS_resp.CME = lt_documentos[i].GetString("CME"); DOCUMENTOS_resp.NOTA_VENTA = lt_documentos[i].GetString("NOTA_VENTA"); DOCUMENTOS_resp.CEBE = lt_documentos[i].GetString("CEBE"); DOCUMENTOS_resp.ACC = lt_documentos[i].GetString("ACC"); Documentos.Add(DOCUMENTOS_resp); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.MessageBox.Show("No existe(n) registro(s)"); } if (lt_viaspago.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_viaspago.RowCount; i++) { try { lt_viaspago.CurrentIndex = i; VIASPAGO_resp = new VIAS_PAGO2(); VIASPAGO_resp.MANDT = lt_viaspago[i].GetString("MANDT"); VIASPAGO_resp.LAND = lt_viaspago[i].GetString("LAND"); VIASPAGO_resp.ID_COMPROBANTE = lt_viaspago[i].GetString("ID_COMPROBANTE"); VIASPAGO_resp.ID_DETALLE = lt_viaspago[i].GetString("ID_DETALLE"); VIASPAGO_resp.VIA_PAGO = lt_viaspago[i].GetString("VIA_PAGO"); if (lt_viaspago[i].GetString("MONEDA") == "CLP") { string Valor = lt_viaspago[i].GetString("MONTO").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); //decimal ValorAux = Convert.ToDecimal(Valor); decimal ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); string Cualquiernombre = string.Format("{0:0,0}", ValorAux); VIASPAGO_resp.MONTO = Cualquiernombre; } else { string moneda = Convert.ToString(lt_viaspago[i].GetString("MONTO")); decimal ValorAux = Convert.ToDecimal(moneda); VIASPAGO_resp.MONTO = string.Format("{0:0,0.##}", ValorAux); } //VIASPAGO_resp.MONTO = lt_viaspago[i].GetString("MONTO"); VIASPAGO_resp.MONEDA = lt_viaspago[i].GetString("MONEDA"); VIASPAGO_resp.BANCO = lt_viaspago[i].GetString("BANCO"); VIASPAGO_resp.EMISOR = lt_viaspago[i].GetString("EMISOR"); VIASPAGO_resp.NUM_CHEQUE = lt_viaspago[i].GetString("NUM_CHEQUE"); VIASPAGO_resp.COD_AUTORIZACION = lt_viaspago[i].GetString("COD_AUTORIZACION"); VIASPAGO_resp.NUM_CUOTAS = lt_viaspago[i].GetString("NUM_CUOTAS"); VIASPAGO_resp.FECHA_VENC = lt_viaspago[i].GetString("FECHA_VENC"); VIASPAGO_resp.TEXTO_POSICION = lt_viaspago[i].GetString("TEXTO_POSICION"); VIASPAGO_resp.ANEXO = lt_viaspago[i].GetString("ANEXO"); VIASPAGO_resp.SUCURSAL = lt_viaspago[i].GetString("SUCURSAL"); VIASPAGO_resp.NUM_CUENTA = lt_viaspago[i].GetString("NUM_CUENTA"); VIASPAGO_resp.NUM_TARJETA = lt_viaspago[i].GetString("NUM_TARJETA"); VIASPAGO_resp.NUM_VALE_VISTA = lt_viaspago[i].GetString("NUM_VALE_VISTA"); VIASPAGO_resp.PATENTE = lt_viaspago[i].GetString("PATENTE"); VIASPAGO_resp.NUM_VENTA = lt_viaspago[i].GetString("NUM_VENTA"); VIASPAGO_resp.PAGARE = lt_viaspago[i].GetString("PAGARE"); VIASPAGO_resp.FECHA_EMISION = lt_viaspago[i].GetString("FECHA_EMISION"); VIASPAGO_resp.NOMBRE_GIRADOR = lt_viaspago[i].GetString("NOMBRE_GIRADOR"); VIASPAGO_resp.CARTA_CURSE = lt_viaspago[i].GetString("CARTA_CURSE"); VIASPAGO_resp.NUM_TRANSFER = lt_viaspago[i].GetString("NUM_TRANSFER"); VIASPAGO_resp.NUM_DEPOSITO = lt_viaspago[i].GetString("NUM_DEPOSITO"); VIASPAGO_resp.CTA_BANCO = lt_viaspago[i].GetString("CTA_BANCO"); VIASPAGO_resp.IFINAN = lt_viaspago[i].GetString("IFINAN"); VIASPAGO_resp.CORRE = lt_viaspago[i].GetString("CORRE"); VIASPAGO_resp.ZUONR = lt_viaspago[i].GetString("ZUONR"); VIASPAGO_resp.HKONT = lt_viaspago[i].GetString("HKONT"); VIASPAGO_resp.PRCTR = lt_viaspago[i].GetString("PRCTR"); VIASPAGO_resp.ZNOP = lt_viaspago[i].GetString("ZNOP"); ViasPago.Add(VIASPAGO_resp); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } String Mensaje = ""; if (lt_retorno.Count > 0) { for (int i = 0; i < lt_retorno.Count(); i++) { lt_retorno.CurrentIndex = i; retorno_resp = new RETORNO(); retorno_resp.TYPE = lt_retorno.GetString("TYPE"); retorno_resp.ID = lt_retorno.GetString("ID"); retorno_resp.NUMBER = lt_retorno.GetString("NUMBER"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.LOG_NO = lt_retorno.GetString("LOG_NO"); retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1"); Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE"); retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2"); retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3"); retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4"); retorno_resp.PARAMETER = lt_retorno.GetString("PARAMETER"); retorno_resp.ROW = lt_retorno.GetString("ROW"); retorno_resp.FIELD = lt_retorno.GetString("FIELD"); retorno_resp.SYSTEM = lt_retorno.GetString("SYSTEM"); Retorno.Add(retorno_resp); } //System.Windows.MessageBox.Show(Mensaje); } //else //{ // System.Windows.MessageBox.Show("No existe(n) registro(s)"); //} GC.Collect(); } else { errormessage = retval; } GC.Collect(); }
public void datoslogin(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER , string P_SERVER, string P_IDIOMA, string P_TEMPORAL, string P_EQUIPO) { ObjDatosLogin.Clear(); IRfcTable lt_USR_CAJA; USR_CAJA USR_CAJA_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_USR_CAJA"); BapiGetUser.SetValue("UNAME", P_UNAME); BapiGetUser.SetValue("TEMPORAL", P_TEMPORAL); BapiGetUser.SetValue("EQUIPO", P_EQUIPO); try { BapiGetUser.Invoke(SapRfcDestination); lt_USR_CAJA = BapiGetUser.GetTable("USR_CAJA"); //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_USR_CAJA.RowCount; i++) { lt_USR_CAJA.CurrentIndex = i; USR_CAJA_resp = new USR_CAJA(); USR_CAJA_resp.ID_CAJA = lt_USR_CAJA[i].GetString("ID_CAJA"); USR_CAJA_resp.NOM_CAJA = lt_USR_CAJA[i].GetString("NOM_CAJA"); USR_CAJA_resp.USUARIO = lt_USR_CAJA[i].GetString("USUARIO"); USR_CAJA_resp.TIPO_USUARIO = lt_USR_CAJA[i].GetString("TIPO_USUARIO"); USR_CAJA_resp.LAND = lt_USR_CAJA[i].GetString("LAND"); USR_CAJA_resp.MONEDA = lt_USR_CAJA[i].GetString("WAERS"); ObjDatosLogin.Add(USR_CAJA_resp); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); errormessage = ex.Message; } if (errormessage == "NO_DATA") { errormessage = "No existe usuario registrado en los datos maestros"; } } else { errormessage = retval; } GC.Collect(); }
// Kiểm tra dữ liệu phát sinh public static string Prc_check_data_ps(string p_short_name, DataRow p_dr, RfcDestination p_sap) { string v_error_code = ""; // Need a repository for the metadata from the ABAP Dictionary // of the corresponding destination system. RfcRepository v_repo = p_sap.Repository; IRfcFunction v_babi = v_repo.CreateFunction("ZFM_PSCD_MAPPING_TK_DC"); IRfcStructure v_struc = v_babi.GetStructure("I_SOURCE"); v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString()); v_struc.SetValue("DOC_TYPE", p_dr["LOAI"].ToString()); v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"].ToString()); v_struc.SetValue("TIN", p_dr["TIN"].ToString()); v_struc.SetValue("PROFIT_CENTER", p_dr["MA_CHUONG"].ToString()); v_struc.SetValue("BUSINESS_AREA", p_dr["MA_KHOAN"].ToString()); v_struc.SetValue("SEGMENT", p_dr["MA_TMUC"].ToString()); v_struc.SetValue("PAY_GROUP", p_dr["TKHOAN"].ToString()); v_struc.SetValue("POSTING_DATE", p_dr["NGAY_HTOAN"].ToString()); v_struc.SetValue("START_PERIOD", p_dr["KY_PSINH_TU"].ToString()); v_struc.SetValue("END_PERIOD", p_dr["KY_PSINH_DEN"].ToString()); v_struc.SetValue("DUE_DATE", p_dr["HAN_NOP"].ToString()); v_struc.SetValue("RETURN_CODE", p_dr["MA_TKHAI"].ToString()); v_struc.SetValue("AMOUNT", p_dr["SO_TIEN"].ToString()); v_babi.Invoke(p_sap); v_error_code = v_babi.GetString("E_ERROR_CODE"); return v_error_code; }
// Modify by ManhTV3 on 5/12/2011 - START // Kiểm tra dữ liệu nợ public static string Prc_check_data_no(string p_short_name, DataRow p_dr, RfcDestination p_sap) { RfcRepository v_repo = p_sap.Repository; IRfcFunction v_babi = v_repo.CreateFunction("ZFM_PSCD_MAPPING_DC"); IRfcStructure v_struc = v_babi.GetStructure("I_SOURCE"); v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString()); v_struc.SetValue("DOC_TYPE", p_dr["LOAI"].ToString()); v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"]); v_struc.SetValue("TIN", p_dr["TIN"].ToString()); v_struc.SetValue("PROFIT_CENTER", p_dr["MA_CHUONG"].ToString()); v_struc.SetValue("BUSINESS_AREA", p_dr["MA_KHOAN"].ToString()); v_struc.SetValue("SEGMENT", p_dr["TMT_MA_TMUC"].ToString()); v_struc.SetValue("PAY_GROUP", p_dr["TKHOAN"].ToString()); v_struc.SetValue("POSTING_DATE", p_dr["NGAY_HACH_TOAN"].ToString()); v_struc.SetValue("START_PERIOD", p_dr["KYKK_TU_NGAY"].ToString()); v_struc.SetValue("END_PERIOD", p_dr["KYKK_DEN_NGAY"].ToString()); v_struc.SetValue("DUE_DATE", p_dr["HAN_NOP"].ToString()); v_struc.SetValue("RETURN_CODE", p_dr["DKT_MA"].ToString()); v_struc.SetValue("AMOUNT", p_dr["NO_CUOI_KY"].ToString()); v_babi.Invoke(p_sap); return v_babi.GetString("E_ERROR_CODE"); }
/// <summary> /// Invoca a la RFC para que prepare la tabla de retorno /// y luego la devuelve /// </summary> /// <param name="rfcDestination"></param> /// <param name="rfcFunction"></param> /// <returns></returns> private static IRfcTable getReturnTable(RfcDestination rfcDestination, IRfcFunction rfcFunction) { rfcFunction.Invoke(rfcDestination); return rfcFunction.GetTable(RFC_FUNCTION_RETURN_TABLE_NAME); }
/// <summary> /// 获取SAP连接的实例 /// </summary> /// <returns></returns> private static RfcDestination GetDestination() { if (SAPLogonConfigList.SystemList.ContainsKey(SystemName)) { try { destination = RfcDestinationManager.GetDestination(SAPLogonConfigList.SystemList[SystemName].GetParameters()); } catch (Exception e) { throw new SAPException(e.Message + "请在配置文件加上兼容配置"); } } else { try { destination = RfcDestinationManager.GetDestination(SystemName); } catch (Exception EE) { //try //{ // RfcDestinationManager.RegisterDestinationConfiguration(new BackupDestinationConfiguration()); // destination = RfcDestinationManager.GetDestination(SystemName); //} //catch (Exception e) //{ // throw new SAPException(e.Message + "请在配置文件加上兼容配置"); //} throw new SAPException(EE.Message); } } return destination; }
public void pagosmasivos(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA , string P_LAND, string P_FECHA, string P_FILE, string P_ID_APERTURA, string P_ID_CAJA, string P_PAY_CURRENCY, List <PagosMasivosNuevo> ListaExc, List <VIAS_PAGO_MASIVO> viasPagoMasivos) { objReturn2.Clear(); errormessage = ""; message = ""; try { ESTATUS p_return; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_PAGO_MASIVO"); BapiGetUser.SetValue("LAND", P_LAND); BapiGetUser.SetValue("FECHA", Convert.ToDateTime(P_FECHA.Substring(0, 10))); BapiGetUser.SetValue("PAY_CURRENCY", P_PAY_CURRENCY); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); IRfcTable GralDat = BapiGetUser.GetTable("T_EXCEL"); for (var i = 0; i < ListaExc.Count; i++) { GralDat.Append(); GralDat.SetValue("ROW", ListaExc[i].ROW); GralDat.SetValue("COL", ListaExc[i].COL); GralDat.SetValue("VALUE", ListaExc[i].VALUE); } BapiGetUser.SetValue("T_EXCEL", GralDat); IRfcTable DetalleViasPago = BapiGetUser.GetTable("VIAS_PAGO_MASIVO"); for (var i = 0; i < viasPagoMasivos.Count; i++) { DetalleViasPago.Append(); DetalleViasPago.SetValue("MANDT", viasPagoMasivos[i].MANDT); DetalleViasPago.SetValue("LAND", viasPagoMasivos[i].LAND); DetalleViasPago.SetValue("ID_COMPROBANTE", viasPagoMasivos[i].ID_COMPROBANTE); DetalleViasPago.SetValue("ID_DETALLE", viasPagoMasivos[i].ID_DETALLE); DetalleViasPago.SetValue("ID_CAJA", viasPagoMasivos[i].ID_CAJA); DetalleViasPago.SetValue("VIA_PAGO", viasPagoMasivos[i].VIA_PAGO); DetalleViasPago.SetValue("MONTO", viasPagoMasivos[i].MONTO); DetalleViasPago.SetValue("MONEDA", viasPagoMasivos[i].MONEDA); DetalleViasPago.SetValue("BANCO", viasPagoMasivos[i].BANCO); DetalleViasPago.SetValue("EMISOR", viasPagoMasivos[i].EMISOR); DetalleViasPago.SetValue("NUM_CHEQUE", viasPagoMasivos[i].NUM_CHEQUE); DetalleViasPago.SetValue("COD_AUTORIZACION", viasPagoMasivos[i].COD_AUTORIZACION); DetalleViasPago.SetValue("NUM_CUOTAS", viasPagoMasivos[i].NUM_CUOTAS); DetalleViasPago.SetValue("FECHA_VENC", Convert.ToDateTime(viasPagoMasivos[i].FECHA_VENC)); DetalleViasPago.SetValue("TEXTO_POSICION", viasPagoMasivos[i].TEXTO_POSICION); DetalleViasPago.SetValue("ANEXO", viasPagoMasivos[i].ANEXO); DetalleViasPago.SetValue("SUCURSAL", viasPagoMasivos[i].SUCURSAL); DetalleViasPago.SetValue("NUM_CUENTA", viasPagoMasivos[i].NUM_CUENTA); DetalleViasPago.SetValue("NUM_TARJETA", viasPagoMasivos[i].NUM_TARJETA); DetalleViasPago.SetValue("NUM_VALE_VISTA", viasPagoMasivos[i].NUM_VALE_VISTA); DetalleViasPago.SetValue("PATENTE", viasPagoMasivos[i].PATENTE); DetalleViasPago.SetValue("NUM_VENTA", viasPagoMasivos[i].NUM_VENTA); DetalleViasPago.SetValue("PAGARE", viasPagoMasivos[i].PAGARE); DetalleViasPago.SetValue("FECHA_EMISION", Convert.ToDateTime(viasPagoMasivos[i].FECHA_EMISION)); DetalleViasPago.SetValue("NOMBRE_GIRADOR", viasPagoMasivos[i].NOMBRE_GIRADOR); DetalleViasPago.SetValue("CARTA_CURSE", viasPagoMasivos[i].CARTA_CURSE); DetalleViasPago.SetValue("NUM_TRANSFER", viasPagoMasivos[i].NUM_TRANSFER); DetalleViasPago.SetValue("NUM_DEPOSITO", viasPagoMasivos[i].NUM_DEPOSITO); DetalleViasPago.SetValue("CTA_BANCO", viasPagoMasivos[i].CTA_BANCO); DetalleViasPago.SetValue("IFINAN", viasPagoMasivos[i].IFINAN); DetalleViasPago.SetValue("ZUONR", viasPagoMasivos[i].ZUONR); DetalleViasPago.SetValue("CORRE", viasPagoMasivos[i].CORRE); DetalleViasPago.SetValue("HKONT", viasPagoMasivos[i].HKONT); DetalleViasPago.SetValue("PRCTR", viasPagoMasivos[i].PRCTR); DetalleViasPago.SetValue("ZNOP", viasPagoMasivos[i].ZNOP); } BapiGetUser.SetValue("VIAS_PAGO_MASIVO", DetalleViasPago); BapiGetUser.Invoke(SapRfcDestination); IRfcTable retorno = BapiGetUser.GetTable("ESTATUS"); for (var i = 0; i < retorno.RowCount; i++) { retorno.CurrentIndex = i; p_return = new ESTATUS(); p_return.TYPE = retorno[i].GetString("TYPE"); if (retorno.GetString("TYPE") == "S") { message = message + " - " + retorno[i].GetString("MESSAGE"); } if (retorno.GetString("TYPE") == "E") { errormessage = errormessage + " - " + retorno[i].GetString("MESSAGE"); } p_return.ID = retorno[i].GetString("ID"); p_return.NUMBER = retorno[i].GetString("NUMBER"); p_return.MESSAGE = retorno[i].GetString("MESSAGE"); p_return.LOG_NO = retorno[i].GetString("LOG_NO"); p_return.LOG_MSG_NO = retorno[i].GetString("LOG_MSG_NO"); p_return.MESSAGE_V1 = retorno[i].GetString("MESSAGE_V1"); p_return.MESSAGE_V2 = retorno[i].GetString("MESSAGE_V2"); p_return.MESSAGE_V3 = retorno[i].GetString("MESSAGE_V3"); if (retorno[i].GetString("MESSAGE_V4") != "") { comprobante = retorno[i].GetString("MESSAGE_V4"); } //p_return.MESSAGE_V4 = retorno[i].GetString("MESSAGE_V4"); p_return.PARAMETER = retorno[i].GetString("PARAMETER"); p_return.ROW = retorno[i].GetString("ROW"); p_return.FIELD = retorno[i].GetString("FIELD"); p_return.SYSTEM = retorno[i].GetString("SYSTEM"); objReturn2.Add(p_return); } } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.Forms.MessageBox.Show(ex.Message + ex.StackTrace); } }
/// <summary> /// Devuelve la función RFC con un nombre determinado y de un destino SAP /// </summary> /// <param name="rfcDestination"></param> /// <returns></returns> private static IRfcFunction getRfcFunction(RfcDestination rfcDestination) { return rfcDestination.Repository.CreateFunction(RFC_FUNCTION_NAME); }
// Kiểm tra dữ liệu tờ khai 10/KK-TNCN public static string Prc_check_data_tk10(string p_short_name, string p_tax_code, DataRow p_dr, RfcDestination p_sap, string p_ky_chot_dl) { // Bắt đầu một session RfcSessionManager.BeginContext(p_sap); RfcRepository v_repo = p_sap.Repository; IRfcFunction v_babi = v_repo.CreateFunction("ZBAPI_DETAIL_10_CHECK"); IRfcStructure v_struc = v_babi.GetStructure("I_DATA"); v_struc.SetValue("TAXPAYER_ID", p_dr["TIN"].ToString()); v_struc.SetValue("START_PERIOD", p_dr["KYKK_TU_NGAY"].ToString()); v_struc.SetValue("END_PERIOD", p_dr["KYKK_DEN_NGAY"].ToString()); v_struc.SetValue("DUE_DATE", p_dr["KYLB_TU_NGAY"].ToString()); v_struc.SetValue("A_F08_DOANH_THU_DU_KIEN", p_dr["DTHU_DKIEN"].ToString()); v_struc.SetValue("A_F09_TY_LE_TNCT_DU_KIEN", p_dr["TL_THNHAP_DKIEN"].ToString()); v_struc.SetValue("C_F10_TNCT_DU_KIEN", p_dr["THNHAP_CTHUE_DKIEN"].ToString()); v_struc.SetValue("C_F11_GIAM_TRU_GC", p_dr["GTRU_GCANH"].ToString()); v_struc.SetValue("A_F12_GIAM_TRU_BAN_THAN", p_dr["BAN_THAN"].ToString()); v_struc.SetValue("A_F13_GIAM_TRU_NPT", p_dr["PHU_THUOC"].ToString()); v_struc.SetValue("C_F14_THU_NHAP_TINH_THUE", p_dr["THNHAP_TTHUE_DKIEN"].ToString()); v_struc.SetValue("C_F15_THUE_TNCN_DU_KIEN", p_dr["TNCN"].ToString()); v_struc.SetValue("C_F16_THUE_PN_Q1", p_dr["PB01"].ToString()); v_struc.SetValue("C_F16_KY_TINH_THUE_Q1", p_dr["KYTT01"].ToString()); v_struc.SetValue("C_F16_KY_HACH_TOAN_Q1", p_dr["HT01"].ToString()); v_struc.SetValue("C_F16_HAN_NOP_Q1", p_dr["HN01"].ToString()); v_struc.SetValue("C_F17_THUE_PN_Q2", p_dr["PB02"].ToString()); v_struc.SetValue("C_F17_KY_TINH_THUE_Q2", p_dr["KYTT02"].ToString()); v_struc.SetValue("C_F17_KY_HACH_TOAN_Q2", p_dr["HT02"].ToString()); v_struc.SetValue("C_F17_HAN_NOP_Q2", p_dr["HN02"].ToString()); v_struc.SetValue("C_F18_THUE_PN_Q3", p_dr["PB03"].ToString()); v_struc.SetValue("C_F18_KY_TINH_THUE_Q3", p_dr["KYTT03"].ToString()); v_struc.SetValue("C_F18_KY_HACH_TOAN_Q3", p_dr["HT03"].ToString()); v_struc.SetValue("C_F18_HAN_NOP_Q3", p_dr["HN03"].ToString()); v_struc.SetValue("C_F19_THUE_PN_Q4", p_dr["PB04"].ToString()); v_struc.SetValue("C_F19_KY_TINH_THUE_Q4", p_dr["KYTT04"].ToString()); v_struc.SetValue("C_F19_KY_HACH_TOAN_Q4", p_dr["HT04"].ToString()); v_struc.SetValue("C_F19_HAN_NOP_Q4", p_dr["HN04"].ToString()); v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"].ToString()); v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString()); v_struc.SetValue("F13_MST_DLT", p_dr["MST_DTK"].ToString()); v_struc.SetValue("F20_HOP_DONG_DLT_SO", p_dr["HD_DLT_SO"].ToString()); v_struc.SetValue("F_HOP_DONG_DLT_NGAY", p_dr["HD_DLT_NGAY"].ToString()); v_struc.SetValue("REVERSE_AMOUNT", p_dr["RV_SO_TIEN"].ToString()); v_babi.SetValue("I_FILE", randomFileName(p_tax_code, p_ky_chot_dl)); v_babi.Invoke(p_sap); // Kết thúc một session RfcSessionManager.EndContext(p_sap); return v_babi.GetString("E_ERROR_CODE"); }
public void tableIndivCapa(string plant, string workcenter, string onePerson, string morPerson, string startDate, string finishDate) { connect(); RfcDestination rfcDest = RfcDestinationManager.GetDestination(parms); RfcRepository rfcRep = rfcDest.Repository; IRfcFunction IReader = rfcRep.CreateFunction("ZSSCN_DYNAMIC_SELECT"); IReader.SetValue("IV_SELECT", "A~PERNR A~ENAME C~START_DATE C~FINISH_DATE C~START_TIME C~FINISH_TIME C~NOTE"); IReader.SetValue("IV_FROM", "/SSCN/LPERSON AS A INNER JOIN /SSCN/LPER_WKC AS B ON ( A~PERNR = B~PERNR ) INNER JOIN /SSCN/INDIV_CAPA AS C ON ( C~PERNR = B~PERNR )"); string scenario = ScenarioContext.Current.ScenarioInfo.Title; switch (scenario) { case "Search by plant": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "'"); break; case "Search by work center": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "'"); break; case "Search by an specific person": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Search by a group of people": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")"); break; case "Search by plant in an specific period": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'"); break; case "Search by work center in an specific period": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'"); break; case "Search by an specific person in a specific period": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'"); break; case "Search by a group of people in a specific period": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ") AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'"); break; case "Registering a capacity for one person": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Registering a capacity for two or more people": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "'"); break; case "Registering a capacity for one person that already has a capacity for that period, but without overlaping of time": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Deleting a capacity": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Deleting two or more capacities": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")"); break; case "Editing a capacity": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Editing a capacity with overlap": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Copy a capacity": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; case "Copy a capacity to more than one person": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")"); break; case "Copy a capacity with overlap": IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'"); break; } IReader.Invoke(rfcDest); string optionData = (string)IReader.GetValue("EV_RESULT_SET"); Directory.CreateDirectory("Relatorio"); filePathTxt = filePathTxt + @"\pathIndivCapa.txt"; System.IO.File.WriteAllText(filePathTxt, optionData); List <IndividualCapacity_SapTable> jsonList = JsonConvert.DeserializeObject <List <IndividualCapacity_SapTable> >(optionData); if (jsonList.Count() > 0) { //file CreateExcel4 = new IndividualCapacity_IndivCapExcel(); CreateExcel4.CreateWorkbook(filePathXlsx = filePathXlsx + @"\DadosIndivCapa.xlsx"); //Adicionar Celulas jsonList .Select((mandante, x) => new { mandante, position = x }) .ToList() .ForEach(item => CreateExcel4.AddCell(item.position, item.mandante)); //Salvando dados no excel CreateExcel4.Save(); } }
/// <summary> /// 内部处理,根据IDOC类型与扩展类型,创建空的IDOC。 /// </summary> /// <param name="IdocType">IDOC类型</param> /// <param name="Enhancement">IDOC扩展类型</param> /// <param name="CreateEmpty">如果是TRUE,将不会复制标准的IDOC段</param> /// <returns></returns> private Idoc InternalCreateIdoc(string IdocType, string Enhancement, bool CreateEmpty) { des = SAPDestination.GetDesByName(m_sysName); IdocType = IdocType.ToUpper(); IRfcFunction function = des.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE"); function["PI_IDOCTYP"].SetValue(IdocType); function["PI_CIMTYP"].SetValue(Enhancement); try { if (this.Logging) { // function.SaveToXML("IDOCTYPE_READ_COMPLETE_01_" + DateTime.Now.Ticks.ToString() + ".xml"); // function. } function.Invoke(des); if (this.Logging) { // function.SaveToXML("IDOCTYPE_READ_COMPLETE_02_" + DateTime.Now.Ticks.ToString() + ".xml"); } } catch (RfcAbapException exception) { if (!exception.Message.Trim().Equals("SEGMENT_UNKNOWN")) { throw new Exception("Get IDoc failed: " + exception.ToString()); } function["PI_RELEASE"].SetValue(" "); function.Invoke(des); } IRfcStructure structure = function.GetStructure("PE_HEADER"); Idoc idoc = new Idoc(IdocType, Enhancement) { Connection = this, MANDT = this.des.Client, Description = structure["DESCRP"].ToString() }; //IDOC类型的段定义 IRfcTable table = function.GetTable("PT_SEGMENTS"); Hashtable hashtable = new Hashtable(); for (int i = 0; i < table.RowCount; i++) { //一般来说,第一行都是主要的段定义。表示一个抬头定义。 if (table[i]["PARPNO"].GetValue().ToString() == "0000") { IdocSegment newSegment = new IdocSegment(); if (!CreateEmpty) { idoc.Segments.Add(newSegment); } newSegment.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString(); newSegment.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString(); newSegment.Description = table[i]["DESCRP"].GetValue().ToString(); int num2 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5)); newSegment.MaxOccur = (num2 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num2; if (newSegment.MaxOccur == 0) { newSegment.MaxOccur = 1; } string key = table[i]["NR"].GetValue().ToString(); hashtable.Add(key, newSegment); } else { string str2 = table[i]["PARPNO"].GetValue().ToString(); string str3 = table[i]["NR"].GetValue().ToString(); IdocSegment segment2 = (IdocSegment)hashtable[str2]; if (segment2 == null) { throw new Exception("The idoc structure is not valid"); } IdocSegment segment3 = new IdocSegment(); if (!CreateEmpty) { segment2.ChildSegments.Add(segment3); } segment3.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString(); segment3.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString(); segment3.Description = table[i]["DESCRP"].GetValue().ToString(); int num3 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5)); segment3.MaxOccur = (num3 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num3; if (segment3.MaxOccur == 0) { segment3.MaxOccur = 1; } hashtable.Add(str3, segment3); } } //查找段节点的结构定义。 IRfcTable table2 = function.GetTable("PT_FIELDS"); IDictionaryEnumerator enumerator = hashtable.GetEnumerator(); while (enumerator.MoveNext()) { IdocSegment segment4 = (IdocSegment)enumerator.Value; for (int j = 0; j < table2.RowCount; j++) { if (table2[j]["SEGMENTTYP"].GetValue().ToString().Trim() == segment4.SegmentName.Trim()) { segment4.Fields.Add(table2[j]["FIELDNAME"].GetValue().ToString(), table2[j]["DESCRP"].GetValue().ToString(), Convert.ToInt32(table2[j]["EXTLEN"].GetValue().ToString()), Convert.ToInt32(table2[j]["BYTE_FIRST"].GetValue().ToString()) - 0x40, table2[j]["DATATYPE"].GetValue().ToString(), ""); } } idoc.StoreSegmentForFurtherUse(segment4.Clone()); } return idoc; }
public List <SE_ESTATUS> EstatusCobro(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_BUKRS, string P_KUNNR, string P_BSCHL, string P_UMSKZ, string P_UMSKS, string P_GJAHR) { try { T_Retorno.Clear(); errormessage = ""; status = ""; message = ""; stringRfc = ""; protestado = ""; //IRfcStructure ls_CIERRE_CAJA; //IRfcTable lt_CIERRE_CAJA; IRfcStructure lt_SE_STATUS; //IRfcTable lt_SE_STATUS; //CERR_CAJA CERR_CAJA_resp; SE_ESTATUS retorno; //Conexion a SAP //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_STAT_COBRANZA"); BapiGetUser.SetValue("BUKRS", P_BUKRS); BapiGetUser.SetValue("KUNNR", P_KUNNR); BapiGetUser.SetValue("BSCHL", P_BSCHL); BapiGetUser.SetValue("UMSKZ", P_UMSKZ); BapiGetUser.SetValue("UMSKS", P_UMSKS); BapiGetUser.SetValue("GJAHR", P_GJAHR); BapiGetUser.Invoke(SapRfcDestination); //LLenamos los datos que retorna la estructura de la RFC //lt_CIERRE_CAJA = BapiGetUser.GetTable("ESTATUS"); protestado = BapiGetUser.GetString("PE_PROTESTADO"); lt_SE_STATUS = BapiGetUser.GetStructure("SE_ESTATUS"); // for (int i = 0; i < lt_SE_STATUS.Count(); i++) // { // lt_SE_STATUS.CurrentIndex = i; retorno = new SE_ESTATUS(); retorno.TYPE = lt_SE_STATUS.GetString("TYPE"); retorno.ID = lt_SE_STATUS.GetString("ID"); retorno.NUMBER = lt_SE_STATUS.GetString("NUMBER"); retorno.MESSAGE = lt_SE_STATUS.GetString("MESSAGE"); retorno.LOG_NO = lt_SE_STATUS.GetString("LOG_NO"); retorno.LOG_MSG_NO = lt_SE_STATUS.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = lt_SE_STATUS.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = lt_SE_STATUS.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = lt_SE_STATUS.GetString("MESSAGE_V3"); retorno.MESSAGE_V4 = lt_SE_STATUS.GetString("MESSAGE_V4"); retorno.PARAMETER = lt_SE_STATUS.GetString("PARAMETER"); retorno.ROW = lt_SE_STATUS.GetString("ROW"); retorno.FIELD = lt_SE_STATUS.GetString("FIELD"); retorno.SYSTEM = lt_SE_STATUS.GetString("SYSTEM"); T_Retorno.Add(retorno); // } } GC.Collect(); } catch (InvalidCastException ex) { Console.WriteLine("{0} Exception caught.", ex); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } return(T_Retorno); }
/// <summary> /// 初始化环境,创建连接SAP的连接对象 /// </summary> /// <returns>创建连接SAP的连接对象是否成功</returns> protected virtual object[] InitializeEnvironment() { try { mCurrentDestination = RfcDestinationManager.GetDestination(mCurrentDestinationStr); mCurrentRfcFunction = mCurrentDestination.Repository.CreateFunction(mCurrentFunctionStr); } catch (Exception e) { StringBuilder sb = new StringBuilder(); Exception ex = e; while (ex != null) { sb.Append(" { " + ex.Message.ToString() + " } "); ex = ex.InnerException; } return new object[] { false, sb.ToString() }; } return new object[] { true }; }
public void anulacioncomprobantes(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_USUARIO, string P_PASSWORD2, string P_IDCAJA) { Retorno.Clear(); Autorizado = ""; errormessage = ""; IRfcStructure lt_retorno; //IRfcTable lt_retorno; //string Autorizado; //bool Valido; ESTADO retorno_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_CHECK_JEFE_CAJA"); BapiGetUser.SetValue("PASSWORD", P_PASSWORD2); BapiGetUser.SetValue("ID_CAJA", P_IDCAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.Invoke(SapRfcDestination); Autorizado = BapiGetUser.GetString("VALIDO"); if (Autorizado == "X") { Valido = true; } // lt_retorno = BapiGetUser.GetTable("ESTADO"); lt_retorno = BapiGetUser.GetStructure("ESTADO"); String Mensaje = ""; if (lt_retorno.Count > 0) { retorno_resp = new ESTADO(); for (int i = 0; i < lt_retorno.Count(); i++) { // lt_retorno.CurrentIndex = i; retorno_resp.TYPE = lt_retorno.GetString("TYPE"); retorno_resp.ID = lt_retorno.GetString("ID"); retorno_resp.NUMBER = lt_retorno.GetString("NUMBER"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.LOG_NO = lt_retorno.GetString("LOG_NO"); retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1"); if (i == 0) { Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1"); } retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2"); retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3"); retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4"); retorno_resp.PARAMETER = lt_retorno.GetString("PARAMETER"); retorno_resp.ROW = lt_retorno.GetString("ROW"); retorno_resp.FIELD = lt_retorno.GetString("FIELD"); retorno_resp.SYSTEM = lt_retorno.GetString("SYSTEM"); Retorno.Add(retorno_resp); } if (Mensaje != "") { System.Windows.MessageBox.Show(Mensaje); } } } else { errormessage = retval; } GC.Collect(); }
/// <summary> /// 内部处理,根据IDOC类型与扩展类型,创建空的IDOC。 /// </summary> /// <param name="IdocType">IDOC类型</param> /// <param name="Enhancement">IDOC扩展类型</param> /// <param name="CreateEmpty">如果是TRUE,将不会复制标准的IDOC段</param> /// <returns></returns> private Idoc InternalCreateIdoc(string IdocType, string Enhancement, bool CreateEmpty) { des = SAPDestination.GetDesByName(m_sysName); IdocType = IdocType.ToUpper(); IRfcFunction function = des.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE"); function["PI_IDOCTYP"].SetValue(IdocType); function["PI_CIMTYP"].SetValue(Enhancement); try { if (this.Logging) { // function.SaveToXML("IDOCTYPE_READ_COMPLETE_01_" + DateTime.Now.Ticks.ToString() + ".xml"); // function. } function.Invoke(des); if (this.Logging) { // function.SaveToXML("IDOCTYPE_READ_COMPLETE_02_" + DateTime.Now.Ticks.ToString() + ".xml"); } } catch (RfcAbapException exception) { if (!exception.Message.Trim().Equals("SEGMENT_UNKNOWN")) { throw new Exception("Get IDoc failed: " + exception.ToString()); } function["PI_RELEASE"].SetValue(" "); function.Invoke(des); } IRfcStructure structure = function.GetStructure("PE_HEADER"); Idoc idoc = new Idoc(IdocType, Enhancement) { Connection = this, MANDT = this.des.Client, Description = structure["DESCRP"].ToString() }; //IDOC类型的段定义 IRfcTable table = function.GetTable("PT_SEGMENTS"); Hashtable hashtable = new Hashtable(); for (int i = 0; i < table.RowCount; i++) { //一般来说,第一行都是主要的段定义。表示一个抬头定义。 if (table[i]["PARPNO"].GetValue().ToString() == "0000") { IdocSegment newSegment = new IdocSegment(); if (!CreateEmpty) { idoc.Segments.Add(newSegment); } newSegment.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString(); newSegment.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString(); newSegment.Description = table[i]["DESCRP"].GetValue().ToString(); int num2 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5)); newSegment.MaxOccur = (num2 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num2; if (newSegment.MaxOccur == 0) { newSegment.MaxOccur = 1; } string key = table[i]["NR"].GetValue().ToString(); hashtable.Add(key, newSegment); } else { string str2 = table[i]["PARPNO"].GetValue().ToString(); string str3 = table[i]["NR"].GetValue().ToString(); IdocSegment segment2 = (IdocSegment)hashtable[str2]; if (segment2 == null) { throw new Exception("The idoc structure is not valid"); } IdocSegment segment3 = new IdocSegment(); if (!CreateEmpty) { segment2.ChildSegments.Add(segment3); } segment3.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString(); segment3.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString(); segment3.Description = table[i]["DESCRP"].GetValue().ToString(); int num3 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5)); segment3.MaxOccur = (num3 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num3; if (segment3.MaxOccur == 0) { segment3.MaxOccur = 1; } hashtable.Add(str3, segment3); } } //查找段节点的结构定义。 IRfcTable table2 = function.GetTable("PT_FIELDS"); IDictionaryEnumerator enumerator = hashtable.GetEnumerator(); while (enumerator.MoveNext()) { IdocSegment segment4 = (IdocSegment)enumerator.Value; for (int j = 0; j < table2.RowCount; j++) { if (table2[j]["SEGMENTTYP"].GetValue().ToString().Trim() == segment4.SegmentName.Trim()) { segment4.Fields.Add(table2[j]["FIELDNAME"].GetValue().ToString(), table2[j]["DESCRP"].GetValue().ToString(), Convert.ToInt32(table2[j]["EXTLEN"].GetValue().ToString()), Convert.ToInt32(table2[j]["BYTE_FIRST"].GetValue().ToString()) - 0x40, table2[j]["DATATYPE"].GetValue().ToString(), ""); } } idoc.StoreSegmentForFurtherUse(segment4.Clone()); } return(idoc); }
public void anulacioncomprobantes(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_COMPROBANTE, string P_APROBADOR_ANULACION, string P_TXT_ANULACION, string P_USUARIO, string P_IDCAJA, string P_ACCION) { Retorno.Clear(); errormessage = ""; IRfcTable lt_retorno; RETORNO retorno_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_ANULA_REC_CAJA"); BapiGetUser.SetValue("ID_COMPROBANTE", P_ID_COMPROBANTE); BapiGetUser.SetValue("APROBADOR_ANULACION", P_APROBADOR_ANULACION); BapiGetUser.SetValue("TXT_ANULACION", P_TXT_ANULACION); BapiGetUser.SetValue("ID_CAJA", P_IDCAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.SetValue("ACCION", P_ACCION); BapiGetUser.Invoke(SapRfcDestination); //lt_h_documentos = BapiGetUser.GetTable("CAB_COMP"); //lt_d_documentos = BapiGetUser.GetTable("DET_COMP"); lt_retorno = BapiGetUser.GetTable("RETORNO"); if (lt_retorno.Count > 0) { for (int i = 0; i < lt_retorno.Count(); i++) { lt_retorno.CurrentIndex = i; retorno_resp = new RETORNO(); retorno_resp.TYPE = lt_retorno.GetString("TYPE"); retorno_resp.ID = lt_retorno.GetString("ID"); retorno_resp.NUMBER = lt_retorno.GetString("NUMBER"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.LOG_NO = lt_retorno.GetString("LOG_NO"); retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1"); if (lt_retorno.GetString("TYPE") == "S") { Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V4"); NumComprobante = lt_retorno.GetString("MESSAGE_V4"); } if (lt_retorno.GetString("TYPE") == "E") { errormessage = errormessage + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1"); } retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2"); retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3"); retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4"); retorno_resp.PARAMETER = lt_retorno.GetString("PARAMETER"); retorno_resp.ROW = lt_retorno.GetString("ROW"); retorno_resp.FIELD = lt_retorno.GetString("FIELD"); retorno_resp.SYSTEM = lt_retorno.GetString("SYSTEM"); Retorno.Add(retorno_resp); } } } else { errormessage = retval; } GC.Collect(); }
/// <summary> /// 初始化RFC對象,連接參數從配置文件中取得 /// </summary> public SAP_RFC_BASE(string BU) { RfcPara.Clear(); RfcPara = new RfcConfigParameters(); if (true) { RfcConfigParameters configParams = new RfcConfigParameters(); // Name property is neccessary, otherwise, NonInvalidParameterException will be thrown configParams.Add(RfcConfigParameters.Name, "ECC"); //RfcPara.Add(RfcConfigParameters.SystemNumber, "05"); // instance number configParams.Add(RfcConfigParameters.SystemID, "D01"); //RfcPara.Add(RfcConfigParameters.User, "HWV-BG"); //RfcPara.Add(RfcConfigParameters.Password, "MESEDICU"); //RfcPara.Add(RfcConfigParameters.Client, "811"); //RfcPara.Add(RfcConfigParameters.Language, "ZF"); //RfcPara.Add(RfcConfigParameters.MessageServerHost, "10.134.108.111"); ////configParams.Add(RfcConfigParameters.GatewayHost,"10.134.108.122"); //RfcPara.Add(RfcConfigParameters.LogonGroup, "CNSBG_800"); //RfcPara.Add(RfcConfigParameters.SystemID, "CNP"); //RfcPara.Add(RfcConfigParameters.Name, "CON1"); // modify by fgg 2018.04.16 begin //RfcPara.Add(RfcConfigParameters.SystemNumber, "01"); //RfcPara.Add(RfcConfigParameters.User, "HWV-BG"); //RfcPara.Add(RfcConfigParameters.Password, "MESEDICU"); //RfcPara.Add(RfcConfigParameters.Client, "811"); //RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString()); //RfcPara.Add(RfcConfigParameters.Language, "ZF"); //RfcPara.Add(RfcConfigParameters.PoolSize, "5"); //RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10"); //RfcPara.Add(RfcConfigParameters.GatewayHost,"10.134.108.122"); //RfcPara.Add(RfcConfigParameters.LogonGroup, "CNSBG"); // modify by fgg 2018.04.16 end RfcPara.Add(RfcConfigParameters.SystemNumber, //"01"); System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_SystemNumber"]); RfcPara.Add(RfcConfigParameters.User, System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_User"]); RfcPara.Add(RfcConfigParameters.Password, System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Password"]); RfcPara.Add(RfcConfigParameters.Client, System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Client"]); RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString()); RfcPara.Add(RfcConfigParameters.Language, System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Language"]); RfcPara.Add(RfcConfigParameters.PoolSize, "5"); RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10"); //RfcPara.Add(RfcConfigParameters.MessageServerHost, // System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_MessageServerHost"]); RfcPara.Add(RfcConfigParameters.GatewayHost, "10.134.108.122"); //RfcConfigParameters.MessageServerHost //RfcConfigParameters.MessageServerService RfcPara.Add(RfcConfigParameters.LogonGroup, System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_LogonGroup"]); } else { RfcPara.Add(RfcConfigParameters.AppServerHost, "10.134.108.152"); RfcPara.Add(RfcConfigParameters.SystemNumber, "00"); RfcPara.Add(RfcConfigParameters.User, "NSGBG"); //"NSGBG"); RfcPara.Add(RfcConfigParameters.Password, "MESEDICU"); RfcPara.Add(RfcConfigParameters.Client, "800"); RfcPara.Add(RfcConfigParameters.Language, "EN"); RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString()); RfcPara.Add(RfcConfigParameters.PoolSize, "5"); RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10"); } //RfcConfigParameters.LogonGroup RfcPara.Add(RfcConfigParameters.Codepage, "8300"); RfcDest = RfcDestinationManager.GetDestination(RfcPara); }
public static string GetAllVendor(string P_DATE_from, string P_DATE_TO) { string result = ""; try { IRfcTable IRetTable = null; List <Z_MM_QUBE_LIFNR> Z_MM_QUBE_LIFNR_List = new List <Z_MM_QUBE_LIFNR>(); RfcConfigParameters parms = RFC.GetSettingParms(); RfcDestination rfcDest = RfcDestinationManager.GetDestination(parms); RfcRepository rfcRep = rfcDest.Repository; IRfcFunction IReader = rfcRep.CreateFunction("Z_MM_QUBE_LIFNR"); IReader.SetValue("P_DATE_from", P_DATE_from); IReader.SetValue("P_DATE_TO", P_DATE_TO); IReader.Invoke(rfcDest); IRetTable = IReader.GetTable("ET_LFA1"); Z_MM_QUBE_LIFNR_List = IRetTable.AsQueryable().Select(x => new Z_MM_QUBE_LIFNR { LIFNR = x.GetString("LIFNR") ?? "", NAME1 = x.GetString("NAME1") ?? "", ZZAUTH = x.GetString("ZZAUTH") ?? "", LAND1 = x.GetString("LAND1") ?? "", SORTL = x.GetString("SORTL") ?? "", ERDAT = x.GetString("ERDAT") ?? "", UDATE = x.GetString("UDATE") ?? "" } ).ToList(); using (var db = new CubeRFCEntities()) { var VendorsList = db.Vendor.AsEnumerable().Select(x => x.BatchNo).ToList(); int BatchNo = VendorsList.Count == 0?1:VendorsList.Max() + 1; foreach (var item in Z_MM_QUBE_LIFNR_List) { db.Vendor.Add(new Vendor() { LIFNR = item.LIFNR, NAME1 = item.NAME1, ZZAUTH = item.ZZAUTH, LAND1 = item.LAND1, SORTL = item.SORTL, ERDAT = DateTime.Parse(item.ERDAT), UDATE = item.UDATE == "0000-00-00" ? DateTime.Parse("1900-01-01") : DateTime.Parse(item.UDATE), CreateDate = DateTime.Now, BatchNo = BatchNo }); } db.SaveChanges(); } result = JsonConvert.SerializeObject(Z_MM_QUBE_LIFNR_List); } catch (Exception e) { result = e.ToString(); //發送通知信給開發者 string strMailTitle = "系統發生錯誤"; string str_mailbody = e.ToString(); Mail.Send(strMailTitle, result); } return(result); }
public void pagodocumentosingreso(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_SOCIEDAD, List <DetalleViasPago> P_VIASPAGO, List <T_DOCUMENTOS> P_DOCSAPAGAR, string P_PAIS, string P_MONEDA, string P_CAJA, string P_CAJERO, string P_INGRESO, string P_APAGAR) { try { T_Retorno.Clear(); pagomessage = ""; status = ""; comprobante = ""; message = ""; stringRfc = ""; IRfcTable lt_PAGO_DOCS; IRfcTable lt_PAGO_MESS; // CERR_CAJA CERR_CAJA_resp; ESTATUS retorno; T_Retorno.Clear(); //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REC_Y_FAC"); BapiGetUser.SetValue("ID_CAJA", P_CAJA); BapiGetUser.SetValue("PAY_CURRENCY", P_MONEDA); BapiGetUser.SetValue("LAND", P_PAIS); BapiGetUser.SetValue("TOTAL_FACTURAS", Convert.ToDouble(P_APAGAR)); BapiGetUser.SetValue("TOTAL_VIAS", Convert.ToDouble(P_INGRESO)); P_INGRESO = P_INGRESO.Replace(",", ""); P_INGRESO = P_INGRESO.Replace(".", ""); double Diferencia = Convert.ToDouble(P_APAGAR) - Convert.ToDouble(P_INGRESO); BapiGetUser.SetValue("DIFERENCIA", Convert.ToDouble(P_APAGAR) - Convert.ToDouble(P_INGRESO)); IRfcTable GralDat3 = BapiGetUser.GetTable("RETURN"); try { if (Diferencia != 0) { GralDat3.Append(); GralDat3.SetValue("TYPE", "X"); GralDat3.SetValue("ID", ""); GralDat3.SetValue("NUMBER", ""); GralDat3.SetValue("MESSAGE", ""); GralDat3.SetValue("LOG_NO", ""); GralDat3.SetValue("LOG_MSG_NO", ""); GralDat3.SetValue("MESSAGE_V1", ""); GralDat3.SetValue("MESSAGE_V2", ""); GralDat3.SetValue("MESSAGE_V3", ""); GralDat3.SetValue("MESSAGE_V4", ""); GralDat3.SetValue("PARAMETER", ""); GralDat3.SetValue("ROW", ""); GralDat3.SetValue("FIELD", ""); GralDat3.SetValue("SYSTEM", ""); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); } BapiGetUser.SetValue("RETURN", GralDat3); IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO"); try { for (var i = 0; i < P_VIASPAGO.Count; i++) { GralDat.Append(); GralDat.SetValue("MANDT", P_VIASPAGO[i].MANDT); GralDat.SetValue("LAND", P_VIASPAGO[i].LAND); GralDat.SetValue("ID_COMPROBANTE", P_VIASPAGO[i].ID_COMPROBANTE); GralDat.SetValue("ID_DETALLE", P_VIASPAGO[i].ID_DETALLE); GralDat.SetValue("VIA_PAGO", P_VIASPAGO[i].VIA_PAGO); double Monto = Convert.ToDouble(P_VIASPAGO[i].MONTO); // 100; if (P_VIASPAGO[i].MONEDA == "CLP") { Monto = Monto / 100; GralDat.SetValue("MONTO", Convert.ToString(Monto)); } else { GralDat.SetValue("MONTO", P_VIASPAGO[i].MONTO); } GralDat.SetValue("MONEDA", P_VIASPAGO[i].MONEDA); if (P_VIASPAGO[i].BANCO != "") { GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO.Substring(0, 3)); } else { GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO); } GralDat.SetValue("EMISOR", P_VIASPAGO[i].EMISOR); GralDat.SetValue("NUM_CHEQUE", P_VIASPAGO[i].NUM_CHEQUE); GralDat.SetValue("COD_AUTORIZACION", P_VIASPAGO[i].COD_AUTORIZACION); GralDat.SetValue("NUM_CUOTAS", P_VIASPAGO[i].NUM_CUOTAS); GralDat.SetValue("FECHA_VENC", Convert.ToDateTime(P_VIASPAGO[i].FECHA_VENC)); GralDat.SetValue("TEXTO_POSICION", P_VIASPAGO[i].TEXTO_POSICION); GralDat.SetValue("ANEXO", P_VIASPAGO[i].ANEXO); GralDat.SetValue("SUCURSAL", P_VIASPAGO[i].SUCURSAL); GralDat.SetValue("NUM_CUENTA", P_VIASPAGO[i].NUM_CUENTA); GralDat.SetValue("NUM_TARJETA", P_VIASPAGO[i].NUM_TARJETA); GralDat.SetValue("NUM_VALE_VISTA", P_VIASPAGO[i].NUM_VALE_VISTA); GralDat.SetValue("PATENTE", P_VIASPAGO[i].PATENTE); GralDat.SetValue("NUM_VENTA", P_VIASPAGO[i].NUM_VENTA); GralDat.SetValue("PAGARE", P_VIASPAGO[i].PAGARE); GralDat.SetValue("FECHA_EMISION", Convert.ToDateTime(P_VIASPAGO[i].FECHA_EMISION)); GralDat.SetValue("NOMBRE_GIRADOR", P_VIASPAGO[i].NOMBRE_GIRADOR); GralDat.SetValue("CARTA_CURSE", P_VIASPAGO[i].CARTA_CURSE); GralDat.SetValue("NUM_TRANSFER", P_VIASPAGO[i].NUM_TRANSFER); GralDat.SetValue("NUM_DEPOSITO", P_VIASPAGO[i].NUM_DEPOSITO); GralDat.SetValue("CTA_BANCO", P_VIASPAGO[i].CTA_BANCO); GralDat.SetValue("IFINAN", P_VIASPAGO[i].IFINAN); GralDat.SetValue("CORRE", P_VIASPAGO[i].CORRE); GralDat.SetValue("ZUONR", P_VIASPAGO[i].ZUONR); GralDat.SetValue("HKONT", P_VIASPAGO[i].HKONT); GralDat.SetValue("PRCTR", P_VIASPAGO[i].PRCTR); GralDat.SetValue("ZNOP", P_VIASPAGO[i].ZNOP); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); } BapiGetUser.SetValue("VIAS_PAGO", GralDat); IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS"); try { for (var i = 0; i < P_DOCSAPAGAR.Count; i++) { GralDat2.Append(); GralDat2.SetValue("MANDT", ""); GralDat2.SetValue("LAND", P_PAIS); GralDat2.SetValue("ID_COMPROBANTE", ""); GralDat2.SetValue("POSICION", ""); GralDat2.SetValue("CLIENTE", P_DOCSAPAGAR[i].RUTCLI); GralDat2.SetValue("TIPO_DOCUMENTO", P_DOCSAPAGAR[i].CLASE_DOC); GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD); GralDat2.SetValue("NRO_DOCUMENTO", P_DOCSAPAGAR[i].NDOCTO); GralDat2.SetValue("NRO_REFERENCIA", P_DOCSAPAGAR[i].NREF); GralDat2.SetValue("CAJERO_RESP", P_CAJERO); GralDat2.SetValue("CAJERO_GEN", ""); GralDat2.SetValue("ID_CAJA", P_CAJA); GralDat2.SetValue("NRO_COMPENSACION", ""); GralDat2.SetValue("TEXTO_CABECERA", ""); GralDat2.SetValue("NULO", ""); GralDat2.SetValue("USR_ANULADOR", ""); GralDat2.SetValue("NRO_ANULACION", ""); GralDat2.SetValue("APROBADOR_ANULA", ""); GralDat2.SetValue("TXT_ANULACION", ""); GralDat2.SetValue("EXCEPCION", ""); GralDat2.SetValue("FECHA_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECHA_DOC)); GralDat2.SetValue("FECHA_VENC_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECVENCI)); GralDat2.SetValue("NUM_CUOTA", ""); GralDat2.SetValue("MONTO_DOC", P_DOCSAPAGAR[i].MONTO.Trim()); GralDat2.SetValue("MONTO_DIFERENCIA", 0); GralDat2.SetValue("TEXTO_EXCEPCION", ""); GralDat2.SetValue("PARCIAL", ""); GralDat2.SetValue("APROBADOR_EX", ""); GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA.Trim()); GralDat2.SetValue("CLASE_CUENTA", "D"); GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC); GralDat2.SetValue("NUM_CANCELACION", ""); GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME); GralDat2.SetValue("NOTA_VENTA", ""); GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE); GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); } BapiGetUser.SetValue("DOCUMENTOS", GralDat2); BapiGetUser.Invoke(SapRfcDestination); //LLenamos los datos que retorna la estructura de la RFC //pagomessage = BapiGetUser.GetString("E_MSJ"); //id_error = BapiGetUser.GetInt("E_ID_MSJ"); //message = BapiGetUser.GetString("E_AUGBL"); lt_PAGO_DOCS = BapiGetUser.GetTable("RETURN"); for (int i = 0; i < lt_PAGO_DOCS.Count(); i++) { lt_PAGO_DOCS.CurrentIndex = i; retorno = new ESTATUS(); if (lt_PAGO_DOCS.GetString("TYPE") == "S") { message = message + " - " + lt_PAGO_DOCS.GetString("MESSAGE") + "\n"; } if (lt_PAGO_DOCS.GetString("TYPE") == "E") { pagomessage = pagomessage + " - " + lt_PAGO_DOCS.GetString("MESSAGE") + "\n"; } retorno.TYPE = lt_PAGO_DOCS.GetString("TYPE"); retorno.ID = lt_PAGO_DOCS.GetString("ID"); retorno.NUMBER = lt_PAGO_DOCS.GetString("NUMBER"); retorno.MESSAGE = lt_PAGO_DOCS.GetString("MESSAGE"); retorno.LOG_NO = lt_PAGO_DOCS.GetString("LOG_NO"); retorno.LOG_MSG_NO = lt_PAGO_DOCS.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = lt_PAGO_DOCS.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = lt_PAGO_DOCS.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = lt_PAGO_DOCS.GetString("MESSAGE_V3"); if (lt_PAGO_DOCS.GetString("MESSAGE_V4") != "") { comprobante = lt_PAGO_DOCS.GetString("MESSAGE_V4"); } retorno.MESSAGE_V4 = lt_PAGO_DOCS.GetString("MESSAGE_V4"); retorno.PARAMETER = lt_PAGO_DOCS.GetString("PARAMETER"); retorno.ROW = lt_PAGO_DOCS.GetString("ROW"); retorno.FIELD = lt_PAGO_DOCS.GetString("FIELD"); retorno.SYSTEM = lt_PAGO_DOCS.GetString("SYSTEM"); T_Retorno.Add(retorno); } } GC.Collect(); } catch (Exception ex) { Console.WriteLine("{0} Exception caught.", ex); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } }
public async Task BAPI_GOODSMVT_CREATE(IList <GOODSMVT_ITEM> dt) { try { RfcDestination dest = GetDestination(); RfcRepository repository = dest.Repository; RfcSessionManager.BeginContext(dest); IRfcFunction func = repository.CreateFunction("BAPI_GOODSMVT_CREATE"); string message = null; IRfcStructure rfcStructGMItem = null; IRfcTable rfcTableGMItem = func.GetTable("GOODSMVT_ITEM"); IRfcStructure stru; IRfcTable result; //set parm rfcStructGMItem = repository.GetStructureMetadata("BAPI2017_GM_ITEM_CREATE").CreateStructure(); foreach (var item in dt) { rfcStructGMItem.SetValue("MATERIAL", item.material); rfcStructGMItem.SetValue("PLANT", item.plant); rfcStructGMItem.SetValue("STGE_LOC", item.stge_loc); rfcStructGMItem.SetValue("BATCH", item.batch); rfcStructGMItem.SetValue("MOVE_TYPE", item.move_type); rfcStructGMItem.SetValue("ENTRY_QNT", item.entry_qnt); rfcStructGMItem.SetValue("COST_OBJ", item.cost_obj); rfcStructGMItem.SetValue("ENTRY_UOM", item.entry_uom); } rfcTableGMItem.Insert(rfcStructGMItem); IRfcStructure rfcStructGMCode = null; rfcStructGMCode = func.GetStructure("GOODSMVT_CODE"); if (dt.Count > 0) { if (dt[0].move_type == "291") { rfcStructGMCode.SetValue("GM_CODE", "03"); } else if (dt[0].move_type == "292") { rfcStructGMCode.SetValue("GM_CODE", "06"); } } IRfcStructure rfcStructGMHeader = null; rfcStructGMHeader = func.GetStructure("GOODSMVT_HEADER"); rfcStructGMHeader.SetValue("PSTNG_DATE", "20191028"); rfcStructGMHeader.SetValue("DOC_DATE", "20191028"); //call function log.Debug("BAPI_GOODSMVT_CREATE => Start"); func.Invoke(dest); log.Debug("BAPI_GOODSMVT_CREATE => Done"); //log result result = func.GetTable("RETURN"); for (int k = 0; k < result.RowCount; k++) { stru = result[k]; message = stru.GetValue("MESSAGE").ToString(); log.Debug(string.Format("MESSAGE:{0}", message)); } if (result.RowCount == 0) { string doc = func.GetValue("MATERIALDOCUMENT").ToString(); string year = func.GetValue("MATDOCUMENTYEAR").ToString(); func = repository.CreateFunction("BAPI_TRANSACTION_COMMIT"); func.SetValue("WAIT", "X"); func.Invoke(dest); stru = func.GetStructure("RETURN"); MessageBox.Show(doc); } else { func = repository.CreateFunction("BAPI_TRANSACTION_ROLLBACK"); func.Invoke(dest); MessageBox.Show(message); } RfcSessionManager.EndContext(dest); } catch (Exception ex) { throw ex; } }
public void arqueocaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER , string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_DATUMDESDE, string P_DATUMHASTA, string P_USUARIO , string P_PAIS, string P_MONEDALOCAL, string P_ID_APERTURA, string P_ID_CIERRE, string P_IND_ARQUEO, string P_ID_ARQUEO_IN , string P_MTO_APERTURA, List <DETALLE_ARQUEO> P_TOTALEFECTIVO) { try { ESTATUS retorno; DETALLE_VP detallevp; RESUMEN_VP resumenvp; DETALLE_ARQUEO detallerend; T_Retorno.Clear(); detalle_rend.Clear(); detalle_viapago.Clear(); resumen_viapago.Clear(); errormessage = ""; message = ""; diferencia = ""; id_arqueo = ""; IRfcTable ls_RETORNO; IRfcTable lt_DETALLE_VP; IRfcTable lt_RESUMEN_VP; IRfcTable lt_DETALLE_REND; connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_ARQUEO_CAJA_2"); BapiGetUser.SetValue("LAND", P_PAIS); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); // Buscar en log de apertura BapiGetUser.SetValue("MONEDA_LOCAL", P_MONEDALOCAL); // Moneda BapiGetUser.SetValue("ID_ARQUEO_IN", P_ID_ARQUEO_IN); // "" BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE); // "" BapiGetUser.SetValue("IND_ARQUEO", P_IND_ARQUEO); //"A" Arqueo BapiGetUser.SetValue("MTO_APERTURA", P_MTO_APERTURA); // Buscar en log de apertura IRfcTable GralDat2 = BapiGetUser.GetTable("DETALLE_ARQUEO"); try { for (var i = 0; i < P_TOTALEFECTIVO.Count; i++) { GralDat2.Append(); GralDat2.SetValue("LAND", P_TOTALEFECTIVO[i].LAND); GralDat2.SetValue("ID_CAJA", P_TOTALEFECTIVO[i].ID_CAJA); GralDat2.SetValue("USUARIO", P_TOTALEFECTIVO[i].USUARIO); GralDat2.SetValue("SOCIEDAD", P_TOTALEFECTIVO[i].SOCIEDAD); GralDat2.SetValue("FECHA_REND", Convert.ToDateTime(P_TOTALEFECTIVO[i].FECHA_REND)); GralDat2.SetValue("HORA_REND", Convert.ToDateTime(P_TOTALEFECTIVO[i].HORA_REND)); GralDat2.SetValue("MONEDA", P_TOTALEFECTIVO[i].MONEDA); GralDat2.SetValue("VIA_PAGO", P_TOTALEFECTIVO[i].VIA_PAGO); GralDat2.SetValue("TIPO_MONEDA", P_TOTALEFECTIVO[i].TIPO_MONEDA); GralDat2.SetValue("CANTIDAD_MON", P_TOTALEFECTIVO[i].CANTIDAD_MON); GralDat2.SetValue("SUMA_MON_BILL", P_TOTALEFECTIVO[i].SUMA_MON_BILL); GralDat2.SetValue("CANTIDAD_DOC", P_TOTALEFECTIVO[i].CANTIDAD_DOC); GralDat2.SetValue("SUMA_DOCS", P_TOTALEFECTIVO[i].SUMA_DOCS); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } BapiGetUser.SetValue("DETALLE_ARQUEO", GralDat2); BapiGetUser.Invoke(SapRfcDestination); diferencia = BapiGetUser.GetString("DIFERENCIA"); if (diferencia.Contains(",")) { diferencia = diferencia.Replace(",", ""); diferencia = diferencia.Substring(0, diferencia.Length - 2); } id_arqueo = BapiGetUser.GetString("ID_ARQUEO"); lt_DETALLE_VP = BapiGetUser.GetTable("DETALLE_VP"); // try { for (int i = 0; i < lt_DETALLE_VP.Count(); i++) { lt_DETALLE_VP.CurrentIndex = i; detallevp = new DETALLE_VP(); detallevp.SOCIEDAD = lt_DETALLE_VP.GetString("SOCIEDAD"); detallevp.SOCIEDAD_TXT = lt_DETALLE_VP.GetString("SOCIEDAD_TXT"); detallevp.ID_COMPROBANTE = lt_DETALLE_VP.GetString("ID_COMPROBANTE"); detallevp.ID_DETALLE = lt_DETALLE_VP.GetString("ID_DETALLE"); detallevp.VIA_PAGO = lt_DETALLE_VP.GetString("VIA_PAGO"); detallevp.MONTO = lt_DETALLE_VP.GetString("MONTO"); detallevp.MONEDA = lt_DETALLE_VP.GetString("MONEDA"); detallevp.BANCO = lt_DETALLE_VP.GetString("BANCO"); detallevp.BANCO_TXT = lt_DETALLE_VP.GetString("BANCO_TXT"); detallevp.EMISOR = lt_DETALLE_VP.GetString("EMISOR"); detallevp.NUM_CHEQUE = lt_DETALLE_VP.GetString("NUM_CHEQUE"); detallevp.COD_AUTORIZACION = lt_DETALLE_VP.GetString("COD_AUTORIZACION"); detallevp.CLIENTE = lt_DETALLE_VP.GetString("CLIENTE"); detallevp.NRO_DOCUMENTO = lt_DETALLE_VP.GetString("NRO_DOCUMENTO"); detallevp.NUM_CUOTAS = lt_DETALLE_VP.GetString("NUM_CUOTAS"); detallevp.FECHA_VENC = lt_DETALLE_VP.GetString("FECHA_VENC"); detallevp.FECHA_EMISION = lt_DETALLE_VP.GetString("FECHA_EMISION"); detallevp.NOTA_VENTA = lt_DETALLE_VP.GetString("NOTA_VENTA"); detallevp.TEXTO_POSICION = lt_DETALLE_VP.GetString("TEXTO_POSICION"); detallevp.NULO = lt_DETALLE_VP.GetString("NULO"); detallevp.NRO_REFERENCIA = lt_DETALLE_VP.GetString("NRO_REFERENCIA"); detallevp.TIPO_DOCUMENTO = lt_DETALLE_VP.GetString("TIPO_DOCUMENTO"); detalle_viapago.Add(detallevp); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP"); //Resumen de Vias de Pago try { for (int i = 0; i < lt_RESUMEN_VP.Count(); i++) { lt_RESUMEN_VP.CurrentIndex = i; resumenvp = new RESUMEN_VP(); resumenvp.LAND = lt_RESUMEN_VP.GetString("LAND"); resumenvp.ID_CAJA = lt_RESUMEN_VP.GetString("ID_CAJA"); resumenvp.SOCIEDAD = lt_RESUMEN_VP.GetString("SOCIEDAD"); resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT"); resumenvp.VIA_PAGO = lt_RESUMEN_VP.GetString("VIA_PAGO"); resumenvp.TEXT1 = lt_RESUMEN_VP.GetString("TEXT1"); resumenvp.MONEDA = lt_RESUMEN_VP.GetString("MONEDA"); resumenvp.MONTO = lt_RESUMEN_VP.GetString("MONTO"); resumenvp.CANT_DOCS = lt_RESUMEN_VP.GetString("CANT_DOCS"); resumen_viapago.Add(resumenvp); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_ARQUEO"); //Detalle de efectivo try { for (int i = 0; i < lt_DETALLE_REND.Count(); i++) { lt_DETALLE_REND.CurrentIndex = i; detallerend = new DETALLE_ARQUEO(); detallerend.LAND = lt_DETALLE_REND.GetString("LAND"); detallerend.ID_CAJA = lt_DETALLE_REND.GetString("ID_CAJA"); detallerend.USUARIO = lt_DETALLE_REND.GetString("USUARIO"); detallerend.SOCIEDAD = lt_DETALLE_REND.GetString("SOCIEDAD"); detallerend.FECHA_REND = lt_DETALLE_REND.GetString("FECHA_REND"); detallerend.HORA_REND = lt_DETALLE_REND.GetString("HORA_REND"); detallerend.MONEDA = lt_DETALLE_REND.GetString("MONEDA"); detallerend.VIA_PAGO = lt_DETALLE_REND.GetString("VIA_PAGO"); //Efectivo detallerend.TIPO_MONEDA = lt_DETALLE_REND.GetString("TIPO_MONEDA"); //Denominacion detallerend.CANTIDAD_MON = lt_DETALLE_REND.GetString("CANTIDAD_MON"); //Cuantos?? detallerend.SUMA_MON_BILL = lt_DETALLE_REND.GetString("SUMA_MON_BILL"); //Cantidd*denominacion detallerend.CANTIDAD_DOC = lt_DETALLE_REND.GetString("CANTIDAD_DOC"); //"" detallerend.SUMA_DOCS = lt_DETALLE_REND.GetString("SUMA_DOCS"); //"" detalle_rend.Add(detallerend); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } ls_RETORNO = BapiGetUser.GetTable("RETORNO"); try { for (int i = 0; i < ls_RETORNO.Count(); i++) { ls_RETORNO.CurrentIndex = i; retorno = new ESTATUS(); if (ls_RETORNO.GetString("TYPE") == "S") { message = message + " - " + ls_RETORNO.GetString("MESSAGE"); if (id_arqueo == "") { id_arqueo = ls_RETORNO.GetString("MESSAGE_V1"); } } if (ls_RETORNO.GetString("TYPE") == "E") { errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE"); } retorno.TYPE = ls_RETORNO.GetString("TYPE"); retorno.ID = ls_RETORNO.GetString("ID"); retorno.NUMBER = ls_RETORNO.GetString("NUMBER"); retorno.MESSAGE = ls_RETORNO.GetString("MESSAGE"); retorno.LOG_NO = ls_RETORNO.GetString("LOG_NO"); retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3"); if (ls_RETORNO.GetString("MESSAGE_V4") != "") { } retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4"); retorno.PARAMETER = ls_RETORNO.GetString("PARAMETER"); retorno.ROW = ls_RETORNO.GetString("ROW"); retorno.FIELD = ls_RETORNO.GetString("FIELD"); retorno.SYSTEM = ls_RETORNO.GetString("SYSTEM"); T_Retorno.Add(retorno); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } } else { errormessage = retval; MessageBox.Show("No se pudo conectar a la RFC"); } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } }
public void docsanulacion(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_DOCUMENTO, string P_RUT, string P_SOCIEDAD, string P_LAND, string P_IDCAJA, string P_TP_DOC) { CabeceraDocs.Clear(); DetalleDocs.Clear(); Retorno.Clear(); IRfcTable lt_h_documentos; IRfcTable lt_d_documentos; IRfcTable lt_retorno; FormatoMonedas FM = new FormatoMonedas(); // PART_ABIERTAS PART_ABIERTAS_resp; CAB_COMP DOCS_CABECERA_resp; DET_COMP DOCS_DETALLES_resp; RETORNO retorno_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_BUSCA_COMP_ANULAR"); BapiGetUser.SetValue("ID_COMPROBANTE", P_DOCUMENTO); BapiGetUser.SetValue("RUT", P_RUT); BapiGetUser.SetValue("LAND", P_LAND); BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD); BapiGetUser.SetValue("ID_CAJA", P_IDCAJA); BapiGetUser.SetValue("TP_DOC", P_TP_DOC); BapiGetUser.Invoke(SapRfcDestination); lt_h_documentos = BapiGetUser.GetTable("CAB_COMP"); lt_d_documentos = BapiGetUser.GetTable("DET_COMP"); lt_retorno = BapiGetUser.GetTable("RETORNO"); if (lt_h_documentos.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_h_documentos.RowCount; i++) { try { lt_h_documentos.CurrentIndex = i; DOCS_CABECERA_resp = new CAB_COMP(); DOCS_CABECERA_resp.LAND = P_LAND; DOCS_CABECERA_resp.ID_CAJA = P_IDCAJA; DOCS_CABECERA_resp.ID_COMPROBANTE = lt_h_documentos[i].GetString("ID_COMPROBANTE"); DOCS_CABECERA_resp.TIPO_DOCUMENTO = lt_h_documentos[i].GetString("TIPO_DOCUMENTO"); DOCS_CABECERA_resp.DESCRIPCION = lt_h_documentos[i].GetString("DESCRIPCION"); DOCS_CABECERA_resp.NRO_REFERENCIA = lt_h_documentos[i].GetString("NRO_REFERENCIA"); DOCS_CABECERA_resp.FECHA_COMP = lt_h_documentos[i].GetString("FECHA_COMP"); DOCS_CABECERA_resp.FECHA_VENC_DOC = lt_h_documentos[i].GetString("FECHA_VENC_DOC"); if (lt_h_documentos[i].GetString("MONEDA") == "CLP") { DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaChilena(lt_h_documentos[i].GetString("MONTO_DOC").Trim(), "2"); } else { //string moneda = Convert.ToString(lt_h_documentos[i].GetString("MONTO_DOC")); //decimal ValorAux = Convert.ToDecimal(moneda); DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaExtranjera(lt_h_documentos[i].GetString("MONTO_DOC").Trim()); } //DOCS_CABECERA_resp.MONTO_DOC = lt_h_documentos[i].GetString("MONTO_DOC"); DOCS_CABECERA_resp.TEXTO_EXCEPCION = lt_h_documentos[i].GetString("TEXTO_EXCEPCION"); DOCS_CABECERA_resp.CLIENTE = lt_h_documentos[i].GetString("CLIENTE"); DOCS_CABECERA_resp.MONEDA = lt_h_documentos[i].GetString("MONEDA"); DOCS_CABECERA_resp.CLASE_DOC = lt_h_documentos[i].GetString("CLASE_DOC"); DOCS_CABECERA_resp.TXT_CLASE_DOC = lt_h_documentos[i].GetString("TXT_CLASE_DOC"); DOCS_CABECERA_resp.NUM_CANCELACION = lt_h_documentos[i].GetString("NUM_CANCELACION"); DOCS_CABECERA_resp.AUT_JEF = lt_h_documentos[i].GetString("AUT_JEF"); DOCS_CABECERA_resp.VIA_PAGO = lt_h_documentos[i].GetString("VIA_PAGO"); CabeceraDocs.Add(DOCS_CABECERA_resp); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.MessageBox.Show("No existe(n) registro(s)"); } if (lt_d_documentos.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_d_documentos.RowCount; i++) { try { lt_d_documentos.CurrentIndex = i; DOCS_DETALLES_resp = new DET_COMP(); DOCS_DETALLES_resp.ID_COMPROBANTE = lt_d_documentos[i].GetString("ID_COMPROBANTE"); DOCS_DETALLES_resp.ID_DETALLE = lt_d_documentos[i].GetString("ID_DETALLE"); DOCS_DETALLES_resp.VIA_PAGO = lt_d_documentos[i].GetString("VIA_PAGO"); DOCS_DETALLES_resp.DESCRIP_VP = lt_d_documentos[i].GetString("DESCRIP_VP"); DOCS_DETALLES_resp.NUM_CHEQUE = lt_d_documentos[i].GetString("NUM_CHEQUE"); DOCS_DETALLES_resp.FECHA_VENC = lt_d_documentos[i].GetString("FECHA_VENC"); if (lt_d_documentos[i].GetString("MONEDA") == "CLP") { DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaChilena(lt_d_documentos[i].GetString("MONTO").Trim(), "1"); } else { DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaExtranjera(lt_d_documentos[i].GetString("MONTO").Trim()); } //DOCS_DETALLES_resp.MONTO = lt_d_documentos[i].GetString("MONTO"); DOCS_DETALLES_resp.MONEDA = lt_d_documentos[i].GetString("MONEDA"); DOCS_DETALLES_resp.NUM_CUOTAS = lt_d_documentos[i].GetString("NUM_CUOTAS"); DOCS_DETALLES_resp.EMISOR = lt_d_documentos[i].GetString("EMISOR"); DetalleDocs.Add(DOCS_DETALLES_resp); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } String Mensaje = ""; if (lt_retorno.Count > 0) { for (int i = 0; i < lt_retorno.Count(); i++) { lt_retorno.CurrentIndex = i; retorno_resp = new RETORNO(); retorno_resp.TYPE = lt_retorno.GetString("TYPE"); retorno_resp.ID = lt_retorno.GetString("ID"); retorno_resp.NUMBER = lt_retorno.GetString("NUMBER"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.LOG_NO = lt_retorno.GetString("LOG_NO"); retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO"); retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE"); retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1"); Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1"); retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2"); retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3"); retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4"); retorno_resp.PARAMETER = lt_retorno.GetString("PARAMETER"); retorno_resp.ROW = lt_retorno.GetString("ROW"); retorno_resp.FIELD = lt_retorno.GetString("FIELD"); retorno_resp.SYSTEM = lt_retorno.GetString("SYSTEM"); Retorno.Add(retorno_resp); } System.Windows.MessageBox.Show(Mensaje); } //else //{ // System.Windows.MessageBox.Show("No existe(n) registro(s)"); //} } else { errormessage = retval; } GC.Collect(); }
//public ReadTable() //{ // this.fields = new ArrayList(); // this.options = new ArrayList(); // this._PrimaryKeys = new ReadTableFieldCollection(); // this._TableName = ""; // this._Fields = new ReadTableFieldCollection(); // this._WhereClause = ""; // this._Delimiter = ""; // this._FunctionName = ""; // this.BackgroundRequestID = ""; // this.BufferLocation = ""; // this._LastPrimaryKey = ""; //} public ReadTable(string sysName) { this.fields = new ArrayList(); this.options = new ArrayList(); this._PrimaryKeys = new ReadTableFieldCollection(); this._TableName = ""; this._Fields = new ReadTableFieldCollection(); this._WhereClause = ""; this._Delimiter = ""; this._FunctionName = ""; this.BackgroundRequestID = ""; this.BufferLocation = ""; this._LastPrimaryKey = ""; this._des = SAPDestination.GetDesByName(sysName); //if (Connection.Codepage.Equals("8000")) //{ // this._Delimiter = "|"; //} //Connection.Log("ReadTable() Connection.Codepage = " + Connection.Codepage); }
public void ValidarEfectivo(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_SOCIEDAD, string P_PAIS, string P_CAJA, string P_CAJERO, string ViaPago, string IdApertura) { IRfcTable lt_RESUMEN_VP; VALIDAREFECTIVO valEfec; try { connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_MON_EFEC"); BapiGetUser.SetValue("ID_CAJA", P_CAJA); BapiGetUser.SetValue("USUARIO", P_CAJERO); BapiGetUser.SetValue("ID_APERTURA", IdApertura); BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD); BapiGetUser.SetValue("VIA_PAGO", ViaPago); BapiGetUser.Invoke(SapRfcDestination); lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP"); for (int i = 0; i < lt_RESUMEN_VP.Count(); i++) { lt_RESUMEN_VP.CurrentIndex = i; valEfec = new VALIDAREFECTIVO(); valEfec.LAND = lt_RESUMEN_VP[i].GetString("LAND"); valEfec.ID_CAJA = lt_RESUMEN_VP[i].GetString("ID_CAJA"); valEfec.SOCIEDAD = lt_RESUMEN_VP[i].GetString("SOCIEDAD"); valEfec.SOCIEDAD_TXT = lt_RESUMEN_VP[i].GetString("SOCIEDAD_TXT"); valEfec.VIA_PAGO = lt_RESUMEN_VP[i].GetString("VIA_PAGO"); valEfec.TEXT1 = lt_RESUMEN_VP[i].GetString("TEXT1"); valEfec.MONEDA = lt_RESUMEN_VP[i].GetString("MONEDA"); valEfec.MONTO = lt_RESUMEN_VP[i].GetString("MONTO"); valEfec.CANT_DOCS = lt_RESUMEN_VP[i].GetString("CANT_DOCS"); validar.Add(valEfec); } } } catch (Exception e) { System.Diagnostics.Debug.Write(e.StackTrace); throw new Exception(); } finally { lt_RESUMEN_VP = null; valEfec = null; } }
/// <summary> /// Realiza commit de los cambios realizados mediante una función RFC /// </summary> /// <param name="rfcFunction"></param> /// <param name="rfcDestination"></param> private static void commitDataInsertion(IRfcFunction rfcFunction, RfcDestination rfcDestination) { RfcTransaction trans = new RfcTransaction(); trans.AddFunction(rfcFunction); trans.Commit(rfcDestination); }
public void cierrecajadefinitivo(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER , string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA, string P_MONTO_CIERRE , string P_MONTO_DIF, string P_COMENTARIO_DIF, string P_COMENTARIO_CIERRE, string P_TOTAL_APERTURA, string P_IND_CIERRE, string P_ID_ARQUEO_IN) { try { ESTATUS retorno; //CAB_ARQUEO cabarqueo; RESUMEN_VP resumenvp; DETALLE_ARQUEO detarqueo; DETALLE_REND detallerend; DETALLE_VP detallevp; DET_EFECTIVO detefectivo; T_Retorno.Clear(); det_arqueo.Clear(); detalle_rend.Clear(); det_efectivo.Clear(); //cab_arqueo.Clear(); resumen_viapago.Clear(); detalle_vp.Clear(); errormessage = ""; message = ""; diasatraso = ""; numerocierre = ""; MontoIngresos = 0; MontoEfect = 0; MontoChqDia = 0; MontoChqFech = 0; MontoTransf = 0; MontoValeV = 0; MontoDepot = 0; MontoTarj = 0; MontoFinanc = 0; MontoApp = 0; MontoCredit = 0; MontoEgresos = 0; MontoCCurse = 0; MontoFondosFijos = 0; SaldoTotal = 0; IRfcTable ls_RETORNO; IRfcTable lt_DETALLE_REND; IRfcTable lt_RESUMEN_VP; IRfcTable lt_DET_EFECTIVO; IRfcTable lt_DET_ARQUEO; IRfcTable lt_DETALLE_VP; connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_FM_SAVE_CIERRE"); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("USUARIO", P_USUARIO); BapiGetUser.SetValue("LAND", P_PAIS); if (P_MONTO_CIERRE == "") { P_MONTO_CIERRE = "0"; } BapiGetUser.SetValue("MONTO_CIERRE", P_MONTO_CIERRE); //Total caja if (P_MONTO_DIF == "") { P_MONTO_DIF = "0"; } BapiGetUser.SetValue("MONTO_DIF", P_MONTO_DIF); //Diferencia BapiGetUser.SetValue("COMENTARIO_DIF", P_COMENTARIO_DIF); //text BapiGetUser.SetValue("COMENTARIO_CIERRE", P_COMENTARIO_CIERRE); //text BapiGetUser.SetValue("TOTAL_APERTURA", P_TOTAL_APERTURA); //log apertura BapiGetUser.SetValue("IND_CIERRE", P_IND_CIERRE); //"C" BapiGetUser.SetValue("ID_ARQUEO_IN", P_ID_ARQUEO_IN); //buscar numero de arqueo BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA); //log de apertura BapiGetUser.Invoke(SapRfcDestination); diasatraso = BapiGetUser.GetString("DIAS_ATRASO"); numerocierre = BapiGetUser.GetString("NUM_CIERRE"); lt_DETALLE_VP = BapiGetUser.GetTable("DETALLE_VP"); try { for (int i = 0; i < lt_DETALLE_VP.Count(); i++) { lt_DETALLE_VP.CurrentIndex = i; detallevp = new DETALLE_VP(); detallevp.SOCIEDAD = lt_DETALLE_VP.GetString("SOCIEDAD"); detallevp.SOCIEDAD_TXT = lt_DETALLE_VP.GetString("SOCIEDAD_TXT"); detallevp.ID_COMPROBANTE = lt_DETALLE_VP.GetString("ID_COMPROBANTE"); detallevp.ID_DETALLE = lt_DETALLE_VP.GetString("ID_DETALLE"); detallevp.VIA_PAGO = lt_DETALLE_VP.GetString("VIA_PAGO"); detallevp.MONTO = lt_DETALLE_VP.GetString("MONTO"); detallevp.MONEDA = lt_DETALLE_VP.GetString("MONEDA"); detallevp.BANCO = lt_DETALLE_VP.GetString("BANCO"); detallevp.BANCO_TXT = lt_DETALLE_VP.GetString("BANCO_TXT"); detallevp.EMISOR = lt_DETALLE_VP.GetString("EMISOR"); detallevp.NUM_CHEQUE = lt_DETALLE_VP.GetString("NUM_CHEQUE"); detallevp.COD_AUTORIZACION = lt_DETALLE_VP.GetString("COD_AUTORIZACION"); detallevp.CLIENTE = lt_DETALLE_VP.GetString("CLIENTE"); detallevp.NRO_DOCUMENTO = lt_DETALLE_VP.GetString("NRO_DOCUMENTO"); detallevp.NUM_CUOTAS = lt_DETALLE_VP.GetString("NUM_CUOTAS"); detallevp.FECHA_VENC = lt_DETALLE_VP.GetString("FECHA_VENC"); detallevp.FECHA_EMISION = lt_DETALLE_VP.GetString("FECHA_EMISION"); detallevp.NOTA_VENTA = lt_DETALLE_VP.GetString("NOTA_VENTA"); detallevp.TEXTO_POSICION = lt_DETALLE_VP.GetString("TEXTO_POSICION"); detallevp.NULO = lt_DETALLE_VP.GetString("NULO"); detallevp.NRO_REFERENCIA = lt_DETALLE_VP.GetString("NRO_REFERENCIA"); detallevp.TIPO_DOCUMENTO = lt_DETALLE_VP.GetString("TIPO_DOCUMENTO"); detalle_vp.Add(detallevp); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND"); try { for (int i = 0; i < lt_DETALLE_REND.Count(); i++) { lt_DETALLE_REND.CurrentIndex = i; detallerend = new DETALLE_REND(); detallerend.N_VENTA = lt_DETALLE_REND.GetString("N_VENTA"); detallerend.FEC_EMI = lt_DETALLE_REND.GetString("FEC_EMI"); detallerend.FEC_VENC = lt_DETALLE_REND.GetString("FEC_VENC"); detallerend.MONTO = lt_DETALLE_REND.GetString("MONTO"); detallerend.NAME1 = lt_DETALLE_REND.GetString("NAME1"); detallerend.MONTO_EFEC = lt_DETALLE_REND.GetString("MONTO_EFEC"); MontoEfect = MontoEfect + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_EFEC")); detallerend.NUM_CHEQUE = lt_DETALLE_REND.GetString("NUM_CHEQUE"); detallerend.MONTO_DIA = lt_DETALLE_REND.GetString("MONTO_DIA"); MontoChqDia = MontoChqDia + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DIA")); detallerend.MONTO_FECHA = lt_DETALLE_REND.GetString("MONTO_FECHA"); MontoChqFech = MontoChqFech + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FECHA")); detallerend.MONTO_TRANSF = lt_DETALLE_REND.GetString("MONTO_TRANSF"); MontoTransf = MontoTransf + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TRANSF")); detallerend.MONTO_VALE_V = lt_DETALLE_REND.GetString("MONTO_VALE_V"); MontoValeV = MontoValeV + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_VALE_V")); detallerend.MONTO_DEP = lt_DETALLE_REND.GetString("MONTO_DEP"); MontoDepot = MontoDepot + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DEP")); detallerend.MONTO_TARJ = lt_DETALLE_REND.GetString("MONTO_TARJ"); MontoTarj = MontoTarj + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TARJ")); detallerend.MONTO_FINANC = lt_DETALLE_REND.GetString("MONTO_FINANC"); MontoFinanc = MontoFinanc + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FINANC")); detallerend.MONTO_APP = lt_DETALLE_REND.GetString("MONTO_APP"); MontoApp = MontoApp + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_APP")); detallerend.MONTO_CREDITO = lt_DETALLE_REND.GetString("MONTO_CREDITO"); MontoCredit = MontoCredit + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_CREDITO")); detallerend.PATENTE = lt_DETALLE_REND.GetString("PATENTE"); detallerend.MONTO_C_CURSE = lt_DETALLE_REND.GetString("MONTO_C_CURSE"); MontoCCurse = MontoCCurse + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_C_CURSE")); detallerend.DOC_SAP = lt_DETALLE_REND.GetString("DOC_SAP"); detalle_rend.Add(detallerend); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV + MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse; SaldoTotal = MontoIngresos - MontoEgresos; lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP"); try { for (int i = 0; i < lt_RESUMEN_VP.Count(); i++) { lt_RESUMEN_VP.CurrentIndex = i; resumenvp = new RESUMEN_VP(); resumenvp.LAND = lt_RESUMEN_VP.GetString("LAND"); resumenvp.ID_CAJA = lt_RESUMEN_VP.GetString("ID_CAJA"); resumenvp.SOCIEDAD = lt_RESUMEN_VP.GetString("SOCIEDAD"); resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT"); resumenvp.VIA_PAGO = lt_RESUMEN_VP.GetString("VIA_PAGO"); resumenvp.TEXT1 = lt_RESUMEN_VP.GetString("TEXT1"); resumenvp.MONEDA = lt_RESUMEN_VP.GetString("MONEDA"); resumenvp.MONTO = lt_RESUMEN_VP.GetString("MONTO"); resumenvp.CANT_DOCS = lt_RESUMEN_VP.GetString("CANT_DOCS"); resumen_viapago.Add(resumenvp); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } //lt_CAB_ARQUEO = BapiGetUser.GetTable("DET_EFECTIVO"); //try //{ // for (int i = 0; i < lt_CAB_ARQUEO.Count(); i++) // { // lt_CAB_ARQUEO.CurrentIndex = i; // cabarqueo = new CAB_ARQUEO(); // cabarqueo.MANDT = lt_CAB_ARQUEO.GetString("MANDT"); // cabarqueo.LAND = lt_CAB_ARQUEO.GetString("LAND"); // cabarqueo.ID_ARQUEO = lt_CAB_ARQUEO.GetString("ID_ARQUEO"); // cabarqueo.ID_REGISTRO = lt_CAB_ARQUEO.GetString("ID_DENOMINACION"); // cabarqueo.ID_CAJA = lt_CAB_ARQUEO.GetString("CANTIDAD"); // cabarqueo.MONTO_CIERRE = lt_CAB_ARQUEO.GetString("MONTO_TOTAL"); // cabarqueo.MONTO_DIF = lt_CAB_ARQUEO.GetString("ID_DENOMINACION"); // cabarqueo.COMENTARIO_DIF = lt_CAB_ARQUEO.GetString("CANTIDAD"); // cabarqueo.NULO = lt_CAB_ARQUEO.GetString("MONTO_TOTAL"); // cab_arqueo.Add(cabarqueo); // } //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message, ex.StackTrace); // MessageBox.Show(ex.Message + ex.StackTrace); //} //lt_DET_ARQUEO = BapiGetUser.GetTable("DET_ARQUEO"); //try //{ // for (int i = 0; i < lt_DET_ARQUEO.Count(); i++) // { // lt_DET_ARQUEO.CurrentIndex = i; // detarqueo = new DET_ARQUEO(); // detarqueo.MANDT = lt_DET_ARQUEO.GetString("MANDT"); // detarqueo.LAND = lt_DET_ARQUEO.GetString("LAND"); // detarqueo.ID_ARQUEO = lt_DET_ARQUEO.GetString("ID_ARQUEO"); // detarqueo.ID_DENOMINACION = lt_DET_ARQUEO.GetString("ID_DENOMINACION"); // detarqueo.CANTIDAD = lt_DET_ARQUEO.GetString("CANTIDAD"); // detarqueo.MONTO_TOTAL = lt_DET_ARQUEO.GetString("MONTO_TOTAL"); // det_arqueo.Add(detarqueo); // } //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message, ex.StackTrace); // MessageBox.Show(ex.Message + ex.StackTrace); //} lt_DET_ARQUEO = BapiGetUser.GetTable("DETALLE_ARQUEO"); try { for (int i = 0; i < lt_DETALLE_REND.Count(); i++) { lt_DET_ARQUEO.CurrentIndex = i; detarqueo = new DETALLE_ARQUEO(); detarqueo.LAND = lt_DET_ARQUEO.GetString("LAND"); detarqueo.ID_CAJA = lt_DET_ARQUEO.GetString("ID_CAJA"); detarqueo.USUARIO = lt_DET_ARQUEO.GetString("USUARIO"); detarqueo.SOCIEDAD = lt_DET_ARQUEO.GetString("SOCIEDAD"); detarqueo.HORA_REND = lt_DET_ARQUEO.GetString("HORA_REND"); detarqueo.FECHA_REND = lt_DET_ARQUEO.GetString("FECHA_REND"); detarqueo.MONEDA = lt_DET_ARQUEO.GetString("MONEDA"); detarqueo.VIA_PAGO = lt_DET_ARQUEO.GetString("VIA_PAGO"); detarqueo.TIPO_MONEDA = lt_DET_ARQUEO.GetString("TIPO_MONEDA"); detarqueo.CANTIDAD_MON = lt_DET_ARQUEO.GetString("CANTIDAD_MON"); detarqueo.SUMA_MON_BILL = lt_DET_ARQUEO.GetString("SUMA_MON_BILL"); detarqueo.CANTIDAD_DOC = lt_DET_ARQUEO.GetString("CANTIDAD_DOC"); detarqueo.SUMA_DOCS = lt_DET_ARQUEO.GetString("MONTO_DSUMA_DOCSEP"); det_arqueo.Add(detarqueo); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } lt_DET_EFECTIVO = BapiGetUser.GetTable("DET_EFECTIVO"); try { for (int i = 0; i < lt_DET_EFECTIVO.Count(); i++) { lt_DET_ARQUEO.CurrentIndex = i; detefectivo = new DET_EFECTIVO(); detefectivo.MANDT = lt_DET_EFECTIVO.GetString("MANDT"); detefectivo.LAND = lt_DET_EFECTIVO.GetString("LAND"); detefectivo.ID_ARQUEO = lt_DET_EFECTIVO.GetString("ID_ARQUEO"); detefectivo.ID_DENOMINACION = lt_DET_EFECTIVO.GetString("ID_DENOMINACION"); detefectivo.CANTIDAD = lt_DET_EFECTIVO.GetString("CANTIDAD"); detefectivo.MONTO_TOTAL = lt_DET_EFECTIVO.GetString("MONTO_TOTAL"); det_efectivo.Add(detefectivo); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } ls_RETORNO = BapiGetUser.GetTable("ESTATUS"); try { for (int i = 0; i < ls_RETORNO.Count(); i++) { ls_RETORNO.CurrentIndex = i; retorno = new ESTATUS(); if (ls_RETORNO.GetString("TYPE") == "S") { message = message + " - " + ls_RETORNO.GetString("MESSAGE"); //numerocierre = ls_RETORNO.GetString("MESSAGE_V4"); } if (ls_RETORNO.GetString("TYPE") == "E") { errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE"); } retorno.TYPE = ls_RETORNO.GetString("TYPE"); retorno.ID = ls_RETORNO.GetString("ID"); retorno.NUMBER = ls_RETORNO.GetString("NUMBER"); retorno.MESSAGE = ls_RETORNO.GetString("MESSAGE"); retorno.LOG_NO = ls_RETORNO.GetString("LOG_NO"); retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3"); if (ls_RETORNO.GetString("MESSAGE_V4") != "") { // comprobante = ls_RETORNO.GetString("MESSAGE_V4"); } retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4"); retorno.PARAMETER = ls_RETORNO.GetString("PARAMETER"); retorno.ROW = ls_RETORNO.GetString("ROW"); retorno.FIELD = ls_RETORNO.GetString("FIELD"); retorno.SYSTEM = ls_RETORNO.GetString("SYSTEM"); T_Retorno.Add(retorno); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } } else { errormessage = retval; MessageBox.Show("No se pudo conectar a la RFC"); } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } }
// Methods public QueryHelper(string sysName) { this._des = SAPDestination.GetDesByName(sysName); }
private List <AM_SAP> getDivizionOrganization(Dictionary <string, string> openWith, string parentExternalCode, string organizationId) { try { RfcDestinationManager.RegisterDestinationConfiguration(new ZSMK_SAP_Config()); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); } RfcDestination destination = RfcDestinationManager.GetDestination("RFC_EAH"); IRfcFunction function = null; string strDate = DateTime.Today.ToString("yyyyMMdd"); IFormatProvider culture = new System.Globalization.CultureInfo("ru-RU", true); string format = "yyyy-MM-dd"; List <AM_SAP> list = new List <AM_SAP>(); string prefix = ""; try { function = destination.Repository.CreateFunction("ZP_GET_OSP"); foreach (KeyValuePair <string, string> kvp in openWith) { function.SetValue(kvp.Key, kvp.Value); if (kvp.Key == "IM_WERKS") { prefix = kvp.Value; } } function.Invoke(destination); } catch (RfcBaseException e) { System.Diagnostics.Debug.WriteLine(e.ToString()); } if (function != null) { //Get the function table parameter COMPANYCODE_LIST IRfcTable codes = function.GetTable("PIT_OBJECTS"); if (codes.RowCount == 0) { System.Diagnostics.Debug.WriteLine("Данные не выбраны"); } else { //Iterate over all rows in the table COMPANYCODE_LIST DateTime dt = DateTime.MinValue; for (int i = 0; i < codes.RowCount; i++) { codes.CurrentIndex = i; AM_SAP amSap = new AM_SAP(); if (codes.GetString("OTYPE") == "P") { amSap.OBJID = "1111" + codes.GetString("OBJID").TrimStart('0'); } else { amSap.OBJID = prefix + codes.GetString("OBJID"); } amSap.SOBID = prefix + codes.GetString("SOBID"); amSap.OTYPE = codes.GetString("OTYPE"); amSap.PRIOX = codes.GetString("PRIOX"); amSap.PROZT = codes.GetDouble("PROZT"); dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("SBEGDA"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.SBEGDA = dt; amSap.SCLAS = codes.GetString("SCLAS"); dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("SENDDA"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.SENDDA = dt; amSap.SHORT = codes.GetString("SHORT"); amSap.STEXT = codes.GetString("STEXT"); amSap.LEV_HIE = codes.GetInt("LEV_HIE"); dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("BEGDA"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.BEGDA = dt; dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("ENDDA"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.ENDDA = dt; amSap.BUKRS = ""; amSap.PERNR = codes.GetString("PERNR"); amSap.R_01 = codes.GetString("R_01"); amSap.R_02 = codes.GetString("R_02"); amSap.R_03 = codes.GetString("R_03"); amSap.R_04 = codes.GetString("R_04"); amSap.R_05 = codes.GetString("R_05"); amSap.R_06 = codes.GetString("R_06"); amSap.R_07 = codes.GetString("R_07"); amSap.GESCH = codes.GetString("GESCH"); amSap.PERSK = codes.GetString("PERSK"); amSap.PERSG = codes.GetString("PERSG"); amSap.STRINF_ID = codes.GetString("STRINF_ID"); dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("DATP"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.DATP = dt; amSap.VERB = codes.GetString("VERB"); amSap.SHOPNUMBER = prefix; amSap.ISSHOP = false; if (amSap.SHORT == "EAH") { amSap.ISSHOP = true; amSap.SOBID = parentExternalCode; } dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("BEGDA_D"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.BEGDA_D = dt; dt = DateTime.MinValue; DateTime.TryParseExact(codes.GetString("ENDDA_D"), format, culture, DateTimeStyles.AssumeLocal, out dt); amSap.ENDDA_D = dt; amSap.MVZ = DataGlobals.MVZ_EVRAZRUDA_DIVIZION; amSap.MVZ_NAME = getMVZName(organizationId); list.Add(amSap); } } } return(list); }
private void Prc_ktra_du_lieu(string p_short_name, RfcDestination p_sap, string p_table_name) { string _query = @"SELECT rowid, a.* FROM " + p_table_name + @" a WHERE short_name = '" + p_short_name + "'"; DataTable _dt = _ora.exeQuery(_query); int _so_ban_ghi_loi = 0; string v_error_code = ""; // Biến lưu chuỗi mã lỗi for (int i = 0; i < _dt.Rows.Count; i++) { DataRow _dr = _dt.Rows[i]; if (p_table_name.Equals("TB_NO")) { //TKTQ_PCK_ORA.prc_ktra_du_lieu_no(p_short_name); v_error_code = TKTQ_CHECK_DATA.Prc_check_data_no(p_short_name, _dr, p_sap); } else if (p_table_name.Equals("TB_PS")) { //TKTQ_PCK_ORA.prc_ktra_du_lieu_ps(p_short_name); v_error_code = TKTQ_CHECK_DATA.Prc_check_data_ps(p_short_name, _dr, p_sap); } else { v_error_code = TKTQ_CHECK_DATA.Prc_check_data_tk10(p_short_name, _dr, p_sap); } string[] v_err_id = v_error_code.Split('-'); if (v_err_id.Length > 0) { _so_ban_ghi_loi++; foreach (string err_id in v_err_id) { if (err_id.Equals("") == false) { CLS_DATA_ERROR _error = new CLS_DATA_ERROR(p_short_name, _dr["ROWID"].ToString(), p_table_name, err_id, ""); _query = @"INSERT INTO tb_data_error(short_name, rid, table_name, err_id, field_name) VALUES ('" + _error.short_name + "', '" + _error.rid + "', '" + _error.table_name + "', '" + _error.err_id + "', null)"; _ora.exeUpdate(_query); } } } } AddToListView(2, " + Hoàn thành việc kiểm tra dữ liệu"); }
/* * evt später inmplementieren * public const string tabMara = "MARA"; * public const string tabMakt = "MAKT"; * public const string feldMatNr = "MATNR"; * public const string feldMatKurzText = "MAKTX"; */ static void Main(string[] args) { DestConfig destCfg = new DestConfig(); //Instanz erzeugen RfcDestinationManager.RegisterDestinationConfiguration(destCfg); //registriere Instanz im DestinationManager Console.Write(" Verbindung :"); String strVerb = Console.ReadLine(); // Destinationparameter setzen RfcConfigParameters configParams = new RfcConfigParameters(); if ("test".Equals(strVerb)) { configParams.Add(RfcConfigParameters.Name, "test"); configParams.Add(RfcConfigParameters.Language, "DE"); configParams.Add(RfcConfigParameters.Client, "100"); configParams.Add(RfcConfigParameters.AppServerHost, "mmm.nnn.ooo.3"); configParams.Add(RfcConfigParameters.PeakConnectionsLimit, "5"); // Max Anzahl Verbindungen configParams.Add(RfcConfigParameters.ConnectionIdleTimeout, "600"); // 10 min configParams.Add(RfcConfigParameters.SystemNumber, "00"); configParams.Add(RfcConfigParameters.User, "testexample"); configParams.Add(RfcConfigParameters.Password, "testexample"); destCfg.AddDestination(configParams); } else { configParams[RfcConfigParameters.Name] = strVerb; configParams.Add(RfcConfigParameters.Language, "DE"); Console.WriteLine("Client : "); configParams[RfcConfigParameters.Client] = Console.ReadLine(); Console.WriteLine("Server : "); configParams[RfcConfigParameters.AppServerHost] = Console.ReadLine(); configParams.Add(RfcConfigParameters.PeakConnectionsLimit, "5"); // Max Anzahl Verbindungen configParams.Add(RfcConfigParameters.ConnectionIdleTimeout, "600"); // 10 min configParams.Add(RfcConfigParameters.SystemNumber, "00"); Console.WriteLine("Nutzer : "); configParams[RfcConfigParameters.User] = Console.ReadLine(); Console.WriteLine("password : "******"\nConfigured Destination in main: {0} [ {1} ]", destination.Name, destination.Parameters.ToString()); //ping Console.WriteLine("für ping : Enter "); Console.ReadLine(); // destCfg.PingDestination(strVerb); Console.WriteLine("working with : {0}", strVerb); destCfg.PingDestination(strVerb); Console.WriteLine("Auftragsnummer : "); string strAufNrToQuery = Console.ReadLine(); SapQuery newQuery = new SapQuery(); string strMatNr = ""; string strGesMenge = ""; string strGesFailMenge = ""; newQuery.getMatNr(strAufNrToQuery, destination, ref strMatNr, ref strGesMenge, ref strGesFailMenge); string strAusMatNr = strMatNr.TrimStart('0'); Console.WriteLine("Materialnummer:{0}, Gesamtmenge ist: {1}, Fail-Menge : {2}", strAusMatNr, strGesMenge, strGesFailMenge); Console.ReadLine(); string strMatKurzText = newQuery.getMatKurzText(strMatNr, destination); Console.WriteLine("MatrKurzText :{0}", strMatKurzText); Console.ReadLine(); Console.WriteLine("am ende der Funktion"); Console.ReadLine(); }
public RfcProvider(RfcDestination rfc) { Rfc = rfc; }
public void emitirnotasdecredito(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_MONEDA, string P_PAIS , List <T_DOCUMENTOS> P_DOCSAPAGAR, string P_CHKTRIB) { try { RETURN2 retorno; T_DOCUMENTOS docs; //DETALLE_REND detallerend; T_Retorno.Clear(); documentos.Clear(); errormessage = ""; message = ""; IdCaja = ""; Efectivo = "0"; IRfcTable ls_RETORNO; IRfcTable lt_DOCS; connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REC_Y_FAC_NC"); BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA); BapiGetUser.SetValue("PAY_CURRENCY", P_MONEDA); BapiGetUser.SetValue("LAND", P_PAIS); IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS"); try { for (var i = 0; i < P_DOCSAPAGAR.Count; i++) { GralDat2.Append(); GralDat2.SetValue("NDOCTO", P_DOCSAPAGAR[i].NDOCTO); GralDat2.SetValue("MONTO", P_DOCSAPAGAR[i].MONTO); GralDat2.SetValue("MONTOF", P_DOCSAPAGAR[i].MONTOF); GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA); GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND); GralDat2.SetValue("FECVENCI", P_DOCSAPAGAR[i].FECVENCI); GralDat2.SetValue("CONTROL_CREDITO", P_DOCSAPAGAR[i].CONTROL_CREDITO); GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE); GralDat2.SetValue("COND_PAGO", P_DOCSAPAGAR[i].COND_PAGO); GralDat2.SetValue("RUTCLI", P_DOCSAPAGAR[i].RUTCLI); GralDat2.SetValue("NOMCLI", P_DOCSAPAGAR[i].NOMCLI); GralDat2.SetValue("ESTADO", P_DOCSAPAGAR[i].ESTADO); GralDat2.SetValue("ICONO", P_CHKTRIB); GralDat2.SetValue("DIAS_ATRASO", P_DOCSAPAGAR[i].DIAS_ATRASO); string MontoAux = ""; MontoAux = P_DOCSAPAGAR[i].MONTO_ABONADO; MontoAux = MontoAux.Replace(",", ""); MontoAux = MontoAux.Replace(".", ""); GralDat2.SetValue("MONTO_ABONADO", MontoAux); MontoAux = P_DOCSAPAGAR[i].MONTOF_ABON; MontoAux = MontoAux.Replace(",", ""); MontoAux = MontoAux.Replace(".", ""); GralDat2.SetValue("MONTOF_ABON", MontoAux); MontoAux = P_DOCSAPAGAR[i].MONTO_PAGAR; MontoAux = MontoAux.Replace(",", ""); MontoAux = MontoAux.Replace(".", ""); GralDat2.SetValue("MONTO_PAGAR", MontoAux); MontoAux = P_DOCSAPAGAR[i].MONTOF_PAGAR; MontoAux = MontoAux.Replace(",", ""); MontoAux = MontoAux.Replace(".", ""); GralDat2.SetValue("MONTOF_PAGAR", MontoAux); GralDat2.SetValue("NREF", P_DOCSAPAGAR[i].NREF); GralDat2.SetValue("FECHA_DOC", P_DOCSAPAGAR[i].FECHA_DOC); GralDat2.SetValue("COD_CLIENTE", P_DOCSAPAGAR[i].COD_CLIENTE); GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD); GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC); GralDat2.SetValue("CLASE_CUENTA", P_DOCSAPAGAR[i].CLASE_CUENTA); GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME); GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC); GralDat2.SetValue("FACT_SD_ORIGEN", P_DOCSAPAGAR[i].FACT_SD_ORIGEN); GralDat2.SetValue("FACT_ELECT", P_DOCSAPAGAR[i].FACT_ELECT); GralDat2.SetValue("ID_COMPROBANTE", P_DOCSAPAGAR[i].ID_COMPROBANTE); GralDat2.SetValue("ID_CAJA", P_DOCSAPAGAR[i].ID_CAJA); GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND); GralDat2.SetValue("BAPI", P_DOCSAPAGAR[i].BAPI); } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } BapiGetUser.SetValue("DOCUMENTOS", GralDat2); BapiGetUser.Invoke(SapRfcDestination); //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD); //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO"); lt_DOCS = BapiGetUser.GetTable("DOCUMENTOS"); if (lt_DOCS.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_DOCS.RowCount; i++) { try { lt_DOCS.CurrentIndex = i; docs = new T_DOCUMENTOS(); docs.NDOCTO = lt_DOCS[i].GetString("NDOCTO"); string Monto = ""; int indice = 0; //******* if (lt_DOCS[i].GetString("MONEDA") == "CLP") { string Valor = lt_DOCS[i].GetString("MONTOF").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = 0; if ((Valor == "00") | (Valor == "0")) { ValorAux = Convert.ToDecimal(Valor); } else { ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); } string Cualquiernombre = string.Format("{0:0,0}", ValorAux); docs.MONTOF = Cualquiernombre; } else { string moneda = Convert.ToString(lt_DOCS[i].GetString("MONTOF")); decimal ValorAux = Convert.ToDecimal(moneda); docs.MONTOF = string.Format("{0:0,0.##}", ValorAux); } //if (lt_DOCS[i].GetString("MONTOF") == "") //{ // indice = lt_DOCS[i].GetString("MONTO").IndexOf(','); // Monto = lt_DOCS[i].GetString("MONTO").Substring(0, indice - 1); // docs.MONTOF = Monto; //} //else //{ // docs.MONTOF = lt_DOCS[i].GetString("MONTOF"); //} if (lt_DOCS[i].GetString("MONEDA") == "CLP") { string Valor = lt_DOCS[i].GetString("MONTO").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = Convert.ToDecimal(Valor); if ((Valor == "00") | (Valor == "0")) { ValorAux = Convert.ToDecimal(Valor); } else { ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); } docs.MONTO = string.Format("{0:0,0}", ValorAux); } else { string moneda = Convert.ToString(lt_DOCS[i].GetString("MONTO")); decimal ValorAux = Convert.ToDecimal(moneda); docs.MONTO = string.Format("{0:0,0.##}", ValorAux); } //if (lt_DOCS[i].GetString("MONTO") == "") //{ // indice = lt_DOCS[i].GetString("MONTO").IndexOf(','); // Monto = lt_DOCS[i].GetString("MONTO").Substring(0, indice - 1); // docs.MONTO = Monto; //} //else //{ // docs.MONTO = lt_DOCS[i].GetString("MONTO"); //} docs.MONEDA = lt_DOCS[i].GetString("MONEDA"); docs.FECVENCI = lt_DOCS[i].GetString("FECVENCI"); docs.CONTROL_CREDITO = lt_DOCS[i].GetString("CONTROL_CREDITO"); docs.CEBE = lt_DOCS[i].GetString("CEBE"); docs.COND_PAGO = lt_DOCS[i].GetString("COND_PAGO"); docs.RUTCLI = lt_DOCS[i].GetString("RUTCLI"); docs.NOMCLI = lt_DOCS[i].GetString("NOMCLI"); docs.ESTADO = lt_DOCS[i].GetString("ESTADO"); docs.ICONO = lt_DOCS[i].GetString("ICONO"); docs.DIAS_ATRASO = lt_DOCS[i].GetString("DIAS_ATRASO"); if (lt_DOCS[i].GetString("MONEDA") == "CLP") { string Valor = lt_DOCS[i].GetString("MONTOF_ABON").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux; if ((Valor == "00") | (Valor == "0")) { ValorAux = Convert.ToDecimal(Valor); } else { ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); } docs.MONTOF_ABON = string.Format("{0:0,0}", ValorAux); } else { string moneda = Convert.ToString(lt_DOCS[i].GetString("MONTOF_ABON")); decimal ValorAux = Convert.ToDecimal(moneda); docs.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux); } //if (lt_DOCS[i].GetString("MONTOF_ABON") == "") //{ // indice = lt_DOCS[i].GetString("MONTO_ABONADO").IndexOf(','); // Monto = lt_DOCS[i].GetString("MONTO_ABONADO").Substring(0, indice - 1); // docs.MONTOF = Monto; //} //else //{ // docs.MONTOF_ABON = lt_DOCS[i].GetString("MONTOF_ABON"); //} if (lt_DOCS[i].GetString("MONEDA") == "CLP") { string Valor = lt_DOCS[i].GetString("MONTOF_PAGAR").Trim(); if (Valor.Contains("-")) { Valor = "-" + Valor.Replace("-", ""); } Valor = Valor.Replace(".", ""); Valor = Valor.Replace(",", ""); decimal ValorAux = Convert.ToDecimal(Valor); if ((Valor == "00") | (Valor == "0")) { ValorAux = Convert.ToDecimal(Valor); } else { ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2)); } docs.MONTOF_PAGAR = string.Format("{0:0,0}", ValorAux); } else { string moneda = Convert.ToString(lt_DOCS[i].GetString("MONTOF_PAGAR")); decimal ValorAux = Convert.ToDecimal(moneda); docs.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux); } //if (lt_DOCS[i].GetString("MONTOF_PAGAR") == "") //{ // indice = lt_DOCS[i].GetString("MONTO_PAGAR").IndexOf(','); // Monto = lt_DOCS[i].GetString("MONTO_PAGAR").Substring(0, indice - 1); // docs.MONTOF = Monto; //} //else //{ // docs.MONTOF_PAGAR = lt_DOCS[i].GetString("MONTOF_PAGAR"); //} docs.NREF = lt_DOCS[i].GetString("NREF"); docs.FECHA_DOC = lt_DOCS[i].GetString("FECHA_DOC"); docs.COD_CLIENTE = lt_DOCS[i].GetString("COD_CLIENTE"); docs.SOCIEDAD = lt_DOCS[i].GetString("SOCIEDAD"); docs.CLASE_DOC = lt_DOCS[i].GetString("CLASE_DOC"); docs.CLASE_CUENTA = lt_DOCS[i].GetString("CLASE_CUENTA"); docs.CME = lt_DOCS[i].GetString("CME"); docs.ACC = lt_DOCS[i].GetString("ACC"); docs.FACT_SD_ORIGEN = lt_DOCS[i].GetString("FACT_SD_ORIGEN"); docs.FACT_ELECT = lt_DOCS[i].GetString("FACT_ELECT"); docs.ID_COMPROBANTE = lt_DOCS[i].GetString("ID_COMPROBANTE"); docs.ID_CAJA = lt_DOCS[i].GetString("ID_CAJA"); docs.LAND = lt_DOCS[i].GetString("LAND"); documentos.Add(docs); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); } } } else { System.Windows.Forms.MessageBox.Show("No existe(n) registro(s)"); } ls_RETORNO = BapiGetUser.GetTable("RETURN"); try { for (int i = 0; i < ls_RETORNO.Count(); i++) { ls_RETORNO.CurrentIndex = i; retorno = new RETURN2(); if (ls_RETORNO.GetString("TYPE") == "S") { message = message + "-" + ls_RETORNO.GetString("MESSAGE") + ":" + ls_RETORNO.GetString("MESSAGE_V1").Trim() + "\n"; NumComprob = ls_RETORNO.GetString("MESSAGE_V4").Trim(); } if (ls_RETORNO.GetString("TYPE") == "E") { errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE") + "\n"; } retorno.TYPE = ls_RETORNO.GetString("TYPE"); retorno.ID = ls_RETORNO.GetString("ID"); retorno.NUMBER = ls_RETORNO.GetString("NUMBER"); retorno.MESSAGE = ls_RETORNO.GetString("MESSAGE"); retorno.LOG_NO = ls_RETORNO.GetString("LOG_NO"); retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO"); retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1"); retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2"); retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3"); if (ls_RETORNO.GetString("MESSAGE_V4") != "") { // comprobante = ls_RETORNO.GetString("MESSAGE_V4"); } retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4"); retorno.PARAMETER = ls_RETORNO.GetString("PARAMETER"); retorno.ROW = ls_RETORNO.GetString("ROW"); retorno.FIELD = ls_RETORNO.GetString("FIELD"); retorno.SYSTEM = ls_RETORNO.GetString("SYSTEM"); T_Retorno.Add(retorno); } } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } } else { errormessage = retval; MessageBox.Show("No se pudo conectar a la RFC"); } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message, ex.StackTrace); MessageBox.Show(ex.Message + ex.StackTrace); } }
private void Prc_ktra_du_lieu(string p_short_name, RfcDestination p_sap, string p_table_name) { string _query = @"SELECT rowid, a.* FROM " + p_table_name + @" a WHERE short_name = '" + p_short_name + "'"; DataTable _dt = _ora.exeQuery(_query); int _so_ban_ghi_loi = 0; //string v_error_code = ""; // Biến lưu chuỗi mã lỗi string v_pck = null; // Modify DateTime v_ngay_chot = (DateTime)this.dgrTaxOffice.CurrentRow.Cells["cl_ky_no_den"].Value; //MessageBox.Show(v_ngay_chot.ToString("dd-MMM-yyyy")); //string v_ky_chot_dl = v_ngay_chot.Year.ToString() + v_ngay_chot.Month + v_ngay_chot.Day; string v_ky_chot_dl = v_ngay_chot.ToString("yyyy/MM/dd"); v_ky_chot_dl = v_ky_chot_dl.Replace("/", ""); string v_tax_code = this.dgrTaxOffice.CurrentRow.Cells["cl_tax_code"].Value.ToString(); _ora.TransStart(); int count = 0; try { // Xóa dữ liệu cũ _query = null; _query += "DELETE FROM tb_data_error WHERE short_name='"; _query += p_short_name; _query += "' AND table_name='"; _query += p_table_name + "'"; _ora.TransExecute(_query); _query = "DELETE FROM tb_unsplit_data_error WHERE short_name = '" + p_short_name + "' AND table_name = '" + p_table_name + "'"; _ora.TransExecute(_query); if (p_table_name.Equals("TB_NO")) { count = 0; v_pck = "PRC_KTRA_NO"; // Content: kiểm tra dữ liệu theo yêu cầu bổ sung // Sử dụng các thủ tục trong Oracle để kiểm tra dữ liệu _query = "call PCK_CHECK_DATA.prc_ktra_du_lieu_no('" + p_short_name + "', '" + v_ngay_chot.ToString("dd-MMM-yyyy") + "')"; _ora.exeQuery(_query); // Modify by ManhTV3 on 14/03/2012 // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu StringBuilder _ins_query = new StringBuilder(); _ins_query.Append("BEGIN "); for (int i = 0; i < _dt.Rows.Count; i++) { string v_error_code = ""; // Errors code DataRow _dr = _dt.Rows[i]; v_error_code = TKTQ_CHECK_DATA.Prc_check_data_no(p_short_name, _dr, p_sap); if (!v_error_code.Equals("")) { _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string) VALUES ('" + p_short_name + "', '" + _dr["ROWID"].ToString() + "', '" + p_table_name + "', '" + v_error_code + "');"); } count++; } _ins_query.Append(" dbms_output.put_line('Successful'); END;"); _ora.TransExecute(_ins_query.ToString()); } else if (p_table_name.Equals("TB_PS")) { count = 0; v_pck = "PRC_KTRA_PS"; // Content: kiểm tra dữ liệu theo yêu cầu bổ sung _query = "call PCK_CHECK_DATA.prc_ktra_du_lieu_ps('" + p_short_name + "', '" + v_ngay_chot.ToString("dd-MMM-yyyy") + "')"; _ora.exeQuery(_query); // Modify by ManhTV3 on 14/03/2012 // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu StringBuilder _ins_query = new StringBuilder(); _ins_query.Append("BEGIN "); for (int i = 0; i < _dt.Rows.Count; i++) { string v_error_code = ""; // Errors code DataRow _dr = _dt.Rows[i]; v_error_code = TKTQ_CHECK_DATA.Prc_check_data_ps(p_short_name, _dr, p_sap); if (!v_error_code.Equals("")) { _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string) VALUES ('" + p_short_name + "', '" + _dr["ROWID"].ToString() + "', '" + p_table_name + "', '" + v_error_code + "');"); } count++; } _ins_query.Append(" dbms_output.put_line('Successful'); END;"); _ora.TransExecute(_ins_query.ToString()); } else { count = 0; v_pck = "PRC_KTRA_TK"; // Content: kiểm tra dữ liệu theo yêu cầu bổ sung _query = "call PCK_CHECK_DATA.prc_ktra_du_lieu_tk('" + p_short_name + "', '" + v_ngay_chot.ToString("dd-MMM-yyyy") + "')"; _ora.exeQuery(_query); // Modify by ManhTV3 on 14/03/2012 // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu StringBuilder _ins_query = new StringBuilder(); _ins_query.Append("BEGIN "); for (int i = 0; i < _dt.Rows.Count; i++) { string v_error_code = ""; // Errors code DataRow _dr = _dt.Rows[i]; v_error_code = TKTQ_CHECK_DATA.Prc_check_data_tk10(p_short_name, v_tax_code, _dr, p_sap, v_ky_chot_dl); if (!v_error_code.Equals("")) { _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string) VALUES ('" + p_short_name + "', '" + _dr["ROWID"].ToString() + "', '" + p_table_name + "', '" + v_error_code + "');"); } count++; } _ins_query.Append(" dbms_output.put_line('Successful'); END;"); _ora.TransExecute(_ins_query.ToString()); } _query = "call PCK_CHECK_DATA.prc_insert_splitted_err('" + p_short_name + "', '" + p_table_name + "')"; _ora.TransExecute(_query); // Ghi log _query = null; _query = "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'Y', null)"; _ora.TransExecute(_query); _ora.TransCommit(); } catch (Exception e) { // Ghi log _query = null; _query += "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'N', '"; _query += e.Message.ToString().Replace("'", "\"") + "')"; _ora.TransExecute(_query); _ora.TransRollBack(); AddToListView(2, " + Rows: " + count + "/" + _dt.Rows.Count); AddToListView(0, " + Error: " + e.Message.ToString()); } }
public void monitor(string P_DATUM, string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_SOCIEDAD) { try { ObjDatosMonitor.Clear(); IRfcTable lt_GET_MONITOR; T_DOCUMENTOS GET_MONITOR_resp; //Conexion a SAP connectorSap.idioma = P_IDIOMA; connectorSap.idSistema = P_IDSISTEMA; connectorSap.instancia = P_INSTANCIA; connectorSap.mandante = P_MANDANTE; connectorSap.paswr = P_PASSWORD; connectorSap.sapRouter = P_SAPROUTER; connectorSap.user = P_UNAME; connectorSap.server = P_SERVER; string retval = connectorSap.connectionsSAP(); //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos if (string.IsNullOrEmpty(retval)) { RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig); RfcRepository SapRfcRepository = SapRfcDestination.Repository; IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_MONITOR"); BapiGetUser.SetValue("DATUM", Convert.ToDateTime(P_DATUM)); BapiGetUser.SetValue("I_BUKRS", P_SOCIEDAD); BapiGetUser.Invoke(SapRfcDestination); lt_GET_MONITOR = BapiGetUser.GetTable("T_DOCUMENTOS"); //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS"); if (lt_GET_MONITOR.Count > 0) { //LLenamos la tabla de salida lt_DatGen for (int i = 0; i < lt_GET_MONITOR.RowCount; i++) { lt_GET_MONITOR.CurrentIndex = i; GET_MONITOR_resp = new T_DOCUMENTOS(); GET_MONITOR_resp.SOCIEDAD = lt_GET_MONITOR[i].GetString("SOCIEDAD"); GET_MONITOR_resp.NDOCTO = lt_GET_MONITOR[i].GetString("NDOCTO"); GET_MONITOR_resp.NREF = lt_GET_MONITOR[i].GetString("NREF"); GET_MONITOR_resp.CLASE_CUENTA = lt_GET_MONITOR[i].GetString("CLASE_CUENTA"); GET_MONITOR_resp.CLASE_DOC = lt_GET_MONITOR[i].GetString("CLASE_DOC"); GET_MONITOR_resp.COD_CLIENTE = lt_GET_MONITOR[i].GetString("COD_CLIENTE"); GET_MONITOR_resp.RUTCLI = lt_GET_MONITOR[i].GetString("RUTCLI"); GET_MONITOR_resp.NOMCLI = lt_GET_MONITOR[i].GetString("NOMCLI"); GET_MONITOR_resp.CEBE = lt_GET_MONITOR[i].GetString("CEBE"); GET_MONITOR_resp.FECHA_DOC = lt_GET_MONITOR[i].GetString("FECHA_DOC"); GET_MONITOR_resp.FECVENCI = lt_GET_MONITOR[i].GetString("FECVENCI"); GET_MONITOR_resp.DIAS_ATRASO = lt_GET_MONITOR[i].GetString("DIAS_ATRASO"); GET_MONITOR_resp.ESTADO = lt_GET_MONITOR[i].GetString("ESTADO"); GET_MONITOR_resp.ICONO = lt_GET_MONITOR[i].GetString("ICONO"); GET_MONITOR_resp.MONEDA = lt_GET_MONITOR[i].GetString("MONEDA"); GET_MONITOR_resp.ACC = lt_GET_MONITOR[i].GetString("ACC"); GET_MONITOR_resp.CLASE_CUENTA = lt_GET_MONITOR[i].GetString("CLASE_CUENTA"); GET_MONITOR_resp.COND_PAGO = lt_GET_MONITOR[i].GetString("COND_PAGO"); GET_MONITOR_resp.CME = lt_GET_MONITOR[i].GetString("CME"); GET_MONITOR_resp.CONTROL_CREDITO = lt_GET_MONITOR[i].GetString("CONTROL_CREDITO"); string Monto = ""; int indice = 0; if (lt_GET_MONITOR[i].GetString("MONTO").Contains(",")) { indice = lt_GET_MONITOR[i].GetString("MONTO").IndexOf(','); Monto = lt_GET_MONITOR[i].GetString("MONTO").Substring(0, indice - 1); GET_MONITOR_resp.MONTOF = Monto; } else { GET_MONITOR_resp.MONTOF = lt_GET_MONITOR[i].GetString("MONTOF"); } if (lt_GET_MONITOR[i].GetString("MONTO").Contains(",")) { indice = lt_GET_MONITOR[i].GetString("MONTO").IndexOf(','); Monto = lt_GET_MONITOR[i].GetString("MONTO").Substring(0, indice - 1); GET_MONITOR_resp.MONTO = Monto; } else { GET_MONITOR_resp.MONTO = lt_GET_MONITOR[i].GetString("MONTO"); } if (lt_GET_MONITOR[i].GetString("MONTO_ABONADO").Contains(",")) { indice = lt_GET_MONITOR[i].GetString("MONTO_ABONADO").IndexOf(','); Monto = lt_GET_MONITOR[i].GetString("MONTO_ABONADO").Substring(0, indice - 1); GET_MONITOR_resp.MONTOF = Monto; } else { GET_MONITOR_resp.MONTOF_ABON = lt_GET_MONITOR[i].GetString("MONTOF_ABON"); } if (lt_GET_MONITOR[i].GetString("MONTO_PAGAR").Contains(",")) { indice = lt_GET_MONITOR[i].GetString("MONTO_PAGAR").IndexOf(','); Monto = lt_GET_MONITOR[i].GetString("MONTO_PAGAR").Substring(0, indice - 1); GET_MONITOR_resp.MONTOF = Monto; } else { GET_MONITOR_resp.MONTOF_PAGAR = lt_GET_MONITOR[i].GetString("MONTOF_PAGAR"); } ObjDatosMonitor.Add(GET_MONITOR_resp); } } //else //{ // MessageBox.Show("No existen registros para este fecha"); //} GC.Collect(); } else { errormessage = retval; } GC.Collect(); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); System.Windows.MessageBox.Show(ex.Message + ex.StackTrace); GC.Collect(); } }
public IdocStatus GetCurrentStatus(String system) { if (String.IsNullOrWhiteSpace(system)) { throw new SAPException("请指定系统连接名!"); } this.des = SAPDestination.GetDesByName(system); return GetCurrentStatus(); }