1. Open a new K2 SmartObject Project in Visual Studio. This will open a blank SmartObject with the prepopulated methods.
2. At the top, right above where you can name the SmartObject, click 'Advanced Settings'. Go to the SmartObject Methods and select 'Remove All' to delete all the existing methods.
3. Still in the SmartObject Methods section, select 'Add' to add a new method. When the wizard pops up check the Advanced Mode box and select Next. This will be our advanced list method that pulls from two separate SmartObject methods.
4. Name the method and click next and next again. In the Service Object Method screen, click 'Add'.
5. Click the ellipse next to the Service Object Method box which will bring up the context browser. Expand the ServiceObject Server(s) node and find the Service Object of the primary (SQL) SmartObject. Expand that to get the available methods and select the List method.
6. It should now be asking you to configure the Input and Return properties for the method. Select 'Create All' and click OK to continue.
7. You should now see the properties of the first SmartObject show up in the background. Click Add again on the Add Service Object Method wizard as before, expand the ServiceObject Server(s) and drill down to the secondary (Oracle) SmartObject Service Object.
8. Choose the List method again and select 'Create All' to bound the input and return properties. Click OK and you should now see the remaining properties show up in the background. Click Next.
9. Now we're going to Setup the Service Method links to tie the two ID properties together. Click 'Add' at the top.
10. Choose the primary SmartObject Service Object Method, keep the link type to 'Matching values in both objects'. Then choose the secondary SmartObject Service Object Method in the bottom drop down.
11. You should see the primary (SQL) SmartObject properties in the box, select the ID property and select 'Assign'. From the drop down choose the ID property of the secondary (Oracle) and click OK. This will bind the ID properties together.
12. Click OK and Finish. Deploy the project and you will now have a composite SmartObject that can be used anywhere a SmartObject can be used.