Hello, has anyone ever experienced table data not showing on production, but not on development or QA? I tried looking at the preparation logic, but couldn't find anything missing or wrong because I can see all data on development and QA stage.
This issue happens on several roles only, roles of which they are only allowed to view data being assigned to their own specific user id, but does not happen on admin role, where the user id being assigned to that role could view all data. My initial suspicion was due to heavier data being load, but as admin has much more data to load yet everything shows on the table, this possibility was ruled out. I have also make sure that both roles (admin and anything else) passes through similar logical flow, so there are no differences regarding variables or actions being used. The only thing that sets them apart is role of logged in user id.
Has anyone ever encountered issues like this? I am struggling to figure out the cause because I cannot debug on production and I don't know either about what to fix. If any of you has any advice I would really like to hear.
Thanks.
Hello all,
Small update, this issue has gone to Outsystems Global Support because we could not find any way of reproducing it on development environment. And we are going the road as @Kilian Hekhuis mentioned. This might be performance issue because the main aggregate we are using got 10 joined tables and 8 filters plus it is grouped by many values and added by calculated values.
Hello,
Just confirm with you that when you deploy your application from environment to another for normal entities data will not be copied from environment to another one.
Are your aggregate you using includes any join with another table? If yes may be data of the table used in join not correct
Are you using any condition while retrieving data? May be this condition is not returning expected value on production.
Please not that if you are using any hard coded Id in your code this may be the reason as Ids will be different from environment to another
Please confirm if admin can see data from same table that other users can't see.
Hello Mostafa,
Data exists on production because user is regularly using this application. So I am only deploying logical changes to production.
Yes, my aggregate has joint with another table (10 tables to be exact), but I ruled out this possibility because when I debug on development and QA, the data is properly filtered and all necessary inputs are populated, and the table is showing correct data.
Yes, I filtered my aggregate based on several conditions, but I have tried filtering aggregate on both QA and development yet both produce correct results. This only failed to work on production.
I am well aware of using hardcoded Id, so none are being used.
Yes, admin is viewing from the same aggregate and table, I have an IsAdmin filter which returns true if admin role is logged, which allows admin to view all data, meanwhile for another role, they can only view the data of which they are assigned to, using similar method to IsAdmin filter but with their specific role. When logged in using non admin role, the boolean returns correctly on development and QA, allowing testers to view assigned data to that user.
Actually you can't depend on debugging in dev and QA environment because data is different (except you have a copy of production data in dev environment).
Did you checked service center for any error or may happened?
Did you check IsRole function in any other page or aggregate and is working fine?
You may also review again logic you changed before last deployment related to this page or aggregate.
It may be also data issue,one of columns used in join may has null value or default value of data type
I agree with you because production has completely different data than dev or QA. But I have checked service center for both general log and error log yet could not find anything except SLOWSQL when that happened.
This role boolean is implemented on several pages, with similar logic but only this specific page that got into problem.
There is a minor change before my last deployment related to date range filter, but it does not affect any data shown in dev and QA.
I am suspecting the data itself might cause the problem, I am still trying to recreate the situation.
Based on the information provided, it seems that the issue might stem from discrepancies in the "User Module role/Group assignments" between environments. It's crucial to ensure that these configurations are set up consistently across all environments. While everything is functioning correctly in QA and DEV, it's essential to verify that the Role/Group Configurations in PROD match those in the other environments
Hello Thibaut,
Initially I suspected user role as the issue as well, but after further confirmation I can confirm that it is not the case, because across environments, user role name is consistent. This is one curious case I could not figure out any cause because there are no error whatsoever on service center either.
If you have the possibility to push a test-module to production, I'd go that route. Create a module that has aggregates with less joins or filters than the original, and see what join or filter causes the data to not appear. Perhaps also have a screen that dumps the data used in the aggregate, so you can manually check if all join conditions and filters are ok given that data.