{"id":20002,"date":"2026-06-30T08:25:55","date_gmt":"2026-06-30T08:25:55","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=20002"},"modified":"2026-06-30T08:25:55","modified_gmt":"2026-06-30T08:25:55","slug":"mes-manufacturing-execution-system","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/","title":{"rendered":"Manufacturing Execution System (MES): Malaysia Complete Guide"},"content":{"rendered":"<p>Many manufacturers still rely on manual logs entries to track shop floor activity it affected data output and quality. A manufacturing execution system (MES) can monitors and manages production in real time, covering work orders, machine performance, quality checks, work in progress (WIP), and output, all connected to ERP for planning and decision-making.<\/p>\n<p><a href=\"https:\/\/techbehemoths.com\/blog\/industry-40-malaysias-ambitions-plan-to-embrace-technology\" target=\"_blank\" rel=\"noopener\">Malaysia is using Industry 4.0<\/a> to empower its manufacturing sector implemented Industry4WRD initiatives, real-time shop floor visibility has become increasingly important. A Manufacturing Execution System (MES) helps teams access accurate production data and make better operational decisions.<\/p>\n<p>From core functions and key benefits to how it compares with ERP, this guide covers what MES delivers and what <a href=\"https:\/\/www.hashmicro.com\/my\/hash-manufacturing-software?medium=moneysite-banner&amp;p=20002&amp;preview_id=20002&amp;preview_nonce=9d15e7b3b2&amp;post_format=standard&amp;_thumbnail_id=20020&amp;preview=true\">Malaysian manufacturers system<\/a> should consider before adopting one.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">A <a href=\"#1\">manufacturing execution system (MES)<\/a> connects production planning with real-time shop floor execution for greater visibility and accuracy.<\/li>\n<li aria-level=\"1\">The <a href=\"#2\">key functions of an MES<\/a> give manufacturers greater visibility and control over every stage of the production process.<\/li>\n<li aria-level=\"1\"><a href=\"#3\">Choosing the right MES software<\/a> starts with evaluating its functionality, integration capabilities, scalability, and fit for your manufacturing operations.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Content Lists<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<!-- TOC mobile -->\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n<!-- TOC mobile -->\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- START ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n<!-- END ToC styling  -->\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n<\/script>\r\n\r\n<!-- <script>\r\n\tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\t\tdropdownFixedTop.addEventListener('click', function() {\r\n\t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\t\t\tdropdownContent.classList.toggle('show');\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('click', function(event) {\r\n\t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\t\t\t\tlistTocTop.classList.remove('show');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n    var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n    window.addEventListener('scroll', function() {\r\n        if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(false);\r\n            triggered = true;\r\n        } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(true);\r\n            triggered = false;\r\n        }\r\n    });\r\n\r\n    function isCompletelyScrolledPast(element) {\r\n        var elementTop = element.getBoundingClientRect().top;\r\n        var elementBottom = element.getBoundingClientRect().bottom;\r\n        return elementTop < 0 && elementBottom < 0;\r\n    }\r\n\r\n    function showSectionDropdownFixedTop(show) {\r\n\t\tif (show) {\r\n\t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\t\t} else {\r\n\t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\t\t}\r\n    }\r\n\r\n\/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        \/\/ Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif(element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Biar ga nampilin Key Takeaways di ToC\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\r\n\r\n\r\n\r\n\t\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n<\/span><\/p>\n<p>Manual production tracking and delayed reporting can reduce visibility across the shop floor. An MES helps centralize production data, automate tracking, and provide real-time insights for faster decision-making.<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/my\/hash-manufacturing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/2-CTA-BLOG-new-design-14-scaled-1.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/2-CTA-BLOG-new-design-14-scaled-1.webp\" data-mobile-src=\"\" alt=\"HashManufacturingAutomation\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong><span id=\"1\">What is a Manufacturing Execution System?<\/span><\/strong><\/h2>\n<p>A manufacturing execution system (MES) is a software layer that connects shop floor operations with ERP planning and reporting. While ERP systems manage areas such as inventory, purchasing, and production schedules, they often rely on periodic updates, creating delays in operational visibility.<\/p>\n<p>MES closes this gap by tracking production activities in real time. It provides visibility into machine status, work order progress, material usage, quality inspections, output levels, and production issues, helping teams respond more quickly to changing conditions on the shop floor.<\/p>\n<p>For example, instead of manually checking production lines, supervisors can use MES dashboards to monitor job progress, output, and quality performance in real time. This helps manufacturers improve control, reduce delays, and make more informed decisions during production.<\/p>\n<h2><strong>Why MES Matters in Modern Manufacturing?<\/strong><\/h2>\n<p>A Manufacturing Execution System (MES) provides real-time visibility into shop floor operations, allowing production teams to identify issues as they happen instead of after they have already impacted output. Beyond improving daily operations, MES helps manufacturers meet industry compliance requirements.<\/p>\n<ol>\n<li><strong>Provides Real-Time Production Visibility<br \/>\n<\/strong>MES collects and displays live production data from machines, operators, and workstations in a centralized dashboard. This allows supervisors to monitor production progress, machine utilization, and work order status in real time, helping them identify delays or inefficiencies before they disrupt the entire production schedule.<\/li>\n<li><strong>Enables Faster Decision-Making<\/strong><br \/>\nWhen bottlenecks, equipment downtime, or quality issues occur, every minute counts. MES provides immediate alerts and real-time production insights, allowing managers to investigate problems quickly and take corrective action before they lead to missed deadlines, higher production costs, or unnecessary downtime.<\/li>\n<li><strong>Improves Product Quality<\/strong><br \/>\nConsistent quality depends on closely monitoring production processes. MES helps manufacturers detect deviations from production standards early, reducing defects, minimizing rework, and preventing defective products from moving to the next production stage. This results in more consistent product quality and lower material waste.<\/li>\n<li><strong>Supports Traceability and Regulatory Compliance<\/strong><br \/>\nMany industries require complete production records for quality assurance and regulatory compliance. MES automatically records production data, material usage, operator activities, and process history, creating a reliable audit trail that supports food safety standards, export requirements, and other industry regulations.<\/li>\n<li><strong>Increases Overall Operational Efficiency<\/strong><br \/>\nBy providing accurate, real-time production information, MES helps manufacturers optimize resource allocation, improve production scheduling, and reduce unnecessary delays. Better visibility into daily operations enables businesses to make informed decisions, improve productivity, and achieve more predictable manufacturing performance over the long term.<\/li>\n<\/ol>\n<h2><strong>Benefits of Manufacturing Execution Systems<\/strong><\/h2>\n<p>The value of MES comes from converting delayed production updates into real-time operational data. The five benefits below reflect what manufacturers most often gain when MES is implemented alongside their existing systems.<\/p>\n<ol>\n<li><strong>Production Visibility<\/strong><br \/>\nManagers can see what is happening on the floor without waiting for shift reports or walking the line. Work order status, WIP location, machine uptime, and output counts are visible from a dashboard. This visibility is the foundation for every other operational improvement.<\/li>\n<li><strong>Faster Detection of Downtime and Waste<\/strong><br \/>\nWhen a machine stops or output drops below target, MES flags it immediately. Teams can investigate and respond in minutes rather than discovering the loss at shift end. Reducing the response window directly reduces downtime hours and the associated manufacturing overhead costs.<\/li>\n<li><strong>Quality Management and Traceability<\/strong><br \/>\nIn-process quality data lets teams catch defects earlier in the production run rather than at final inspection. When a defect is found, MES links it to the batch, material lot, machine, and operator involved, making root cause analysis faster and more accurate.<\/li>\n<li><strong>Compliance and Reporting<\/strong><br \/>\nMES automatically collects the production and quality records needed for audits, regulatory reporting, and customer documentation. This is particularly valuable in sectors with Halal certification requirements, GMP compliance, or export standards.<\/li>\n<li><strong>Inventory and WIP Accuracy<\/strong><br \/>\nManual production reporting often leads to inventory records that do not match physical stock. MES reduces this gap by reporting material consumption and output quantities in real time, giving procurement and planning teams more accurate data to work from.<\/li>\n<\/ol>\n<h2><strong>How Does a Manufacturing Execution System Work?<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-20022\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work.webp\" alt=\"Manufacturing Execution Systems Work\" width=\"1600\" height=\"900\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work.webp 1600w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-300x169.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-768x432.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-1536x864.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-747x420.webp 747w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-696x392.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/MES-work-1068x601.webp 1068w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p>A manufacturing execution system (MES) connects production planning with shop floor operations. It receives production orders from ERP and captures real-time production data, giving manufacturers better visibility while keeping operational records accurate.<\/p>\n<p>1. <strong>ERP creates a production order.<\/strong><br \/>\nThe ERP system generates a production order based on sales demand, production schedules, or customer orders. The order typically contains information such as product specifications, required materials, target quantities, and production deadlines.<\/p>\n<p>2. <strong>MES dispatches the order.<\/strong><br \/>\nAfter receiving the order, MES distributes it to the designated production line, machine, or operator. This helps ensure production starts according to schedule while reducing the need for manual coordination.<\/p>\n<p>3. <strong>Production activities are recorded.<\/strong><br \/>\nMES captures key production events, including job start and completion times, materials consumed, production output, equipment downtime, and quality inspection results. This creates a complete digital record of each manufacturing process.<\/p>\n<p>4. <strong>Data appears on live dashboards.<\/strong><br \/>\nProduction information is displayed through dashboards that supervisors and managers can monitor throughout the day. These dashboards make it easier to track progress, identify production delays, monitor equipment performance, and respond to issues more quickly.<\/p>\n<p>5. <strong>ERP receives production updates.<\/strong><br \/>\nAfter the job is finished, MES transfers production, inventory, and quality data back to the <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-erp-manufacturing-software\/\">ERP manufacturing system<\/a>. This ensures business records reflect actual production results without requiring manual data entry.<\/p>\n<h2><strong>How MES Integrates with Production Planning Software<\/strong><\/h2>\n<p>For a closer look at how MES connects with production planning tools, see our guide to production planning software.<\/p>\n<h3><strong>Shop Floor Data Collection<\/strong><\/h3>\n<p>MES collects data from the production floor through multiple input methods. Common data points include machine status (running, idle, down, fault), operator actions (job start, pause, complete), produced and rejected quantities, downtime reason codes, material usage by batch or lot number, job timestamps, and quality inspection results.<\/p>\n<p>Input can be manual (tablet entry), semi-automated (barcode or QR scan), or automatic (machine or sensor feed). Factories do not need full IoT automation to benefit from MES. A barcode scan at each workstation already produces far more reliable data than a daily spreadsheet entry.<\/p>\n<h3><strong>Real-Time Production Monitoring<\/strong><\/h3>\n<p>Shop floor data is consolidated into live production dashboards. Managers can monitor output, WIP, machine downtime, and quality issues in real time. While MES does not resolve these problems automatically, it provides early visibility so supervisors can take corrective action before they escalate.<\/p>\n<h3><strong>MES Integration with ERP Systems<\/strong><\/h3>\n<p>ERP manages business-level processes such as purchasing, inventory, customer orders, and <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-manufacturing-ppic-production-planning-software\/\">production planning system<\/a>, while MES oversees real-time shop floor operations. The two systems continuously exchange data so ERP can send production orders to MES for execution, while MES returns production results, inventory updates, and work order status after each job is completed.<\/p>\n<h2><strong><span id=\"2\">Key Functions of an MES System<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-20059\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System.webp\" alt=\"Key Function MES System\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-300x200.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-768x512.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-630x420.webp 630w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-150x100.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-696x464.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Key-Function-MES-System-1068x712.webp 1068w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p>MES supports <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-manufacturing-software\/\">manufacturing software<\/a> through a range of functions that manage production from work order execution to quality control and equipment monitoring. Below are the key capabilities found in most MES solutions.<\/p>\n<h3><strong>a. Production Scheduling and Dispatching<\/strong><\/h3>\n<p>MES converts production plans from ERP or scheduling software into clear work orders for the shop floor. It assigns jobs to production lines, prioritizes tasks, and updates schedules automatically when production plans change, ensuring operators always work with the latest instructions while minimizing delays and manual coordination.<\/p>\n<h3><strong>b. Work-in-Progress (WIP) Tracking<\/strong><\/h3>\n<p>MES tracks the status and location of every job or production batch in real time as it moves through each manufacturing stage. This gives supervisors complete visibility into production progress, helping them identify bottlenecks, monitor workloads, and keep production on schedule.<\/p>\n<h3><strong>c. Quality Control and Defect Management<\/strong><\/h3>\n<p>MES records inspection results, defects, rejected quantities, and corrective actions throughout the production process. By linking quality data to specific batches, machines, and operators, manufacturers can identify recurring issues more quickly, reduce defects, and continuously improve product quality.<\/p>\n<h3><strong>d. Traceability and Product Genealogy<\/strong><\/h3>\n<p>MES automatically records the complete production history of every batch, including the materials used, machines involved, operators responsible, and quality inspections performed. This creates a reliable audit trail that supports regulatory compliance, product recalls, and industry standards such as food safety, pharmaceuticals, electronics, and Halal manufacturing.<\/p>\n<h3><strong>e. OEE and Machine Performance Monitoring<\/strong><\/h3>\n<p>MES continuously collects machine performance data to measure Overall Equipment Effectiveness (OEE), including availability, production performance, and quality. By identifying downtime, slow production rates, and quality losses in real time, manufacturers can improve equipment utilization, reduce production interruptions, and make better maintenance decisions.<\/p>\n<h2><strong>Core Functions MES Implementation<\/strong><\/h2>\n<p>The MESA model provides a widely referenced framework for MES functionality. For background, see the MESA model and its history. The table below covers the core functions found in most MES implementations.<\/p>\n<table style=\"width: 100%; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 16px; line-height: 1.7; border: 1px solid #ddd; margin: 24px 0;\">\n<thead>\n<tr style=\"background: #a61d24; color: #fff;\">\n<th style=\"padding: 14px; border: 1px solid #ddd; text-align: center; width: 28%;\">MES Function<\/th>\n<th style=\"padding: 14px; border: 1px solid #ddd; text-align: center; width: 36%;\">What It Does<\/th>\n<th style=\"padding: 14px; border: 1px solid #ddd; text-align: center; width: 36%;\">Why It Matters<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\"><strong>Production scheduling and dispatching<\/strong><\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Translates production plans into floor work orders and job sequences.<\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Reduces confusion between planning and actual execution.<\/td>\n<\/tr>\n<tr style=\"background: #fafafa;\">\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\"><strong>WIP tracking<\/strong><\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Tracks the location and status of each job or batch throughout production.<\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Gives supervisors real-time visibility into the production queue.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\"><strong>Quality control and defect management<\/strong><\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Records inspection results, defect types, rejection reasons, and corrective actions.<\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Enables faster issue detection and root cause tracing.<\/td>\n<\/tr>\n<tr style=\"background: #fafafa;\">\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\"><strong>Traceability and product genealogy<\/strong><\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Tracks the materials, machines, and operators involved in each batch.<\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Supports compliance, audit trails, and recall management.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\"><strong>OEE and machine performance<\/strong><\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Collects machine availability, performance, and quality data.<\/td>\n<td style=\"padding: 14px; border: 1px solid #ddd; vertical-align: top;\">Provides maintenance and production teams with actionable equipment insights.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong>MES vs ERP: What is the Difference?<\/strong><\/h2>\n<p>Although ERP and MES both support <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/manufacturing-operations\/\">manufacturing operations system<\/a>, they serve different purposes. The comparison below highlights where each system fits and how they work together to improve production and business performance.<\/p>\n<style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Criteria<\/th>\r\n                      <th>ERP<\/th>\r\n                      <th>MES<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td><br \/>\nPrimary focus<\/td>\r\n                          <td>Manages business resources, planning, and company-wide operations.<\/td>\r\n                          <td>Controls and monitors production activities on the shop floor in real time.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nMain users<\/td>\r\n                          <td>Finance, procurement, planners, warehouse teams, and executives.<\/td>\r\n                          <td>Production supervisors, machine operators, quality inspectors, and maintenance teams.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nData source<\/td>\r\n                          <td>Uses data from business transactions, inventory records, purchasing, and sales.<\/td>\r\n                          <td>Collects live data directly from machines, operators, sensors, and production lines.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nData updates<\/td>\r\n                          <td>Information is typically updated periodically or after manual entry.<\/td>\r\n                          <td>Production data is captured and updated continuously as work progresses.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nKey functions<\/td>\r\n                          <td>Supports purchasing, inventory management, finance, HR, and production planning.<\/td>\r\n                          <td>Handles work order dispatching, WIP tracking, quality control, traceability, and OEE monitoring.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nVisibility<\/td>\r\n                          <td>Provides a company-wide view of resources, costs, inventory, and production plans.<\/td>\r\n                          <td>Provides live visibility into production progress, machine status, and shop floor performance.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nTypical outcome<\/td>\r\n                          <td>Improves planning, resource allocation, and overall business coordination.<\/td>\r\n                          <td>Increases production visibility, reduces delays, and improves operational accuracy.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td><br \/>\nWorks best when<\/td>\r\n                          <td>Connected with MES to receive accurate production data from the shop floor.<\/td>\r\n                          <td>Integrated with ERP to execute production plans and report results back automatically.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script>\n<h2><strong>Challenges in Implementing Manufacturing Execution System (MES)<\/strong><\/h2>\n<p>MES delivers real value, but implementation is not without difficulty. Understanding these challenges before starting helps manufacturers plan more realistic timelines and avoid common missteps.<\/p>\n<ol>\n<li><strong>Integration with Existing Systems<\/strong><br \/>\nConnecting MES with existing ERP, SCADA, PLCs, and other shop floor tools requires upfront technical planning. Many factories run systems from different vendors and eras, and not all of them expose APIs that MES can connect to without custom work. Mapping these integration points early prevents surprises during rollout.<\/li>\n<li><strong>Process Documentation Before Go-Live<\/strong><br \/>\nMES can only manage what has been defined. If production routes, quality specifications, work order templates, or operator roles are not documented, implementation will surface those gaps at the worst possible time. Manufacturers need to map and agree on their current processes before configuring the system.<\/li>\n<li><strong>Operator Adoption<\/strong><br \/>\nSupervisors and operators accustomed to manual records, printed job cards, or verbal updates need clear training and ongoing support to shift to digital data entry. Adoption gaps on the floor directly undermine the quality of dashboards and reports. Change management is as important as technical setup.<\/li>\n<li><strong>Scope and Phasing<\/strong><br \/>\nStarting with too broad a scope increases cost, timeline, and complexity. Manufacturers that attempt to deploy all MES functions across all production lines at once often face longer rollouts and lower adoption. A phased approach by function or production area reduces this risk and produces faster early wins.<\/li>\n<li><strong>Data Quality<\/strong><br \/>\nMES is only as useful as the data it receives. If operators enter inaccurate job quantities, skip quality records, or log downtime reason codes inconsistently, the dashboards and reports produced will not reflect what actually happened. Establishing clear data entry standards is a prerequisite, not an afterthought.<\/li>\n<\/ol>\n<p><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">Manufacturing Execution Systems in Malaysia<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-20021\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia.webp\" alt=\"Manufacturing Execution Systems in Malaysia\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia.webp 800w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia-300x150.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia-768x384.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia-150x75.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-in-Malaysia-696x348.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Malaysia&#8217;s manufacturing sector is adopting digital technologies to improve productivity, traceability, and production efficiency. Initiatives such as Industry4WRD and NIMP 2030 encourage manufacturers to implement real-time monitoring and connected production systems, making MES an increasingly valuable solution.<\/p>\n<p>MES supports a wide range of industries. In E&amp;E, it strengthens <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/quality-control\/\">traceability and quality control<\/a>. F&amp;B manufacturers use it for batch records and compliance, while automotive and rubber manufacturers rely on MES to monitor production performance, quality, and equipment efficiency.<\/p>\n<p>By capturing production data in real time, MES helps manufacturers improve visibility, maintain accurate records, and make faster operational decisions, especially when integrated with ERP systems.<\/p>\n<h3><strong>Why Malaysian SMEs Should Consider MES?<\/strong><\/h3>\n<p>Many Malaysian SMEs still rely on spreadsheets, paper records, or messaging apps to manage production, often believing that MES is too expensive or complex to implement. In reality, manufacturers can adopt MES gradually by focusing on the production processes that need the most improvement first.<\/p>\n<p>A phased implementation can start with digital work orders, WIP tracking, quality records, and production dashboards before expanding to machine integration, analytics, and advanced scheduling. This approach allows SMEs to improve production visibility and data accuracy without deploying a full-scale MES from the start.<\/p>\n<p><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\"><span id=\"3\">How to Choose the Right MES Software for Your Business?<\/span><\/strong><\/p>\n<p>Choosing MES should evaluate how well the software fits their production processes, integrates with existing systems, and supports future business growth. The following criteria can help narrow your options and identify the solution that best matches your operational needs.<\/p>\n<ol>\n<li><strong>ERP and machine integration<\/strong><br \/>\nA good MES should connect with your ERP and shop floor equipment to keep production, inventory, and business data synchronized. This reduces manual data entry and improves data accuracy across systems.<\/li>\n<li><strong>Real-time production visibility<br \/>\n<\/strong>Live dashboards enable supervisors to monitor production output, machine performance, downtime, and work-in-progress as operations take place. This allows issues to be identified and addressed before they impact production targets.<\/li>\n<li><strong>Quality control and traceability<br \/>\n<\/strong>Look for a system that records inspection results, defect reasons, batch information, and product genealogy. These capabilities support quality assurance, regulatory compliance, and faster root cause analysis when defects occur.<\/li>\n<li><strong>Scalability<br \/>\n<\/strong>Manufacturing requirements often change as production volumes grow. Choosing a system that allows additional modules or users to be added over time helps protect your investment and reduces the need for future system replacements.<\/li>\n<li><strong>Local implementation and support<br \/>\n<\/strong>Working with a vendor that has experience in the Malaysian manufacturing sector can make implementation, training, and ongoing support more efficient while minimizing deployment risks.<\/li>\n<li><strong>Industry-specific capabilities<br \/>\n<\/strong>Different industries have different operational priorities. For example, F&amp;B manufacturers may require strong lot traceability, while E&amp;E manufacturers often need serial-level tracking and tighter process control. Choosing software that aligns with your industry&#8217;s requirements can improve long-term value.<\/li>\n<\/ol>\n<p><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">Conclusion<\/strong><\/p>\n<p>A manufacturing execution system (MES) bridges the gap between production planning and shop floor execution by providing real-time visibility into work orders, WIP, quality, and machine performance. With accurate production data, manufacturers can respond to issues faster, improve operational efficiency, and make better-informed decisions.<\/p>\n<p>As Malaysia advances its Industry 4.0 agenda through initiatives such as Industry4WRD and NIMP 2030, MES helps manufacturers strengthen traceability, improve productivity, and support data-driven operations. Whether for large enterprises or growing SMEs, adopting MES is a practical step toward more connected and efficient manufacturing.<\/p>\n<p>If you&#8217;re looking for an integrated manufacturing solution, contact our team to schedule a <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/\">free demo<\/a> and explore how it can support your manufacturing operations.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>FAQ about Manufacturing Execution System (MES)<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is the difference between MES and ERP?<\/strong><\/summary>\n<p>ERP focuses on business processes such as purchasing, inventory, finance, human resources, and production planning, while MES manages production execution on the shop floor. ERP creates production plans and schedules, whereas MES tracks how those plans are carried out in real time. When integrated, the two systems provide accurate production data alongside business-wide operational visibility.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Is MES suitable for small manufacturers in Malaysia?<\/strong><\/summary>\n<p>Yes. Malaysian SMEs can adopt MES in phases rather than deploying a full system at once. A typical starting point includes digital work orders, WIP tracking, and live production dashboards. From there, manufacturers can expand to machine integration and advanced analytics. This approach improves visibility and data accuracy without the cost of a large-scale rollout from day one.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What should manufacturers prepare before implementing MES?<\/strong><\/summary>\n<p>Manufacturers should document their production routes, work order templates, quality specifications, and operator roles before configuring MES. The system can only manage what has been defined. Undocumented processes create gaps that surface during implementation at the worst possible time. Mapping and agreeing on current workflows in advance leads to a more reliable configuration and a shorter go-live timeline.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How does MES support Malaysia&#8217;s Industry4WRD agenda?<\/strong><\/summary>\n<p>Industry4WRD encourages manufacturers to adopt real-time monitoring, digital records, and connected production systems. MES directly supports these goals by capturing shop floor data automatically, providing live dashboards, and integrating with ERP. Manufacturers using MES are better positioned to meet the traceability, efficiency, and reporting expectations tied to Industry4WRD targets.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Does MES work across multiple production lines?<\/strong><\/summary>\n<p>Yes. MES can manage production across multiple lines and product types within the same facility. Work orders are dispatched to designated lines or machines, and dashboards display performance data across the entire floor simultaneously. Manufacturers with complex, multi-line operations benefit most from this centralized visibility, as manual tracking cannot reliably cover concurrent jobs at scale.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What is the difference between MES and ERP?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"ERP focuses on business processes such as purchasing, inventory, finance, human resources, and production planning, while MES manages production execution on the shop floor. ERP creates production plans and schedules, whereas MES tracks how those plans are carried out in real time. When integrated, the two systems provide accurate production data alongside business-wide operational visibility.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Is MES suitable for small manufacturers in Malaysia?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes. Malaysian SMEs can adopt MES in phases rather than deploying a full system at once. A typical starting point includes digital work orders, WIP tracking, and live production dashboards. From there, manufacturers can expand to machine integration and advanced analytics. This approach improves visibility and data accuracy without the cost of a large-scale rollout from day one.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What should manufacturers prepare before implementing MES?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Manufacturers should document their production routes, work order templates, quality specifications, and operator roles before configuring MES. The system can only manage what has been defined. Undocumented processes create gaps that surface during implementation at the worst possible time. Mapping and agreeing on current workflows in advance leads to a more reliable configuration and a shorter go-live timeline.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How does MES support Malaysia's Industry4WRD agenda?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Industry4WRD encourages manufacturers to adopt real-time monitoring, digital records, and connected production systems. MES directly supports these goals by capturing shop floor data automatically, providing live dashboards, and integrating with ERP. Manufacturers using MES are better positioned to meet the traceability, efficiency, and reporting expectations tied to Industry4WRD targets.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Does MES work across multiple production lines?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes. MES can manage production across multiple lines and product types within the same facility. Work orders are dispatched to designated lines or machines, and dashboards display performance data across the entire floor simultaneously. Manufacturers with complex, multi-line operations benefit most from this centralized visibility, as manual tracking cannot reliably cover concurrent jobs at scale.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many manufacturers still rely on manual logs entries to track shop floor activity it affected data output and quality. A manufacturing execution system (MES) can monitors and manages production in real time, covering work orders, machine performance, quality checks, work in progress (WIP), and output, all connected to ERP for planning and decision-making. Malaysia is [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":20020,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[223],"tags":[],"class_list":{"0":"post-20002","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-manufacturing"},"acf":{"content_type_custom_acf":"laporan","post_reviewer":66},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Manufacturing Execution System (MES): Malaysia Complete Guide<\/title>\n<meta name=\"description\" content=\"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manufacturing Execution System (MES): Malaysia Complete Guide\" \/>\n<meta property=\"og:description\" content=\"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-30T08:25:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Zulkarnain bin Idris\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zulkarnain bin Idris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\"},\"author\":{\"name\":\"Zulkarnain bin Idris\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c\"},\"headline\":\"Manufacturing Execution System (MES): Malaysia Complete Guide\",\"datePublished\":\"2026-06-30T08:25:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\"},\"wordCount\":3166,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp\",\"articleSection\":[\"Manufacturing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\",\"name\":\"Manufacturing Execution System (MES): Malaysia Complete Guide\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp\",\"datePublished\":\"2026-06-30T08:25:55+00:00\",\"description\":\"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp\",\"width\":800,\"height\":400,\"caption\":\"Manufacturing Execution Systems (MES)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manufacturing Execution System (MES): Malaysia Complete Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c\",\"name\":\"Zulkarnain bin Idris\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"caption\":\"Zulkarnain bin Idris\"},\"description\":\"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Manufacturing Execution System (MES): Malaysia Complete Guide","description":"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/","og_locale":"en_US","og_type":"article","og_title":"Manufacturing Execution System (MES): Malaysia Complete Guide","og_description":"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-06-30T08:25:55+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp","type":"image\/webp"}],"author":"Zulkarnain bin Idris","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Zulkarnain bin Idris","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/"},"author":{"name":"Zulkarnain bin Idris","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c"},"headline":"Manufacturing Execution System (MES): Malaysia Complete Guide","datePublished":"2026-06-30T08:25:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/"},"wordCount":3166,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp","articleSection":["Manufacturing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/","name":"Manufacturing Execution System (MES): Malaysia Complete Guide","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp","datePublished":"2026-06-30T08:25:55+00:00","description":"Discover how Manufacturing Execution System (MES) works, its benefits, and why it matters for Malaysian manufacturers.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/Manufacturing-Execution-Systems-MES.webp","width":800,"height":400,"caption":"Manufacturing Execution Systems (MES)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/mes-manufacturing-execution-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"Manufacturing Execution System (MES): Malaysia Complete Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c","name":"Zulkarnain bin Idris","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","caption":"Zulkarnain bin Idris"},"description":"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=20002"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20002\/revisions"}],"predecessor-version":[{"id":20060,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20002\/revisions\/20060"}],"acf:user":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/66"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/20020"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=20002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=20002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=20002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}