将路线信息复制到工厂订单路线

时间:2017-07-11 20:10:59

标签: axapta dynamics-ax-2012 x++

我正在尝试将多条线从路线Table: Route复制到工作订单的路线Table: ProdRoute

我正在尝试以下代码,但无效:

    static void CopyRoute(Args _args)
{

ProdRoute        prodRoute;
Route            route;
ProdTable        prodTable;
;



ttsBegin;


INSERT_RECORDSET prodRoute
    (
    OprNum,
    OprPriority,
    OprId,
    OprNumNext
    )
Select
    OprNum,
    OprPriority,
    OprId,
    OprNumNext
from
    route
join prodTable
where prodRoute.ProdId == prodTable.ProdId &&
prodTable.RouteId == route.RouteId;

ttsCommit;

    info("Copy finished!");
}

这是路线本身:

enter image description here

我想将红线之间的数据复制到工作顺序的路线中:

enter image description here

正如你在我的工作中所看到的那样,这是行不通的,我想加入ProdTable本身,基于RouteId上的ProdTable来实现这一点,我想要从Route复制行(与RouteId匹配)。然后将此数据填入Works Order的ProdRoute表。

我不确定采取什么步骤,所以我可以做到这一点。

1 个答案:

答案 0 :(得分:3)

路由周围的数据结构太复杂,无法通过单个insert_recordset语句实现您想要的功能。首先,您应该查看路由的数据结构,特别是表RouteTableRouteVersionRouteRouteOpr以及它们之间的关系。对我而言,最让人大开眼界的是当我意识到路线的行没有保存在一个表Route中时,但数据是在表RouteRouteOpr之间分配的那一个{ {1}}记录可以与多个RouteOpr记录相关联。

在您对数据结构有所了解之后,我建议您查看类Route及其方法ProdUpdCostEstimation,其中显示了标准功能如何从路径创建生产路径的一个示例。 / p>