{"id":19649,"date":"2022-06-25T13:10:32","date_gmt":"2022-06-25T13:10:32","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=19649"},"modified":"2025-03-07T03:01:18","modified_gmt":"2025-03-07T03:01:18","slug":"7-manufacturing-app-features","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/","title":{"rendered":"7 Features in Manufacturing Apps for Singapore companies"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">The best manufacturing application factories<\/span><span style=\"font-weight: 400;\"> feature a number of complex processes, all of which are equally necessary for a business to thrive. Visibility into all these factors is nearly impossible without the right tools, provided by industrial software. Many manufacturing industries have used<\/span><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">Complete manufacturing applications<\/span><\/a><span style=\"font-weight: 400;\"> to increase productivity and profitability.<\/span> <span style=\"font-weight: 400;\">Choosing<\/span><span style=\"font-weight: 400;\"> the best manufacturing ERP application system<\/span><span style=\"font-weight: 400;\"> for your business may be difficult. Here are the seven essential elements of<\/span> <span style=\"font-weight: 400;\">enterprise resource planning manufacturing software<\/span><span style=\"font-weight: 400;\"> that will enhance the functionality of all enterprise processes.<\/span> <a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/11\/Free-Product-Tour-resized.webp\" alt=\"Free Demo\"><\/a><\/p>\r\n<!-- <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\">Table of Content<\/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<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\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<!-- 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\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\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\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<\/script> -->\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\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']; \/\/ 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\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\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;} \/\/ Kalau Key Takeaways, jangan dimasukin\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\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan 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\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\r\n<div id=\"toc_container\">\r\n<h2><strong>Table of Content<\/strong><\/h2>\r\n<ul class=\"toc_list\">\r\n<li><a href=\"#1\">Manufacturing Execution <\/a><\/li>\r\n<li><a href=\"#2\">Supply Chain Management <\/a><\/li>\r\n<li><a href=\"#3\">Effective Distribution Requirement Planning <\/a><\/li>\r\n<li><a href=\"#4\">Active Quality Control <\/a><\/li>\r\n<li><a href=\"#5\">Complete Process Automation <\/a><\/li>\r\n<li><a href=\"#6\">Well-Defined Project Life-Cycle Management <\/a><\/li>\r\n<li><a href=\"#7\">Financial Management <\/a><\/li>\r\n<li><a href=\"#8\">Production Management <\/a><\/li>\r\n<li><a href=\"#9\">Estimated Production Cost <\/a><\/li>\r\n<li><a href=\"#10\">WIP calculation <\/a><\/li>\r\n<li><a href=\"#11\">Gantt Chart Display <\/a><\/li>\r\n<li><a href=\"#12\">Routing Management <\/a><\/li>\r\n<li><a href=\"#13\">Bill of Materials (BoM) <\/a><\/li>\r\n<li><a href=\"#14\">PPIC Management <\/a><\/li>\r\n<li><a href=\"#15\">OEE Management <\/a><\/li>\r\n<\/ul>\r\n<\/div>\r\n<h2 id=\"1\"><b>1. Manufacturing Execution<\/b><\/h2>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Manufacturing application feature of execution<\/span><\/a><span style=\"font-weight: 400;\"> is a feature that can assist decision makers in managing output as efficiently as possible. This is an important element to look for among the available production execution capabilities:<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Material Requirements Planning. <\/b><span style=\"font-weight: 400;\">This capability enables efficient management of manufacturing operations such as production planning, scheduling, and also inventory control.<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Traceability. <\/b>Tracks the location or application of materials, parts and products and also logs them.<\/li>\r\n<\/ul>\r\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-49675 size-full\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31.jpg\" alt=\"manufacturing app hashmicro\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31.jpg 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-300x169.jpg 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-1024x576.jpg 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-768x432.jpg 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-150x84.jpg 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-696x392.jpg 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-31-1068x601.jpg 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Bin Administration. <\/b><span style=\"font-weight: 400;\">This capability allows companies to assign bin numbers to materials, parts, and products, allowing them to be tracked and monitored to improve inventory accounts as well as production schedules with a comprehensive system such as HashMicro&#8217;s <a href=\"https:\/\/www.hashmicro.com\/inventory\">Inventory Management Software<\/a>.<\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Inventory control. <span style=\"font-weight: 400;\">These elements provide a clear picture of the ongoing movement of materials and goods into and out of the organization.<\/span><\/b><\/li>\r\n<\/ul>\r\n<p><b>Also read: <\/b><a href=\"https:\/\/www.hashmicro.com\/blog\/why-business-should-implement-hashmicros-manufacturing-application\/\"><span style=\"font-weight: 400;\">Why Business Should Implement HashMicro&#8217;s Manufacturing Application?<\/span><\/a><\/p>\r\n<h2 id=\"2\"><b>2. Supply Chain Management<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">The manufacturing app includes detailed monitoring of supply chain information, including both supplies entering the manufacturer and also products leaving the factory. These<\/span><a href=\"https:\/\/www.hashmicro.com\/supply-chain-management\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\"> integrated supply chain management elements <\/span><\/a><span style=\"font-weight: 400;\">should be prioritized in possible ERP applications:<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Warehouse administration<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">This combination of capabilities enables an organization to manage the transportation and storage of commodities within a warehouse, covering processes such as shipping, receiving, picking, and also storage.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multi-site inventories<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">The majority of manufacturers have multiple warehouse locations. Some companies even have multiple manufacturing facilities. This combination of capabilities enables distribution managers to keep correct inventories at many sites.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Planning Distribution Requirements<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">These features monitor numerous processes and factors to ensure that stocks are correct and appropriate for current manufacturing and distribution levels.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Materials list<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">This feature enables manufacturers to create lists of parts or components associated with the<\/span><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\"> manufacturing app process<\/span><\/a><span style=\"font-weight: 400;\"> that includes the manufacturer&#8217;s part number in order to maintain sufficient quantities of these items to ensure uninterrupted manufacturing with a minimal amount of waste or unused parts.<\/span> <style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/grants?utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n<!-- \tnew CTC Grants Banner\t\t -->\r\n\t\t\t\t<img decoding=\"async\" width='696' height='189' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/07\/CTC-Grants-scaled.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width='450' height='497' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/11\/EDG-Banner-Mobile.png.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\r\n\r\n\r\n<\/p>\r\n<h2 id=\"3\"><b>3. Effective Distribution Requirement Planning<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">To forecast production needs, the manufacturing industry needs access to both historical and real-time data. This is achievable if all of your company&#8217;s data is maintained in a consolidated database offered by an ERP manufacturing app system to allow for easy and effective management.<\/span> <span style=\"font-weight: 400;\">In addition, an ideal ERP manufacturing app must include modern analytics and <\/span><span style=\"font-weight: 400;\">business intelligence (BI)<\/span><span style=\"font-weight: 400;\"> features to provide comprehensive monitoring for various operations in the plant to ensure that all inventories are accurate and appropriate for current manufacturing and delivery scheduling levels.<\/span><\/p>\r\n<h2 id=\"4\"><b>4. Active Quality Control<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">Quality management is one of the critical areas in a manufacturing plant that requires close attention. Manufacturing app flaws in the finished product can cost a company, not just money, but also its reputation. As a result, your <\/span><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">ERP manufacturing app solution<\/span><\/a><span style=\"font-weight: 400;\"> must have quality management tools. This would enable you to establish and actively maintain targeted standards of quality throughout the manufacturing process. Managers receive alerts whenever items fail to satisfy the criteria, allowing them to respond quickly and resolve the problem, usually before an entire lot is completed.<\/span> <b>Also read: <\/b><a href=\"https:\/\/www.hashmicro.com\/blog\/5-manufacturing-softwares-to-help-your-business\/\"><span style=\"font-weight: 400;\">Having a Bottleneck Problem in Your Manufacturing?\u00a0<\/span><\/a><\/p>\r\n<h2 id=\"5\"><b>5. Complete Process Automation<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">Automation reduces time while also eliminating human mistakes. It contributes to the release of administrative hours that can be invested in higher-return activities. The ERP manufacturing app you use must be capable of integrating all processes in your manufacturing facility, including quality control, manufacturing,<\/span><span style=\"font-weight: 400;\"> bill of materials (BOM) <\/span><span style=\"font-weight: 400;\">management, buy and sales records, stock and human resource management, and so on. The streamlined processes enable firms to have better control over all practices in their establishments by providing access to real-time data.<\/span><\/p>\r\n<h2 id=\"6\"><b>6. Well-Defined Project Life-Cycle Management<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">A life cycle exists for every manufactured product. This covers a number of steps that it goes through, from idea to manufacturing to distribution. An ERP solution with a well-defined project lifecycle management feature enables an organization to monitor and also manage all of these stages, resulting in improved product quality, lower costs, faster identification of potential sales opportunities, quality optimization, and also less resource waste, among other benefits.<\/span> <span style=\"font-weight: 400;\">ERP software is more than just a system that manufacturers require to coordinate their day-to-day operations. It is a tool that provides organizations with features that allow them to remain competitive.<\/span><\/p>\r\n<h2 id=\"7\"><b>7. Financial Management<\/b><\/h2>\r\n<figure id=\"attachment_19651\" aria-describedby=\"caption-attachment-19651\" style=\"width: 1200px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-19651\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32.png\" alt=\"manajemen keuangan hashmicro\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32.png 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-300x169.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-1024x576.png 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-768x432.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-150x84.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-696x392.png 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-32-1068x601.png 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption id=\"caption-attachment-19651\" class=\"wp-caption-text\">Source: canva.com<\/figcaption><\/figure>\r\n<p><span style=\"font-weight: 400;\">Software is one of the first solutions that any manufacturer wants. Users can use this system to maintain general ledgers, record financial transactions, generate reports, and more.<\/span><a href=\"https:\/\/www.hashmicro.com\/finance-erp-software\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">The best financial management software<\/span><\/a><span style=\"font-weight: 400;\"> should also protect your data, keep up-to-date records and also create an audit trail. This critical information is accessible to users across your organization, improving collaboration and decision making. A scalable system will easily handle changing processes as well as multiple locations and currencies as your organization grows.<\/span><\/p>\r\n<h2 id=\"8\"><strong>8. Production Management<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Production management is a structuring plan to process raw materials into products or services that are worth selling. Moreover, production management also has the task of coordinating various activities to achieve business goals. This feature can manage manufacturing time and track employee performance, material usage, and production output in a complete, accurate, and timely manner.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"9\"><strong>9. Estimated Production Cost<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>The entire production process indeed requires an accurate cost estimate to support smooth production. Using this feature in a manufacturing system can improve the accuracy of calculating production costs, such as the amount of raw material and labor required to make a product.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"10\"><strong>10. WIP calculation<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Work in Progress or WIP is a supply chain management product that is in the completion progress but is still not complete. This term includes overhead costs, labor costs, and raw material costs incurred at each production stage. Integration with the <a href=\"https:\/\/www.hashmicro.com\/accounting\" target=\"_blank\" rel=\"noopener\">accounting system<\/a> allows the automated calculation and reporting of overall Work in Progress (WIP) cost.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"11\"><strong>11. Gantt Chart Display<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Gantt chart is one of the project management methods for planning and scheduling tasks. Information on the list of tasks in the Gantt chart, including the deadlines, it will be display in the graphs. A Gantt chart gives a clear explanation of the progress of a project and prevents any project to make sure to prevent any delay. The Gantt Chart Display shows all the tasks&#8217; details to be completed each day. So that the person in charge can monitor production performance on one screen. <style>\r\n.cta-in-article-image .desktop-banner{\r\n    display: none;\r\n    text-align: center;\r\n}\r\n.cta-in-article-image .desktop-mobile{\r\n    display: block;\r\n    text-align: center;\r\n    width: 100%;\r\n}\r\n@media (min-width: 650px) {\r\n    .cta-in-article-image .desktop-banner {\r\n        display: block!important;\r\n    }\r\n}\r\n@media (min-width: 650px) {\r\n   .cta-in-article-image .desktop-mobile {\r\n        display: none!important;\r\n    }\r\n}\r\n<\/style>\r\n<div class=\"cta-in-article-image\">\r\n\t<a href=\"https:\/\/www.hashmicro.com\/grants?utm_source=blog&medium=banner-article\" target=\"_blank\" rel=\"noopener\">\r\n\t\t<div id=\"desktop-banner-container\">\r\n\t\t\t<div class=\"desktop-banner\">\r\n<!-- \tnew CTC Grants Banner\t\t -->\r\n\t\t\t\t<img decoding=\"async\" width='696' height='189' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/07\/CTC-Grants-scaled.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t<div id=\"mobile-banner-container\">\r\n\t\t\t<div class=\"desktop-mobile\">\r\n\t\t\t\t<img decoding=\"async\" width='450' height='497' src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/11\/EDG-Banner-Mobile.png.webp\" alt=\"download skema harga software erp\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/a>\r\n<\/div>\r\n\r\n\r\n<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"12\"><strong>12. Routing Management<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>The manufacturing production process <a href=\"https:\/\/www.hashmicro.com\/blog\/manufacturing-production-process-mistake\/\">depends heavily<\/a> on routing because it determines how long a production process takes time. If the routing is not correct and errors still occur frequently, the manufacturing process becomes inefficient and affects production output. The routing management feature can help manufacturing companies optimize work routes during the production process. Not only that but also appoint the right PIC to ensure production goes according to plan.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"13\"><strong>13. Bill of Materials (BoM)<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/what-is-a-bill-of-materials-complete-explanation\/\">Bill of Materials (BoM)<\/a> is a list that contains materials and all components used to manufacture a product. The BOM has all the features you need to product manufacture, from development to production. The costs listed in the BOM provide critical information for procurement and finance departments. With this BOM feature, every material and production cost can be automatically calculated using the <a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\">manufacturing system<\/a>. So you can create, store, and view BoMs on one platform in real-time. Furthermore, the manufacturer can determine the BoM for each material and the BoM in the finished goods bill.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"14\"><strong>14. PPIC Management<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>Production Planning and Inventory Control (<a href=\"https:\/\/www.hashmicro.com\/blog\/understanding-ppic\/\" target=\"_blank\" rel=\"noopener\">PPIC<\/a>) in manufacturing companies is in integration with the department that plans and manages the production process. Its function is so that the production process can run according to a predetermined plan. With the PPIC Management feature, manufacturing companies are able to track thousands of raw materials, WIP, and finished goods inventories. As well as optimizing the use of raw materials to match the orders quantity.<\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:heading {\"level\":4} -->\r\n<h2 id=\"15\"><strong>15. OEE Management<\/strong><\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:paragraph -->\r\n<p>OEE (Overall Equipment Effectiveness) is a global standard for measuring manufacturing productivity in the level of machines and assets performances. Measuring OEE will provide manufacturers with the essential knowledge to systematically improve manufacturing processes. In addition, OEE can also help identify losses, measure progress, and increase the productivity of manufacturing facilities. This feature will automate the calculation of Overall Equipment Effectiveness (OEE) to avoid downtime on the machine.<\/p>\r\n<h2><b>Conclusion<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">Manufacturing enterprise resource planning (ERP) solutions<\/span><span style=\"font-weight: 400;\"> are not all the same. Some manufacturing ERP companies focus on supply chain management, while others concentrate on inventory optimization. You can use<\/span><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\" target=\"_blank\" rel=\"noopener\"> <span style=\"font-weight: 400;\">HashMicro manufacturing application software<\/span><\/a><span style=\"font-weight: 400;\"> to assist your business needs.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">As a result, when looking for a suitable ERP vendor, manufacturers must have a defined set of requirements.<\/span> <span style=\"font-weight: 400;\">Experience the <a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\">free demo<\/a> right now, before deciding to buy a solution! Seize the opportunity today!<\/span><\/p>\r\n<a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Manufacturing.webp\" alt=\"Hash Manufacturing Automation\"><\/a>","protected":false},"excerpt":{"rendered":"<p>The best manufacturing application factories feature a number of complex processes, all of which are equally necessary for a business to thrive. Visibility into all these factors is nearly impossible without the right tools, provided by industrial software. Many manufacturing industries have used Complete manufacturing applications to increase productivity and profitability. Choosing the best manufacturing [&hellip;]<\/p>\n","protected":false},"author":153,"featured_media":19650,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[253],"tags":[2819,1782,1783,317],"class_list":{"0":"post-19649","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-manufacturing","8":"tag-manufacture-articles","9":"tag-manufacturing-app","10":"tag-manufacturing-app-features","11":"tag-manufacturing-software"},"acf":[],"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>7 Features in Manufacturing Apps for Singapore Companies<\/title>\n<meta name=\"description\" content=\"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther\" \/>\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\/blog\/7-manufacturing-app-features\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"7 Features in Manufacturing Apps for Singapore companies\" \/>\n<meta property=\"og:description\" content=\"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-25T13:10:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-07T03:01:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Chandra Natsir\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chandra Natsir\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\"},\"author\":{\"name\":\"Chandra Natsir\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b\"},\"headline\":\"7 Features in Manufacturing Apps for Singapore companies\",\"datePublished\":\"2022-06-25T13:10:32+00:00\",\"dateModified\":\"2025-03-07T03:01:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\"},\"wordCount\":1577,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png\",\"keywords\":[\"Manufacture Articles\",\"manufacturing app\",\"manufacturing app features\",\"manufacturing software\"],\"articleSection\":[\"Manufacturing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\",\"name\":\"7 Features in Manufacturing Apps for Singapore Companies\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png\",\"datePublished\":\"2022-06-25T13:10:32+00:00\",\"dateModified\":\"2025-03-07T03:01:18+00:00\",\"description\":\"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png\",\"width\":1200,\"height\":675,\"caption\":\"manufacturing app features hashmicro\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"7 Features in Manufacturing Apps for Singapore companies\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/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\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b\",\"name\":\"Chandra Natsir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png\",\"caption\":\"Chandra Natsir\"},\"description\":\"A content writer with a strong interest in writing and technology. Chandra is dedicated to writing useful, entertaining, and relevant information for readers, and he continues to develop content that connects and inspires them.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/chandra-natsir\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"7 Features in Manufacturing Apps for Singapore Companies","description":"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther","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\/blog\/7-manufacturing-app-features\/","og_locale":"en_US","og_type":"article","og_title":"7 Features in Manufacturing Apps for Singapore companies","og_description":"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther","og_url":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2022-06-25T13:10:32+00:00","article_modified_time":"2025-03-07T03:01:18+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png","type":"image\/png"}],"author":"Chandra Natsir","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Chandra Natsir","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/"},"author":{"name":"Chandra Natsir","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b"},"headline":"7 Features in Manufacturing Apps for Singapore companies","datePublished":"2022-06-25T13:10:32+00:00","dateModified":"2025-03-07T03:01:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/"},"wordCount":1577,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png","keywords":["Manufacture Articles","manufacturing app","manufacturing app features","manufacturing software"],"articleSection":["Manufacturing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/","url":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/","name":"7 Features in Manufacturing Apps for Singapore Companies","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png","datePublished":"2022-06-25T13:10:32+00:00","dateModified":"2025-03-07T03:01:18+00:00","description":"Before buying a manufacturing app, you should pay attention to the 7 must-have features in a manufacturing system for Singaporean and Souther","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/06\/B2-33.png","width":1200,"height":675,"caption":"manufacturing app features hashmicro"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/7-manufacturing-app-features\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"7 Features in Manufacturing Apps for Singapore companies"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/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\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b","name":"Chandra Natsir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png","caption":"Chandra Natsir"},"description":"A content writer with a strong interest in writing and technology. Chandra is dedicated to writing useful, entertaining, and relevant information for readers, and he continues to develop content that connects and inspires them.","url":"https:\/\/www.hashmicro.com\/blog\/author\/chandra-natsir\/"}]}},"order_j":"2","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/19649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/153"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=19649"}],"version-history":[{"count":21,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/19649\/revisions"}],"predecessor-version":[{"id":69319,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/19649\/revisions\/69319"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/19650"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=19649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=19649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=19649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}