Mapeo del artículo de entrega con orden de trabajo según la secuencia y la cantidad de material entregado – AI

Un usuario Pregunto ✅

RubanBasilea

Hola expertos, ¿alguien puede ayudarme con esta lógica (Tipo de inteligencia artificial)

Hay dos mesas: tabla principal y tabla de entrega. (Consulte la tabla a continuación) La tabla principal necesita la cantidad de la tabla de Entrega para cumplir con la necesidad de OT, es decir, la columna C es la columna de cantidad requerida en la tabla principal. La secuencia en la que estas líneas obtienen materiales se especifica en la columna D. Además, en la tabla Entrega habría múltiples entregas y la secuencia en la que el material se asigna a la tabla principal desde la tabla Entrega se especifica en la columna D. Queremos lograr lo que se menciona a continuación. «Salida requerida» en la tabla principal

Tabla 1 (Tabla principal)

Orden de trabajo Material Cantidad requerida Secuencia de asignación de entrega Salida requerida (de la tabla 2)
1 1 3 3 D
2 1 10 2 a B C
3 1 11 1 a

Tabla 2 (Tabla de parto)

Entrega Material Cantidad Secuencia
a 1 17 1
B 1 3 2
C 1 1 3
D 1 3 4
mi 1 9 5

Explicación detallada:

Primera iteración en la Tabla 1: En el ejemplo anterior, la Orden de trabajo ‘3’ es la primera línea para obtener materiales (esto se basa en la secuencia = columna D) y requiere 11 cantidades. Esta línea recibirá materiales de la entrega ‘a’ ya que tiene 17 cantidades y es la primera línea para regalar materiales (nuevamente, esto se basa en la secuencia en la tabla 2).

Después de esta primera iteración, en la Tabla 2 para la entrega ‘a’ ya que la Orden de trabajo ‘3’ ya ha consumido 11 cantidades. La cantidad restante de ‘a’ en la tabla 2 sería 6.

Ahora para la segunda iteración en la Tabla 1: La orden de trabajo ‘2’ es la segunda línea para obtener materiales (esto nuevamente se basa en la secuencia = columna D) y requiere 10 cantidades. Esta línea recibirá materiales de tres entregas diferentes. Esto se debe a que la entrega ‘a’ tiene 6 cantidades restantes, la entrega ‘b’ tiene 3 cantidades y la entrega ‘c’ tiene 1 cantidad.

Después de esta segunda iteración, en la Tabla 2 para las entregas a, byc se consumen por completo. Las únicas entregas abiertas disponibles son d & e.

Ahora, para la tercera iteración: La orden de trabajo ‘1’ es la última línea para obtener materiales (esto nuevamente se basa en la secuencia = columna D) y requiere 3 cantidades. Esta línea recibirá materiales desde la entrega d ya que tiene 3 cantidades.

Finalmente, después de esta tercera iteración, en la Tabla 2, las entregas a, b, c & d se consumen por completo. La única entrega abierta que queda fuera sería ‘e’.

Gracias

Saludos cordiales

Hola @RubanBasilea,

Lo siento, no podemos crear una medida porque cada línea tiene una lógica diferente.

Por lo tanto, debemos crear una columna en cada tabla y crear una tabla de cálculo para cumplir con sus requisitos.

1. Necesitamos calcular el valor acumulativo en cada tabla.

accumQty = 
CALCULATE(SUM('Table 1'[Required Qty]),FILTER('Table 1','Table 1'[Sequence of delivery allocation]<=EARLIER('Table 1'[Sequence of delivery allocation])))

map1.jpg

accum qty = 
CALCULATE(SUM('Table 2'[Quantity]),FILTER('Table 2','Table 2'[Sequence]<=EARLIER('Table 2'[Sequence])))

map2.jpg

2. Entonces necesitamos crear una tabla de cálculo.

Table = 
var _order1 = 
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=1),
    "Column1",CALCULATE(MAX('Table 2'[Delivery]),FILTER('Table 2','Table 2'[accum qty]<=[accumQty])))
var _order2 = 
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=2),
    "Column1",CONCATENATEX(FILTER('Table 2','Table 2'[accum qty]<=[accumQty]),'Table 2'[Delivery],","))
var _order3 =
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=3),
    "Column1",CALCULATE(MIN('Table 2'[Delivery]),FILTER('Table 2','Table 2'[accum qty]>=[accumQty])))
return
UNION(
    _order1,_order2,_order3)

map3.jpg

Atentamente,

Equipo de soporte de la comunidad _ zhenbw

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Por cierto, pbix adjunto.

Hola @RubanBasilea,

Lo siento, no podemos crear una medida porque cada línea tiene una lógica diferente.

Por lo tanto, debemos crear una columna en cada tabla y crear una tabla de cálculo para cumplir con sus requisitos.

1. Necesitamos calcular el valor acumulativo en cada tabla.

accumQty = 
CALCULATE(SUM('Table 1'[Required Qty]),FILTER('Table 1','Table 1'[Sequence of delivery allocation]<=EARLIER('Table 1'[Sequence of delivery allocation])))

map1.jpg

accum qty = 
CALCULATE(SUM('Table 2'[Quantity]),FILTER('Table 2','Table 2'[Sequence]<=EARLIER('Table 2'[Sequence])))

map2.jpg

2. Entonces necesitamos crear una tabla de cálculo.

Table = 
var _order1 = 
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=1),
    "Column1",CALCULATE(MAX('Table 2'[Delivery]),FILTER('Table 2','Table 2'[accum qty]<=[accumQty])))
var _order2 = 
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=2),
    "Column1",CONCATENATEX(FILTER('Table 2','Table 2'[accum qty]<=[accumQty]),'Table 2'[Delivery],","))
var _order3 =
ADDCOLUMNS(
    FILTER('Table 1','Table 1'[Work order]=3),
    "Column1",CALCULATE(MIN('Table 2'[Delivery]),FILTER('Table 2','Table 2'[accum qty]>=[accumQty])))
return
UNION(
    _order1,_order2,_order3)

map3.jpg

Atentamente,

Equipo de soporte de la comunidad _ zhenbw

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Por cierto, pbix adjunto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *