jueves, 9 de enero de 2014

Agregar un campo de una tabla diferente

Esta es una herramienta para ayudarte a agregar un Foreign Key View (FKV) / Sub Table View (STV) a una interfaz de usuario, a fin de permitirte agregar un campo que normalmente no estaría disponible. Aunque nada mas en una table en especifico, tu eres el responsable de "convertirla" a cualquier otra tabla.

1.  Abrir Epicor 9 y seleccionar Options > Developer Mode.
2.  Material Management > Inventory Management > General Operations > Issue Material.
3.  En la venta de customización, marca en cualquier caso “Base Only” o selecciona una customización ya creada. Después selecciona OK.
4.  En la edición de la Forma de "Material", selecciona Tools > Customization.
5.  En la pantalla de customización Tools Dialog, selecciona Tools > Data Tools.

Creando un Foreign Key View para traer de la tabla "Part" entonces necesitamos traer el campo de "Part Warehouse"

Epicor 9 usa“Vistas” no difíciles de leer en las tablas, como se haría en un lenguaje de programación.  En nuestro caso la vista "Parent" (Padre) seria IM (Issue Materials) porque en el caso de los desarrolladores podemos organizar una vista maestra para Issue Materials. Todas las vistas trabajan con "Adaptadores". Entonces en nuestro ejemplo en especifico el "Adaptador de nuestra Parte" se podría utilizar con todas las tablas que relacionen a las partes. En la vista que realizaremos puede manejar diferentes tablas dentro de ella.


6.  Click en “New Custom View” button.
7.  Escribe el nombre de la vista. Noté que la vista no va a estar incluida en “Part”. Tiene un “IM” para “Issue Material”.  El nombre de la vista puede ser cualquiera que tu necesites pero debe de ser un nombre único con el que la identifiques y la podamos manejar en mi caso será IM_Part.
8.  El nombre de la vista Parent (Padre)se va a llenar en automático en el IM.
9.  La View Type se llenará en automático con "Foreign Key View".
10. Selecciona la "Column Name" con "PartNum" que es el primer vinculo para guardar
11. La "Like Column Value" se llenara en automático con "Part.PartNum".
12. El "Adapter Name" se llenara en automático con "PartAdapter".
13. El "Get By Type" también se llenará en automático con "StringGetByID".


14. Click en el botón "Add" y se agregará el "Foreign Key View" después recibirás un mensaje de confirmación. Click en el botón de OK.


Seguido de esto crearemos el "Sub Table View" para que nos traiga la tabla de "PartWhse", que es una vista de la tabla de "Part", y una sub table de la tabla de "Part" (un poco enredado pero así es).
15. Click en el botón "New Custom View".
16. Capturamos el nombre de la vista. El nombre de la vista puede ser cualquiera que tu prefieras pero debe de ser un nombre único con el que la identifiques y la podamos manejar en mi caso será STV_PartWhse.
17. Fijamos el "Parent View Name" que es el que hicimos en el paso 7 IM_Part (nuestro "foreign key View").
18. Fijamos en el "View Type" la opción de "Sub Table View", porque estamos buscando una subtabla de la tabla de "Part".


19. Despues de seleccionar el "View Type", la pantalla mostrará más campos adicionales:


20. El "Link Columns View" se llenara en automático poniendo "IM".
21. Fijamos "Sub Table Name" con "PartWhse", la tabla que usaremos después.


Ahora haremos la configuración de la la tabla "PartWhse" basados en el indice principal de la misma, pues encontrar estos indices en el diccionario de datos de las vistas. En nuestro caso seleccionamos los campos de "Compañia, PartNum, WarehouseCode. Esto solo lo nos mostrara la empresa, numero de parte correcta, guardada en la tabla de "WarehouseCode". No podemos agregar "WarehouseCode" porque este no corresponde con un valor en la tabla de "Part"

22. Fijar "Parent View Columns" (desde la tabla "Part") Con el campo "Company".
23. Fijar "Child View Columns" (desde la tabla "PartWhse") Con el campo "Company".
24. Click en el botón de "Add" que esta justo abajo de "Child View Columns", NO en el que esta hasta abajo. Este agregara el primer link entre las 2 tablas.


22. Fijar "Parent View Columns" (desde la tabla "Part") Con el campo "PartNum".
23. Fijar "Child View Columns" (desde la tabla "PartWhse") Con el campo "PartNum".
24. Click en el botón de "Add" que esta justo abajo de "Child View Columns", NO en el que esta hasta abajo. Este agregara el segundo link entre las 2 tablas.


28. Click en el botón "Add" que esta hasta abajo.  Esto agregara la "Sub Table View".
29. Click en el botón OK.


30. Guarda y Salte de la customización.
31. Salimos de la forma "Issue Material".
32. Re-abrimos la forma "Issue Material" y seleccionamos la customización. 
33. Agregamos una nuevo campo "UD controls".  Ahora tu podrás encontrar el campo que requieres desde la tabla que agregamos, la cual es "STV_PartWhse.OnHandQty".


34. Ahora, puedes traer en "Job" y en el "Mtl" el campo de la cantidad del "On Hand Qty".

14 comentarios:

  1. Que tal, estoy tratando de hacer este ejemplo pero con Epicor10 pero estoy teniendo problemas al tratar de bindear el EpiTextbox y la SubTableView , sabrás el porque de este problema?

    Gracias por tu atención y por este tutorial
    Saludos.

    ResponderBorrar
    Respuestas
    1. Pueden ser varias causas, por ejemplo no todas las tablas esta relacionadas, o los indices no son los correctos, te puedo asesorar diciendome que es lo que tratas de hacer.

      Borrar
    2. Te lo agradecería mucho si me apoyas, te comento por aquí? y no te causa ningún contratiempo ?

      Saludos y gracias

      Borrar
    3. Gracias, Listo ya te escribí por Hangouts.

      Borrar
  2. Buen dia armando, estoy siguiendo tu ejemplo pero tengo unos detalles, crees que podrias ayudarme?

    ResponderBorrar
  3. Buenos días Armando disculpa tengo una duda cómo puedo crear una tabla y un campo en epicor 10, si aun no se ha creado nada.

    Saludos Cordiales y gracias

    ResponderBorrar
  4. Este blog ha sido eliminado por un administrador de blog.

    ResponderBorrar
  5. Hola Armando.
    Trato de hacer tu ejempo desde la pantalla Ingreso de Costos adicionales del contenedor, trato de agregar la tabla PartCost, agrego la Part desde la tabla RcvDtl, pero luego no me sale la PartCost, pero si me salen las de tu ejmplo como la PartWse.

    Saludos,

    ResponderBorrar
    Respuestas
    1. Me podrías dar un poco más de info, si gustas contactarme por el handouts

      Borrar
  6. Hola.. ojala puedas ayudarme.. estoy empezando a trabajar con epicor 10 Tengo la Tabla ParTranf donde se guarda las transacciones del part(Embarque para Cliente, Emitir material Miscelanio entre otros.).. Me pidieron que en el modulo de "Emitir Material Miscelanio" agregue un campo para relacionar con un cliente... La tabla PartTran tiene el campo Customer pero en la vistas de Emitir Material no muestra dicho campo como podría hacer ..Gracias

    ResponderBorrar
  7. Hola Armando disculpa como puedo guardar una imagen en la base de datos en epicor para que en el formulario de Compradores, sea dinámica, es decir que aparezca la imagen del comprador por según el comprador se haya seleccionado en la búsqueda. O almenos me podrías decir, por favor que tipo de campo debo de agregar a la tabla para poder almacenra imagenes, ya que se que en sql server podría ser un binario o in campo imagen, pero en epicor solo tengo las opciones de Boolean, Date, DateTime, Guid, Integer y String.
    Gracias por tu apoyo. Saludos cordials

    ResponderBorrar