Hello,
I'm new to OutSystems and I'm completing one of the trainings. I'd like to understand the behavior of OutSystems on local storage after publishing and on project overwriting, perhaps someone could help me, here's the context:
After I download the lesson materials of one of the training exercises, I added the donwloaded ".oap" file to Service Studio, let's call it "original application version". I installed the original application version on Service Studio and followed all the exercise steps, then I published it to Service Center with the one-click publish, logged in to my personal environment. Let's call the edited ".oap" fie "edited application version".
I wanted to compare the original application version to the edited application version I had finsihed publishing, so I donwloded the original application version from the exercise page again, now to a different folder on the computer, then added it to Service Studio and installed it. After I checked what I needed, I closed the original application version and installed the edited application version to Service Studio one more time, but the changes I had made and published to Service Center were gone from the edited version.
Luckly, I found a version history dialog on Service Studio and restored the edited application version, but apparently it did overwrite the original version one more time because only one version of the application is persisting on Service Studio.
I though it could be because both applications versions had the same application name and module names, cosindering they were two versions of the same ".oap" file. However, I would have expected a overwriting dialog/warning from Service Studio, which didn't happen. Maybe I interpreted something inconrrectly.
So, publishing the edited application version to Service Center doesn't apply the changes to the ".oap" file locally? And did the original application version overwrite the edited version on the local computer storage and on Service Studio, even though the ".oap" files were on different folders?
I do apologize about the long context description but I really would like to understand how OutSystems works on cases like this, to avoid ovewritting applications unintentionally.
Thanks in advance
Firstly, a .oap file is a collection of .oml modules and .xif extensions. It's important to note that there is no direct option to compare .oap files, but you can compare .oml files with their other versions.
In your scenario, you downloaded an .oap and installed it through Service Studio. After making changes, you deployed the final version. Please note that you published the .oml files after making changes, not the .oap file again.
If you want to compare the original application with the changes you made, downloading the .oap again will simply override the existing version. Instead, to compare changes, you should use the 'Compare and Merge with Another Version of File' option.
I hope this clarification helps.
Thank you for the clarification.
I noticed that when I opened two .oap files one after the other, with same name and same module names but with different screen actions and logic, OutSystems did not override the first .oap file application, somehow it identified it had something different (actions and logic) and it showed me the error message "You already have modules in your factory with the same name as the following: CustomerOrders. The installation cannot proceed."
Why did that happen? I would expect OutSystems to override the first .oap file, how did OutSystems discover that the first .oap file had the same name and modules but different logic than the second .oap file, and it didn't override it?
Please see if this is the same scenario in your case too.
It's similar to my scenario, apparently the modules seem to keep some reference to the original app and OutSystems detected that the second app didn't have the same screen actions even though it had the same name so it didn't allow overrinding, which was not the case on the scenario that I first described (when publishing the question), which was different files but same name and same screen actions. However, I'm only installing .oap files from the training guided paths, where all files from the same section have the same name and modules. I just wanted to understand how OutSystems works on these scenarios, I'll keep observing other contexts to undestand better. Thank you for the clarifications.