Mẫu dữ liệu kế hoạch sản xuất
Mẫu dữ liệu kế hoạch sản xuất
- Các thuộc tính nên thu thập
- Các hoạt động chính cần theo dõi
- Hướng dẫn trích xuất dữ liệu từ Microsoft Dynamics 365 Manufacturing
Thuộc tính kế hoạch sản xuất
| Tên | Mô tả | ||
|---|---|---|---|
| Lệnh sản xuất ProductionOrderNumber | Mã định danh duy nhất của lệnh sản xuất, được dùng làm mã hồ sơ chính để theo dõi mọi hoạt động lập kế hoạch và thực hiện liên quan. | ||
| Mô tả Số lệnh sản xuất, thường được gọi là ProdId trong Microsoft Dynamics 365, là mã định danh trung tâm liên kết mọi sự kiện, nguyên vật liệu, tài nguyên và chi phí với một công việc sản xuất cụ thể. Mã này cho phép phân tích toàn bộ vòng đời lập kế hoạch và thực hiện sản xuất cho một đơn vị công việc. Trong process mining, thuộc tính này rất cần thiết để nhóm các sự kiện liên quan vào cùng một hồ sơ. Phân tích theo số lệnh sản xuất giúp xác định điểm nghẽn, chậm trễ và sai lệch trong luồng sản xuất tiêu chuẩn, từ lúc tạo và lên lịch ban đầu đến khi hoàn tất và tính chi phí. Vì sao điều này quan trọng Đây là mã định danh hồ sơ cốt lõi, rất quan trọng để nhóm mọi sự kiện liên quan và tái dựng quy trình lập kế hoạch sản xuất từ đầu đến cuối để phân tích. Lấy dữ liệu ở đâu Đây là trường “ProdId” trong bảng “ProdTable” của Microsoft Dynamics 365 Manufacturing. Ví dụ WO-000456WO-000457WO-000458 | |||
| Hệ thống nguồn SourceSystem | Hệ thống lưu trữ dữ liệu gốc mà dữ liệu được trích xuất từ đó. | ||
| Mô tả Thuộc tính này xác định hệ thống thông tin nguồn nơi dữ liệu sự kiện được tạo ra. Với chế độ xem quy trình này, giá trị sẽ luôn là “Microsoft Dynamics 365 Manufacturing”. Trong môi trường có nhiều hệ thống tích hợp, trường này rất quan trọng để theo dõi nguồn gốc dữ liệu, xử lý vấn đề về chất lượng dữ liệu và hiểu vai trò của từng hệ thống trong quy trình tổng thể. Trường này giúp làm rõ nguồn gốc dữ liệu đang được phân tích. Vì sao điều này quan trọng Thuộc tính này cung cấp thông tin quan trọng về nguồn gốc dữ liệu, cần thiết cho quản trị và xác thực dữ liệu cũng như quản lý luồng dữ liệu từ nhiều hệ thống doanh nghiệp. Lấy dữ liệu ở đâu Đây là giá trị cố định, cần được thêm trong quá trình trích xuất và chuyển đổi dữ liệu để ghi nhãn nguồn gốc của tập dữ liệu. Ví dụ Microsoft Dynamics 365 ManufacturingD365 F&O | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian cho biết dữ liệu của sự kiện này được làm mới hoặc trích xuất từ hệ thống nguồn lần gần nhất khi nào. | ||
| Mô tả Thuộc tính này cho biết ngày và giờ của lần lấy dữ liệu gần nhất từ hệ thống nguồn. Đây là trường siêu dữ liệu quan trọng để xác định dữ liệu phân tích còn mới hay đã cũ. Biết thời điểm cập nhật dữ liệu gần nhất giúp nhà phân tích và người dùng nghiệp vụ tin tưởng hơn vào thông tin từ công cụ process mining. Thông tin này cho biết dashboard phản ánh dữ liệu mới nhất hay dữ liệu tại một thời điểm trước đó, điều quan trọng khi đưa ra quyết định vận hành. Vì sao điều này quan trọng Thuộc tính này rất quan trọng đối với quản trị dữ liệu, giúp người dùng biết dữ liệu mới đến đâu và tin tưởng vào tính kịp thời của thông tin phân tích quy trình. Lấy dữ liệu ở đâu Dấu thời gian này được tạo và gắn vào từng bản ghi trong quá trình trích xuất, chuyển đổi và tải dữ liệu (ETL). Ví dụ 2023-05-20T05:00:00Z2023-05-21T05:00:00Z | |||
| Tên hoạt động ActivityName | Tên của sự kiện hoặc bước nghiệp vụ cụ thể diễn ra trong quy trình lập kế hoạch sản xuất. | ||
| Mô tả Tên hoạt động mô tả một bước trong vòng đời lập kế hoạch sản xuất, chẳng hạn “Tạo lệnh sản xuất”, “Lấy nguyên vật liệu để sản xuất” hoặc “Bắt đầu sản xuất”. Các hoạt động này tạo nên sơ đồ quy trình. Phân tích trình tự và thời lượng của các hoạt động giúp trực quan hóa luồng quy trình, xác định các lộ trình phổ biến, phát hiện vòng lặp làm lại và đo thời gian ở từng giai đoạn. Thuộc tính này rất quan trọng để hiểu điều gì đang diễn ra ở mỗi bước trong quy trình. Vì sao điều này quan trọng Thuộc tính này xác định các bước trong quy trình, giúp xây dựng sơ đồ quy trình và phân tích luồng, biến thể cũng như điểm nghẽn. Lấy dữ liệu ở đâu Giá trị này thường được lấy từ nhật ký sự kiện hoặc xác định bằng cách ánh xạ các thay đổi trạng thái và loại giao dịch trong những bảng như “ProdRouteTrans”, “ProdJournalBOM” và các trường trạng thái của “ProdTable”. Ví dụ Tạo lệnh sản xuấtPhát hành lệnh sản xuấtBắt đầu sản xuấtBáo cáo sản xuất đã hoàn tất | |||
| Thời điểm sự kiện EventTime | Dấu thời gian chính xác cho biết hoạt động diễn ra khi nào. | ||
| Mô tả Thời điểm sự kiện, hay dấu thời gian, ghi lại chính xác ngày và giờ một hoạt động cụ thể diễn ra. Dữ liệu này là nền tảng cho mọi phân tích process mining dựa trên thời gian, bao gồm tính thời gian chu kỳ, xác định chậm trễ giữa các bước và theo dõi hiệu suất quy trình theo thời gian. Trong quy trình lập kế hoạch sản xuất, thuộc tính này được dùng để đo các khoảng thời gian như thời gian lập kế hoạch, độ trễ trước khi bắt đầu sản xuất và tổng thời gian hoàn tất lệnh. Dấu thời gian chính xác, theo đúng trình tự thời gian, rất cần thiết để xây dựng mô hình quy trình đúng và có ý nghĩa. Vì sao điều này quan trọng Dấu thời gian này rất cần thiết để sắp xếp sự kiện, tính thời lượng giữa các hoạt động và thực hiện mọi phân tích dựa trên thời gian, chẳng hạn tính thời gian chu kỳ và xác định điểm nghẽn. Lấy dữ liệu ở đâu Có trong nhiều bảng giao dịch, chẳng hạn trường “createdDateTime” trong “ProdTable” hoặc các trường ngày giao dịch trong “ProdRouteTrans”, “ProdJournalRoute” và “ProdJournalBOM”. Ví dụ 2023-04-15T09:00:12Z2023-04-15T11:30:00Z2023-04-16T14:22:05Z | |||
| Loại hình sản xuất ProductionType | Phân loại lệnh sản xuất, chẳng hạn như sản xuất tiêu chuẩn, sửa chữa hoặc sản xuất theo dự án. | ||
| Mô tả Loại hình sản xuất phân loại lệnh theo mục đích. Ví dụ, lệnh 'Standard' dùng để sản xuất hàng tồn kho thông thường, lệnh 'Rework' dùng để sửa lỗi của sản phẩm đã sản xuất, còn lệnh 'Project' gắn với một dự án khách hàng cụ thể. Thuộc tính này giúp tạo các góc nhìn phân tích có thể so sánh. Quy trình xử lý lệnh sửa chữa vốn khác với lệnh tiêu chuẩn. Phân nhóm phân tích quy trình theo loại hình sản xuất giúp việc so sánh có ý nghĩa và làm rõ những thách thức cũng như luồng công việc riêng của từng loại. Vì sao điều này quan trọng Thuộc tính này cho phép phân nhóm dữ liệu phân tích, vì các loại lệnh như 'Standard' và 'Rework' thường đi theo quy trình khác nhau và có kỳ vọng hiệu suất khác nhau. Lấy dữ liệu ở đâu Đây là trường 'ProdType' trong bảng 'ProdTable'. Ví dụ Tiêu chuẩnSửa chữaDự án | |||
| Mã sản phẩm ProductNumber | Mã định danh duy nhất của mặt hàng được sản xuất. | ||
| Mô tả Mã sản phẩm, hay mã mặt hàng, xác định thành phẩm mà lệnh sản xuất cần tạo ra. Mã này liên kết quy trình sản xuất với sản phẩm cụ thể, cùng định mức nguyên vật liệu và hướng dẫn định tuyến liên quan. Phân tích quy trình theo mã sản phẩm giúp phát hiện những khác biệt trong vòng đời sản xuất của từng sản phẩm. Bạn có thể thấy một số sản phẩm có thời gian chu kỳ dài hơn, cần sửa chữa nhiều hơn hoặc thường xuyên bị chậm trễ. Những thông tin này hữu ích cho kỹ sư sản phẩm và kỹ sư quy trình. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích khác biệt trong quy trình theo sản phẩm được sản xuất, giúp tìm điểm nghẽn hoặc vấn đề chất lượng riêng của từng sản phẩm. Lấy dữ liệu ở đâu Đây là trường 'ItemId' trong bảng 'ProdTable'. Ví dụ FG-1001FG-2050ASSY-500B | |||
| Mức độ ưu tiên sản xuất ProductionPriority | Mức đánh giá cho biết mức độ khẩn cấp hoặc ưu tiên của lệnh sản xuất. | ||
| Mô tả Người lập kế hoạch và điều độ dùng mức độ ưu tiên sản xuất để sắp xếp thứ tự công việc tại xưởng. Lệnh có mức ưu tiên cao hơn có thể được đẩy nhanh, làm ảnh hưởng đến lịch đã lập cho các lệnh khác. Phân tích thuộc tính này giúp bạn hiểu kế hoạch sản xuất thường bị xáo trộn đến mức nào bởi các lệnh ưu tiên cao hoặc cần xử lý gấp. Theo dõi thay đổi mức ưu tiên trong suốt vòng đời của lệnh có thể cho thấy nhu cầu hoặc kế hoạch thiếu ổn định. Đây là dữ liệu quan trọng cho dashboard 'Expedited Production Trends' và KPI 'Expedited Production Rate'. Vì sao điều này quan trọng Thuộc tính này giúp xác định tần suất và ảnh hưởng của các lệnh cần xử lý gấp, qua đó cho thấy kế hoạch thiếu ổn định hoặc hoạt động vận hành mang tính ứng phó. Lấy dữ liệu ở đâu Đây có thể là trường tiêu chuẩn hoặc trường tùy chỉnh trong 'ProdTable'. Cấu hình thường khác nhau tùy doanh nghiệp. Ví dụ Bình thườngCaoKhẩn cấp | |||
| Ngày bắt đầu dự kiến PlannedStartDate | Ngày giờ dự kiến bắt đầu lệnh sản xuất. | ||
| Mô tả Ngày bắt đầu dự kiến là kết quả quan trọng của quy trình lập lịch, cho biết thời điểm mục tiêu để bắt đầu sản xuất một lệnh. Ngày này được xác định dựa trên tình trạng sẵn có của nguyên vật liệu, năng lực tài nguyên và thời hạn đáp ứng nhu cầu. Thuộc tính này rất cần thiết để phân tích mức độ tuân thủ lịch sản xuất. Bằng cách so sánh ngày bắt đầu dự kiến với thời điểm sản xuất thực tế bắt đầu (lấy từ dấu thời gian của hoạt động 'Production Started'), doanh nghiệp có thể đo lường mức độ đúng giờ, tìm nguyên nhân chậm trễ và tính các KPI như tỷ lệ tuân thủ lịch sản xuất. Vì sao điều này quan trọng Đây là mốc chuẩn để đo mức độ tuân thủ lịch sản xuất và xác định độ trễ giữa lúc lập kế hoạch với thời điểm sản xuất thực tế bắt đầu. Lấy dữ liệu ở đâu Đây là trường 'SchedStart' trong bảng 'ProdTable'. Ví dụ 2023-04-18T08:00:00Z2023-04-19T08:00:00Z2023-04-20T08:00:00Z | |||
| Ngày kết thúc dự kiến PlannedEndDate | Ngày giờ dự kiến hoàn tất lệnh sản xuất. | ||
| Mô tả Ngày kết thúc dự kiến là thời điểm mục tiêu để hoàn tất lệnh sản xuất, do công cụ lập lịch xác định. Thời điểm này được dự báo dựa trên thời gian thực hiện công đoạn, lịch tài nguyên và thời gian chờ để ước tính khi nào thành phẩm sẵn sàng. Khi phân tích quy trình, thuộc tính này rất quan trọng để đánh giá hiệu suất hoàn thành đúng hạn. So sánh ngày kết thúc dự kiến với dấu thời gian hoàn tất thực tế (từ hoạt động 'Production Reported As Finished' hoặc 'Production Order Ended') giúp tính KPI tỷ lệ hoàn tất sản xuất đúng hạn và tìm ra nguyên nhân mang tính hệ thống dẫn đến giao hàng trễ. Vì sao điều này quan trọng Thuộc tính này là mốc chuẩn để đo tỷ lệ hoàn tất đúng hạn và đánh giá độ chính xác của lịch sản xuất. Lấy dữ liệu ở đâu Đây là trường 'SchedEnd' trong bảng 'ProdTable'. Ví dụ 2023-04-25T17:00:00Z2023-04-26T17:00:00Z2023-04-27T17:00:00Z | |||
| Người dùng UserId | Mã định danh của người dùng đã thực hiện hoặc chịu trách nhiệm về hoạt động. | ||
| Mô tả Mã người dùng xác định nhân viên hoặc tài khoản hệ thống đã thực hiện một bước trong quy trình, chẳng hạn như phát hành lệnh hoặc báo cáo hoàn tất. Thông tin này cho biết ai đang thực hiện công việc trong quy trình. Phân tích quy trình theo người dùng giúp bạn hiểu cách phân bổ khối lượng công việc, tìm cơ hội đào tạo, so sánh hiệu suất giữa các cá nhân hoặc nhóm và điều tra sai lệch do người dùng cụ thể thực hiện. Thông tin này cũng cần thiết cho việc tuân thủ và lưu vết kiểm toán. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích hiệu suất quy trình theo người dùng hoặc nhóm, giúp tìm cơ hội tự động hóa và lưu vết các hoạt động quan trọng trong quy trình. Lấy dữ liệu ở đâu Thông tin này có trong các trường như 'modifiedBy' hoặc 'createdBy' ở nhiều bảng, hoặc trong trường người dùng của các bảng nhật ký giao dịch như 'ProdJournalTable'. Ví dụ j.smithm.jonesAX_BATCH_SVC | |||
| Nhà máy sản xuất ProductionPlant | Địa điểm hoặc nhà máy nơi thực hiện lệnh sản xuất. | ||
| Mô tả Nhà máy sản xuất cho biết địa điểm hoặc cơ sở chịu trách nhiệm thực hiện quy trình sản xuất. Đây là chiều dữ liệu quan trọng để phân nhóm và so sánh hiệu suất sản xuất. Trong process mining, thuộc tính này giúp so sánh hiệu suất giữa các nhà máy. Chuyên viên phân tích có thể đối chiếu thời gian chu kỳ, mức sử dụng tài nguyên và mức độ tuân thủ quy trình chuẩn giữa các địa điểm để tìm cách làm hiệu quả hoặc xác định cơ sở cần cải thiện vận hành. Thuộc tính này cũng rất cần thiết khi phân tích mức sử dụng công suất. Vì sao điều này quan trọng Thuộc tính này giúp so sánh và đối chiếu hiệu suất giữa các cơ sở sản xuất, qua đó tìm ra cách làm hiệu quả và vấn đề riêng của từng khu vực. Lấy dữ liệu ở đâu Đây là trường 'InventSiteId' trong bảng 'ProdTable'. Ví dụ SITE-ASITE-BMain-WH | |||
| Sản lượng thực tế ActualQuantity | Số lượng sản phẩm đã sản xuất thành công và được báo cáo hoàn tất cho lệnh. | ||
| Mô tả Sản lượng thực tế là số đơn vị đã hoàn thành và đạt kiểm tra chất lượng trong một lệnh sản xuất. Giá trị này được ghi nhận khi sản xuất được 'Reported as finished'. Thuộc tính này dùng để phân tích sản lượng đạt và hiệu suất sản xuất. So sánh sản lượng thực tế với sản lượng dự kiến giúp tính tỷ lệ phế phẩm và tìm hiểu tổn thất trong sản xuất. Đây cũng là dữ liệu quan trọng để phân tích thông lượng và mức sử dụng công suất trên dashboard. Vì sao điều này quan trọng Thuộc tính này rất cần thiết để tính sản lượng đạt, tỷ lệ phế phẩm và thông lượng thực tế, qua đó cho thấy hiệu quả và hiệu suất sản xuất. Lấy dữ liệu ở đâu Giá trị này thường lấy từ trường 'QtyGood' trong bảng 'ProdTable' hoặc các bảng ghi sổ liên quan khi lệnh được báo cáo hoàn tất. Ví dụ 100985000 | |||
| Trạng thái lệnh sản xuất ProductionOrderStatus | Cho biết trạng thái hiện tại của lệnh sản xuất trong vòng đời. | ||
| Mô tả Trạng thái lệnh sản xuất phản ánh tiến độ của lệnh trong vòng đời sản xuất. Các trạng thái thường gặp trong Dynamics 365 gồm Created, Estimated, Scheduled, Released, Started, Reported as finished và Ended. Thuộc tính này cho biết tình trạng của từng lệnh tại một thời điểm cụ thể. Trong process mining, phân tích thay đổi trạng thái là cách chính để xác định hoạt động và hiểu luồng quy trình. Bạn có thể dùng thuộc tính này để lọc các lệnh theo trạng thái, phân tích thời gian ở từng trạng thái và xác định lệnh bị mắc kẹt hoặc chậm trễ. Vì sao điều này quan trọng Thuộc tính này cung cấp cái nhìn tổng quan về tiến độ của lệnh, rất quan trọng để lọc dữ liệu, kiểm tra mức độ tuân thủ và phân tích thời gian ở các giai đoạn sản xuất khác nhau. Lấy dữ liệu ở đâu Đây là trường “ProdStatus” trong bảng “ProdTable”. Ví dụ Đã lên lịchĐã phát hànhĐã bắt đầuĐã kết thúc | |||
| Bắt đầu đúng hạn ProductionScheduleAdherence | Cờ đúng/sai có giá trị đúng nếu lệnh sản xuất bắt đầu vào hoặc trước ngày bắt đầu dự kiến. | ||
| Mô tả Thuộc tính được tính toán này cung cấp chỉ báo đơn giản, có hai trạng thái về mức độ tuân thủ lịch sản xuất khi bắt đầu. Thuộc tính so sánh dấu thời gian bắt đầu thực tế (sự kiện 'Production Started') với thuộc tính 'PlannedStartDate'. Cờ này rất hữu ích để tạo dashboard và KPI rõ ràng, dễ theo dõi, chẳng hạn như 'Production Schedule Adherence Rate'. Bạn có thể dễ dàng lọc và tổng hợp dữ liệu để xem tỷ lệ lệnh bắt đầu đúng hạn, đồng thời phân tích đặc điểm của các lệnh bị trễ mà không cần trực tiếp so sánh ngày tháng trong công cụ phân tích. Vì sao điều này quan trọng Thuộc tính này giúp đơn giản hóa báo cáo và tính KPI về mức độ tuân thủ lịch sản xuất, đồng thời dễ dàng lọc và tổng hợp các lệnh đúng hạn hoặc trễ hạn. Lấy dữ liệu ở đâu Đây là chỉ số được tính toán theo logic: EventTime của sự kiện 'Production Started' <= PlannedStartDate. Ví dụ truefalse | |||
| Dây chuyền sản xuất ProductionLine | Dây chuyền sản xuất, trung tâm làm việc hoặc nhóm tài nguyên cụ thể được phân công cho lệnh sản xuất. | ||
| Mô tả Dây chuyền sản xuất xác định máy móc, cụm sản xuất hoặc nhóm tài nguyên cụ thể sẽ thực hiện các công đoạn. Thuộc tính này cung cấp thông tin chi tiết hơn so với nhà máy sản xuất. Phân tích quy trình theo dây chuyền sản xuất rất quan trọng để đánh giá chi tiết công suất và mức sử dụng. Việc này giúp tìm trung tâm làm việc quá tải, so sánh hiệu suất giữa các dây chuyền cùng sản xuất một mặt hàng và xác định điểm nghẽn liên quan đến tài nguyên mà dữ liệu ở cấp nhà máy có thể không thể hiện. Vì sao điều này quan trọng Thuộc tính này cho phép phân tích chi tiết mức sử dụng và hiệu suất tài nguyên, giúp tìm trung tâm làm việc quá tải hoặc dây chuyền hoạt động kém hiệu quả. Lấy dữ liệu ở đâu Thông tin này thường có trong trường 'WrkCtrId' của các giao dịch định tuyến sản xuất (bảng 'ProdRoute' hoặc 'ProdRouteTrans'). Ví dụ LINE-01LINE-02CNC-A | |||
| Độ trễ khi bắt đầu sản xuất ProductionStartDelay | Khoảng thời gian từ lúc phát hành lệnh đến khi sản xuất thực tế bắt đầu. | ||
| Mô tả Thời lượng được tính toán này đo thời gian chờ hoặc thời gian xếp hàng tại xưởng. Đây là khoảng thời gian giữa hoạt động 'Production Order Released' và hoạt động 'Production Started'. KPI này rất quan trọng đối với dashboard 'Resource Allocation Delay Analysis', vì nó chỉ ra độ trễ xảy ra sau khi hoàn tất lập kế hoạch và lệnh đã sẵn sàng thực hiện. Giá trị cao có thể cho thấy vấn đề về mức độ sẵn có của tài nguyên, việc chuẩn bị nguyên vật liệu hoặc luồng thông tin đến xưởng. Nhờ đó, bạn có thể xác định rõ điểm cần cải thiện trong vận hành. Vì sao điều này quan trọng Thuộc tính này đo chính xác độ trễ từ lúc sẵn sàng đến khi bắt đầu, giúp xác định điểm nghẽn liên quan đến mức độ sẵn có của tài nguyên hoặc tình trạng sẵn sàng của xưởng. Lấy dữ liệu ở đâu Đây là chỉ số được tính toán: Timestamp('Production Started') - Timestamp('Production Order Released'). Ví dụ 0 ngày 4 giờ 15 phút1 ngày 2 giờ 0 phút0 ngày 1 giờ 30 phút | |||
| Mã lệnh kiểm tra chất lượng QualityOrderNumber | Mã định danh của lệnh kiểm tra chất lượng liên kết với lệnh sản xuất. | ||
| Mô tả Khi cần kiểm tra chất lượng, Dynamics 365 thường tạo một lệnh kiểm tra chất lượng. Thuộc tính này liên kết quy trình sản xuất với quy trình đảm bảo chất lượng và lưu mã của lệnh kiểm tra liên quan. Liên kết này cung cấp góc nhìn đầy đủ hơn về quy trình đầu cuối, bao gồm cả các bước quản lý chất lượng. Thuộc tính giúp phân tích ảnh hưởng của việc kiểm tra chất lượng đến thời gian sản xuất, tìm độ trễ trong quy trình kiểm tra và hiểu tần suất kiểm tra chất lượng của từng sản phẩm hoặc dây chuyền sản xuất. Vì sao điều này quan trọng Thuộc tính này liên kết quy trình sản xuất với quy trình đảm bảo chất lượng, giúp phân tích ảnh hưởng của việc kiểm tra chất lượng đến tổng thời gian sản xuất. Lấy dữ liệu ở đâu Thông tin này được lưu trong các bảng quản lý chất lượng (ví dụ: 'InventQualityOrderTable') và cần được liên kết lại với lệnh sản xuất. Ví dụ QO-00123QO-00124QO-00125 | |||
| Sản lượng dự kiến PlannedQuantity | Số lượng mặt hàng dự kiến sản xuất. | ||
| Mô tả Sản lượng dự kiến là số đơn vị mục tiêu cần sản xuất cho một lệnh sản xuất. Số lượng này thường dựa trên nhu cầu từ đơn hàng bán, yêu cầu tồn kho an toàn hoặc kế hoạch tổng thể. Thuộc tính này là mốc chuẩn để tính các chỉ số hiệu suất như sản lượng đạt và phế phẩm. So sánh sản lượng dự kiến với sản lượng thực tế giúp người lập kế hoạch theo dõi hiệu quả sản xuất và chênh lệch nguyên vật liệu. Đây là dữ liệu cơ bản để lập kế hoạch công suất và nhu cầu nguyên vật liệu. Vì sao điều này quan trọng Đây là sản lượng chuẩn để đo sản lượng đạt và tỷ lệ phế phẩm bằng cách so sánh với số lượng thực tế đã sản xuất. Lấy dữ liệu ở đâu Đây là trường 'QtySched' trong bảng 'ProdTable'. Ví dụ 1005000250 | |||
| Số lần điều chỉnh ProductionOrderRevisionNumber | Số lần kế hoạch sản xuất được điều chỉnh sau khi tạo ban đầu. | ||
| Mô tả Thuộc tính này theo dõi số lần sửa đổi hoặc thay đổi đáng kể đối với lệnh sản xuất, chẳng hạn như thay đổi số lượng, ngày tháng hoặc định tuyến, sau khi lệnh được lập lịch hoặc phát hành. Số lần càng cao cho thấy kế hoạch càng thiếu ổn định. Đây là chỉ số trực tiếp cho KPI 'Production Plan Revision Rate'. Phân tích chỉ số này giúp tìm nguyên nhân khiến kế hoạch thiếu ổn định, chẳng hạn như nhu cầu thay đổi thường xuyên hoặc kế hoạch ban đầu thiếu chính xác. Chỉ số cũng định lượng khối lượng công việc phải làm lại và lập lịch lại, vốn thường dẫn đến kém hiệu quả. Vì sao điều này quan trọng Thuộc tính này đo trực tiếp mức độ ổn định của kế hoạch và hỗ trợ KPI 'Production Plan Revision Rate', giúp phát hiện quy trình có quá nhiều thay đổi và công việc phải làm lại. Lấy dữ liệu ở đâu Đây là thuộc tính được tính toán bằng cách đếm số lần hoạt động 'Production Order Adjusted' xuất hiện trong từng trường hợp. Ví dụ 012 | |||
| Thời điểm kết thúc EndTime | Dấu thời gian chính xác cho biết hoạt động hoàn tất khi nào. | ||
| Mô tả Thời điểm kết thúc đánh dấu lúc một hoạt động cụ thể hoàn tất. Thời điểm bắt đầu cho biết hoạt động khởi đầu khi nào, còn thời điểm kết thúc giúp xác định thời lượng thực tế hoặc thời gian xử lý của riêng bước đó. Trong process mining, có cả thời điểm bắt đầu và kết thúc của hoạt động sẽ giúp phân tích chi tiết hơn thời gian chờ và thời gian xử lý. Nhờ đó, bạn phân biệt được thời gian hoạt động đang được thực hiện với thời gian chờ bước tiếp theo bắt đầu. Đây là thông tin quan trọng để phân tích điểm nghẽn chi tiết. Vì sao điều này quan trọng Thuộc tính này giúp tính thời gian xử lý hoạt động và phân biệt với thời gian chờ, từ đó phân tích điểm nghẽn chính xác hơn. Lấy dữ liệu ở đâu Giá trị này thường được suy ra. Ví dụ, thời điểm kết thúc của 'Production Started' có thể là thời điểm bắt đầu của 'Operation Completed'. Một số nhật ký ghi rõ dấu thời gian kết thúc. Ví dụ 2023-04-15T09:30:45Z2023-04-15T12:00:00Z2023-04-16T15:00:10Z | |||
| Tình trạng sẵn có của nguyên vật liệu MaterialAvailabilityStatus | Cho biết nguyên vật liệu cần thiết cho lệnh sản xuất có sẵn hay không. | ||
| Mô tả Thuộc tính này theo dõi mức độ sẵn sàng của các linh kiện cần cho sản xuất. Giá trị có thể là 'Available', 'On Order' hoặc 'Shortage'. Người điều độ cần thông tin này để biết lệnh sản xuất có thể bắt đầu đúng như kế hoạch hay không. Trong process mining, thuộc tính này rất quan trọng để tìm nguyên nhân gốc rễ khiến sản xuất bắt đầu trễ. Đối chiếu trạng thái này với khoảng thời gian từ 'Production Order Released' đến 'Production Started' giúp chuyên viên phân tích định lượng ảnh hưởng của tình trạng thiếu nguyên vật liệu đến việc tuân thủ lịch sản xuất và thời gian chu kỳ tổng thể. Thông tin này hỗ trợ trực tiếp cho dashboard 'Material Availability Delay Impact'. Vì sao điều này quan trọng Thuộc tính này giúp tìm hiểu và định lượng độ trễ khi bắt đầu sản xuất do thiếu nguyên vật liệu, đồng thời liên kết hiệu suất chuỗi cung ứng với hiệu quả sản xuất. Lấy dữ liệu ở đâu Trạng thái này thường không nằm trong một trường duy nhất. Thay vào đó, trạng thái được suy ra bằng cách kiểm tra lượng tồn kho hiện có của tất cả mặt hàng trong định mức nguyên vật liệu (BOM) của lệnh sản xuất qua bảng 'InventSum'. Ví dụ Có đủ nguyên vật liệuThiếu một phầnKhông có sẵn | |||
Hoạt động trong kế hoạch sản xuất
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Báo cáo sản xuất đã hoàn tất | Cho biết quá trình sản xuất số lượng sản phẩm đã chỉ định hoàn tất trên thực tế và thành phẩm đã được nhập kho. Đây là cập nhật trạng thái quan trọng, kích hoạt các giao dịch tồn kho. | ||
| Vì sao điều này quan trọng Đây là mốc kết thúc sản xuất thực tế. Sự kiện này cần thiết để tính tỷ lệ hoàn thành đúng hạn, thời lượng sản xuất thực tế và sản lượng đầu ra. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trạng thái lệnh sản xuất trong ProdTable chuyển thành “Reported as finished”. Sự kiện này xảy ra khi ghi sổ nhật ký Report as Finished. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Reported as finished”. Loại sự kiện inferred | |||
| Bắt đầu sản xuất | Đánh dấu thời điểm bắt đầu công việc sản xuất thực tế cho lệnh tại xưởng. Sự kiện này thường được ghi nhận khi công đoạn hoặc công việc đầu tiên bắt đầu qua thiết bị đầu cuối tại xưởng hoặc thao tác ghi sổ nhật ký. | ||
| Vì sao điều này quan trọng Hoạt động này cung cấp thời điểm sản xuất thực tế bắt đầu, rất cần thiết để tính độ trễ khởi động, mức độ tuân thủ lịch và thời gian thực tế từ đầu đến cuối. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trạng thái lệnh sản xuất trong ProdTable chuyển thành “Started”. Sự kiện này thường xảy ra khi ghi sổ nhật ký thẻ công việc hoặc thẻ quy trình cho công đoạn đầu tiên. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Started”. Loại sự kiện inferred | |||
| Kết thúc lệnh sản xuất | Đây là hoạt động cuối cùng, đánh dấu việc khóa sổ tài chính cho lệnh sản xuất. Tất cả chi phí đã được tính và ghi sổ, không thể thực hiện thêm giao dịch nào cho lệnh. | ||
| Vì sao điều này quan trọng Mốc này đánh dấu lệnh đã hoàn tất cả về mặt sản xuất thực tế lẫn tài chính. Chậm trễ giữa “Reported as Finished” và “Ended” có thể cho thấy vấn đề trong hạch toán chi phí hoặc quy trình khóa sổ tài chính. Lấy dữ liệu ở đâu Đây là lần thay đổi trạng thái cuối cùng, được ghi nhận khi trường “ProdStatus” trong bảng “ProdTable” được đặt thành “Ended”. Sự kiện này xảy ra khi chạy tính chi phí và kết thúc lệnh. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Ended”. Loại sự kiện inferred | |||
| Lên lịch lệnh sản xuất | Hoạt động này đánh dấu việc lên lịch cho lệnh sản xuất, bao gồm phân bổ tài nguyên, ngày và giờ cụ thể cho các công đoạn. Bước này có thể bao gồm lập lịch vận hành hoặc lập lịch chi tiết hơn cho từng công việc. | ||
| Vì sao điều này quan trọng Lập lịch rất quan trọng để hoạch định công suất và quản lý tài nguyên. Phân tích thời gian lên lịch cho các lệnh và khoảng chờ trước khi phát hành giúp phát hiện hạn chế về lập kế hoạch và công suất. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trạng thái lệnh sản xuất trong ProdTable chuyển thành “Scheduled”. Sự kiện này xảy ra khi người dùng chạy chức năng lập lịch. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Scheduled”. Loại sự kiện inferred | |||
| Phát hành lệnh sản xuất | Hoạt động này cho biết lệnh sản xuất đã được phê duyệt và cho phép triển khai tại xưởng. Đây là mốc quan trọng để phát hành các tài liệu như thẻ công việc và thẻ quy trình. | ||
| Vì sao điều này quan trọng Đây là bước bàn giao chính thức từ khâu lập kế hoạch sang khâu thực hiện. Thời gian từ “Scheduled” đến “Released” có thể cho thấy chậm trễ trong phê duyệt hoặc kiểm tra cuối cùng. Thời gian từ “Released” đến “Started” cho biết mức độ sẵn sàng của xưởng. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trạng thái lệnh sản xuất trong ProdTable chuyển thành “Released”. Đây là thao tác do người dùng thực hiện, thủ công hoặc tự động. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Released”. Loại sự kiện inferred | |||
| Tạo lệnh sản xuất | Hoạt động này đánh dấu thời điểm tạo lệnh sản xuất, qua đó xác nhận nhu cầu sản xuất một số lượng sản phẩm cụ thể. Sự kiện thường được ghi nhận khi lệnh sản xuất dự kiến được xác nhận, tạo thành bản ghi chính thức có mã định danh riêng trong hệ thống. | ||
| Vì sao điều này quan trọng Đây là sự kiện bắt đầu chính của quy trình sản xuất. Phân tích thời gian từ lúc tạo lệnh đến các bước tiếp theo giúp đo lường tổng thời gian và hiệu quả lập kế hoạch. Lấy dữ liệu ở đâu Sự kiện này được suy ra từ dấu thời gian tạo bản ghi lệnh sản xuất trong ProdTable. Trạng thái ban đầu thường là “Created”. Thu thập Ghi nhận dấu thời gian tạo mục mới trong ProdTable khi ProdStatus là “Created”. Loại sự kiện inferred | |||
| Đạt kiểm tra chất lượng | Đây là thời điểm hoàn tất và xác nhận lệnh kiểm tra chất lượng gắn với đợt sản xuất. Kết quả xác nhận sản phẩm đáp ứng các tiêu chuẩn chất lượng yêu cầu. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng trong quy trình kiểm tra chất lượng. Thời gian từ lúc tạo lệnh kiểm tra đến khi đạt yêu cầu cho thấy hiệu quả của đội ngũ QA. Lấy dữ liệu ở đâu Sự kiện được suy ra khi trạng thái bản ghi trong InventQualityOrderTable chuyển thành “Pass”. Giá trị trạng thái cụ thể có thể khác nhau. Thu thập Phát hiện dấu thời gian khi trạng thái của bản ghi InventQualityOrderTable liên quan được cập nhật thành “Pass”. Loại sự kiện inferred | |||
| Điều chỉnh lệnh sản xuất | Đây là thay đổi đáng kể đối với lệnh sản xuất sau khi phát hành, chẳng hạn thay đổi số lượng hoặc ngày tháng. Sự kiện này được suy ra bằng cách so sánh các trường quan trọng trước và sau khi thay đổi. | ||
| Vì sao điều này quan trọng Việc điều chỉnh thường xuyên cho thấy kế hoạch thiếu ổn định hoặc nhu cầu biến động, dẫn đến kém hiệu quả và phải làm lại. Thông tin này giúp đo lường tần suất và tác động của các thay đổi. Lấy dữ liệu ở đâu Sự kiện được suy ra bằng cách phân tích nhật ký thay đổi hoặc so sánh ảnh chụp bản ghi ProdTable ở các trường như “QtySched” hoặc “SchedEnd” sau khi trạng thái lệnh chuyển thành “Released”. Thu thập Xác định thay đổi ở các trường quan trọng (ví dụ: số lượng, ngày tháng) trong ProdTable sau dấu thời gian của sự kiện “Released”. Loại sự kiện calculated | |||
| Hoàn tất công đoạn | Hoạt động này đánh dấu việc hoàn tất một công đoạn sản xuất trong quy trình sản xuất. Một lệnh sản xuất thường có nhiều sự kiện loại này. | ||
| Vì sao điều này quan trọng Phân tích thời gian giữa các công đoạn giúp xác định điểm nghẽn ngay trong quy trình sản xuất. Nhờ đó, bạn có thể xem chi tiết hơn luồng công việc tại xưởng. Lấy dữ liệu ở đâu Đây là sự kiện được ghi nhận rõ khi ghi sổ nhật ký thẻ quy trình (ProdJournalRoute) cho từng công đoạn, cho biết công đoạn đó đã hoàn tất. Thu thập Ghi nhận dấu thời gian ghi sổ của từng bản ghi ProdJournalRoute gắn với lệnh sản xuất. Loại sự kiện explicit | |||
| Hủy lệnh sản xuất | Đây là trường hợp hủy lệnh sản xuất trước khi hoàn tất, một kết thúc thay thế không thành công của quy trình. | ||
| Vì sao điều này quan trọng Theo dõi các lệnh bị hủy giúp xác định nguyên nhân quy trình không thành công, chẳng hạn nhu cầu thay đổi hoặc lỗi lập kế hoạch. Tỷ lệ hủy cao có thể cho thấy vấn đề mang tính hệ thống. Lấy dữ liệu ở đâu Đây là trạng thái kết thúc thay thế được suy ra từ thay đổi trạng thái. Trạng thái cụ thể có thể khác nhau, nhưng thường là đặt lại trạng thái lệnh về trạng thái trước đó và đánh dấu lệnh đã hủy. Thu thập Phát hiện thay đổi trạng thái cho biết lệnh bị hủy. Có thể cần phân tích hệ thống cụ thể để xác định thay đổi này. Loại sự kiện inferred | |||
| Lấy nguyên vật liệu để sản xuất | Cho biết nguyên vật liệu cần cho lệnh sản xuất đã được lấy khỏi kho và sẵn sàng đưa vào sản xuất. Sự kiện được ghi nhận khi hoàn tất công việc lấy nguyên vật liệu hoặc ghi sổ nhật ký phiếu lấy hàng. | ||
| Vì sao điều này quan trọng Hoạt động này là điều kiện quan trọng để bắt đầu sản xuất. Chậm trễ giữa lúc lên lịch và lấy nguyên vật liệu cho thấy có thể phát sinh vấn đề trong vận hành kho hoặc nguồn cung nguyên vật liệu. Lấy dữ liệu ở đâu Sự kiện này thường được ghi rõ trong các bảng quản lý kho (WHSWorkTable) hoặc nhật ký tồn kho (InventJournalTrans) có liên kết với lệnh sản xuất. Thu thập Ghi nhận dấu thời gian ghi sổ nhật ký phiếu lấy hàng gắn với lệnh sản xuất. Loại sự kiện explicit | |||
| Tạo lệnh kiểm tra chất lượng | Lệnh kiểm tra chất lượng được tạo để kiểm tra sản phẩm đầu ra của lệnh sản xuất. Sự kiện này đánh dấu thời điểm bắt đầu quy trình đảm bảo chất lượng cho thành phẩm. | ||
| Vì sao điều này quan trọng Theo dõi quy trình kiểm tra chất lượng giúp hiểu rõ tổng thời gian hoàn tất. Chậm trễ trong khâu kiểm tra có thể khiến hàng hóa chưa thể giao đi hoặc sử dụng trong các quy trình tiếp theo. Lấy dữ liệu ở đâu Đây là sự kiện được ghi nhận rõ khi tạo bản ghi trong InventQualityOrderTable có tham chiếu đến lệnh sản xuất nguồn. Thu thập Ghi nhận dấu thời gian tạo lệnh kiểm tra chất lượng trong InventQualityOrderTable có liên kết với mã lệnh sản xuất. Loại sự kiện explicit | |||
| Ước tính lệnh sản xuất | Đây là bước tính toán mức tiêu thụ nguyên vật liệu và chi phí ước tính cho lệnh sản xuất. Bước lập kế hoạch quan trọng này giúp xác định yêu cầu về tài chính và nguyên vật liệu trước khi tiếp tục. | ||
| Vì sao điều này quan trọng Chậm trễ trong khâu ước tính có thể trở thành điểm nghẽn lớn ở giai đoạn lập kế hoạch. Theo dõi hoạt động này giúp phát hiện điểm kém hiệu quả trong quy trình lập kế hoạch chi phí và nguyên vật liệu. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trạng thái lệnh sản xuất trong ProdTable chuyển thành “Estimated”. Sự kiện này xảy ra khi người dùng chạy chức năng “Estimate” cho lệnh. Thu thập Phát hiện dấu thời gian khi trường ProdStatus trong ProdTable chuyển thành “Estimated”. Loại sự kiện inferred | |||
Hướng dẫn trích xuất dữ liệu
Các bước
- Mở không gian làm việc Data Management: Đăng nhập vào Microsoft Dynamics 365 Finance and Operations. Dùng thanh tìm kiếm để tìm và mở không gian làm việc
Data management. - Tạo dự án xuất dữ liệu mới: Trong không gian làm việc, chọn ô
Exportđể tạo dự án xuất dữ liệu. Đặt tên dễ nhận biết, chẳng hạnProcessMind_Production_Orders. - Chọn định dạng tệp xuất: Trong phần cấu hình dự án, chọn định dạng dữ liệu cần xuất, chẳng hạn CSV hoặc Excel. Chọn tùy chọn
Entityvà chỉ định các chi tiết định dạng. Nên dùng CSV để tăng hiệu suất và khả năng tương thích. - Thêm các thực thể dữ liệu cần thiết: Thêm các thực thể dữ liệu cần thiết vào dự án để ghi nhận mọi sự kiện của đơn hàng sản xuất. Bạn cần thêm từng thực thể sau:
Đơn hàng sản xuất,Production order route transactions,Inventory quality ordersvàProduction picking list journal lines. Với mỗi thực thể, hãy chọn tất cả các trường liên quan như mô tả trong phần truy vấn. - Áp dụng bộ lọc dữ liệu: Với mỗi thực thể, dùng tùy chọn
Lọcđể giới hạn phạm vi dữ liệu xuất. Tối thiểu, hãy lọc theoCompanyđể chọn đúng pháp nhân. Bạn nên lọc theo khoảng ngày trên một trường ngày quan trọng, chẳng hạnCreation datecủa thực thểĐơn hàng sản xuất, để giới hạn dữ liệu trong khoảng thời gian phù hợp, ví dụ 6 tháng gần nhất. - Thiết lập xuất dữ liệu tăng dần (không bắt buộc): Để phân tích liên tục, hãy cấu hình dự án xuất dữ liệu tăng dần. Bạn có thể theo dõi thay đổi trên các thực thể nguồn để chỉ trích xuất bản ghi mới hoặc đã sửa kể từ lần xuất trước, giúp giảm đáng kể thời gian xuất.
- Chạy tác vụ xuất dữ liệu: Sau khi cấu hình dự án, chọn
Exporttrong ngăn tác vụ để bắt đầu xuất. Bạn có thể chạy ngay hoặc lên lịch thành tác vụ hàng loạt định kỳ. - Tải tệp đã xuất xuống: Khi tác vụ xuất hoàn tất thành công, mở lịch sử tác vụ. Tải gói dữ liệu xuống. Đây là tệp ZIP chứa các tệp dữ liệu riêng cho từng thực thể đã chọn.
- Chuyển đổi dữ liệu thành nhật ký sự kiện: Các tệp đã xuất chứa dữ liệu bảng thô, không phải nhật ký sự kiện đã định dạng. Bạn cần dùng công cụ bên ngoài, chẳng hạn tập lệnh Python, Power Query trong Excel/Power BI hoặc công cụ ETL, để xử lý và kết hợp dữ liệu từ các tệp này. Áp dụng logic chuyển đổi trong phần truy vấn để chuyển các trường ngày và trạng thái từ nhiều thực thể thành một tệp nhật ký sự kiện duy nhất, mỗi dòng tương ứng với một hoạt động.
- Định dạng nhật ký sự kiện cuối cùng: Đảm bảo tệp CSV sau chuyển đổi có các cột bắt buộc:
ProductionOrderNumber,ActivityName,EventTime,SourceSystemvàLastDataUpdate, cùng mọi thuộc tính được đề xuất. Tệp cần có dòng tiêu đề và sẵn sàng tải lên ProcessMind.
Cấu hình
- Các thực thể dữ liệu chính: Việc trích xuất dựa trên thao tác xuất một số thực thể rồi kết hợp chúng sau đó. Các thực thể chính gồm
Đơn hàng sản xuất(ProdTable),Production order route transactions(ProdRouteTrans) vàInventory quality orders(InventQualityOrderTable). - Lọc theo khoảng ngày: Luôn lọc theo ngày để kiểm soát khối lượng dữ liệu. Nên lọc thực thể
Đơn hàng sản xuấttheoCreation date(CREATEDDATETIME) trong 3 đến 6 tháng gần nhất. Cách này giúp bạn thu thập dữ liệu quy trình gần đây và đầy đủ mà không làm hệ thống quá tải. - Lọc theo công ty: Bạn cần lọc theo công ty hoặc pháp nhân cụ thể muốn phân tích. Thực hiện việc này bằng tùy chọn
Lọctrên từng thực thể trong dự án xuất dữ liệu. - Xuất toàn bộ hay tăng dần: Lần trích xuất đầu tiên cần xuất toàn bộ dữ liệu. Với các lần cập nhật sau, bạn nên bật theo dõi thay đổi trên các thực thể và xuất dữ liệu tăng dần để cải thiện hiệu suất, giảm tải dữ liệu.
- Điều kiện tiên quyết: Người chạy tác vụ xuất cần có vai trò bảo mật phù hợp, thường gồm
Data management administratorhoặc vai trò có quyền truy cập các thực thể dữ liệu cần thiết.
Truy vấn mẫu sql
/*
This is not a runnable script but a configuration and transformation plan for the Dynamics 365 Data Management Framework.
**Step 1: Configure the Export Project**
Export the following entities with the specified fields:
1. **Entity: Production orders (ProdTable)**
* `ProductionOrderNumber` (PRODID)
* `ProductionOrderStatus` (PRODSTATUS)
* `CreationDate` (CREATEDDATETIME)
* `LastUpdateDateStatusEstimate` (LASTUPDATEDATESTATUSESTIMATE)
* `LastUpdateDateStatusScheduled` (LASTUPDATEDATESTATUSSCHEDULED)
* `ReleaseDate` (RELEASEDATETIME)
* `StartDate` (STARTEDDATETIME)
* `ReportedFinishedDate` (REPORTEDFINISHEDDATETIME)
* `LastUpdateDateStatusEnded` (LASTUPDATEDATESTATUSENDED)
* `ModifiedDateTime` (MODIFIEDDATETIME)
* `CreatedByUser` (CREATEDBY)
* `ProductionSite` (INVENTSITEID)
* `ProductNumber` (ITEMID)
* `ProductionType` (PRODTYPE)
* `Quantity` (QTYsched)
* `ActualQuantity` (QTYCALC)
* `DeliveryDate` (DLVDATE)
2. **Entity: Production order route transactions (ProdRouteTrans)**
* `ProductionOrderNumber` (PRODID)
* `OperationNumber` (OPRNUM)
* `TransactionDate` (TRANSDATE)
* `TransactionTime` (TRANSTIME)
* `CreatedDateTime` (CREATEDDATETIME)
* `CreatedByUser` (CREATEDBY)
3. **Entity: Inventory quality orders (InventQualityOrderTable)**
* `QualityOrderNumber` (INVENTQUALITYORDERID)
* `ReferenceType` (REFTYPE)
* `ReferenceNumber` (PRODID)
* `QualityOrderStatus` (STATUS)
* `CreationDate` (CREATEDDATETIME)
* `ModifiedDateTime` (MODIFIEDDATETIME)
4. **Entity: Production picking list journal lines (ProdJournalBOM)**
* `JournalId` (JOURNALID)
* `ProductionOrderNumber` (PRODID)
* `PostedDateTime` (POSTEDDATETIME)
* `CreatedByUser` (CREATEDBY)
**Step 2: Apply Transformation Logic (Post-Export)**
Use a script or ETL tool to transform the exported files into a single event log CSV. For each row in the source files, generate events as described below.
*/
-- Production Order Created
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
CREATEDDATETIME AS EventTime,
PRODSTATUS AS ProductionOrderStatus,
DLVDATE AS PlannedStartDate,
-- [Logic to calculate PlannedEndDate] AS PlannedEndDate,
CREATEDBY AS UserId,
INVENTSITEID AS ProductionPlant,
ITEMID AS ProductNumber,
PRODTYPE AS ProductionType,
QTYCALC AS ActualQuantity,
-- [Your field for Production Priority] AS ProductionPriority
FROM ProdTable
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Estimated
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
LASTUPDATEDATESTATUSESTIMATE AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSESTIMATE IS NOT NULL
UNION ALL
-- Production Order Scheduled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
LASTUPDATEDATESTATUSSCHEDULED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSSCHEDULED IS NOT NULL
UNION ALL
-- Materials Picked For Production (based on the first picking list journal posting)
SELECT
PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
MIN(POSTEDDATETIME) AS EventTime, -- Use the earliest posting time for a given order
-- Other attributes from ProdTable...
FROM ProdJournalBOM
WHERE POSTEDDATETIME IS NOT NULL
GROUP BY PRODID
UNION ALL
-- Production Order Released
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
RELEASEDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE RELEASEDATETIME IS NOT NULL
UNION ALL
-- Production Order Adjusted (inferred from modification after release)
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE MODIFIEDDATETIME > RELEASEDATETIME AND PRODSTATUS NOT IN ('Ended', 'Cancelled') -- Example logic
UNION ALL
-- Production Started
SELECT
PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
STARTEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE STARTEDDATETIME IS NOT NULL
UNION ALL
-- Operation Completed
SELECT
PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM ProdRouteTrans
WHERE CREATEDDATETIME IS NOT NULL
UNION ALL
-- Production Reported As Finished
SELECT
PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
REPORTEDFINISHEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE REPORTEDFINISHEDDATETIME IS NOT NULL
UNION ALL
-- Quality Order Generated
SELECT
PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
CREATEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND CREATEDDATETIME IS NOT NULL
UNION ALL
-- Quality Inspection Passed
SELECT
PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable linked on PRODID...
FROM InventQualityOrderTable
WHERE REFTYPE = 'Production' AND STATUS = 'Pass' AND MODIFIEDDATETIME IS NOT NULL
UNION ALL
-- Production Order Ended
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
LASTUPDATEDATESTATUSENDED AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE LASTUPDATEDATESTATUSENDED IS NOT NULL
UNION ALL
-- Production Order Cancelled
SELECT
PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
MODIFIEDDATETIME AS EventTime,
-- Other attributes from ProdTable...
FROM ProdTable
WHERE PRODSTATUS = 'Stopped' -- Or the equivalent 'Cancelled' status enum value in your system Các bước
- Cấu hình BYOD trong Dynamics 365: Đảm bảo tính năng 'Bring your own database' đã được cấu hình trong môi trường Dynamics 365 for Finance and Operations. Bạn cần thiết lập Azure SQL Database và cấu hình xuất dữ liệu từ Dynamics 365.
- Công bố các thực thể cần thiết: Trong không gian làm việc 'Data management', vào 'Data entities'. Tìm và công bố các thực thể chính sau vào cơ sở dữ liệu BYOD: ProdTable, ProdRouteTrans, InventPickingListJour và InventQualityOrderTable. Đảm bảo các thực thể được cấu hình để xuất định kỳ.
- Kiểm tra đồng bộ dữ liệu: Xác nhận dữ liệu từ các thực thể đã công bố được đồng bộ thành công và thường xuyên sang Azure SQL Database đích. Kiểm tra lịch sử công việc xuất để tìm lỗi.
- Kết nối cơ sở dữ liệu BYOD: Dùng ứng dụng khách SQL, chẳng hạn SQL Server Management Studio (SSMS) hoặc Azure Data Studio, để kết nối với Azure SQL Database lưu dữ liệu Dynamics 365 của bạn.
- Chuẩn bị truy vấn SQL: Mở cửa sổ truy vấn mới. Sao chép toàn bộ truy vấn SQL trong tài liệu này.
- Đặt tham số truy vấn: Tìm các biến giữ chỗ trong truy vấn. Thay '{StartDate}', '{EndDate}' và '{CompanyCode}' bằng khoảng ngày mong muốn và DataAreaId của công ty cụ thể mà bạn muốn phân tích.
- Chạy truy vấn: Chạy truy vấn SQL đã chỉnh sửa trên cơ sở dữ liệu BYOD. Thời gian chạy tùy thuộc vào lượng dữ liệu và khoảng ngày đã chọn.
- Xem kết quả: Khi truy vấn chạy xong, kiểm tra kết quả để đảm bảo có các cột và dữ liệu mong đợi cho mọi hoạt động được trích xuất. Tập kết quả chính là nhật ký sự kiện.
- Xuất nhật ký sự kiện: Xuất kết quả truy vấn thành tệp CSV. Hầu hết ứng dụng khách SQL đều có chức năng lưu kết quả trực tiếp vào tệp.
- Định dạng cho ProcessMind: Đảm bảo tệp CSV đã xuất dùng mã hóa UTF-8 và tiêu đề cột khớp với tên thuộc tính ProcessMind yêu cầu, chẳng hạn CaseId, Activity và Timestamp. Truy vấn được cung cấp đã dùng đúng bí danh.
Cấu hình
- Các thực thể dữ liệu chính: Truy vấn chủ yếu cần các thực thể sau được xuất vào phiên bản BYOD của bạn:
PRODTABLE: Chứa thông tin tiêu đề và trạng thái chính của lệnh sản xuất.PRODROUTETRANS: Cung cấp chi tiết về từng công đoạn sản xuất và trạng thái hoàn tất.INVENTPICKINGLISTJOUR: Ghi lại việc lấy vật tư cho lệnh sản xuất.INVENTQUALITYORDERTABLE: Theo dõi các lệnh kiểm tra chất lượng liên quan đến sản xuất.
- Khoảng ngày: Nên bắt đầu với khoảng ngày giới hạn, chẳng hạn dữ liệu từ 3 đến 6 tháng, để truy vấn chạy trong thời gian phù hợp. Truy vấn lọc theo ngày tạo lệnh sản xuất (
CREATEDDATETIMEtrongPRODTABLE). - Lọc theo mã công ty: Trường
DATAREAIDdùng để lọc dữ liệu theo pháp nhân hoặc công ty cụ thể. Bạn cần thay phần giữ chỗ'{CompanyCode}'bằng ID phù hợp, chẳng hạn 'usmf'. - Điều kiện cần có: Phương pháp này yêu cầu quyền quản trị hệ thống trong Dynamics 365 Finance and Operations để cấu hình BYOD, cùng quyền Contributor trên Azure SQL Database để chạy truy vấn.
- Hiệu suất: Với tập dữ liệu rất lớn, kéo dài nhiều năm hoặc bao gồm nhiều công ty, hãy cân nhắc chạy truy vấn ngoài giờ cao điểm. Bạn cũng có thể chia dữ liệu thành các khoảng thời gian nhỏ hơn rồi kết hợp kết quả sau.
Truy vấn mẫu sql
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Created' AS ActivityName,
p.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity, -- Using calculated quantity at creation
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Estimated' AS ActivityName,
p.COSTCALCDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.COSTCALCDATETIME IS NOT NULL AND p.PRODSTATUS >= 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Scheduled' AS ActivityName,
p.SCHEDDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYCALC AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.SCHEDDATE IS NOT NULL AND p.PRODSTATUS >= 3 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Materials Picked For Production' AS ActivityName,
pl.LEDGERVOUCHERPOSTEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
pl.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTPICKINGLISTJOUR pl
JOIN PRODTABLE p ON pl.INVENTREFID = p.PRODID AND pl.DATAREAID = p.DATAREAID
WHERE pl.LEDGERVOUCHERPOSTEDDATETIME IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Released' AS ActivityName,
p.RELEASEDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.PRODSTATUS >= 4 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Adjusted' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.RELEASEDATE IS NOT NULL AND p.MODIFIEDDATETIME > p.RELEASEDATE AND p.PRODSTATUS IN (4, 5) AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Started' AS ActivityName,
p.STARTEDUPDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.STARTEDUPDATETIME IS NOT NULL AND p.PRODSTATUS >= 5 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
prt.PRODID AS ProductionOrderNumber,
'Operation Completed' AS ActivityName,
prt.TRANSDATE AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
prt.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODROUTETRANS prt
JOIN PRODTABLE p ON prt.PRODID = p.PRODID AND prt.DATAREAID = p.DATAREAID
WHERE prt.POSTINGTYPE = 8 AND prt.TRANSDATE IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Reported As Finished' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 6 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Order Generated' AS ActivityName,
qo.CREATEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.CREATEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Quality Inspection Passed' AS ActivityName,
qo.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
qo.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM INVENTQUALITYORDERTABLE qo
JOIN PRODTABLE p ON qo.INVENTREFID = p.PRODID AND qo.DATAREAID = p.DATAREAID
WHERE qo.INVENTREFTYPE = 9 AND qo.STATUS = 2 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Ended' AS ActivityName,
p.LASTUPDDATEPRINT AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 7 AND p.LASTUPDDATEPRINT IS NOT NULL AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'
UNION ALL
SELECT
p.PRODID AS ProductionOrderNumber,
'Production Order Cancelled' AS ActivityName,
p.MODIFIEDDATETIME AS EventTime,
'Dynamics 365 BYOD' AS SourceSystem,
GETUTCDATE() AS LastDataUpdate,
p.PRODSTATUS AS ProductionOrderStatus,
p.SCHEDSTART AS PlannedStartDate,
p.SCHEDEND AS PlannedEndDate,
p.MODIFIEDBY AS UserId,
p.INVENTSITEID AS ProductionPlant,
p.ITEMID AS ProductNumber,
p.PRODTYPE AS ProductionType,
p.QTYGOOD AS ActualQuantity,
p.PRODPRIO AS ProductionPriority
FROM PRODTABLE p
WHERE p.PRODSTATUS = 0 AND p.CREATEDDATETIME >= '{StartDate}' AND p.CREATEDDATETIME <= '{EndDate}' AND p.DATAREAID = '{CompanyCode}'; Các bước
- Xác nhận Power BI Desktop hoặc một công cụ được phê duyệt khác có Power Query đã sẵn sàng, đồng thời người dùng có quyền đọc các thực thể dữ liệu Microsoft Dynamics 365 Manufacturing cần thiết. Xác nhận URL môi trường, phạm vi pháp nhân hoặc công ty và phương thức xác thực được phê duyệt.
- Trong Power BI Desktop, chọn Get data rồi chọn trình kết nối Dynamics 365 được phê duyệt hoặc kết nối OData hay Dataverse dành riêng cho tổ chức. Dùng [Your Dynamics 365 environment connection] và [Your credentials] theo cấu hình của quản trị viên. Không mặc định rằng mọi môi trường đều có cùng thực thể, endpoint hoặc đường dẫn menu.
- Chọn thực thể tiêu đề lệnh sản xuất, thực thể công đoạn hoặc tuyến sản xuất, thực thể lấy vật tư hoặc danh sách lấy hàng, thực thể ghi nhận sản xuất, thực thể lệnh kiểm tra chất lượng và mọi thực thể kiểm toán, lịch sử hoặc theo dõi thay đổi được phê duyệt cần thiết để xác định thay đổi trạng thái. Thay từng tham chiếu nguồn trong truy vấn bằng thực thể hoặc truy vấn tương ứng có trong môi trường của bạn.
- Cấu hình phạm vi trích xuất. Áp dụng [Start date parameter], [End date parameter] và [Your company or legal entity filter]. Giới hạn truy vấn theo nhà máy, sản phẩm, loại lệnh và trạng thái cần phân tích. Giữ lại dấu thời gian nguồn cần thiết để phân biệt thời điểm tạo, ước tính, lên lịch, lấy vật tư, phát hành, điều chỉnh, bắt đầu, hoàn tất công đoạn, báo cáo hoàn thành, kiểm tra chất lượng, kết thúc và hủy.
- Trong Power Query, chuẩn hóa tên cột nguồn và kiểu dữ liệu. Chuyển dấu thời gian sự kiện sang cùng một kiểu datetime, đồng thời chuẩn hóa mã định danh, giá trị trạng thái, công ty, nhà máy, mã sản phẩm, người dùng, số lượng và mức ưu tiên. Nếu trường nguồn không có dữ liệu, trả về giá trị null thay vì tự tạo dữ liệu. Dùng số lệnh sản xuất làm mã định danh case.
- Tạo một bảng sự kiện cho mỗi hoạt động. Mỗi bảng cần trả về ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity và ProductionPriority. Tên hoạt động phải là một giá trị cố định, khớp với một trong 13 tên bắt buộc.
- Chỉ xác định Production Order Adjusted từ nguồn lịch sử trước và sau thay đổi, kiểm toán hoặc theo dõi thay đổi đã được phê duyệt. So sánh các trường liên quan như số lượng, ngày dự kiến, trạng thái, nhà máy, sản phẩm và mức ưu tiên. Tạo một hàng sự kiện điều chỉnh cho mỗi thay đổi đủ điều kiện, dùng dấu thời gian thay đổi đã ghi nhận. Không suy ra việc điều chỉnh chỉ từ ảnh chụp hiện trạng của lệnh sản xuất.
- Kết hợp cả 13 bảng hoạt động bằng UNION ALL. Loại bỏ hàng không có số lệnh sản xuất hoặc dấu thời gian sự kiện, nhưng không xóa các lần hoàn tất công đoạn, điều chỉnh hoặc sự kiện chất lượng lặp lại hợp lệ. Sắp xếp theo ProductionOrderNumber và EventTime, sau đó dùng tiêu chí phụ ổn định nếu có.
- Tải bảng kết quả vào Power BI hoặc xuất thành CSV hay định dạng nhật ký sự kiện khác được ProcessMind hỗ trợ. Đảm bảo tiêu đề cột trong tệp xuất khớp chính xác với các tên sau: ProductionOrderNumber, ActivityName, EventTime, SourceSystem, LastDataUpdate, ProductionOrderStatus, PlannedStartDate, PlannedEndDate, UserId, ProductionPlant, ProductNumber, ProductionType, ActualQuantity và ProductionPriority.
- Trước khi tải lên ProcessMind, xác nhận mỗi hoạt động bắt buộc đều có hàng sự kiện riêng trong nhật ký, dấu thời gian dùng cùng múi giờ, ProductionOrderNumber có giá trị và LastDataUpdate ghi nhận lần làm mới dữ liệu. ProcessMind đọc nguyên trạng nhật ký sự kiện, không tự tạo các sự kiện còn thiếu.
Cấu hình
- Kết nối: Dùng trình kết nối Power Query và phương thức xác thực được phê duyệt cho môi trường Dynamics 365. Thay [Your Dynamics 365 environment connection] và [Your credentials] bằng các giá trị được tổ chức phê duyệt.
- Thực thể nguồn: Chọn các thực thể tiêu đề lệnh sản xuất, công đoạn hoặc tuyến sản xuất, lấy vật tư hoặc danh sách lấy hàng, ghi nhận sản xuất, lệnh kiểm tra chất lượng và kiểm toán hoặc theo dõi thay đổi đã được phê duyệt trong môi trường. Tên và khả năng sử dụng của thực thể tùy theo cách triển khai, cần xác nhận trong trình duyệt metadata.
- Khoảng ngày: Bắt đầu với khoảng từ 3 đến 6 tháng. Khi có thể, hãy lọc EventTime ngay tại nguồn và mở rộng khoảng thời gian khi kiểm tra các lệnh sản xuất kéo dài hoặc chuyển trạng thái trong quá khứ.
- Bộ lọc công ty và nhà máy: Áp dụng [Your company or legal entity filter] và bộ lọc nhà máy sản xuất cần thiết nếu có. Không dùng bộ lọc công ty chung nếu môi trường có nhiều pháp nhân với số lệnh trùng nhau.
- Bộ lọc lệnh sản xuất: Lọc theo loại lệnh, sản phẩm, nhà máy, trạng thái và khoảng số lệnh cần thiết. Không loại bỏ lệnh đã hủy hoặc kết thúc nếu cần phân tích các kết quả này.
- Đưa sự kiện vào nhật ký: Giữ lại các sự kiện hoàn tất công đoạn, lấy vật tư, kiểm tra chất lượng và điều chỉnh lặp lại. Không gộp nhật ký thành một hàng cho mỗi lệnh sản xuất.
- Múi giờ: Chuyển mọi dấu thời gian nguồn sang một múi giờ đã được ghi rõ. Giữ lại dấu thời gian hoặc độ lệch múi giờ nguồn nếu có.
- Metadata làm mới: Điền thời điểm làm mới hoặc trích xuất vào LastDataUpdate cho từng hàng. Có thể dùng chung một thời điểm làm mới nếu toàn bộ dữ liệu được trích xuất trong một lần.
- Hiệu suất: Đẩy bộ lọc ngày, công ty, nhà máy và lệnh xuống nguồn. Chỉ chọn các cột cần thiết, tránh các thao tác gộp không cần thiết, chuẩn bị sẵn các truy vấn nguồn dùng lại và cân nhắc làm mới tăng dần với tập dữ liệu lớn.
- Điều kiện cần có: Power BI Desktop hoặc môi trường Power Query được phê duyệt, quyền truy cập mạng vào môi trường Dynamics 365, quyền đọc hợp lệ với mọi thực thể đã chọn và quyền truy cập cần thiết vào Dynamics 365 Manufacturing, kho, chất lượng, kiểm toán hoặc theo dõi thay đổi.
- Dữ liệu phụ thuộc cấu hình: Nếu nguồn của một sự kiện bắt buộc chưa được bật, hãy dùng [Configure based on your system] và ghi lại nguồn còn thiếu. Không thay sự kiện lịch sử bằng ảnh chụp trạng thái hiện tại.
Truy vấn mẫu sql
let
StartDate = #datetime(2026, 1, 1, 0, 0, 0),
EndDate = #datetime(2026, 6, 30, 23, 59, 59),
CompanyFilter = "[Your company or legal entity filter]",
SourceSystemValue = "Microsoft Dynamics 365 Manufacturing",
RefreshTime = DateTimeZone.RemoveZone(DateTimeZone.UtcNow()),
ProductionOrderHeader = [Your production order header query],
ProductionOrderOperation = [Your production order operation or route query],
MaterialPicking = [Your material picking or picking list query],
ProductionPosting = [Your production posting query],
QualityOrder = [Your quality order query],
ProductionOrderHistory = [Your approved production order audit or change tracking query],
Header = Table.SelectRows(ProductionOrderHeader, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Operations = Table.SelectRows(ProductionOrderOperation, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Picking = Table.SelectRows(MaterialPicking, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Posting = Table.SelectRows(ProductionPosting, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Quality = Table.SelectRows(QualityOrder, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
History = Table.SelectRows(ProductionOrderHistory, each [EventTime] >= StartDate and [EventTime] <= EndDate and [Company] = CompanyFilter),
Created = Table.SelectRows(Header, each [EventType] = "Created" or [EventType] = "Firmed"),
Estimated = Table.SelectRows(Header, each [EventType] = "Estimated"),
Scheduled = Table.SelectRows(Operations, each [EventType] = "Scheduled"),
Picked = Table.SelectRows(Picking, each [EventType] = "Picked" or [EventType] = "Posted"),
Released = Table.SelectRows(Header, each [EventType] = "Released"),
Adjusted = Table.SelectRows(History, each [ChangedField] = "Quantity" or [ChangedField] = "PlannedStartDate" or [ChangedField] = "PlannedEndDate" or [ChangedField] = "Status" or [ChangedField] = "ProductionPlant" or [ChangedField] = "ProductNumber" or [ChangedField] = "ProductionPriority"),
Started = Table.SelectRows(Posting, each [EventType] = "Started"),
OperationCompleted = Table.SelectRows(Operations, each [EventType] = "Completed"),
ReportedFinished = Table.SelectRows(Posting, each [EventType] = "Reported as finished" or [EventType] = "Finished"),
QualityGenerated = Table.SelectRows(Quality, each [EventType] = "Generated" or [EventType] = "Created"),
QualityPassed = Table.SelectRows(Quality, each [EventType] = "Passed" or [EventType] = "Validated"),
Ended = Table.SelectRows(Header, each [EventType] = "Ended"),
Cancelled = Table.SelectRows(Header, each [EventType] = "Cancelled"),
ToEvent = (InputTable as table, Activity as text) as table =>
let
Selected = Table.SelectColumns(InputTable, {"ProductionOrderNumber", "EventTime", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}, MissingField.UseNull),
Named = Table.AddColumn(Selected, "ActivityName", each Activity, type text),
Source = Table.AddColumn(Named, "SourceSystem", each SourceSystemValue, type text),
Updated = Table.AddColumn(Source, "LastDataUpdate", each RefreshTime, type datetime),
Ordered = Table.ReorderColumns(Updated, {"ProductionOrderNumber", "ActivityName", "EventTime", "SourceSystem", "LastDataUpdate", "ProductionOrderStatus", "PlannedStartDate", "PlannedEndDate", "UserId", "ProductionPlant", "ProductNumber", "ProductionType", "ActualQuantity", "ProductionPriority"}),
Valid = Table.SelectRows(Ordered, each [ProductionOrderNumber] <> null and [ProductionOrderNumber] <> "" and [EventTime] <> null)
in
Valid,
EventsCreated = ToEvent(Created, "Production Order Created"),
EventsEstimated = ToEvent(Estimated, "Production Order Estimated"),
EventsScheduled = ToEvent(Scheduled, "Production Order Scheduled"),
EventsPicked = ToEvent(Picked, "Materials Picked For Production"),
EventsReleased = ToEvent(Released, "Production Order Released"),
EventsAdjusted = ToEvent(Adjusted, "Production Order Adjusted"),
EventsStarted = ToEvent(Started, "Production Started"),
EventsOperationCompleted = ToEvent(OperationCompleted, "Operation Completed"),
EventsReportedFinished = ToEvent(ReportedFinished, "Production Reported As Finished"),
EventsQualityGenerated = ToEvent(QualityGenerated, "Quality Order Generated"),
EventsQualityPassed = ToEvent(QualityPassed, "Quality Inspection Passed"),
EventsEnded = ToEvent(Ended, "Production Order Ended"),
EventsCancelled = ToEvent(Cancelled, "Production Order Cancelled"),
EventLog = Table.Combine({EventsCreated, EventsEstimated, EventsScheduled, EventsPicked, EventsReleased, EventsAdjusted, EventsStarted, EventsOperationCompleted, EventsReportedFinished, EventsQualityGenerated, EventsQualityPassed, EventsEnded, EventsCancelled}),
Typed = Table.TransformColumnTypes(EventLog, {{"ProductionOrderNumber", type text}, {"ActivityName", type text}, {"EventTime", type datetime}, {"SourceSystem", type text}, {"LastDataUpdate", type datetime}, {"ProductionOrderStatus", type text}, {"PlannedStartDate", type datetime}, {"PlannedEndDate", type datetime}, {"UserId", type text}, {"ProductionPlant", type text}, {"ProductNumber", type text}, {"ProductionType", type text}, {"ActualQuantity", type number}, {"ProductionPriority", type text}}),
Sorted = Table.Sort(Typed, {{"ProductionOrderNumber", Order.Ascending}, {"EventTime", Order.Ascending}, {"ActivityName", Order.Ascending}})
in
Sorted Sẵn sàng bắt đầu?
Với mẫu này, bạn đã có những thông tin cần thiết để bắt đầu trích xuất và phân tích dữ liệu kế hoạch sản xuất. Hãy bắt đầu tối ưu vận hành để nâng cao hiệu quả ngay hôm nay.
Nâng cao hiệu quả: tinh gọn kế hoạch sản xuất ngay hôm nay
Xác định điểm nghẽn và giảm từ 30% thời gian chu kỳ sản xuất trở lên.
Không cần thẻ tín dụng, thiết lập chỉ trong vài phút.