您的仓库管理数据模板
您的仓库管理数据模板
- 建议收集的属性
- 仓库运营需要跟踪的关键活动
- 适用于Körber WMS的数据提取指南
仓储管理属性
| 名称 | 说明 | ||
|---|---|---|---|
| 事件时间 EventTime | 活动或事件在源系统中记录时的准确日期和时间。 | ||
| 说明 Event Time是与每项活动关联的时间戳,标记活动实际发生的准确时刻。这些时间数据是计算流程不同步骤之间时长、周期时间和等待时间的基础。 在流程分析中,该属性用于按时间顺序排列事件、构建顺序流并执行任何基于时间的分析。它对于衡量绩效的仪表板至关重要,例如周期时间分析,也用于计算“Average Order End-to-End Cycle Time”等KPI。 为什么重要 该时间戳对于排列事件顺序、计算周期时间和等待时间等所有基于时间的指标,以及了解流程绩效至关重要。 获取位置 位于Körber WMS的所有交易和事件日志表中,字段名通常类似于“CreationDate”“Timestamp”或“EventDateTime”。 示例 2023-10-26T10:00:00Z2023-10-26T11:35:10Z2023-10-27T08:15:00Z | |||
| 仓库订单 WarehouseOrder | 仓库订单的唯一标识符,用作跟踪所有相关物流活动的主要案例标识符。 | ||
| 说明 仓库订单是将特定物流请求相关的所有任务和事件归集在一起的核心标识,例如入库收货或出库发运。它支持在仓库内端到端跟踪订单生命周期,从创建到最终发运或取消。 在流程挖掘中,按仓库订单进行分析,可以呈现每个订单的完整流程顺序。这有助于识别不同订单类型(如标准订单与加急订单)的常见路径、偏差、瓶颈和整体周期时间。 为什么重要 这是连接所有相关事件的核心Case ID,可针对每个具体订单对仓库管理流程进行完整的端到端分析。 获取位置 此标识符通常位于Körber WMS的核心订单管理表中。请参阅Körber WMS文档,确认具体的表名和字段名,例如订单头表。 示例 WO-0012845WO-0012991WO-0013402 | |||
| 活动名称 ActivityName | 仓库订单生命周期中某个时间点发生的具体事件或任务的名称。 | ||
| 说明 此属性描述仓库管理流程中的单个步骤,例如“从存储区拣货”或“发运出库”。每项活动都代表系统记录的独立业务事件,并关联特定时间戳。 活动分析是流程挖掘的核心。它支持构建流程图,展示工作在仓库中的实际流转方式,从而识别瓶颈、返工循环以及偏离标准操作流程的情况。 为什么重要 它定义流程中的各个步骤,是构建流程图的基础,并支持对顺序流、变体和瓶颈进行分析。 获取位置 Körber WMS中的事件或交易日志表,用于记录业务事件。该数据通常源自交易代码或状态变更描述。 示例 已创建拣选任务货物已完成包装货物已发运仓库订单已取消 | |||
| 上次数据更新 LastDataUpdate | 表示该流程数据上次刷新的时间戳。 | ||
| 说明 此属性记录最近一次数据提取或更新的日期和时间,为正在分析的数据新鲜度提供上下文,确保用户了解当前流程视图的时效性。 在仪表板和报告中,这项信息对于保持透明度至关重要。它有助于用户了解当前查看的是实时、每日还是每周数据,而这会影响决策。 为什么重要 告知用户数据的时效性,这对于基于分析结果做出准确且相关的业务决策至关重要。 获取位置 该值由数据管道或ETL工具在每次数据刷新周期结束时生成并记录。 示例 2024-05-21T02:00:00Z2024-05-22T02:00:00Z | |||
| 源系统 SourceSystem | 提取数据的系统。 | ||
| 说明 此属性用于标识事件数据的来源系统,本例中为“Körber WMS”。在包含多个集成系统的环境中,该字段有助于区分数据来源并追踪数据血缘。 在分析中,它可以提供必要的上下文,尤其适用于合并多个系统的数据。它有助于确保数据质量,也可用于将分析筛选到特定系统的活动。 为什么重要 提供有关数据来源的重要上下文,确保信息清晰且可追溯,尤其适用于多个系统互联的环境。 获取位置 这通常是在数据提取过程中添加的静态值,用于标识源系统。 示例 Körber WMSKörberOne | |||
| 产品SKU ProductSKU | 所处理物品的库存保有单位(SKU)或物料编号。 | ||
| 说明 产品SKU是仓库订单中具体产品或物料的唯一标识符。一个订单可以包含一个或多个SKU。 按产品SKU分析有助于了解某些产品是否需要更复杂或更易出问题的处理流程。例如,您可能发现易碎品的包装时间更长,或某些SKU经常出现拣货差异。这些发现可用于调整存储策略或处理流程。 为什么重要 支持按具体产品分析流程绩效,揭示哪些物品可能导致延误或错误。 获取位置 位于与仓库订单主订单头关联的订单行项目表中。常见字段名包括“SKU”“MaterialNumber”或“ItemCode”。 示例 SKU-847361SKU-991204SKU-103557 | |||
| 优先级 PriorityLevel | 表示仓库订单的紧急程度或优先级,例如标准或加急。 | ||
| 说明 优先级是分配给仓库订单的分类,用于规定处理紧急程度。例如,订单可能标记为“加急”或“高优先级”,表示应优先于标准订单处理。 该属性是“加急订单分析”仪表板和“加急发运占比”KPI的重要基础。它有助于了解紧急订单对整体仓库运营及相关成本的影响,并判断其处理时间是否确实快于标准订单。 为什么重要 帮助分析紧急订单的处理方式、发生频率及其对整体流程绩效和成本的影响。 获取位置 位于订单头数据中。请查找“Priority”“Urgency”或特定的运输服务级别指示字段。 示例 标准加急隔夜紧急 | |||
| 实际数量 ActualQuantity | 任务中实际处理或记录的物品数量。 | ||
| 说明 实际数量是仓库操作员实际清点、拣取、包装或接收的单位数。该值在任务完成时记录,可能因库存短缺、损坏或人为错误而与“计划数量”不同。 将此属性与“计划数量”进行比较,是“库存流程健康度与准确性”仪表板的基础。两者之间的差异直接表明流程失败或数据不准确,需要进一步调查。 为什么重要 提供实际处理数量的真实依据,对于计算差异率和确保库存准确性不可或缺。 获取位置 位于交易确认记录或任务完成记录中。字段名可能包括“ActualQty”“ConfirmedQuantity”或“PickedQuantity”。 示例 10491 | |||
| 用户/操作员ID UserOperatorId | 执行活动的用户或操作员标识符。 | ||
| 说明 此属性用于标识负责执行特定任务的仓库员工或系统用户,例如拣货、包装或上架。有时也可能代表自动化系统或机器人。 该维度对于资源绩效分析至关重要。它有助于了解工作负载分布、识别高绩效员工,以及发现可能需要额外培训的人员。它是“资源利用率与工作负载”仪表板和“每位操作员吞吐量”KPI的基础。 为什么重要 支持分析人员绩效、工作负载分布和资源效率,帮助识别培训需求和高绩效人员。 获取位置 位于记录用户操作的交易表或日志表中。请查找“UserID”“UserName”“ExecutedBy”或“OperatorID”等字段。 示例 JSMITHABOT01CDAVIS系统 | |||
| SLA状态 SLAStatus | 根据要求完成日期,指示订单是否按时完成、已延迟或存在延迟风险。 | ||
| 说明 SLA状态是一个计算属性,根据订单相对于“RequestedCompletionDate”的时效性对订单进行分类。其值可以是“按时”“延迟”或“进行中”。 该属性可即时查看服务级别绩效,并快速筛选和分析所有延迟订单,了解具体瓶颈或资源问题等根因。对于关注客户满意度和运营可靠性的分析,这是关键要素。 为什么重要 直接衡量服务级别协议的履行情况,便于识别延迟订单并分析其根因。 获取位置 在数据转换层计算,方法是将“仓库订单已完成”事件的时间戳与“RequestedCompletionDate”进行比较。 示例 准时延迟进行中 | |||
| 仓库ID WarehouseId | 开展相关活动的仓库或配送中心的唯一标识符。 | ||
| 说明 仓库ID用于标识处理仓库订单的实际地点或设施。对于拥有多个配送中心的组织,这是重要的分析维度。 该属性支持跨地点进行绩效对标。例如,您可以比较仓库A与仓库B的“订单端到端平均周期时间”,从而识别最佳实践或特定地点的运营问题。 为什么重要 支持比较和对标不同实体仓库地点的绩效,突出区域性或设施特有的问题。 获取位置 该信息通常位于订单头表或站点配置表中,可能表示为“Plant”“Site”或“LocationCode”。 示例 WH-NYCDC-LAXFC-DAL | |||
| 使用的设备 EquipmentUsed | 执行任务所使用设备的标识符,例如叉车或扫描器。 | ||
| 说明 此属性用于标识仓库任务中使用的物料搬运设备(MHE)或技术设备,可能包括特定叉车、托盘搬运车、手持扫描器或自动导引车(AGV)。 按设备分析有助于了解资源利用率、维护需求以及不同设备类型对任务效率的影响。它是“资源利用率与工作负载”仪表板的重要维度,可全面查看人员和机器资源。 为什么重要 支持分析设备利用率及其对任务绩效的影响,帮助优化设备车队管理并识别与设备相关的瓶颈。 获取位置 请参阅Körber WMS文档。该数据可能记录在任务执行记录中,尤其是在操作员需要登录特定设备的情况下。 示例 FORKLIFT-08SCANNER-112AGV-03 | |||
| 周期时间 CycleTime | 仓库订单从创建到完成的总持续时间。 | ||
| 说明 周期时间是一个计算指标,用于衡量案例从第一个事件“仓库订单已创建”到最后一个事件“仓库订单已完成”所经过的总时间。它表示订单的端到端处理时间。 这是流程挖掘中的核心关键绩效指标,直接回答“需要多长时间”。它是“仓库订单端到端周期时间”仪表板和“订单端到端平均周期时间”KPI的核心指标,用于跟踪整体流程健康度并识别履约异常缓慢的订单。 为什么重要 这是衡量仓库流程整体效率的关键KPI,直接影响客户满意度和运营成本。 获取位置 该指标由流程挖掘工具计算,方法是针对每个仓库订单,用最后一个事件的时间戳减去第一个事件的时间戳。 示例 8640017280036000 | |||
| 存储位置 StorageLocation | 仓库中的具体位置,例如存放或拣取货物的货位或通道。 | ||
| 说明 此属性用于标识仓库内的实际坐标,例如货架、搁板或货位。它与“货物上架入库”和“从存储区拣货”等活动相关。 “上架效率与位置使用情况”仪表板使用这些数据分析行走时间、位置利用率和存储策略的有效性。例如,它可以帮助判断高周转商品是否存放在易于取用的位置,以缩短拣货时间。 为什么重要 通过分析特定位置的行走时间以及上架和拣货任务的效率,帮助优化仓库布局和存储策略。 获取位置 位于库存表、任务表或位置主数据表中。请查找“BinCode”“LocationID”或“StorageBin”等字段。 示例 A1-R02-S03-B01B5-R10-S01-B04C2-BULK-05 | |||
| 承运商 Carrier | 负责订单最终配送的运输承运商。 | ||
| 说明 承运商是负责将货物从仓库运输至最终目的地的第三方物流服务商,例如FedEx、UPS或DHL。通常在发运计划或调度阶段分配。 按承运商分析可以揭示不同运输合作伙伴之间的绩效差异。例如,它有助于识别某些承运商是否对应更长的暂存时间或更频繁的延误,为承运商合同谈判和选择提供有价值的数据。 为什么重要 支持分析不同运输合作伙伴的绩效,帮助优化物流并提高配送可靠性。 获取位置 位于Körber WMS的发运表或运输计划表中。请查找“CarrierCode”“ShippingAgent”或“SCAC”等字段。 示例 FedExUPSDHLLocal Freight Inc. | |||
| 是否存在拣货差异 IsPickingDiscrepancy | 用于指示实际拣货数量是否与计划数量一致的标志。 | ||
| 说明 这是一个派生布尔属性:如果任何拣货相关活动中的“实际数量”与“计划数量”不同,则值为true。它是识别特定任务拣货错误或库存问题的简单指标。 该标志简化了分析,用户可以快速筛选出所有出现拣货差异的订单。它用于计算“拣货差异率”KPI,并通过突出具体失败环节,为“库存流程健康度与准确性”仪表板提供支持。 为什么重要 提供清晰的二元拣货错误指示,简化识别和量化库存准确性问题所需的分析。 获取位置 在数据转换过程中计算。逻辑为:对于相关拣货活动, 示例 truefalse | |||
| 结束时间 EndTime | 表示活动完成时间的时间戳(如有)。 | ||
| 说明 结束时间表示活动完成时的时间戳。StartTime(EventTime)标记开始时间,结束时间标记完成时间,二者可直接用于计算单项活动的持续时间。并非所有事件都有明确的结束时间;对于许多事件,系统会使用下一事件的StartTime推断上一事件的持续时间。 该属性对于准确计算单项任务的处理时间非常有价值。例如,可通过测量质量检验从开始到结束所用的时间,计算“平均质量检验时间”。 为什么重要 支持精确计算单项活动的处理时间,这对于识别低效任务和资源瓶颈至关重要。 获取位置 请参阅Körber WMS文档。该字段可能位于包含开始时间的交易表中,也可能位于相关状态历史表中。 示例 2023-10-26T10:15:00Z2023-10-26T11:45:20Z2023-10-27T08:30:00Z | |||
| 要求完成日期 RequestedCompletionDate | 客户或内部相关方要求订单完成的日期。 | ||
| 说明 这是出库订单的目标完成或发运日期,通常由客户预期或服务级别协议(SLA)规定。它是衡量实际绩效的主要截止期限。 该日期对于“加急订单分析”仪表板至关重要。将“要求完成日期”与“实际完成日期”(“发运出库”或“仓库订单已完成”活动的时间戳)进行比较,有助于判断按时完成情况,并识别可能延迟的订单。 为什么重要 为衡量按时完成绩效和履行服务级别协议(SLA)提供基准,并突出可能延迟的订单。 获取位置 位于订单头表中。常见字段名包括“RequiredDeliveryDate”“RequestedShipDate”或“SLA”。 示例 2023-10-28T23:59:59Z2023-11-05T23:59:59Z | |||
| 计划数量 PlannedQuantity | 任务中预期处理的物品数量,例如拣货或收货任务的数量。 | ||
| 说明 计划数量表示仓库订单为特定任务指定的目标单位数。例如,如果订单要求拣取某个SKU的10件商品,则该拣货任务的计划数量为10。 将其与“实际数量”进行比较,对于识别差异至关重要。它是计算“拣货差异率”和“库存差异率”KPI的关键输入,对保持库存准确性非常重要。 为什么重要 作为衡量拣货和收货等任务准确性的基准,支持发现库存差异。 获取位置 位于任务表或订单行项目表中。请查找“OrderQuantity”“PlannedQty”或“ExpectedQuantity”等字段。 示例 10501 | |||
| 订单类型 OrderType | 对仓库订单进行分类,例如入库、出库或内部调拨。 | ||
| 说明 订单类型定义仓库订单的业务目的。常见类型包括客户发运(出库)、供应商收货(入库)、仓库地点之间的库存转移(内部)和退货。 这是用于筛选和对比分析的重要属性。它支持分析和比较不同物流作业的流程顺序与绩效,例如判断入库流程的效率是否高于或低于出库流程。 为什么重要 支持按订单目的细分分析,揭示入库收货与出库发运等流程之间的绩效差异。 获取位置 通常位于Körber WMS的订单头表中。请查找“OrderType”“TransactionType”或类似字段。 示例 出库发运入库接收内部调拨客户退货 | |||
仓储管理活动
| 活动 | 说明 | ||
|---|---|---|---|
| 仓库订单已创建 | 系统中创建仓库订单,代表产生了货物移动需求。当用户或ERP等集成系统创建订单记录并写入创建时间时,系统通常会明确记录此事件。 | ||
| 为什么重要 这标志着端到端流程的开始,对于衡量订单总周期时间、了解整体需求和订单量至关重要。 获取位置 当Körber WMS保存新订单记录时,从仓库订单主表中的创建时间戳获取。 采集 从仓库订单主表的创建时间戳记录。 事件类型 explicit | |||
| 仓库订单已完成 | 仓库订单在系统中关闭,表示所有相关实物移动和交易均已完成。通常根据订单主表中的状态变更推断,该变更标志着订单生命周期结束。 | ||
| 为什么重要 这是流程的主要终点,对于计算端到端周期时间和衡量整体流程完成率至关重要。 获取位置 根据仓库订单主表状态变更为“Complete”或“Closed”等最终状态推断。 采集 根据仓库订单主表状态变更为“Completed”的时间戳推断。 事件类型 inferred | |||
| 货物已上架入库 | 操作员通常通过扫描存储货位和托盘或货物,确认上架任务完成。该操作会明确记录货物移动,并更新系统中的库存位置。 | ||
| 为什么重要 这一关键里程碑标志着入库流程结束,可用于计算“上架周期时间”和“收货至上架时间”等KPI。 获取位置 操作员通过RF设备确认上架任务完成时记录。该操作会将任务状态更新为“Completed”,并记录完成时间戳。 采集 从上架任务确认交易获取时间戳。 事件类型 explicit | |||
| 货物已从存储区拣出 | 操作员确认已从存储位置拣出订单所需货物。通常通过扫描货物和位置完成,该操作会扣减存储货位中的库存并记录此次操作。 | ||
| 为什么重要 这是出库流程中的重要里程碑,可用于分析拣选时间,并识别拣选与包装之间的潜在延误。 获取位置 操作员通过RF设备确认拣选任务完成时记录。该操作会将任务状态更新为“Completed”,并记录完成时间戳。 采集 从拣选任务确认交易获取时间戳。 事件类型 explicit | |||
| 货物已发运 | 货物完成装载,卡车驶离仓库。该事件由“Ship Confirm”或“Post Goods Issue”交易触发,用于在系统中完成发运。 | ||
| 为什么重要 这一关键里程碑标志着货物实际离开仓库,通常也是开票和更新客户信息的重要事件。 获取位置 执行明确的“Ship Confirm”交易,并关联提单打印。该交易包含具体时间戳。 采集 从“Ship Confirm”或“Post Goods Issue”交易获取时间戳。 事件类型 explicit | |||
| 货物已完成包装 | 运输容器或纸箱的包装流程完成,包裹已封装并贴标。该事件表示订单已准备好进入暂存和发运环节,通常会被明确记录。 | ||
| 为什么重要 这一关键里程碑完成了货物的发运准备,可用于计算包装吞吐量并识别装载前的延误。 获取位置 操作员执行明确的“Packing Complete”或“Close Carton”交易,为运输容器记录完成时间戳。 采集 从“Close Container”或“Packing Complete”交易获取时间戳。 事件类型 explicit | |||
| 货物已接收并完成清点 | 仓库人员卸货、扫描并根据入库交付通知清点收到的货物。该明确交易确认特定数量的物料已进入仓库实物保管范围。 | ||
| 为什么重要 这是关键的入库里程碑,可用于计算“收货至上架时间”等KPI,也有助于尽早发现预期数量与实际收货数量之间的差异。 获取位置 用户通过RF扫描器或桌面交易确认收货数量时生成。该操作会将暂存位置中的库存状态更新为“Received”或“On-Hand”。 采集 从收货确认交易获取时间戳。 事件类型 explicit | |||
| 仓库订单已取消 | 仓库订单在完成前被取消,所有正在进行的工作随之停止。通常根据订单主表状态变更为“Canceled”推断。 | ||
| 为什么重要 代表流程的另一种终点。分析取消情况有助于了解流程失败原因,例如库存短缺或客户需求变更。 获取位置 根据仓库订单主表状态变更为“Canceled”或“Deleted”,以及该变更的时间戳推断。 采集 根据仓库订单主表状态变更为“Canceled”的时间戳推断。 事件类型 inferred | |||
| 已创建上架任务 | WMS为操作员创建任务,将收到的货物从暂存区移至最终存储货位。系统根据上架策略确定货物的最佳目标货位。 | ||
| 为什么重要 该事件标志着上架流程开始。分析从任务创建到完成之间的时间,有助于衡量系统和操作员效率。 获取位置 任务管理表或工作队列表中会创建一条记录,任务类型为“Putaway”,并包含相应的创建时间戳。 采集 从上架任务记录的创建时间戳获取。 事件类型 explicit | |||
| 已创建拣选任务 | 系统根据出库仓库订单为操作员生成拣选任务,指引操作员前往指定位置,拣取特定数量的货物。 | ||
| 为什么重要 该事件启动出库履约流程。分析拣选任务生成情况,有助于了解订单处理逻辑和工作负荷分配。 获取位置 Körber WMS中的任务管理表或工作队列表会创建一条记录,任务类型为“Picking”,并包含创建时间戳。 采集 从拣选任务记录的创建时间戳获取。 事件类型 explicit | |||
| 已完成质量检验 | 对收到的货物执行质量控制检查,可能需要将货物移至专用QC区域。该活动通常根据库存状态变更推断,例如从“On-Hand”变为“QI Hold”,再变为“Unrestricted”。 | ||
| 为什么重要 可用于分析质量检验时长。质量检验可能成为重要瓶颈;分析结果有助于跟踪检验量并识别库存可用延迟。 获取位置 可根据与质量冻结相关的一系列库存状态变更推断。部分系统可能提供明确的质量管理交易日志。 采集 根据库存状态变更,或与质量检验订单关联的交易日志推断。 事件类型 inferred | |||
| 已开始包装 | 拣出的货物到达包装工作站,操作员开始包装。通常根据该订单在包装工作站的首次货物扫描推断。 | ||
| 为什么重要 标志着包装环节开始。测量该活动前的等待时间和包装持续时间,有助于识别发运准备中的瓶颈。 获取位置 可以通过明确的“Start Packing”交易记录,但更常见的方式是根据订单在包装工作站的首次货物扫描推断。 采集 根据指定订单在包装工作站执行首次操作的时间戳推断。 事件类型 inferred | |||
| 已收到入库交付通知 | 从供应商处收到Advanced Shipping Notification(ASN)或入库交付通知。该事件表示货物计划到达,便于仓库安排收货作业。通常通过EDI交易或手工录入创建。 | ||
| 为什么重要 该活动标志着入库计划流程的开始。分析通知与货物到达之间的时间,有助于衡量供应商绩效并安排人员。 获取位置 从ASN或入库交付记录的创建时间戳获取,该记录通常通过EDI接口或手工录入创建。 采集 ASN记录在系统中成功创建时记录。 事件类型 explicit | |||
| 已暂存待发运 | 已包装的纸箱或托盘从包装区移至指定暂存通道,等待承运商提货。通常根据库存移动至发运位置的交易时间戳推断。 | ||
| 为什么重要 有助于分析包装与最终发运之间的停留时间。暂存时间过长可能表明承运商协调不佳或月台门管理低效。 获取位置 根据搬运单元从包装工作中心移至发运通道的位置变更推断。移动交易包含所需时间戳。 采集 根据库存移动交易的时间戳推断,目标位置为暂存区。 事件类型 inferred | |||
| 货物到达月台 | 记录承运车辆实际到达仓库收货月台的时间。该操作通常由门卫或收货员完成,标志着实物收货流程开始。此事件通常根据交付状态变更推断。 | ||
| 为什么重要 该事件有助于衡量承运商准时性、分析收货月台等待时间,并在卸货开始前识别潜在瓶颈。 获取位置 通常记录为入库交付记录中的状态更新;如果场站管理模块可用,也可能通过特定的“Check-In”交易记录。 采集 根据入库交付记录状态变更为“Arrived”或“At Dock”推断。 事件类型 inferred | |||
数据提取指南
步骤
- 建立数据库访问:获取Körber WMS生产数据库或副本数据库的只读凭据和连接信息,包括服务器名称、数据库名称及端口。您还需要使用Microsoft SQL Server Management Studio(SSMS)或Oracle SQL Developer等客户端工具。
- 识别核心表:运行脚本前,与系统管理员确认Körber WMS实施环境中使用的确切表名和列名,因为这些名称可能有所不同。核心表通常包括订单抬头、任务和库存交易表。
- 连接数据库:启动SQL客户端,使用提供的凭据连接到Körber WMS数据库。
- 加载SQL脚本:打开新的查询窗口,将本文档“query”部分提供的完整SQL脚本复制到其中。
- 配置参数:找到脚本顶部的占位变量。将
@[StartDate]、@[EndDate]和@[WarehouseId]替换为所需日期范围及具体仓库标识符,以筛选数据提取范围。 - 执行查询:运行配置好的SQL脚本。执行时间取决于日期范围和系统中的数据量。
- 检查结果:查询完成后,在SQL客户端中快速检查输出,确认返回了记录,且
WarehouseOrder、ActivityName、EventTime等列已按预期填充。 - 导出为CSV:将完整结果集导出为CSV文件。大多数SQL客户端都支持直接导出查询结果。
- 准备上传:确保导出的CSV文件使用UTF-8编码保存。检查文件中的列标题是否与必需属性名称完全一致,不含额外空格或字符。
配置
- 数据库连接:需要建立直接数据库连接。您必须提供服务器地址、数据库名称、有效的用户名和密码。强烈建议使用只读用户,以避免意外修改数据。
- 日期范围筛选:查询使用
@StartDate和@EndDate占位符控制提取周期。初次分析建议选择3至6个月的数据,以覆盖足够的流程变化,同时避免对数据库造成过大负载。 - 仓库和订单筛选:脚本包含
@[WarehouseId]占位符,用于将提取范围限制在特定设施。您还可以在脚本的WHERE子句中添加订单类型或客户等筛选条件,进一步细化数据集。 - 数据粒度:此脚本同时提取订单抬头层级的Event(例如“Warehouse Order Created”)以及详细任务或交易层级的Event(例如“Goods Picked”)。
- 前提条件:您必须拥有读取查询中所引用全部表的足够数据库权限。您还需要熟悉具体Körber WMS架构,以验证并在必要时调整表名和列名。
a 示例查询 sql
DECLARE @StartDate DATETIME = '2023-01-01';
DECLARE @EndDate DATETIME = '2023-12-31';
DECLARE @WarehouseId NVARCHAR(10) = '[Your Warehouse ID]';
-- 1. Warehouse Order Created
SELECT
ord.ORD_NBR AS WarehouseOrder,
'Warehouse Order Created' AS ActivityName,
ord.CREATE_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
ord.CREATE_USER AS UserOperatorId,
ord.PRIORITY AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [ORD_HDR] ord
WHERE ord.CREATE_DATE BETWEEN @StartDate AND @EndDate AND ord.WH_ID = @WarehouseId
UNION ALL
-- 2. Inbound Delivery Notification Rcvd
SELECT
asn.ASN_NBR AS WarehouseOrder,
'Inbound Delivery Notification Rcvd' AS ActivityName,
asn.CREATE_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
asn.CREATE_USER AS UserOperatorId,
asn.PRIORITY AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [ASN_HDR] asn
WHERE asn.CREATE_DATE BETWEEN @StartDate AND @EndDate AND asn.WH_ID = @WarehouseId
UNION ALL
-- 3. Goods Arrived at Dock
SELECT
asn.ASN_NBR AS WarehouseOrder,
'Goods Arrived at Dock' AS ActivityName,
asn.ACTUAL_ARRIVAL_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
asn.MOD_USER AS UserOperatorId,
asn.PRIORITY AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [ASN_HDR] asn
WHERE asn.ACTUAL_ARRIVAL_TSTMP IS NOT NULL AND asn.ACTUAL_ARRIVAL_TSTMP BETWEEN @StartDate AND @EndDate AND asn.WH_ID = @WarehouseId
UNION ALL
-- 4. Goods Received and Counted
SELECT
tran.ORD_NBR AS WarehouseOrder,
'Goods Received and Counted' AS ActivityName,
tran.TRAN_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tran.USER_ID AS UserOperatorId,
NULL AS PriorityLevel,
tran.SKU AS ProductSKU,
tran.TRAN_QTY AS ActualQuantity
FROM [INV_TRAN] tran
WHERE tran.TRAN_TYPE = 'RECV' AND tran.TRAN_TSTMP BETWEEN @StartDate AND @EndDate AND tran.WH_ID = @WarehouseId
UNION ALL
-- 5. Quality Inspection Performed
SELECT
tran.ORD_NBR AS WarehouseOrder,
'Quality Inspection Performed' AS ActivityName,
tran.TRAN_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tran.USER_ID AS UserOperatorId,
NULL AS PriorityLevel,
tran.SKU AS ProductSKU,
tran.TRAN_QTY AS ActualQuantity
FROM [INV_TRAN] tran
WHERE tran.TRAN_TYPE = 'MOVE' AND tran.REASON_CODE = 'QI_INSP' AND tran.TRAN_TSTMP BETWEEN @StartDate AND @EndDate AND tran.WH_ID = @WarehouseId
UNION ALL
-- 6. Putaway Task Created
SELECT
tsk.ORD_NBR AS WarehouseOrder,
'Putaway Task Created' AS ActivityName,
tsk.CREATE_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tsk.CREATE_USER AS UserOperatorId,
tsk.PRIORITY AS PriorityLevel,
tsk.SKU AS ProductSKU,
tsk.TASK_QTY AS ActualQuantity
FROM [TASK_DTL] tsk
WHERE tsk.TASK_TYPE = 'PUTAWAY' AND tsk.CREATE_DATE BETWEEN @StartDate AND @EndDate AND tsk.WH_ID = @WarehouseId
UNION ALL
-- 7. Goods Put Away in Storage
SELECT
tsk.ORD_NBR AS WarehouseOrder,
'Goods Put Away in Storage' AS ActivityName,
tsk.CMPL_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tsk.USER_ID AS UserOperatorId,
tsk.PRIORITY AS PriorityLevel,
tsk.SKU AS ProductSKU,
tsk.CMPL_QTY AS ActualQuantity
FROM [TASK_DTL] tsk
WHERE tsk.TASK_TYPE = 'PUTAWAY' AND tsk.STAT_CODE = 'COMPLETED' AND tsk.CMPL_TSTMP IS NOT NULL AND tsk.CMPL_TSTMP BETWEEN @StartDate AND @EndDate AND tsk.WH_ID = @WarehouseId
UNION ALL
-- 8. Picking Task Created
SELECT
tsk.ORD_NBR AS WarehouseOrder,
'Picking Task Created' AS ActivityName,
tsk.CREATE_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tsk.CREATE_USER AS UserOperatorId,
tsk.PRIORITY AS PriorityLevel,
tsk.SKU AS ProductSKU,
tsk.TASK_QTY AS ActualQuantity
FROM [TASK_DTL] tsk
WHERE tsk.TASK_TYPE = 'PICK' AND tsk.CREATE_DATE BETWEEN @StartDate AND @EndDate AND tsk.WH_ID = @WarehouseId
UNION ALL
-- 9. Goods Picked from Storage
SELECT
tsk.ORD_NBR AS WarehouseOrder,
'Goods Picked from Storage' AS ActivityName,
tsk.CMPL_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tsk.USER_ID AS UserOperatorId,
tsk.PRIORITY AS PriorityLevel,
tsk.SKU AS ProductSKU,
tsk.CMPL_QTY AS ActualQuantity
FROM [TASK_DTL] tsk
WHERE tsk.TASK_TYPE = 'PICK' AND tsk.STAT_CODE = 'COMPLETED' AND tsk.CMPL_TSTMP IS NOT NULL AND tsk.CMPL_TSTMP BETWEEN @StartDate AND @EndDate AND tsk.WH_ID = @WarehouseId
UNION ALL
-- 10. Packing Initiated
SELECT
pck.ORD_NBR AS WarehouseOrder,
'Packing Initiated' AS ActivityName,
MIN(pck.CREATE_DATE) AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
MIN(pck.USER_ID) AS UserOperatorId,
NULL AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [PACK_TRAN] pck
WHERE pck.CREATE_DATE BETWEEN @StartDate AND @EndDate AND pck.WH_ID = @WarehouseId
GROUP BY pck.ORD_NBR
UNION ALL
-- 11. Goods Packed
SELECT
ctn.ORD_NBR AS WarehouseOrder,
'Goods Packed' AS ActivityName,
ctn.PACK_CMPL_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
ctn.PACKER_ID AS UserOperatorId,
NULL AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [SHIP_CARTON] ctn
WHERE ctn.PACK_CMPL_TSTMP IS NOT NULL AND ctn.PACK_CMPL_TSTMP BETWEEN @StartDate AND @EndDate AND ctn.WH_ID = @WarehouseId
UNION ALL
-- 12. Staged for Shipment
SELECT
tran.ORD_NBR AS WarehouseOrder,
'Staged for Shipment' AS ActivityName,
tran.TRAN_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
tran.USER_ID AS UserOperatorId,
NULL AS PriorityLevel,
tran.SKU AS ProductSKU,
tran.TRAN_QTY AS ActualQuantity
FROM [INV_TRAN] tran
JOIN [LOC_HDR] loc ON tran.TO_LOC = loc.LOC_ID AND tran.WH_ID = loc.WH_ID
WHERE tran.TRAN_TYPE = 'MOVE' AND loc.LOC_TYPE = 'SHIP_STAGE' AND tran.TRAN_TSTMP BETWEEN @StartDate AND @EndDate AND tran.WH_ID = @WarehouseId
UNION ALL
-- 13. Shipment Dispatched
SELECT
shp.ORD_NBR AS WarehouseOrder,
'Shipment Dispatched' AS ActivityName,
shp.SHIP_CONFIRM_TSTMP AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
shp.USER_ID AS UserOperatorId,
NULL AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [SHIPMENT_HDR] shp
WHERE shp.SHIP_CONFIRM_TSTMP IS NOT NULL AND shp.SHIP_CONFIRM_TSTMP BETWEEN @StartDate AND @EndDate AND shp.WH_ID = @WarehouseId
UNION ALL
-- 14. Warehouse Order Completed
SELECT
ord.ORD_NBR AS WarehouseOrder,
'Warehouse Order Completed' AS ActivityName,
ord.MOD_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
ord.MOD_USER AS UserOperatorId,
ord.PRIORITY AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [ORD_HDR] ord
WHERE ord.STAT_CODE IN ('99', 'COMPLETED') AND ord.MOD_DATE BETWEEN @StartDate AND @EndDate AND ord.WH_ID = @WarehouseId
UNION ALL
-- 15. Warehouse Order Canceled
SELECT
ord.ORD_NBR AS WarehouseOrder,
'Warehouse Order Canceled' AS ActivityName,
ord.MOD_DATE AS EventTime,
'Körber WMS' AS SourceSystem,
GETDATE() AS LastDataUpdate,
ord.MOD_USER AS UserOperatorId,
ord.PRIORITY AS PriorityLevel,
NULL AS ProductSKU,
NULL AS ActualQuantity
FROM [ORD_HDR] ord
WHERE ord.STAT_CODE IN ('95', 'CANCELED') AND ord.MOD_DATE BETWEEN @StartDate AND @EndDate AND ord.WH_ID = @WarehouseId; 优化仓库管理,立即提升效率
快速消除拣选错误,将库存准确率提升至99.5%。
无需信用卡,随时取消。