示例#1
0
 public static void Main()
 {
     WorkflowEngineSOASoap engine = new WorkflowEngineSOASoapClient();
     engine.abortCasesAsString(Resource.xml);
     Console.WriteLine("Aborted"); 
     Console.ReadLine();
 }
示例#2
0
        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());
        }