Summary: This article explains how to use the Sync process to effectively work with protocols both on-prem and in the cloud.
The task protocols needed for working both on-prem and in the cloud can be difficult to manage, as often the same protocol needs to exist for both. You can copy protocols and components between the sandbox and your on-prem server, but this process is complicated and error-prone. A Sync process is available to automate this task.
Preparing Protocols for Sync
To prepare for a Sync operation:
- On your on-prem server, recreate the same folder hierarchy that exists on the sandbox. Typically, this would be set up as follows:
- For Project Data components and protocols - Protocols/ScienceCloud/<customer>/Project Data
- For web tasks - Protocols/ScienceCloud/<customer>/Web Tasks
- Place your on-prem components into this folder hierarchy. (Optionally) skip this step if the protocols are already in the hierarchy on the sandbox server.
- Edit each protocol to mark it as participating the Sync operation. Create two new parameters on the implementation tab of each top-level protocol as follows:
- Sync Version – This parameter should be an integer version number (starting with "1" is typical).
- Sync Comments –This parameter will contain comments about the last update to this component. We encourage you to include the date, your username, and company as part of the information. An example comment is "Initial version 2015/01/30 [David Rogers/Biovia]".
- Save the protocol with the new parameters.
Tip: If you have more than a few protocols, you can add these parameters to one protocol, then copy each parameter to the other protocols using the Shift+Right-click Copy Parameter option on the newly-added parameter on your first protocol. In the Implementation tab for the other protocols, use Shift+Right-click Paste Parameter to add it.
Editing Sync Protocols
After your protocols are in place and marked for sync'ing, you need to run the following protocol on your local host:
Protocols/Utilities/ScienceCloud/Project Data/Sandbox Sync/Sync Localhost and Sandbox
Tip: As the name implies, run this on your on-prem server. Be sure to provide your ScienceCloud credentials and the folder used for syncing (for example, Protocols/ScienceCloud/<customer>/Project Data).
- When you run this protocol, the sandbox and the localhost will be scanned, and the newest version of any sync'd component or protocol will be identified.
- If the newer version exists on the sandbox, that version will be copied to your localhost.
- If the newer version is on your on-prem server, that version will be copied into the sandbox.
- A report is generated at the end, with one item for each sync component or protocol, and a status that tells what operations, if any, were performed.
Editing Sync Protocols
Keep the following in mind when editing Sync protocols:
- If multiple users work with your protocols, run the Sync protocol before you start working on-prem to ensure you have the most up-to-date version of the protocols.
- Whenever you edit a sync'd protocol or component, you must update Sync Version and Sync Comments before you save the new version. This is required whether the editing is done on-prem or on the sandbox.
- When editing on-prem, run the Sync protocol after saving your changes locally. This will ensure that the sandbox always has the most up-to-date version.
- When editing on the sandbox, you do not need to run Sync. However, you still need to update Sync Version and Sync Comments before you save the new version. When you return to your on-prem server, you will need to run Sync to retrieve the most up-to-date versions from the sandbox.
Make a note of how best to use the following options:
Localhost to SandboxSandbox to Localhost
|When these options are disabled, a report will be generated, but no sync operations will be performed. This is useful for seeing what the protocol would do without making any changes.|
|Show No-Sync Components||Adds any component or protocols without Sync parameters to the output report. This is useful for identifying protocols that may have been overlooked during your Sync setup.|
|Delete Local Copies of Don't Sync Components||Allows you to automatically delete local copies of components and protocols that were listed in the Don't Sync List component on the sandbox server. Typically, these are components and protocols that were deleted or moved.|
Deleting or Moving Sync'd Protocols
If you move or delete a protocol in a folder hierarchy that was sync'd, add the full path of the original location to the list contained in the component Don't Sync List. This component is available in Protocols/ScienceCloud/(customer)/Project Data/Components. (If you don't have this component, let us know and we can provide you with a template.)
To add it to the list, open a new workspace and add the component to it. Make it into a copy. Then edit the value of the parameter Don't Sync List, and add the full path of the deleted component or protocol (or the original location of a moved component or protocol). Save the component. Return to your localhost and run the Sync Localhost and Sandbox protocol. If you have any local copies of these deleted or moved objects, they will be noted and (optionally) deleted from your local server if option Delete Local Copies of Don't Sync Components is set.