Our Mac version is getting more and more powerful with each release - with new features added to its pool of possibilities! This time, we paid extra attention to the flexibility of the work within our tool. Enjoy the enhanced mechanisms of work with the Project Metadata Components, which can now be updated not only during the project creation stage, but at any point you need. Also, as of this version, your project structure can be stored in your Salesforce org and accessed from any PC either by you or your colleagues - with no issues or conflicts!
Project Metadata Components
Now your work with existing projects in The Welkin Suite for Mac will be more flexible. You can add files or even whole metadata types that are present in your Salesforce Organization or remove them. In addition, there is an ability to subscribe for newly created files if you want to get them to your project after creation.
To work with all these options you can use the 'Project metadata components' dialog. This is available for you in the Main Menu -> Project or in the context menu of your project.
When you open it, you will see the window that should be already familiar for you from the project creation process. In this window you will see the full list of items from your Organization for all the supported metadata types. This list is queried from Salesforce when you open the 'Project metadata components' dialog.
You can expand each of the metadata types and select which files you want to add to your project. We want to draw your attention that they will be added not immediately, but after pulling changes from Salesforce. To exclude any files, please disable the checkboxes near them and click 'Apply'. In this case, the selected files will be removed from the project right after this.
As we already mentioned, you can subscribe to metadata files that will be created on your Organization. In this case, please enable the 'Subscribe' option near the necessary metadata type. If you download all the files from some type or select a metadata folder, this option is enabled by default. When you use this, the newly created files will be downloaded and added to the project during the pull process.
Of course, we have thought about the case when you have a lot of files and searching through them manually can take minutes. The added filter field above the list of the itmes from your organization will help you to find the necessary files just in several clicks.
Project Structure Synchronization
The Welkin Suite for Mac provide you with the great ability to create your own project structure and store your metadata files in separate folders combining them in different sets. Now you can save this structure on Salesforce, get in TWS on another device, or even share it with your colleagues.
How can this be helpful?
While it is almost obvious how customizable project structure may be useful in the day-to-day development tasks, lack of options to share it or to use it from different locations reduces the flexibility of this awesome approach.
Starting from now on this is very easy to follow any of the flows below, which will save your and/or your team's time:
- Customize a project structure once and use it from the different devices where you work with the same Organization
- Customize and save a project structure in an Org, so when you will return to the project later it will be much easier for you to remember the codebase
- Assign a team-lead or any other person in the team to perform initial project structure configuration and allow to a whole team to enjoy the same clear and readable navigation in the project without any additional time costs
- Develop project structure conventions for your team and enjoy the shared project structure for everyone working on a project
- Quicken on-boarding for new team members without a need to explain each and every aspect of an architecture, because high-level information is obvious from the correct project structure
Or find your own way to benefit from this functionality and share it with us and TWS community!
What is under the hood?
As Salesforce does not know anything about the project structure - The Welkin Suite stores information about it in one of the best places, in the special Static Resource on your Organization.
This means that once you enable this feature you will notice a new Static Resource in the org called 'TWS_Sync_Data' which is a zipped file with all the information about the structure of your project. Please do not change this file manually as this might result in unexpected issues while working with a project in TWS. In case if you do not need to use the project structure sync anymore - you can remove it.
Every time the project structure needs to be changed TWS performs the following actions:
- Retrieves 'TWS_Sync_Data' file from the org
- Checks if there were no changes in the 'TWS_Sync_Data' since the last time it was downloaded
- If everything is ok - saves the changes in the file
- Deploys the 'TWS_Sync_Data' file back to the Org
Such a list of actions will add a small overhead to the execution time of all the operations which are changing the project structure, however this is usually worth it to spend an extra second in rare use cases in order to save tens of seconds in very common operations like looking for a file in the Solution Explorer.
OK, but how to use it?
To start using the 'Project structure sync' option you can during the project creation or enable this for an already created project:
1. when you create a new TWS project you will see the additional step with the checkbox 'Synchronize project structure in the Salesforce org';
2. In you existing project there two ways to enable the option:
- in the context menu of a project in the Solution Explorer you will find the 'Enable project structure sync' item;
- in the Main Menu -> Project -> Enable project structure sync.
When you enable it, the 'SyncData' file has been created on your Org and you will see the appropriate message about this.
If the Org already contains this file, in other words, if the project structure was used on a TWS related to the same Organization and the file wasn't removed, there will be the appropriate message also. When you disable the synchronization of your structure with the server, the 'SyncData' file isn't removed from Salesforce automatically, however any changes in your project won't affect it. All this information will be shown for you in TWS. You can delete this file manually on your Org if this is not needed anymore.
As a side note, to save your time, this will be more comfortable to set a custom structure for a project (for the first time) and then enable the project structure sync. This caused by the process when any your changes are immediately synchronized with Salesforce and this can take some seconds. Here you can find the list of the actions which are related to the synchronization and some details about then in a frame of this functionality:
- Drag and drop: After the drop, the project structure is synced and the file is moved to the new location. In case the file with the same name already exists, the folder does not exist or the file location was changed - you will get a warning message asking you to pull first.
- Files deletion: After you delete the file, it is also deleted in your SF org, and the record about this file is removed from SyncData.
- Folders deletion: After you delete the folder, it is also deleted in your SF org. However, the folder you are deleting should not have any child files/folders. In such a case, and if there is no data about the target folder in SyncData (meaning it was deleted before), you will get a warning message.
- Files creation: Once the file is created, the information about this file is saved in SyncData. In case the folder in which you are creating the file no longer exist, you will get a warning message.
- Folders creation: Once the folder is created, this change is recorded in SyncData. If SyncData check shows that the parent folder was deleted, or the target folder already exists, you will be notified in a warning message.
As you see, you shouldn't worry about any conflicts that can appear during working simultaneously using the same project structure, The Welkin Suite for Mac handles them and you will get the appropriate information in that cases.
Additionally, we want to describe the changes in the pull process that are caused by the enabled project structure sync option. Pulling changes from the org is the only way for you to apply the changes in the structure which were made by your colleagues or yourself on other devices. As a part of the pull process we are downloading and analyzing SyncData information and then applying it to your project. So don't worry if something is moved to another folder after the pull.
What about cross-platform sync?
If you have an ability to use the same project structure on multiple computers, this shouldn't be a matter if Windows or Mac OS is used by your colleagues or which of them is installed on your another device. Your project structure related to any Org can be shared between both platforms. Currently, we are working to make this process perfect, so if you are faced with any issues, please contact us and we will handle them.
At the same time, The Welkin Suite team is working on polishing of the already existing functionality in the TWS for Mac.
The issue when the Code Coverage data was absent for your project that was caused by the changes in Salesforce tooling API patch 14.2 is solved and now you can continue work using this functionality.
Our developers started the investigating of the performance issues which appear in The Welkin Suite for Mac when working in the editors. Right now they have significantly decreased number of performance issues when scrolling Apex files in the editor, however we will continue working in this direction till all the issue would be resolved.
We have fixed the rare cases of TWS crash during the project creation that were caused by the timeout error. One more TWS crash that you could be faced with was present after opening and further closing of files from another project, for example, using the 'Recent files' list. This was applied for Trigger and Class files. This is solved also.
The ability to use the 'Compare' option from the context menu of files in the Local History Details panel is available for you beginning from the Beta 5 version of The Welkin Suite for Mac.
We have solved several issues which were caused by the broken internet connection. In particular, this is related to the test-run functionality when nothing happened after clicking 'Run Tests'. One more case was that you could not use the 'Quit' option - it was disabled when there was no connected network.
Several UI issues that were present in the Pull wizard and related to this functionality are fixed, and we have added the 'Pull from Salesforce' option to the 'Project' menu.
The full list of changes you can find at the end of this blog post.
Each time our Beta version for Mac is updated - it adds more tools to The Welkin Suite 's multi-tool. While we are full of ideas for the new updates, we value your input above all - as you are the end-user of our application. For this matter, we would love to hear what you think about our improvements, along with your suggestions! After all, it is our cooperation that will ultimately make The Welkin Suite for Mac the most comfortable home for your Salesforce code.
Full list of changes:
- Added the 'Project Metadata Components' dialog for adding and removing files in an existing project
- Implemented an ability to synchronize a project structure with Salesforce Organization.
- Fixed the issue when the Code Coverage data was absent
- Fixed the rare cases of TWS crash during the project creation
- Fixed the performance issue caused by scrolling in the opened file in the code editor
- Added an ability to use 'Compare' option from the context menu in the Local History Details panel
- Fixed the issue when nothing happened after clicking the 'Run tests' button if the network isn't connected
- Fixed the issue when the 'Quit' option was disabled if internet connection was broken
- Fixed the incorrect selecting a row with a file in the Pull wizard
- Fixed the issue when the Pull wizard appeared above all the other windows
- Added the 'Pull from salesforce' option to the Project menu
- Renamed the metadata types to unify them with the TWS for Windows version
- Fixed hanging of TWS on the pull process after changing the Organization for the project
- Fixed the issue when file wasn't reloaded automatically after merging conflicts during the pull from Salesforce
- Fixed the TWS crash after closing a trigger or class from another project
- Removed the 'Surround with' option
- Fixed the incorrect project saving after deleting a folder