{"id":1839,"date":"2026-10-28T16:58:55","date_gmt":"2026-10-28T15:58:55","guid":{"rendered":"https:\/\/nexelem.com\/en\/?post_type=blog&#038;p=1839"},"modified":"2026-10-28T17:01:43","modified_gmt":"2026-10-28T16:01:43","slug":"sap-integrated-production-planning-aps-mes-sanok-rubber-company","status":"publish","type":"blog","link":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/","title":{"rendered":"Production Planning Integrated with SAP: APS and MES at Sanok Rubber Company"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Sanok Rubber Company makes rubber components for the automotive and agricultural machinery industries across Central Europe. Its planners used to build the production plan across several separate Excel spreadsheets, copying data by hand from SAP and from paper records kept on the shop floor, so a finished schedule could already be out of date by the time it was released. VirtusLab implemented <strong>Nexelem APS and MES integrated with SAP<\/strong>, and the planner now works from a single schedule that updates continuously as orders actually progress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Contents:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#company\">The company and the scale of the challenge<\/a><\/li>\n\n\n\n<li><a href=\"#problem\">The problem<\/a><\/li>\n\n\n\n<li><a href=\"#solution\">The solution<\/a><\/li>\n\n\n\n<li><a href=\"#results\">The results<\/a><\/li>\n\n\n\n<li><a href=\"#faq\">FAQ<\/a><\/li>\n<\/ul>\n\n\n\n<h2 id=\"company\" class=\"wp-block-heading\"><strong>The company and the scale of the challenge<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Company: <\/strong>Sanok Rubber Company, a manufacturer of rubber components for the automotive and agricultural machinery industries.<\/li>\n\n\n\n<li><strong>Scale of the plant in scope:<\/strong> 340 workstations, 1,200 part numbers, 2,000 routing operations, 5,000 planning tasks and 20,000 technological dependencies.<\/li>\n\n\n\n<li><strong>Scope:<\/strong> <a href=\"https:\/\/nexelem.com\/en\/aps-advanced-planning-and-scheduling-software\/\">Nexelem APS<\/a> and <a href=\"https:\/\/nexelem.com\/en\/mes-software\/\">Nexelem MES<\/a> integrated with SAP, plus a network of 120 production reporting stations on the shop floor.<\/li>\n\n\n\n<li>Data sources before the project: SAP and paper production records.<\/li>\n\n\n\n<li><strong>Problem: <\/strong>the plan was assembled by hand across several spreadsheets and was out of date before it reached the shop floor.<\/li>\n\n\n\n<li><strong>Solution: <\/strong>APS pulling planning data directly from SAP and MES reporting progress from the shop floor in real time, combined into one schedule that refreshes on a regular cycle.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Sanok Rubber Company plant runs hundreds of workstations and thousands of part numbers. At that scale the number of possible operation sequences, and the dependencies between them, grows faster than any spreadsheet can keep consistent. That combinatorial load, rather than a wish to \u201cgo digital\u201d, was the real reason for the project.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/Nexelem-MES-station-1024x576.jpg\" alt=\"Nexelem MES reporting station\" class=\"wp-image-1845\" srcset=\"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/Nexelem-MES-station-1024x576.jpg 1024w, https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/Nexelem-MES-station-768x432.jpg 768w, https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/Nexelem-MES-station-300x169.jpg 300w, https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/Nexelem-MES-station.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 id=\"problem\" class=\"wp-block-heading\"><strong>The problem<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before APS went live, planners worked across several unsynchronised Excel files at once. Data had to be copied by hand from SAP (routings, BOMs, stock levels, sales orders) and from paper production records, because some information on order progress existed nowhere else. Keeping the files consistent took so much time that the response to a change in demand or a sudden swing in orders always came a step too late. A plan could be finished and already out of date at the same moment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Behind that general picture sat specific questions that planners and management could not answer quickly:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Is the plant producing the items that are actually needed most right now, or the ones that happened to be easier to schedule?<\/li>\n\n\n\n<li>Which production resources (machines, tools, work centres) are available right now, and does their load allow today&#8217;s plan to be completed?<\/li>\n\n\n\n<li>What skills do the people on the current shift hold, and do they match the operations scheduled for today?<\/li>\n\n\n\n<li>Does the plan reflect the real constraints of rubber processing: changeovers and their duration, minimum batch sizes, availability of moulds and tooling?<\/li>\n\n\n\n<li>Is communication between planning and production fast enough for the schedule to respond to deviations during the day, rather than the next morning?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The size of the data alone shows why Excel had reached its limit: 1,200 part numbers, 2,000 routing operations, 5,000 planning tasks and 20,000 technological dependencies between them, spread across 340 workstations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When no spreadsheet can keep that many links consistent every time a single order changes, even the most experienced production planning specialists need a system to do it.<\/p>\n\n\n\n<h2 id=\"solution\" class=\"wp-block-heading\"><strong>The solution<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">VirtusLab implemented <strong>Nexelem APS integrated with SAP<\/strong> as the source of planning data, and <strong>Nexelem MES<\/strong> as the layer that collects production progress directly from the shop floor. From SAP the system pulls planning data (routings, BOMs, production versions), stock levels, planned deliveries, lead times and material reservations for trial runs, sales orders together with safety stocks and orders from other plants, as well as data specific to rubber processing: alternative machines, simultaneous production in moulds, minimum batch sizes per workstation, machines running non-stop, finished-goods priorities, extrusion groups, and the requirements for and availability of production resources and tools (PRT).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This data passes through an intermediate layer, which can be either Nexelem&#8217;s own scheduling algorithm or an external solver connected to Nexelem. In this project the client chose the external solver, which Nexelem&#8217;s open architecture supports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the other direction, Nexelem supplies data that SAP does not hold and does not need to: MES production batches with their current status, a staff calendar with primary skills and planned detailed skills, a machine calendar with downtime, and new or modified production batches created during the day.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;galleryId&quot;:&quot;6ae2e35f2ad56&quot;}\" data-wp-interactive=\"core\/gallery\" class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae2e35f2b34f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae2e35f2b34f\" class=\"wp-block-image size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"6189\" src=\"https:\/\/nexelem.com\/wp-content\/uploads\/2026\/07\/CASE_Gantt_Demo.png\" alt=\"\" class=\"wp-image-6189\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Demo view of the production schedule with matching batches highlighted<\/figcaption><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ae2e35f2b977&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ae2e35f2b977\" class=\"wp-block-image size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"6190\" src=\"https:\/\/nexelem.com\/wp-content\/uploads\/2026\/07\/CASE_Symulacja_Gantt_Demo.png\" alt=\"\" class=\"wp-image-6190\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Demo view of a production schedule simulation with batches frozen up to a set date<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On that basis the planner works from a <a href=\"https:\/\/nexelem.com\/en\/gantt-chart-view\/\">Gantt chart view<\/a> that shows the current production plan and any gaps created during planning, built on a tree of dependencies between operations rather than flat orders. Scheduling rules keep changeovers to a minimum and extend runs wherever the process allows. The system tracks progress and anomalies on the shop floor in real time, compares the plan with actual output and re-optimises the production queue as it goes. The planner will also be able to run a simulation of an alternative version of the plan and compare it with the current one on hard KPIs before approving a change (what-if analysis is part of the target scope of the implementation).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the shop floor, data flows back into the system through a network of 120 production reporting stations. Operators see their task list there and report progress as often as each workstation requires, and the system shows them how they are tracking against their target, so a question raised during a gemba walk can be answered without calling the shift leader.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-pale-ocean-gradient-background has-background has-medium-font-size wp-block-paragraph\">\u201cThanks to the new planning system, each employee knows exactly what to work on and what their priorities are for the day, and the reporting system removes unnecessary paperwork and makes work more comfortable.\u201d \u2014 Magdalena Bochnak, Production Department Manager, Final Operations, Sanok Rubber Company<\/p>\n<\/blockquote>\n\n\n\n<h2 id=\"results\" class=\"wp-block-heading\"><strong>The results<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sanok Rubber Company&#8217;s production plan now refreshes on a regular cycle based on actual order progress, not only on assumptions made several days earlier. These are the effects observed by the client and the implementation team.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/nexelem.com\/wp-content\/uploads\/2026\/07\/SRC-planowanie-gant.jpeg\" alt=\"\" class=\"wp-image-6191\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>Planning moved from whole orders down to individual operations, updated online rather than once a day.<\/li>\n\n\n\n<li>The plan takes stock levels and material requirements at each workstation into account, so the planner no longer has to check them manually in SAP.<\/li>\n\n\n\n<li>The planner enters and validates changes to the plan in one tool, instead of negotiating priorities with the production shift over the phone.<\/li>\n\n\n\n<li>Planners, supervisors, operators, logistics and maintenance all work to the same priorities, because they all look at the same schedule.<\/li>\n\n\n\n<li>The system flags risks caused by bottlenecks up to 12 months ahead, before they turn into delays.<\/li>\n\n\n\n<li>Yield, material consumption and operation times are reported directly from 120 stations on the shop floor, so the data reflects what actually happened in production, not what someone wrote down from memory at the end of the shift.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to see how production planning integrated with an ERP system such as SAP works in practice, with a large number of part numbers and technological dependencies, <a href=\"https:\/\/nexelem.com\/en\/blog\/mrp-system-material-requirements-planning-software-for-manufacturing-company\/\">read how MRP and production planning fit together<\/a>, or book a demo of Nexelem or a free consultation using the contact form below.<\/p>\n\n\n\n        <section class=\"container-fluid block-form-with-info\" id=\"acf-block-6a4d77a96b327\">\n            <div class=\"container\">\n\n                <div class=\"row align-items-center\">\n\n                    \n                        <div class=\"col-12 col-lg-10 offset-lg-1 col-xl-8 offset-xl-2\">\n\n                            <div class=\"form-wrapper\">\n                                <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_1' ><div id='gf_1' class='gform_anchor' tabindex='-1'><\/div>\n                        <div class='gform_heading'>\n                            <h2 class=\"gform_title\">Contact form<\/h2>\n\t\t\t\t\t\t\t<p class='gform_required_legend'>&quot;<span class=\"gfield_required gfield_required_asterisk\">*<\/span>&quot; indicates required fields<\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_1' id='gform_1'  action='\/en\/wp-json\/wp\/v2\/blog\/1839#gf_1' data-formid='1' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below validation_below' data-column-layout='fill'><div id=\"field_1_15\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible\"><label id='gfield_label_1_15' class='gfield_label gform-field-label' for='input_1_15'><span class='gform-field-label__text'>LinkedIn<\/span><\/label><div class='ginput_container'><input name='input_15' id='input_1_15' type='text' value='' autocomplete='new-password'\/><\/div><div class='gfield_description' id='gfield_description_1_15'>This field is for validation purposes and should be left unchanged.<\/div><\/div><div id=\"field_1_1\" class=\"gfield gfield--type-text gfield--input-type-text custom-text-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"1e89bb01\" data-field-span=\"12\"><label id='gfield_label_1_1' class='gfield_label gform-field-label' for='input_1_1'><span class='gform-field-label__text'>Your name<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_1_1' type='text' value='' class='medium'   tabindex='1'  aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_1_3\" class=\"gfield gfield--type-text gfield--input-type-text custom-text-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"f26c7751\" data-field-span=\"12\"><label id='gfield_label_1_3' class='gfield_label gform-field-label' for='input_1_3'><span class='gform-field-label__text'>Company name<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_1_3' type='text' value='' class='medium'   tabindex='2'  aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_1_4\" class=\"gfield gfield--type-email gfield--input-type-email custom-text-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"ba338a40\" data-field-span=\"12\"><label id='gfield_label_1_4' class='gfield_label gform-field-label' for='input_1_4'><span class='gform-field-label__text'>Work email<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_4' id='input_1_4' type='email' value='' class='medium' tabindex='3'   aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_1_5\" class=\"gfield gfield--type-text gfield--input-type-text custom-text-field field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"76a385d5\" data-field-span=\"12\"><label id='gfield_label_1_5' class='gfield_label gform-field-label' for='input_1_5'><span class='gform-field-label__text'>Phone number<\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_5' id='input_1_5' type='text' value='' class='medium'   tabindex='4'   aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_1_6\" class=\"gfield gfield--type-textarea gfield--input-type-textarea custom-textarea-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"58039509\" data-field-span=\"12\"><label id='gfield_label_1_6' class='gfield_label gform-field-label' for='input_1_6'><span class='gform-field-label__text'>What would you like to discuss (demo, consultation, etc.)?<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_textarea'><textarea name='input_6' id='input_1_6' class='textarea medium' tabindex='5'    aria-required=\"true\" aria-invalid=\"false\"   rows='10' cols='50'><\/textarea><\/div><\/div><div id=\"field_1_7\" class=\"gfield gfield--type-html gfield--input-type-html gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"30da628c\" data-field-span=\"12\"><small>If you click the \u201cSend message\u201d button you agree to the privacy policy. Your personal data given in the contact form above will be processed for purposes of answering your inquiry and for any further correspondence regarding this inquiry. The controller of your personal data is VirtusLab Sp. z o.o. For more information, see our <a href=\"\/\/nexelem.com\/en\/privacy-policy\u201d\">Privacy Policy<\/a><\/small><\/div><div id=\"field_1_10\" class=\"gfield gfield--type-captcha gfield--input-type-captcha gfield--width-full field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"1e5776c5\" data-field-span=\"12\"><label id='gfield_label_1_10' class='gfield_label gform-field-label screen-reader-text' for='input_1_10'><span class='gform-field-label__text'><\/span><\/label><div id='input_1_10' class='ginput_container ginput_recaptcha' data-sitekey='6LcGUJMqAAAAAIWLsntWJxpAqOcQ1ZoUrTB6XbYf'  data-theme='light' data-tabindex='6'  data-badge=''><\/div><\/div><div id=\"field_1_9\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full custom-text-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_hidden\" data-group-id=\"99e7f09b\" data-field-span=\"12\"><label id='gfield_label_1_9' class='gfield_label gform-field-label' for='input_1_9'><span class='gform-field-label__text'>Project<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_9' id='input_1_9' type='text' value='Nexelem' class='small'   tabindex='7'  aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_1_14\" class=\"gfield gfield--type-html gfield--input-type-html gfield--width-full gfield_html gfield_html_formatted gfield_no_follows_desc field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\" data-group-id=\"4bd066ce\" data-field-span=\"12\"><p>We usually reply within one business day.<\/p><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_1' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' tabindex='8'>Send<\/button> <input type='hidden' name='gform_ajax' value='form_id=1&amp;title=1&amp;description=&amp;tabindex=1&amp;theme=gravity-theme&amp;hash=02c708a62bff99ed5e86c0bb8f3311ce' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_1' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_1' id='gform_theme_1' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_1' id='gform_style_settings_1' value='' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='i7NtP\/ASMr5TLLruzZ0mpUQuLyDIrr9ahOT8KWWgPGNQzCDpnYUfv3svxIS4hgU0vlLcxCvrDFbhU6ChXeaBkdDGUdaKzNyKaqwCzDDRNyaTk+0=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_1' value='WyJ7XCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjgzMjUwMGVkNmRmYzRlNzEzMzIzNTZhMTJlNWVmY2NiXCIsXCJlNDlhM2Y0ZTAxNjBiNGQxZDg2YmFmODJhYmE5NjZhNlwiLFwiYjkzYjk5MmIxMDYxYjYyNDIzODA5YWM0M2MzODhmZGFcIl0sXCJnZm9ybV90aGVtZVwiOlwiYjkyZjg3YjlhMTNiMjQxMWE2ZjkzMjVjOWQzYjZlOWZcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCIwOTg5YTc0ZjAxMmY4YWFjNTQ5YjJmMzQyNzAzNmNhY1wiLFwiZm9ybV9pZFwiOlwiNzc3Y2Q1ZjNlNGYwZTQ2OTdhNDM3ODY1N2ZkY2FjMTVcIixcInVybFwiOlwiOGM3YWVhNDEzMjA4OGFjMWNhNjhkYTQxMThlYzEzZWNcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiYTU1ZmI3ODE0ODQzMDBkOGM4NjcwYzYwM2NlZTY5MmVcIn0iLCI5ZjkxZTVlNDY0NzgxZjA1NTYzMzIwMDRiZjY5ZDE0NyIsMTc5MzI1NDIzOV0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_1' id='gform_ajax_frame_1' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_1').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_1').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_1').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_1').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery('#gform_wrapper_1').offset().top - mt); }, 50 );var current_page = jQuery('#gform_source_page_number_1').val();jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_1').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_1').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [1]);if(window.gform && gform.pagination && gform.pagination.removePageQueryArg){gform.pagination.removePageQueryArg(1);}window['gf_submitting_1'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_1').text());}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"1\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_1\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_1\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_1\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 1, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n                            <\/div>\n\n                        <\/div>\n\n                    \n\n                    \n                <\/div>\n\n            <\/div>\n        <\/section>\n\n    \n\n\n        <section class=\"container-fluid block-faq-accordion large-margin\" id=\"faq\">\n            <div class=\"container\">\n\n                <div class=\"row\">\n\n                    \n                        <div class=\"col-12 block-section\">\n                            <h2 class=\"mb-0\">\n                                FAQ                            <\/h2>\n                        <\/div>\n\n                    \n\n                    \n\n                    <div class=\"col-12 col-lg-10 block-section\">\n                        <div class=\"accordion\" id=\"faq-accordion-faq\">\n\n                            \n                                    <div class=\"card\">\n\n                                        <div class=\"card-header\" id=\"heading-1-faq\">\n                                            <div class=\"card-h2\">\n                                                <button class=\"card-title\" type=\"button\" data-toggle=\"collapse\" data-target=\"#collapse-1-faq\" aria-expanded=\"true\" aria-controls=\"collapse-1-faq\">\n                                                    How does APS integrate with SAP?                                                    <i class=\"fa-solid fa-chevron-down\"><\/i>\n                                                <\/button>\n                                            <\/div>\n                                        <\/div>\n\n\n                                        <div id=\"collapse-1-faq\" class=\"collapse show\" aria-labelledby=\"heading-1-faq\" data-parent=\"#faq-accordion-faq\">\n                                            <div class=\"block-description\">\n                                                APS pulls planning data from SAP (routings, BOMs, production versions), stock levels, sales orders and additional process-specific data, and in the other direction passes production batches and their current status from MES. The integration runs on a regular cycle rather than as a one-off import.                                            <\/div>\n                                        <\/div>\n\n                                    <\/div>\n\n                                \n                            \n                                    <div class=\"card\">\n\n                                        <div class=\"card-header\" id=\"heading-2-faq\">\n                                            <div class=\"card-h2\">\n                                                <button class=\"card-title\" type=\"button\" data-toggle=\"collapse\" data-target=\"#collapse-2-faq\" aria-expanded=\"false\" aria-controls=\"collapse-2-faq\">\n                                                    What is the difference between planning by operations and planning by orders?                                                    <i class=\"fa-solid fa-chevron-down\"><\/i>\n                                                <\/button>\n                                            <\/div>\n                                        <\/div>\n\n\n                                        <div id=\"collapse-2-faq\" class=\"collapse \" aria-labelledby=\"heading-2-faq\" data-parent=\"#faq-accordion-faq\">\n                                            <div class=\"block-description\">\n                                                Planning by orders treats a whole production order as a single block in the schedule. Planning by operations breaks it down into individual process steps, which makes more precise use of machine, tooling and skills availability at every stage, not only at the start and end of the order.                                            <\/div>\n                                        <\/div>\n\n                                    <\/div>\n\n                                \n                            \n                                    <div class=\"card\">\n\n                                        <div class=\"card-header\" id=\"heading-3-faq\">\n                                            <div class=\"card-h2\">\n                                                <button class=\"card-title\" type=\"button\" data-toggle=\"collapse\" data-target=\"#collapse-3-faq\" aria-expanded=\"false\" aria-controls=\"collapse-3-faq\">\n                                                    Can APS account for changeovers and minimum batch sizes?                                                    <i class=\"fa-solid fa-chevron-down\"><\/i>\n                                                <\/button>\n                                            <\/div>\n                                        <\/div>\n\n\n                                        <div id=\"collapse-3-faq\" class=\"collapse \" aria-labelledby=\"heading-3-faq\" data-parent=\"#faq-accordion-faq\">\n                                            <div class=\"block-description\">\n                                                Yes. Scheduling rules can minimise the number of changeovers and extend runs wherever the process allows, while also taking alternative machines and the availability of moulds and tooling into account.                                            <\/div>\n                                        <\/div>\n\n                                    <\/div>\n\n                                \n                            \n                                    <div class=\"card\">\n\n                                        <div class=\"card-header\" id=\"heading-4-faq\">\n                                            <div class=\"card-h2\">\n                                                <button class=\"card-title\" type=\"button\" data-toggle=\"collapse\" data-target=\"#collapse-4-faq\" aria-expanded=\"false\" aria-controls=\"collapse-4-faq\">\n                                                    How many reporting stations does production at this scale need?                                                    <i class=\"fa-solid fa-chevron-down\"><\/i>\n                                                <\/button>\n                                            <\/div>\n                                        <\/div>\n\n\n                                        <div id=\"collapse-4-faq\" class=\"collapse \" aria-labelledby=\"heading-4-faq\" data-parent=\"#faq-accordion-faq\">\n                                            <div class=\"block-description\">\n                                                At Sanok Rubber Company the network covers 120 production reporting stations across the shop floor, matched to the number of workstations and to how often each stage of the process needs progress confirmed.                                            <\/div>\n                                        <\/div>\n\n                                    <\/div>\n\n                                \n                            \n                        <\/div>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n        <\/section>\n\n    ","protected":false},"excerpt":{"rendered":"<p>Sanok Rubber Company makes rubber components for the automotive and agricultural machinery industries across Central Europe. Its planners used to build the production plan across several separate Excel spreadsheets, copying data by hand from SAP and from paper records kept on the shop floor, so a finished schedule could already be out of date by [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":1843,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10,9],"tags":[18,27,17],"class_list":["post-1839","blog","type-blog","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies","category-implementations","tag-aps","tag-case-study","tag-mes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SAP-Integrated Production Planning: APS and MES at Sanok Rubber<\/title>\n<meta name=\"description\" content=\"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SAP-Integrated Production Planning: APS and MES at Sanok Rubber\" \/>\n<meta property=\"og:description\" content=\"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/?utm_source=dark&amp;utm_medium=social&amp;utm_campaign=open-graph\" \/>\n<meta property=\"og:site_name\" content=\"Nexelem EN\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nexelemcom\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-28T16:01:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"605\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/\"},\"author\":{\"name\":\"Wojciech Szywalski\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#\\\/schema\\\/person\\\/54991e008bda51c6b89fbfe5736e4ac6\"},\"headline\":\"Production Planning Integrated with SAP: APS and MES at Sanok Rubber Company\",\"datePublished\":\"2026-10-28T15:58:55+00:00\",\"dateModified\":\"2026-10-28T16:01:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/\"},\"wordCount\":1215,\"publisher\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/10\\\/SRC-case-study.jpeg\",\"keywords\":[\"aps\",\"case study\",\"mes\"],\"articleSection\":[\"Case studies\",\"Implementations\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/\",\"url\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/\",\"name\":\"SAP-Integrated Production Planning: APS and MES at Sanok Rubber\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/10\\\/SRC-case-study.jpeg\",\"datePublished\":\"2026-10-28T15:58:55+00:00\",\"dateModified\":\"2026-10-28T16:01:43+00:00\",\"description\":\"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/10\\\/SRC-case-study.jpeg\",\"contentUrl\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2026\\\/10\\\/SRC-case-study.jpeg\",\"width\":1280,\"height\":605,\"caption\":\"SRC case study\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nexelem.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/nexelem.com\\\/en\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Case studies\",\"item\":\"https:\\\/\\\/nexelem.com\\\/en\\\/category\\\/case-studies\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Production Planning Integrated with SAP: APS and MES at Sanok Rubber Company\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/nexelem.com\\\/en\\\/\",\"name\":\"Nexelem \u2122 - Smart Factory Software in the rythm of Industry 4.0\",\"description\":\"Manufacturing Management Software with Gen-Z-enabled UI\\\/UX\",\"publisher\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#organization\"},\"alternateName\":\"Nexelem - Smart Factory Software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nexelem.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#organization\",\"name\":\"Nexelem by VirtusLab\",\"alternateName\":\"Nexelem\",\"url\":\"https:\\\/\\\/nexelem.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/03\\\/nexelem-by-vl_logo_standard-1.png\",\"contentUrl\":\"https:\\\/\\\/nexelem.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/03\\\/nexelem-by-vl_logo_standard-1.png\",\"width\":1192,\"height\":414,\"caption\":\"Nexelem by VirtusLab\"},\"image\":{\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/nexelemcom\",\"https:\\\/\\\/linkedin.com\\\/company\\\/nexelem\",\"https:\\\/\\\/www.capterra.com\\\/p\\\/10016847\\\/Nexelem\\\/\",\"https:\\\/\\\/www.softwareadvice.com\\\/manufacturing\\\/nexelem-profile\\\/\",\"https:\\\/\\\/www.getapp.com\\\/project-management-planning-software\\\/a\\\/nexelem\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nexelem.com\\\/en\\\/#\\\/schema\\\/person\\\/54991e008bda51c6b89fbfe5736e4ac6\",\"name\":\"Wojciech Szywalski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g\",\"caption\":\"Wojciech Szywalski\"},\"description\":\"Pracuje w kreatywnych \u015brodowiskach, g\u0142\u00f3wnie w zespo\u0142ach produktowych, i startupach, gdzie pomaga budowa\u0107, dostarcza\u0107 i wprowadza\u0107 na rynek warto\u015bciowe produkty cyfrowe. Obecnie pe\u0142ni\u0119 rol\u0119 Product Marketing Managera w Nexelem, \u0142\u0105cz\u0105c do\u015bwiadczenie z bran\u017cy IT i produkcji oraz przek\u0142adaj\u0105c je na skuteczn\u0105 komunikacj\u0119. Jest wsp\u00f3\u0142organizatorem Meetupu Produkcyjnego, gdzie wspiera wymian\u0119 wiedzy mi\u0119dzy specjalistami przemys\u0142u i nowych technologii.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/szywalski\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SAP-Integrated Production Planning: APS and MES at Sanok Rubber","description":"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.","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:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/","og_locale":"en_US","og_type":"article","og_title":"SAP-Integrated Production Planning: APS and MES at Sanok Rubber","og_description":"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.","og_url":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/?utm_source=dark&utm_medium=social&utm_campaign=open-graph","og_site_name":"Nexelem EN","article_publisher":"https:\/\/www.facebook.com\/nexelemcom","article_modified_time":"2026-10-28T16:01:43+00:00","og_image":[{"width":1280,"height":605,"url":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#article","isPartOf":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/"},"author":{"name":"Wojciech Szywalski","@id":"https:\/\/nexelem.com\/en\/#\/schema\/person\/54991e008bda51c6b89fbfe5736e4ac6"},"headline":"Production Planning Integrated with SAP: APS and MES at Sanok Rubber Company","datePublished":"2026-10-28T15:58:55+00:00","dateModified":"2026-10-28T16:01:43+00:00","mainEntityOfPage":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/"},"wordCount":1215,"publisher":{"@id":"https:\/\/nexelem.com\/en\/#organization"},"image":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#primaryimage"},"thumbnailUrl":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg","keywords":["aps","case study","mes"],"articleSection":["Case studies","Implementations"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/","url":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/","name":"SAP-Integrated Production Planning: APS and MES at Sanok Rubber","isPartOf":{"@id":"https:\/\/nexelem.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#primaryimage"},"image":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#primaryimage"},"thumbnailUrl":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg","datePublished":"2026-10-28T15:58:55+00:00","dateModified":"2026-10-28T16:01:43+00:00","description":"How did Sanok Rubber Company replace scattered Excel files with one SAP-integrated production schedule? A case study of Nexelem APS and MES at work.","breadcrumb":{"@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#primaryimage","url":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg","contentUrl":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2026\/10\/SRC-case-study.jpeg","width":1280,"height":605,"caption":"SRC case study"},{"@type":"BreadcrumbList","@id":"https:\/\/nexelem.com\/en\/blog\/sap-integrated-production-planning-aps-mes-sanok-rubber-company\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nexelem.com\/en\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/nexelem.com\/en\/blog\/"},{"@type":"ListItem","position":3,"name":"Case studies","item":"https:\/\/nexelem.com\/en\/category\/case-studies\/"},{"@type":"ListItem","position":4,"name":"Production Planning Integrated with SAP: APS and MES at Sanok Rubber Company"}]},{"@type":"WebSite","@id":"https:\/\/nexelem.com\/en\/#website","url":"https:\/\/nexelem.com\/en\/","name":"Nexelem \u2122 - Smart Factory Software in the rythm of Industry 4.0","description":"Manufacturing Management Software with Gen-Z-enabled UI\/UX","publisher":{"@id":"https:\/\/nexelem.com\/en\/#organization"},"alternateName":"Nexelem - Smart Factory Software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nexelem.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nexelem.com\/en\/#organization","name":"Nexelem by VirtusLab","alternateName":"Nexelem","url":"https:\/\/nexelem.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nexelem.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2024\/03\/nexelem-by-vl_logo_standard-1.png","contentUrl":"https:\/\/nexelem.com\/en\/wp-content\/uploads\/sites\/2\/2024\/03\/nexelem-by-vl_logo_standard-1.png","width":1192,"height":414,"caption":"Nexelem by VirtusLab"},"image":{"@id":"https:\/\/nexelem.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nexelemcom","https:\/\/linkedin.com\/company\/nexelem","https:\/\/www.capterra.com\/p\/10016847\/Nexelem\/","https:\/\/www.softwareadvice.com\/manufacturing\/nexelem-profile\/","https:\/\/www.getapp.com\/project-management-planning-software\/a\/nexelem\/"]},{"@type":"Person","@id":"https:\/\/nexelem.com\/en\/#\/schema\/person\/54991e008bda51c6b89fbfe5736e4ac6","name":"Wojciech Szywalski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/accbf88b29278da62747be9cee20f6bd4a7c724401be4169fc57eacb70fee208?s=96&d=mm&r=g","caption":"Wojciech Szywalski"},"description":"Pracuje w kreatywnych \u015brodowiskach, g\u0142\u00f3wnie w zespo\u0142ach produktowych, i startupach, gdzie pomaga budowa\u0107, dostarcza\u0107 i wprowadza\u0107 na rynek warto\u015bciowe produkty cyfrowe. Obecnie pe\u0142ni\u0119 rol\u0119 Product Marketing Managera w Nexelem, \u0142\u0105cz\u0105c do\u015bwiadczenie z bran\u017cy IT i produkcji oraz przek\u0142adaj\u0105c je na skuteczn\u0105 komunikacj\u0119. Jest wsp\u00f3\u0142organizatorem Meetupu Produkcyjnego, gdzie wspiera wymian\u0119 wiedzy mi\u0119dzy specjalistami przemys\u0142u i nowych technologii.","sameAs":["https:\/\/www.linkedin.com\/in\/szywalski"]}]}},"_links":{"self":[{"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/blog\/1839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/comments?post=1839"}],"version-history":[{"count":4,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/blog\/1839\/revisions"}],"predecessor-version":[{"id":1847,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/blog\/1839\/revisions\/1847"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/media\/1843"}],"wp:attachment":[{"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/media?parent=1839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/categories?post=1839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nexelem.com\/en\/wp-json\/wp\/v2\/tags?post=1839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}