When customers can expect this release:
Group 1: June 3, 2020
Group 2: June 4, 2020
Group 3: June 11, 2020
Highlights
NEW FEATURE: There is a new feature called OEE Waterfall that displays OEE in a waterfall graphic, breaking down availability, performance, and quality. OEE Waterfall can be further expanded into areas of focus, such as machine state or downtime losses, utilizing Downtime Group configurations. See here for a complete overview of the feature.
NEW FEATURE: There is a new feature called Opportunity Pareto that allows users to customize specific reports to be shown on screen simultaneously, with a Pareto graphic to compare occurrences between machines, jobs, shifts, and downtime reasons.
Bug Fixes:
PNE-944 | QualityCheckService null exceptionDescription `jobRepo.GetCurrentJob` can return null if no current job currentJob: jobRepo.GetCurrentJob(machine).Clone(), https://qatesting.shoplogix.com/logs/2020-05-28%20Web.txt 2020-05-28 08:22:17.9594 04044:019 FATAL Shoplogix.Server.Web.WebApplication AppDomain Unhandled Exception: IsTerminating=True: Object reference not set to an instance of an object. EXCEPTION System.NullReferenceException: Object reference not set to an instance of an object. at Shoplogix.Server.QualityChecksService.ExecuteQualityChecksService() in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix.Server\Services\Quality\QualityChecksService.cs:line 176 at Shoplogix.Server.QualityChecksService.RepeatRun(CancellationToken token) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix.Server\Services\Quality\QualityChecksService.cs:line 241 at Shoplogix.Service.RepeatingService.RepeatingRun(CancellationToken token) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\RepeatingService.cs:line 62 at Shoplogix.Service.ExpandingTimer.<>c__DisplayClass7_0.<.ctor>b__0(Object state, CancellationToken ct) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\Timer.cs:line 29 at Shoplogix.Service.ExpandingTimer.RunInternal(CancellationToken parentToken) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\Timer.cs:line 101 at Shoplogix.Service.ExpandingTimer.Run(CancellationToken parentToken) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\Timer.cs:line 79 at Shoplogix.Service.RepeatingService.ServiceRun(CancellationToken token) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\RepeatingService.cs:line 51 at Shoplogix.Service.ServiceBase.Run(CancellationToken haltToken) in D:\BuildAgent\work\3378db5a28cef30e\visualstudionet\Server\Shoplogix\Service\ServiceBase.cs:line 84 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() FIXED |
---|---|
PNE-926 | Opportunity Pareto - Area filter is not available for Area/Line Pareto if user navigates from Machine level ParetoDescription Steps to reproduce:
Expected behavior: Area option is available Workaround: Refresh the page and Area will be available in Level 1 Acceptance should be done by Jesse Hildebrand (Unlicensed) FIXED |
PNE-925 | Opportunity Pareto - Time Window in splat issuesDescription
Steps to reproduce:
Expected behavior: Time window stays the same Note: In addition, chevrons are not working after Update (time window is header is changing, but displayed data stays the same). Acceptance should be done by Jesse Hildebrand (Unlicensed) FIXED |
PNE-922 | Opportunity Pareto - Custom Areas does not workDescription Custom Areas don't appear to be working, no data loaded FIXED |
PNE-914 | OEE Waterfall CleanupDescription Issues:
2. The units of the pieces that are displayed isn't captured anywhere. Mondelez makes use of various units compared to other customers so there's the possibility for confusion if the units aren't displayed anywhere. Options are to show them in the title bar like in other views (Shifthours) or show them in the table next to the value or label. Options shown below: 3. MTBF is for the bottleneck machine for lines, want that to be specified in the table. Example below: If any of these aren't clear or you need more info we can do a quick call to clarify. Thanks! AttachmentsFIXED |
PNE-906 | Database Changes Performance on MDLZ-BADDIQADescription When comparing performance on version 13132 vs 12521 I noticed there were a few queries that would fail under certain situations and also that the web logs were filled with fatal errors. Link to logs and results of performance testing are below: https://mdlz-baddiqa.shoplogix.com/logs/ https://mdlz-baddiqa.shoplogix.com/logs/2020-05-20%20[00028]%20Web.txt AttachmentsFIXED |
PNE-847 | New Config - Machine Types Clean up 1.0Description Issue # 1
Issue # 2
Issue # 3
Issue # 4
Issue # 5
Issue #6
Issue #7
ADDITIONAL ISSUES caught in the final round of testinghttps://slxdev.atlassian.net/browse/PNE-825 : Issue #8
Steps to reproduce:
Expected Behavior: Thresholds are not changed Issue #9
Alex Karyakin (Unlicensed) feel free to amend/add/remove anything from Description, if needed.
Hino Pringnitz → Not part of UAT would like to discuss adding them in the future
PS I am willing to do the testing but I am not sure how that Fits in your design.
AK: Issue #10
FIXED |
PNE-844 | Navigation - OEE Waterfall, Paging and Opportunity Pareto should be translated in Navigation menuDescription Precondition: In config file on Plant level set <PagingEnabled>1</PagingEnabled>, <OeeWaterfallEnabled>1</OeeWaterfallEnabled> and <OpportunityParetoEnabled>1</OpportunityParetoEnabled> Spanish: French: German: Acceptance Criteria:
FIXED |
PNE-820 | Cycle gauge value doesn’t match on Plant Meeting and Shift Line if Cycle Gauge is set as ‘Cycle' or 'SPH’Description Example:Hank Shin (Unlicensed) investigated the issue in https://slxdev.atlassian.net/browse/PNE-768:
tl;dr - shiftline is wrong Affected Views:
Affected Gauges:
FIXED |
PNE-814 | Changeover time on Shift Line is incorrect in Job barDescription Based on Job bar, 'Jesse Job' is ended after start of hour 5 (11 am), however the changeover happened before the end of hour 4. Similar bug was fixed for Shift Hours in https://slxdev.atlassian.net/browse/CS-434 FIXED |
PNE-708 | Pareto Translation to SpanishDescription The following is not translated: Shifts: No values to display: Automatic States: FIXED |
CS-2364 | Unable to enter scrap on DashboardDescription Customer is unable to enter reasons scrap on Dashboard view. The scrap entry works on the hourly and other views but not on the Dashboard. Logs show this warning "WARN Shoplogix.Server.Services.ApiScrapService Failed: No scrap match edit:" Sample URLFIXED |
CS-2250 | Messaging through Real Time Variables not functioningDescription The messaging at Kellogg's Rome using Real Time Variables has stopped functioning This would not be urgent if it wasn't for multiple previous issues at the facility Sample URLhttps://saas123.shoplogix.com/whiteboard/#/shiftrollup/areas/38 https://saas123.shoplogix.com/whiteboard/#/shiftrollup/areas/39 FIXED |
CS-2013 | Possible XML bug - Machine state/reason changed without input from XML systemDescription Over the course of a week no changes occurs in the input, yet during this time the system went through multiples changes most egregious example was at midnight on the 11th 00:00 of the 12th when the system just went into setup spontaneously. During this time the customer did not do anything and yet the system changed (multiple times!) At no point did this machine do anything in the real world it was offline. The OPC core is unhelpful as it simply says Automatically Edited which I believe means our system is changing. ~ Hino FIXED |
CS-2007 | Machine and User Reasons Resets On New Shift does not work for setupDescription Hi Guys, Machine Reasons & Manual reasons will not reset on a new shift. Customer is complaining and requesting that this is urgently fixed as this is ruining their OEE figures. I have tried disabling Automatic Setup on a job change to see if it will remove the historic events of setup but it doesn't work. Today I've noticed that if operators manually select any of the downtimes reasons labelled as setup and when the shift resets, the reason is removed and displays machine state "Setup" on new shift even though I have auto setup disabled. I will try to get a screenshot as the customer is using this system live so it's hard to get a screenshot on time to show this behaviour. This is happening on all of Fareva BCM machines and potentially the entire server. Sample URLFIXED |
CS-1551 | API Calls for Reason returns time but no occurrences for Setup ReasonsDescription In HTML - Appears that the first reason pulled will show occurrences but many others will have occurrences = 0. They are machine reasons with downtime edit and coming off a PLC. These are steps of the setup process. In JSON - just no occurrence tag <Machine MachineId="2F7A21DB-1165-653C-118D-B6E38D096B0E" MachineName="RDG Evap 2" If you look at the details of the machine in the 2nd query, you will see some steps have occurrences and others do not. Sample URLdfa.shoplogix.com/web/api/export/summary?Start=20200301&End=20200313&metrics=reasons,&groupBy=machine,&machines=2F7A21DB-1165-653C-118D-B6E38D096B0E&format=xml https://dfa.shoplogix.com/web/api/export/summary?start=20200301&end=20200313&metrics=,states,reasons&groupBy=Machine&Machines=,,,894B4B12-D324-FF85-319F-ACD8F848AD6B,2FAEBDB5-A3EA-25FE-18D9-20196D6F82F6,OPCCN_DFA_Portales021,2B600A89-D911-322D-CB51-B70FAA10DE3D,710DD708-C6B3-9146-21AF-B710DA346381,DC93CEA6-FCB0-F3CD-380E-B712BAAC3B9A,E1A224A4-8253-97E6-8A36-67691129B2A8,E801D753-8D22-CC9E-9FA7-6769112995F5,&format=xml&rnd=2 JSON Call https://dfa.shoplogix.com/web/api/export/summary?start=20200301&end=20200313&metrics=,states,reasons&groupBy=Machine&Machines=,,,894B4B12-D324-FF85-319F-ACD8F848AD6B,2FAEBDB5-A3EA-25FE-18D9-20196D6F82F6,OPCCN_DFA_Portales021,2B600A89-D911-322D-CB51-B70FAA10DE3D,710DD708-C6B3-9146-21AF-B710DA346381,DC93CEA6-FCB0-F3CD-380E-B712BAAC3B9A,E1A224A4-8253-97E6-8A36-67691129B2A8,E801D753-8D22-CC9E-9FA7-6769112995F5,&rnd=2 FIXED |
CS-760 | Production Summary shows Comment that Shift Hours does notDescription The meeting view of a machine shows a comment for a non-existent reason. the internal comment query shows a comment but the hourly view don't show any reason . saas113 - Huercasa the image shows the comment and the reason Underlying issue is each comment pulls a little bit differently - The “MEETING VIEW” Should match the SHIFT ROLLUP query. So please change the underlying query used in the Meeting view to be the same query as the Shift rollup. there are 3 linked bugs that may or may not be resolved by solving this. Sample URLFIXED |
CS-200 | You can still edit a downstate even if it is configured to not allow users to edit itDescription Masco discovered you can edit machine reasons that are classified as 'non-editable' in the shift rollup and the shift chrono views. Why? Sample URLNone FIXED |
New Features / Status on Long-term Work:
PNE-943 | Opportunity Pareto - Re-enable Pareto for non DB cache serversDescription Enable old and new(DB version for improved performance) Pareto versions to work together using UseDatabaseCache=True flag in settings.cs to select with one will be used Acceptance Criteria: When UseDatabaseCache=True Pareto DB version for improved performance should be used FIXED |
---|---|
PNE-923 | OEE Waterfall - Add Under Construction pop-upDescription Add under construction pop-up Same mechanics as opportunity pareto, only once per browser, use different key then opportunity pareto FIXED |
PNE-915 | Rest API for Portal Dashboard REST connectorDescription
Sisense Docs CDATA Docs (connector partner for Sisense) FIXED |
PNE-901 | New Config - Create validation framework for form rather than per fieldDescription Create a form validator for the main save button on the configuration screen that would validate fields all at once based on the selected screen / tab. This new validator can be passed into sub-components or done on the main config screen prior to save. For this card, simple validation will be added to the Device Settings tab in the New Config. Fields to be validated:
This is all the validation to be added for now. More will be added in future cards. Technical Details: Using the validate.js library, we can use it's validate() function to help with common/simple form validations. https://www.npmjs.com/package/validate.js To cover custom rules, error messages, or overrided functions we will create a validation class. This class can act as a wrapper to the validate.js library to help out with any specifics to the project. This can be applied onto a Save/Submit button in the onSaveClick event, which would validate all fields in the form. Alternatively it can be applied to an onChange event for each field, validating just that field. This new library and class should be used on the Device Settings tab of the new config so it can be properly tested.
Scenarios: User visits the Device Settings tab and starts editing. They leave Machine Name blank and hit save. Expected: Error message appears that tells the user that this field cannot be blank.
User tries editing the order field, inputs a negative number and hits save. Expected: Error message appears that tells the user that this field cannot be negative.
User tries editing the order field, inputs a word and hits save. Expected: Error message appears that tells the user that this field must be a number. FIXED |
PNE-893 | Plant Level Line Summary (PLLS) - improve performance (remove pareto bottleneck)Description Problem: Possible solutions: Depending on number of machines in the line, the PLLS pareto is the longest step and can be replaced by SQL. Acceptance Criteria:
Technical notes:
FIXED |
PNE-848 | Refactor QualityChecksService.cs to be able to test itDescription Refactor the service to make it testable Testing: No Acceptance required. Testing only to ensure functionality has not changed FIXED |
PNE-843 | Preloading database when we turn it on - data still isn't complete.Description Problem: We preload all the data we can from the disk cache. But the disk cache isnt perfect and has gaps. (This is a spin off story from PNE-673) Additionally, invalidation queries come in and aren’t “pushed” to the db until they are requested with the pipeline query. This solution should address those invalidation queries. Possible Solution:
Acceptance Criteria:
Testing ideas:
Technical design:
Table: core_data_backload_dates
FIXED |
PNE-835 | Implement Quality Check Match OptionsDescription SummaryNeed it implement all match options as seen in the Flash Quality Config DetailsCurrently the only option for quality check selection based on Job filters is EXACT.
These options are seen when the Filters are configured for the line, see Configuring Filter Data Type for Extended Filtering Options Match Option Config ValuesMatch Option Values can be found here:ServerQualityConfig.as#L25
Sample Quality Config:Showing <QualityConfigInfo> <Operation Email="" Machines="AFRDKGAbNOKkRLOOU8RaIL8M0RKZAbmyA3KnC4FbXZ4MZaM.5351EDB4-5578-1ADC-BECE-28A37B754735" Name="TPM Checks"> <QualityGroup Active="1" Name="" Order="0"> <Filters> <Filter Match="1" Name="Job Name">STRAWBERRY</Filter> </Filters> <QualityChecks> <QualityCheck Active="1" Alerts="0" Boolean="1" Complete="0" Critical="0" Daily="0" HiValue="0" Image="" LoValue="0" Name="Work Instruction" Numeric="0" Order="1" Production="0" Pulled="0" Quantity="0" SPC="0" Shift="0" Start="1" StdDev="0" String="0" Target="0"/> </QualityChecks> </QualityGroup> <Alerts Email=""/> </Operation> </QualityConfigInfo> AttachmentsFIXED |
PNE-760 | Pareto Comment Performance ImprovementDescription Summary
Server
Investigation Steps
For an example see: https://saas16.shoplogix.com/Whiteboard/#/opportunitypareto/areas/71/start/20200101T000000.000/end/20200102T000000.000/level1=reason&maxsub=3&level2=machine&level3=comment Proposed ChangesLookup and grouping operations will be done on the database The database will return all the information needed to create the final ParetoDataResponse object, Lookup and grouping operations will be done on the database. 1.- Create a New Repository e.j. “SqlOpportunityParetoRepository” for all DB calls related to pareto. 2.- Create GetParetoDataResponse Function to create the adequate T-SQL depending on the parameters. 3.- Create a mapper function to translate table format database response into ParetoDataResponse multi level structure. 4.- Remove unused code and wire up the new one FIXED |
PNE-569 | Deliver file-delta from Connector realtime socket to Realtime pipelineDescription
FIXED |