Skip to main content

Folks,


We are planning implementation of our first few workflows with K2 smartforms. These workflows will access some of their data from other internal systems such as SAP, Active Directory, and potentially other SQL Server/Oracle based systems. We understand how to connect to such systems and retrieve needed data. Submitting data to these systems is also understood (at lease conceptually). 


Our workflows will also produce data as a result of user data entry that does not belong to one or more existing systems mentioned above. Examples of this data include external vendor quotes, employee leave requests, etc. 


We are exploring our options on where to store the workflow data that does not belong to any of the existing systems. 


SmartBox sounds like something that can be used for creating local tables in K2 schema to host desired data. It is understood that SmartBox also has another use of aiding with composite SmartObject development but this use is likely not relevant for us at the moment. So we are only looking at SmartBox for data storage (and retrieval including reporting). 


Are there other options available? Is SmartBox based database for workflows belonging to different business departments/functions the best approach? What are the limitations of using SmartBox for medium to large number of workflows?


Another alternative is to create a custom (SQL Server) database that hosts needed tables belonging to one or more workflows. With this approach we will need to build our own Service and SmartObjects. Is this a better approach over using SmartBox?


Please share your thoughts.


Thank you!


Adnan

With regards to storing your line of business data its recommended not to use SmartBox.  I would recommend using a custom SQL database and use the K2 SQL Service Object to build SmartObjects around the stored procedures, views and tables that you can then easily access in your Smartforms and K2 processes.  From my perspective the main disadvantage of using Smartbox is that direct access or changes made at the database level to the tables, indexes, stored procedures and such are not surprisingly, unsupported since its a K2 managed database.  However, for line of business data that's typically the type of thing that you want to do.  You want to create stored procedures to encapsulate complicated business logic and create your own indexes and build reports from the data possibly using some third party tool.  None of those things would be supported by K2.


I typically recommend only using SmartBox for storing temporary data or if you already have an existing database that can't be extended for some reason Smartbox might be an alternative.


I hope this helps.


Tim


 


 


Tim,


Thank you very much and I was leaning towards a custom LOB database as well. One interesting point you mention is SmartObjects for stored procedure which I was not aware of. I will keep this option in mind as well.


Best regards,


Adnan


Hi Tim & Adnan,


I am having the same questions. We are building some apps in house where we are not using the Smartbox yet, but we have a couple of contractors who would like to use it. At this point I don't see any pros of creating more tables in the same K2 database specially for maintenance purposes. Right now we have 5 apps, but we are planning to development a lot more apps.


Do you know of any formal documentation from K2? or any other advantage that I'm missing from using the Smartbox.


Thanks in advance.


 


My impression of SmartBox is that



  1. It is a convenience way to store data without having to manually create tables or databases. This can be handy for analysts who are not familiar with the table creations.
  2. SmartBox is likely suited for data that simply needs to be 'dumped' somewhere (and retrieved) but the data growth and performance of SQL may not be of concern.

At the end of a day, SmartBox can provide a quick starting point but it is a database table so migrating to a custom tables as requirements evolve isn't a big issue either.


Obviously each business has its own constraints regarding changing designs once the projects are completed. 


Adnan


Reply