This is a common issue when moving your SmartObjects between environments (K2 Servers) with K2 blackpearl/blackpoint.
Basically the SmartObjects are tied to a GUID of the Service Instance on the server where you first developed the SmartObject. When you go to the new environment and recreate the Service Instance a new GUID is automatically created and of course is unique. So when you move your SmartObject to the new environment and try to publish the SmartObject it looks for the GUID of the original Service Instance which in your case is '55a46811-82f3-4d5c-abc2-7ffd54d8c0ca' and can’t find it.
The workaround that I use to match up the Service Instance GUIDs between the different environments is the Service Instance Synchronizer tool from blackmarket which you can download at http://www.k2underground.com/groups/service_instance_synchronizer_utility/default.aspx . There is even a video which shows how to use it. After synchronizing the GUIDs just redeploy your SmartObject and it should now work.
Thanks Timkn
GUIDs have now been synchronized and SmO is working as required. Besides, the other query in my last post was, "how to deploy/install SmO and Prc on destination K2 server without Visual Studio?" as it is on the live network and hence strictly isolated from development tools e.g. Visual Studio. (As we deploy a web service i.e. copy .dll and .asmx, there should be a similar way of deploying SmO and Prc like copying .dll and .sodx/kprx somewhere)
Any idea about that?
Abdul
Yes, K2 blackpearl/blackpoint does provide that capability using the Msbuild utility for deploying both K2 processes as well as SmartObjects to your production K2 server. Basically, first ensure that your production environment library is configured correctly in development. Then in K2 Studio/Visual Studio you create a deployment package for your project which would include your SmartObjects. You then copy the deployment package folders to the new enviornment and use the msbuild command line which would look similar to the following. :
C:WindowsMicrosoft.NETFramework64v2.0.50727msbuild.exe "C:UsersAdministratorDocumentsK2StudioTestingobjDebugDeploymentTesting.msbuild" /p:Environment=production
Also Take a look in the documentation under:
K2 Studio > Deployment Package > Introduction
Application software creates environments that are isolated from the outside world. In a working environment, two similar environments may run side by side isolated from each other for security, development or performance reasons.
In many instances a development environment and a production environment will exist side by side, even on different physical networks within the same company or organization. The K2 Deployment Package provides a vehicle to redeploy K2 Packages between K2 blackpearl instances without affecting the instance or requiring the use of the instances resources.
Making use of this feature enables the developer to move their K2 Projects between environments to different servers simply and cleanly since the deployment feature packages all the process resources into a neat, compact redeploy able package.
See the menu below for more information
Create Deployment Package
- How to create a deployment package
Working With the Deployment Package
- Deployed Executable
- Individually Deployed Processes
- Working with the executables
Thanks a lot Timkn
Your post helped me a lot in solving this problem. Now I have deployed the SmO as well as Process to the destination server. The steps I followed were:
1) Build deployment package from K2 for Visual Studio in source server. 2) Copy package folder to destination server. 3) Install (If not already installed) MSDeploy on destination server. 4) Change the web.config settings in the pasted package folder according to destination environment. 5) Run the msdeploy.cmd file in the package folder with required attributes to deploy the package.
thanks again
Hi Timkn
I want to deploy my smart object that should use the Environment Field settings that are already set on destination server. I want to use these settings with my smart object. Now how do I deploy my smart object to achieve it (without specifying a property group from msbuild.cmd file) please?
Thanks
Should be as simple as modifying the .msbuild file under the Deployment folder of your deployment package.
There's the XML section in Environment section that you are switching between, it should list all the available variables - if not, just add them and remove ones you don't need.