Issue

You create a K2 solution that contains a composite SmartObject linked to a SharePoint list/library and a SharePoint Management / Taxonomy service object. You use K2 Package and Deployment to create a package of this solution. When you deploy the solution to a different site collection, you are unable to select the Use Existing Version action on the Management / Taxonomy service object.  The package and deployment tool wants to create a new service object, but it exists in the target environment.

Cause

This is a known issue when you include a composite SmartObject that contains a method with a SharePoint site Management/Taxonomy service object and a List/Library service object from the same site in a package. When deploying this SmartObject to another site collection, the package and deployment tool sees the service object as new in the target environment and shows the action to create it even though it already exists. You don’t have the option to select the Use Existing Version action.

To explain this behavior, see the example and configurations below. You have a Site Collection (Site A) and a custom list (List A). This is the source environment.

Use K2 for SharePoint to integrate and create a K2 Application. The solution contains List A and List A Attachments SmartObjects.

Create a new composite SmartObject called Comp SMO A as shown below.

In the above example, the composite SmartObject contains a method (Get User) with a SharePoint site Management service object (User: Get User) and a List service object (List A: Create List Item) from the same site (portal.denallix.com – sites – sitea).

To do this, add a SmartObject method that contains a method binding to a Management / Taxonomy Service Object method such as Site A > Management > User > Get User binding. Then add another service object method that contains method bindings to a SharePoint list method such as Site A > List A > Create List Item binding.

Use K2 Package and Deploy and create a package of the solution and include the list and the composite SmartObject.

Deploy the package to the target Site Collection (Site B) and select to Update an existing solution.

Notice the action for the User service object is Create New Service Object. This means package and deployment shows that the User service object does not exist in the target environment and needs to create it, but it already exists. The tool does not allow you to select the Use Existing Version action when deploying this package to the target environment either.

The same issue occurs when you use an Advanced SmartObject mapped to one of the SharePoint Management/Taxonomy service objects on a specific site. The Create New Service Object action shows in package and deployment rather than the Use Existing Version action.

Workaround

There is currently no workaround for this known issue. The package deployment will not create a new service object in the database; this means that you ignore the conflict and continue deploying the package.