Anexo de documentación



Documentos relacionados
IMPLEMENTACIÓN DE UN PROTOTIPO DE SOFTWARE DE E-LEARNING PARA LA ENSEÑANZA DE SQLSERVER UTILIZANDO MICROSOFT SILVERLIGHT

B.1. CÓDIGO ITERACION.CS 3 B.2. CÓDIGO LISTAMAQUINAS.CS 4 B.3. CÓDIGO LISTAOPERACION.CS 6 B.4. CÓDIGO LISTAPIEZAS.CS 8 B.5. CÓDIGO MAQUINARIA.

Practica 7 Conexión a su base de datos. Optativa II

Las matemáticas del cifrado César Si x es la posición de la letra que queremos cifrar, la posición de la nueva letra vendrá dada por la fórmula:

Técnicas Avanzadas de Inteligencia Artificial Dpt. Lenguajes y Sistemas Informáticos. FISS. UPV-EHU

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

3.6 Patrón Factory y objetos persistentes. Políticas del POA asociadas

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Dentro del.net los eventos se utilizan para notificar a nuestros objetos que se ha producido algún tipo de hecho al que nos hemos suscrito.

Servicios pensados para optimizar los procesos de comunicación de voz y SMS.

GUÍA DE TRABAJO N 7 LENGUAJE C# Educación Media Fortalecida Programación de Software Grado 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

Código fuente C# Código asociado al formulario Splash

TUTORIAL APLICACIONES EVOLUTION CON ACTIVEX EVOLINK

GUÍA DE TRABAJO GRADO 11 Programación de. Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

Conexión SQL Server y C# (Consola)

El sistema juridico: Introduccion al derecho (Coleccion de textos juridicos de la Pontificia Universidad Catolica del Peru) (Spanish Edition)

Portal para Padres CPS - Parent Portal. Walter L. Newberry Math & Science Academy Linda Foley-Acevedo, Principal Ed Collins, Asst.

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

Connecting Cloudino Connector to FIWARE IoT

WebForms con LeadTools

Java Struts Framework. Juan Fco. Rodríguez Hervella

Programación orientada a objetos

[Titulo] : Creacion de un Troyano de Conexion Inversa [Lenguaje] : C# [Autor] : Doddy Hackman. [Temario]

Puede pagar facturas y gastos periódicos como el alquiler, el gas, la electricidad, el agua y el teléfono y también otros gastos del hogar.

Text Mining: Distancia de Levenshtein

Manual de Arduino Wifly Shield

Bases de Datos Access y C#. Insert, select, update, delete. 1. Crea una base de Datos en Access

Introducción a ZEUS. Introducción. Curso Doctorado Sistemas Multi-agente. Zeus es una herramienta de desarrollo de SMA.

Taller: Introducción a Windows Communication Foundation

Tutorial : Hacer Combos Dependientes tipo Departamento Ciudad en ASP. Net

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 E V E N T O S. Ing. Bruno López Takeyas, M.C.

GUIA PRACTICA 1 VISUAL C#.Net SQL SERVER 2012 MANTENIMIENTO DE UNA TABLA

D:\IDENTIFICADOR_PRODUCTO\Identificador_Prod\Identificador_Prod\Form1.cs // PLATAFORMA BASE DE DATOS PARA TARIFACIÓN DE PRODUCTOS

PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:

Plugin para NetBeans que realiza migración de una base de datos postgresql a couchdb.

Tutorial 1: Desarrollo de un plugin

3.- Desarrollo e implementación del sistema.

Programación para dispositivos móviles con.net CF... Comunicaciones por Bluetooth

Programación Concurrente en Java

Creating your Single Sign-On Account for the PowerSchool Parent Portal

Colecciones. Nadjet Bouayad-Agha Programación 2007

Práctica sobre compartición de instancias remotas.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

CONTROL DE ACCESO ACC4.NET

Programación de Aplicaciones Visuales II Ejercicio Paso a Paso: Aplicación para HelpDesk

Creación de un sistema ABC

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

FIUBA Algoritmos y programación 3

Práctica 8: Barreras

Tema: Grafos en C#. Objetivos Específicos. Materiales y Equipo. Introducción Teórica. Programación IV. Guía 7

Proyecto visual C# 2005 Express Edition: Imprimir Página 1 de 5

Cantemos Las Posadas - Contiene Villancicos, Cánticos para Pedir la Piñata, Letanía y todo para la Temporada Navideña. (Corazón Renovado)

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 31 de MAYO de 2001

Propedéutico de Programación

Tema 5 Diseño con Glade

Brief Introduction to Docking and Virtual Screening with Autodock4 and Autodock Tools

Imprimir PDF en WebDynpro para JAVA sin utilizar Interactive Forms en llamadas RFC.

GUÍA DE TRABAJO N 9 - LENGUAJES C# + SQL Educación Media Fortalecida Programación de Software GRADO 11 Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

Sabes cuanto deja tu negocio?: Completa guia Pymes y emprendedores (Spanish Edition)

Bloque IV: Usos avanzados

Programació amb C#.NET

Multitarea en Java. Rafa Caballero - UCM

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

EVALUACIÓN. Programa de trabajador

03.04 Unity. Integración de Sistemas. Parte II. Diseño e implementación de aplicaciones Web con.net

Operación Edit, Delete, Update e Insert en un DataGrid: Parte I

Control personalizado, velocímetro con C#

Anexo Nº 11 MANUAL DE INSTALACIÓN

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

Fundamentos de Programación CAPÍTULO 3 EL LENGUAJE C# Ing. Bruno López Takeyas, M.C. 1

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. IV.3 Monitorización de excepciones en Threads

2. Under user name, use your Panther ID (Same as Maximo) Use el Panther ID en la seccion que dice User Name (El mismo de Maximo)

En este ejemplo también vamos a crear la capa Entidades que va a servir para modelar nuestra base de datos.

In the following you see an example of a SPAC calculation run. BKtel systems Seite 1/8

TITLE VI COMPLAINT FORM

Alergia alimentaria ( Este capitulo pertenece al libro Toxicología alimentaria ) (Spanish Edition)

Inteligencia Artificial, Práctica 1. Felix Marquardt & Daniel Clemente 08 nov 05 19:54 Trabajo.java

BEGINNING BAND PRACTICE JOURNAL #3 Also available online

Frederick News May 25 th, 2018

Programación concurrente en Java

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).

Agustiniano Ciudad Salitre School Computer Science Support Guide Second grade First term

Conexión a Base de Datos.

Open Virtual Machine Language Quick Start Guide. Español

Students Pledge: Parents Pledge:

Los Numeros. en espanol

EN / ES Airtribune Live tracking Instructions

SEO Lite. Extract the file SEO.zip in the modules folder, so that module files are inside /moules/ seo/.

myappgen Usted Construye la aplicación mientras la ejecuta

Transcripción:

Anexo de documentación Autor: Daniel Hernández Jané Tutor: Juan Carlos Hernández Palacín

Índice 1. Orden de fabricación... 2 1.1. Convertidor ÖBB... 2 1.2. Convertidor Civia... 5 1.3. Convertidor Desiro... 8 2. Hojas de ruta (HR)... 11 2.1. Convertidor ÖBB... 11 2.2. Convertidor CIVIA... 15 2.3. Convertidor Desiro... 18 3. Lista de materiales... 21 4. Programación de la interfaz gráfica del Workflow... 34 1

1. Orden de fabricación 1.1. Convertidor ÖBB Figura 1: ejemplo de orden de fabricación extraída de SAP, pestaña general. Figura 2: ejemplo de orden de fabricación extraída de SAP, pestaña Asignación. 2

Figura 3: ejemplo de orden de fabricación extraída de SAP, pestaña Entrada de mercancías. Figura 4: ejemplo de orden de fabricación extraída de SAP, pestaña Control. 3

Figura 5: ejemplo de orden de fabricación extraída de SAP, pestaña Fechas / Cantidad. Figura 6: ejemplo de orden de fabricación extraída de SAP, pestaña Datos maestros. 4

1.2. Convertidor Civia Figura 7: ejemplo de orden de fabricación extraída de SAP, pestaña general. (Civia) Figura 8: ejemplo de orden de fabricación extraída de SAP, pestaña Asignación. (Civia) 5

Figura 9: ejemplo de orden de fabricación extraída de SAP, pestaña Entradas mercancías. (Civia) Figura 10: ejemplo de orden de fabricación extraída de SAP, pestaña Control. (Civia) 6

Figura 11: ejemplo de orden de fabricación extraída de SAP, pestaña Fechas / Cantidad. (Civia) Figura 12: ejemplo de orden de fabricación extraída de SAP, pestaña Datos maestros. (Civia) 7

1.3. Convertidor Desiro Figura 13: ejemplo de orden de fabricación extraída de SAP, pestaña general. (Desiro) Figura 14: ejemplo de orden de fabricación extraída de SAP, pestaña Asignación. (Desiro) 8

Figura 15: ejemplo de orden de fabricación extraída de SAP, pestaña Entrada mercancías. (Desiro) Figura 16: ejemplo de orden de fabricación extraída de SAP, pestaña Control. (Desiro) 9

Figura 17: ejemplo de orden de fabricación extraída de SAP, pestaña Fechas / Cantidad. (Desiro) Figura 18: ejemplo de orden de fabricación extraída de SAP, pestaña Datos maestros. (Desiro) 10

2. Hojas de ruta (HR) 2.1. Convertidor ÖBB HR 1: subproceso Pruebas y expedición. HR 2: subproceso Montaje. 11

HR 3: subproceso FK1 (Cable de mando). HR 4: subproceso FK2 (Cable de mando). 12

HR 5: subproceso FK3 (Cable de mando). HR 6: subproceso FK4 (Cable de mando). HR 7: subproceso FK5 (Cable de mando). 13

HR 8: subproceso FK Puentes. HR 9: subproceso Cables de potencia. HR 10: subproceso Premontajes. 14

2.2. Convertidor CIVIA HR 1: subproceso Montaje, pruebas y expedición HR 2: subproceso FK1 (Cable de mando) 15

HR 3: subproceso FK2 (Cable de mando) HR 4: subproceso FK3 (Cable de mando) HR 5: subproceso FK Puentes 16

HR 6: subproceso Cables de potencia HR 7: subproceso Premontajes 17

2.3. Convertidor Desiro HR 1: subproceso Montaje, pruebas y expedición 18

HR 2: subproceso FK1 (Cable de mando) HR 3: subproceso FK2 (Cable de mando) 19

HR 4: subproceso Cables de potencia HR 5: subproceso Premontajes 20

3. Lista de materiales Convertidor ÖBB Extracto de materiales de montaje 21

Convertidor ÖBB Extracto de materiales de cables de mando 22

Convertidor ÖBB Extracto de materiales de FK puentes 23

Convertidor ÖBB Extracto de materiales de cables de potencia 24

Convertidor ÖBB Extracto de materiales de premontajes 25

Convertidor CIVIA Extracto de materiales de montaje 26

Convertidor CIVIA Extracto de materiales de cables de mando 27

Convertidor CIVIA Extracto de materiales de FK puentes 28

Convertidor CIVIA Extracto de materiales de cables de potencia 29

Convertidor CIVIA Extracto de materiales de premontajes 30

Convertidor DESIRO Extracto de materiales de montaje 31

Convertidor DESIRO Extracto de materiales de cables de mando y FK puentes Convertidor DESIRO Extracto de materiales de cables de potencia 32

Convertidor DESIRO Extracto de materiales de premontajes 33

4. Programación de la interfaz gráfica del Workflow Seguidamente, se presenta el código resultante de la programación con Visual Studio 2010 de la interfaz gráfica sobre la que se ejecuta el Workflow (véase figura). Figura 19: Captura de la reproducción del Workflow sobre la interfaz de reproducción. using System; using System.Activities; using System.Activities.Core.Presentation; using System.Activities.Debugger; using System.Activities.Presentation; using System.Activities.Presentation.Debug; using System.Activities.Presentation.Services; using System.Activities.Tracking; using System.Activities.XamlIntegration; using System.Collections.Generic; using System.Threading; using System.Windows; using System.Windows.Controls; using System.Windows.Threading; namespace Microsoft.Samples.VisualWorkflowTracking /// <summary> /// Interaction logic for WorkflowDesignerHost.xaml /// </summary> public partial class WorkflowDesignerHost : UserControl public WorkflowDesigner WorkflowDesigner get; set; public IDesignerDebugView DebuggerService get; set; 34

TextBox tx; Dictionary<int, SourceLocation> textlinetosourcelocationmap; int i = 0; public WorkflowDesignerHost() InitializeComponent(); RegisterMetadata(); AddWorkflowDesigner(); AddTrackingTextbox(); private void RegisterMetadata() (new DesignerMetadata()).Register(); private void AddWorkflowDesigner() this.workflowdesigner = new WorkflowDesigner(); this.debuggerservice = this.workflowdesigner.debugmanagerview; this.workflowdesigner.load("workflow.xaml"); //this.workflowdesigner.load("prompt.xaml"); this.rehostgrid.children.add(this.workflowdesigner.view); //Run the Workflow with the tracking participant public void RunWorkflow() tx.text = ""; WorkflowInvoker instance = new WorkflowInvoker(GetRuntimeExecutionRoot()); //Mapping between the Object and Line No. Dictionary<object, SourceLocation> wfelementtosourcelocationmap = UpdateSourceLocationMappingInDebuggerService(); //Mapping between the Object and the Instance Id Dictionary<string, Activity> activityidtowfelementmap = BuildActivityIdToWfElementMap(wfElementToSourceLocationMap); # region Set up Custom Tracking const String all = "*"; VisualTrackingParticipant simtracker = new VisualTrackingParticipant() TrackingProfile = new TrackingProfile() Name = "CustomTrackingProfile", Queries = new CustomTrackingQuery() Name = all, ActivityName = all, new WorkflowInstanceQuery() 35

// Limit workflow instance tracking records for started and completed workflow states States = WorkflowInstanceStates.Started, WorkflowInstanceStates.Completed,, new ActivityStateQuery() // Subscribe for track records from all activities for all states ActivityName = all, States = all, // Extract workflow variables and arguments as a part of the activity tracking record // VariableName = "*" allows for extraction of all variables in the scope // of the activity Variables = all ; # endregion simtracker.activityidtoworkflowelementmap = activityidtowfelementmap; //As the tracking events are received simtracker.trackingrecordreceived += (trackingparticpant, trackingeventargs) => if (trackingeventargs.activity!= null) System.Diagnostics.Debug.WriteLine( String.Format("<+=+=+=+> Activity Tracking Record Received for ActivityId: 0, record: 1 ", trackingeventargs.activity.id, trackingeventargs.record ) ); ShowDebug(wfElementToSourceLocationMap[trackingEventArgs.Activity]); (Action)(() => this.dispatcher.invoke(dispatcherpriority.systemidle, //Textbox Updates //tx.appendtext(trackingeventargs.activity.displayname + " " + ((ActivityStateRecord)trackingEventArgs.Record).State + "\n"); if (((ActivityStateRecord)trackingEventArgs.Record).State == "Executing") tx.appendtext("ejecutando " + trackingeventargs.activity.displayname + "\n"); 36

else tx.appendtext(trackingeventargs.activity.displayname + " finalizado" + "\n"); if (trackingeventargs.activity.gettype().fullname.equals(typeof(system.activities.st atements.writeline).fullname) && ((ActivityStateRecord)trackingEventArgs.Record).State == "Executing") tx.appendtext(((system.activities.statements.writeline)(trackingeventargs.activit y)).text.expression.tostring() + "\n"); if (((ActivityStateRecord)trackingEventArgs.Record).State == "Closed") tx.appendtext("******************\n"); textlinetosourcelocationmap.add(i, wfelementtosourcelocationmap[trackingeventargs.activity]); i = i + 2; tx.scrolltoend(); visible to the user //Add a sleep so that the debug adornments are System.Threading.Thread.Sleep(1000); )); ; instance.extensions.add(simtracker); ThreadPool.QueueUserWorkItem(new WaitCallback((context) => //Invoking the Workflow Instance with Input Arguments instance.invoke(new Dictionary<string, object> "decisionvar", true, "testvar", "Prova", new TimeSpan(1, 0, 0)); //This is to remove the final debug adornment this.dispatcher.invoke(dispatcherpriority.render, (Action)(() => this.workflowdesigner.debugmanagerview.currentlocation = new SourceLocation("Workflow.xaml",1,1,1,10); //this.workflowdesigner.debugmanagerview.currentlocation = new SourceLocation("Prompt.xaml", 1, 1, 1, 10); )); )); void ShowDebug(SourceLocation srcloc) 37

this.dispatcher.invoke(dispatcherpriority.render, (Action)(() => this.workflowdesigner.debugmanagerview.currentlocation = srcloc; )); //Provide Debug Adornment on the Activity being executed void textbox1_selectionchanged(object sender, RoutedEventArgs e) string text = this.tx.text; int index = 0; int lineclicked = 0; while (index < text.length) if (text[index] == '\n') lineclicked++; if (this.tx.selectionstart <= index) break; index++; this.dispatcher.invoke(dispatcherpriority.normal, (Action)(() => try //Tell Debug Service that the Line Clicked is this.workflowdesigner.debugmanagerview.currentlocation = textlinetosourcelocationmap[lineclicked]; catch (Exception) //If the user clicks other than on the tracking records themselves. this.workflowdesigner.debugmanagerview.currentlocation = new SourceLocation("Workflow.xaml", 1, 1, 1, 10); //this.workflowdesigner.debugmanagerview.currentlocation = new SourceLocation("Prompt.xaml", 1, 1, 1, 10); )); private Dictionary<string, Activity> BuildActivityIdToWfElementMap(Dictionary<object, SourceLocation> wfelementtosourcelocationmap) Dictionary<string, Activity> map = new Dictionary<string, Activity>(); Activity wfelement; foreach (object instance in wfelementtosourcelocationmap.keys) wfelement = instance as Activity; if (wfelement!= null) 38

map.add(wfelement.id, wfelement); return map; Dictionary<object, SourceLocation> UpdateSourceLocationMappingInDebuggerService() object rootinstance = GetRootInstance(); Dictionary<object, SourceLocation> sourcelocationmapping = new Dictionary<object, SourceLocation>(); Dictionary<object, SourceLocation> designersourcelocationmapping = new Dictionary<object, SourceLocation>(); if (rootinstance!= null) Activity documentrootelement = GetRootWorkflowElement(rootInstance); SourceLocationProvider.CollectMapping(GetRootRuntimeWorkflowElement(), documentrootelement, sourcelocationmapping, this.workflowdesigner.context.items.getvalue<workflowfileitem>().loadedfile); SourceLocationProvider.CollectMapping(documentRootElement, documentrootelement, designersourcelocationmapping, this.workflowdesigner.context.items.getvalue<workflowfileitem>().loadedfile); // Notify the DebuggerService of the new sourcelocationmapping. // When rootinstance == null, it'll just reset the mapping. //DebuggerService debuggerservice = debuggerservice as DebuggerService; if (this.debuggerservice!= null) ((DebuggerService)this.DebuggerService).UpdateSourceLocations(designerSourceLocat ionmapping); return sourcelocationmapping; # region Helper Methods object GetRootInstance() ModelService modelservice = this.workflowdesigner.context.services.getservice<modelservice>(); if (modelservice!= null) return modelservice.root.getcurrentvalue(); else return null; 39

// Get root WorkflowElement. Currently only handle when the object is ActivitySchemaType or WorkflowElement. // May return null if it does not know how to get the root activity. Activity GetRootWorkflowElement(object rootmodelobject) System.Diagnostics.Debug.Assert(rootModelObject!= null, "Cannot pass null as rootmodelobject"); Activity rootworkflowelement; IDebuggableWorkflowTree debuggableworkflowtree = rootmodelobject as IDebuggableWorkflowTree; if (debuggableworkflowtree!= null) rootworkflowelement = debuggableworkflowtree.getworkflowroot(); else // Loose xaml case. rootworkflowelement = rootmodelobject as Activity; return rootworkflowelement; Activity GetRuntimeExecutionRoot() Activity root = ActivityXamlServices.Load("Workflow.xaml"); //Activity root = ActivityXamlServices.Load("Prompt.xaml"); WorkflowInspectionServices.CacheMetadata(root); return root; Activity GetRootRuntimeWorkflowElement() Activity root = ActivityXamlServices.Load("Workflow.xaml"); //Activity root = ActivityXamlServices.Load("Prompt.xaml"); WorkflowInspectionServices.CacheMetadata(root); IEnumerator<Activity> enumerator1 = WorkflowInspectionServices.GetActivities(root).GetEnumerator(); //Get the first child of the x:class enumerator1.movenext(); root = enumerator1.current; return root; void AddTrackingTextbox() tx = new TextBox(); tx.verticalscrollbarvisibility = ScrollBarVisibility.Visible; Grid.SetRow(tx, 1); Label trackrecords = new Label(); trackrecords.fontsize = 11; trackrecords.fontweight = FontWeights.Bold; trackrecords.content = "Tracking Records: "; Grid.SetRow(trackRecords, 0); this.trackingrecord.children.add(trackrecords); this.trackingrecord.children.add(tx); 40

//For Tracking Records displayed and to check which activity those records corresponds to. this.tx.selectionchanged += new RoutedEventHandler(textBox1_SelectionChanged); textlinetosourcelocationmap = new Dictionary<int, SourceLocation>(); # endregion 41