将路线信息复制到 Works 订单路线

Copy Route information to Works order route

我正在尝试从路线 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!");
}

这是路线本身:

而我想将红线之间的数据复制到工单的路由中:

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

我不确定要采取什么步骤才能完成此任务。

路由周围的数据结构太复杂,无法通过单个 insert_recordset 语句实现您想要的。首先,您应该查看路由的数据结构,特别是 tables RouteTableRouteVersionRouteRouteOpr 以及它们与每个数据结构的关系其他。最让我大开眼界的是,当我意识到一条路线的线路并没有保存在一个 table Route 中,而是数据分布在 table Route 和 table 之间RouteOpr 并且一条 RouteOpr 记录可以与多条 Route 记录相关。

了解数据结构后,我建议您看一下 class ProdUpdCostEstimation 及其方法 createProdRoute,其中展示了标准功能如何创建产品的示例从路线路线。