public static void Main() { WorkflowEngineSOASoap engine = new WorkflowEngineSOASoapClient(); engine.abortCasesAsString(Resource.xml); Console.WriteLine("Aborted"); Console.ReadLine(); }
public ActionResult Creacion(FormCollection collection, IEnumerable <HttpPostedFileBase> files) { try { #region Leer variables // Cabecera int idUsuarioCreador = 1; string txtNombreSolicitante = collection["txtNombreSolicitante"] ?? string.Empty; string txtCorreoSolicitante = collection["txtCorreoSolicitante"] ?? string.Empty; // Datos solicitud List <Recurso> recursos = new List <Recurso>(); List <string> filas = collection.AllKeys.Where(d => d.StartsWith("txtCantidad")).ToList(); // Recorrer filas de la tabla foreach (string fila in filas) { // Extraer nro de fila int nroFila = int.Parse(Regex.Match(fila, @"\d+").Value); // Guardar variables string nombre = collection["txtNombreRecurso" + nroFila]; int unidad = int.Parse(collection["txtUnidadRecurso" + nroFila]); int cantidad = int.Parse(collection["txtCantidadRecurso" + nroFila]); // Crear recurso y agregar a colección recursos.Add(new Recurso(nombre, unidad, cantidad)); } // Leer archivo string campoDocumento = "txtDocumento"; string path = Path.GetTempPath(); string filename = "archivo_temporal"; string nombreOriginal = Request.Files[campoDocumento].FileName; string ext = Path.GetExtension(Request.Files[campoDocumento].FileName); Request.Files[campoDocumento].SaveAs(Path.Combine(path, filename + ext)); string txtDocumento = Util.ConvertirABase64(path + filename + ext); // Obtener usuario Bizagi string usuarioBizagi = System.Configuration.ConfigurationManager.AppSettings["usuarioBizagi"].ToString(); string dominioBizagi = System.Configuration.ConfigurationManager.AppSettings["dominioBizagi"].ToString(); #endregion #region Armar XML string nombreProceso = "AnalisisDeRecursos"; // Parte de recursos string xmlRecursos = string.Empty; foreach (Recurso recurso in recursos) { xmlRecursos += @" <M_RecursosInvolucrados> <Nombre>" + recurso.Nombre + @"</Nombre> <Cantidad>" + recurso.Cantidad + @"</Cantidad> <Unidad>" + recurso.Unidad + @"</Unidad> </M_RecursosInvolucrados>"; } // XML General string xmlCreacion = @" <BizAgiWSParam> <userName>" + usuarioBizagi + @"</userName> <domain>" + dominioBizagi + @"</domain> <Cases> <Case> <Process>" + nombreProceso + @"</Process> <Entities> <AnalisisDeRecursos> <Usuariocreador>" + idUsuarioCreador + @"</Usuariocreador> <Documento> <File fileName='" + nombreOriginal + @"'>" + txtDocumento + @"</File> </Documento> <RecursosInvolucrados> " + xmlRecursos + @" </RecursosInvolucrados> </AnalisisDeRecursos> </Entities> </Case> </Cases> </BizAgiWSParam> "; xmlCreacion = xmlCreacion.Replace("\n", ""); xmlCreacion = xmlCreacion.Replace("\t", ""); xmlCreacion = xmlCreacion.Replace("\r", ""); Util.EscribirLog("Creacion", "XML Creación", xmlCreacion); #endregion #region Respuesta Bizagi XmlDocument doc = new XmlDocument(); string respuesta = string.Empty; // Abrir conexión a servicio web using (WorkflowEngineSOASoapClient workflowEngine = new WorkflowEngineSOASoapClient()) { // Llamar a Bizagi respuesta = workflowEngine.createCasesAsString(xmlCreacion); Util.EscribirLog("Creacion", "XML Respuesta creación", respuesta); } // Convertir a XML doc.LoadXml(respuesta); string nroCaso = doc.SelectSingleNode("/processes/process/processId").InnerText; // Si hubo error if (nroCaso == "0") { string mensajeError = doc.SelectSingleNode("/processes/process/processError/errorMessage/Entities/ErrorMessage").InnerText; Util.EscribirLog("Creacion", "Error creación", mensajeError); } // Mandar mensaje a vista return(RedirectToAction("Creacion", new { id = nroCaso })); #endregion } catch (Exception ex) { Util.EscribirLog("Creacion", "Error Creación", ex.Message); return(RedirectToAction("Creacion", new { estado = 0 })); } return(View()); }