I have imported a solution from cvsdude.com which was working on Servoy 4rc4 all be it with issues surrounding the painting of the smart client. In the new import I am getting a problem error notification for all modules which reads
Solution project “my module” has no Servoy Resources Project Referenced
Can this be referenced and if so how ?
Many thanks - and what a great product 4 seems to be a massive step forward - well done dev team!!
agiletortoise:
If you right-click on a solution/module in the solution explorer, there’s a “Change resource project” option.
Honestly, I’m still trying to figure out exact what resource projects are for and how to use them, but I do know how to reassign them at least!
Greg
Thanks for the reply - I tried this and got the following error
“Solution project “CLP_Click4System” has no Servoy Resources Project referenced. CLP_Click4System Unknown 1216311273400 526”
The history is I had this already built on SVN, downloaded and installed a clean version of Servoy 4 final and then checked out the solution again. I am guessing, but I imagine what I need to do is either re create the project and then merge it from the SVN repository OR find a way to attach a project to it after the event. I will get in touch with Servoy if this fails and post my findings on this thread.
Like most things in Eclipse (ColdFusion, Lasso et al) they all have their little idiosyncrasies and Servoy will no doubt be the same. Cool though !!
A Resources project is a Project containing all teh Servoy info that is not related to a specific solution, so Styles, Column info, Users, Groups en table/column level security settings.
A resources project inside Eclipse is identified by a Resources nature. You can assign this by opening a Navigator view for example and rightclick on the project.
When using Servoy Repository as team Provider, this is stuff you do not have to care about.
when you use SVN/CVS or any other Team Provider, it’s important to also makes sure that you put the .project files that are located in the root of every project in Eclipse into your SVN/CVS/etc., because in that file is the Nature stored.
Contrary to Resources projects: Solution need a Servoy Solution nature.
A Resource project is related to a Solution project using Project References. To see or set the Project Reference between a Resource and a Solution Project, ightClick a Solution project in a Navigator view, select Properties and then go to Project References. There, lookup the Resources project and select the cehckbox.
Once again: when using the Servoy Repository as Team Provider, you do not have to worry about this stuff, but when using SVN/CVS you do. These Project references are also stored in the .project file, so another reason to make sure the .project files are included in your SVN/CSV/etc.
A Resources project is a Project containing all teh Servoy info that is not related to a specific solution, so Styles, Column info…
An important discinction to be made here in regards to “Column info”…meaning the servoy-specific metadata for a column not things like calcs, which are of course solution specific and not stored in a resources project.
If you use the resources perspective and you look at the files/folders contained within a resources project and you compare them to the files/folders contained within a solution project you may notice, as we did, a datasources directory in both places, which is a little confusing. But the two different directories serve two different purposes: As Paul points out: “column info” is contained in resources projects whereas calcs etc. are stored with a solution, but both are stored in a “datasources” dir.
I have a question then for when your using a file based repository (SVN/CVS)…
If I make a change at the database like changing a column from NOT null, to allowing null the change is reflected in UI of servoy - however it is not changed in the *.dbi file. How will this affect me when I export my solution? Will the export use the schema information in the .dbi file, or the database? Will it change my columns metadata on the import to the “old” NOT null value?
Okay, so i did a little test with what I described and now I get this warning…
'cruz->address->address_is_active' column difference. (INTEGER(id:-7), length: 0, allowNull: true) in DB <-> (INTEGER(id:-7), length: 0, allowNull: false) in DB information file. The DB information on this column differs from the actual column in the DB. servoy_resources/datasources/cruz address.dbi JSON file 1216655442313 2191
So I understand what the warning is saying, but what the proper workflow when you make a bunch of changes in the database? is there an “Update local DB Information” button somewhere?
In the context menu for the problem you saw you have “Quick fix”; click on that and choose one of the quick fixes listed (this works for some other types of problems as well). Using this you can save the changes in the .dbi files, or update the database to match the info in the .dbi file if possible (depends on the kind of column difference).
There is also a “Synchronize with database” action on the Database Servers, Resources and server nodes you can use in order to check all differences between the column information files in your resources project and the actual database. After you use this action you should see and be able to fix all differences… missing .dbi files, missing tables in the database and/or column differences.