{"id":471,"date":"2017-09-11T22:39:48","date_gmt":"2017-09-11T18:09:48","guid":{"rendered":"http:\/\/www.enhisecure.com\/isecureblog\/?p=471"},"modified":"2019-05-21T13:54:33","modified_gmt":"2019-05-21T09:24:33","slug":"sailpoint-implementation-transient-workflows-and-their-advantages","status":"publish","type":"post","link":"https:\/\/www.enhisecure.com\/isecureblog\/2017\/09\/11\/sailpoint-implementation-transient-workflows-and-their-advantages\/","title":{"rendered":"Sailpoint IdentityIQ&#8217;s Transient workflows and their advantages"},"content":{"rendered":"<p>Quicklinks are usually used for faster access of specific functionalities. Often a &#8220;no delays&#8221; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>where the start and end of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>happen within one single launch of quicklink shall be launched by quicklinks. Usually these kind of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflows <\/a>involve custom <a href=\"https:\/\/www.sailpoint.com\/\">Sailpoint <\/a>forms which would not be useful once the user stops using this quick link by navigating to some other page.<\/p>\n<p>Conventional <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>launches are <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialized <\/a>by storing the workflow cases as <a href=\"https:\/\/en.wikipedia.org\/wiki\/XML\">XML <\/a>objects. This leads to many work items and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>cases which are incomplete and hang around the <a href=\"https:\/\/www.sailpoint.com\/identity-management-software-identityiq\/\">Identity IQ<\/a> over long run. This might lead to performance issues and unwanted data accumulated inside <a href=\"https:\/\/www.sailpoint.com\/identity-management-software-identityiq\/\">IIQ<\/a>.<\/p>\n<p>This problem could easily be solved using the transient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflows<\/a>. The main feature of transient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflows <\/a>is that they don&#8217;t get <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialized<\/a>.<\/p>\n<p>Without the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>getting <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialized<\/a>, we have specific advantages.<\/p>\n<ol>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">Workflow <\/a>cases which are inactive specific to this <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>shall not be generated.<\/li>\n<li>Work items that are generated do not get <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialized <\/a>and as a result we don&#8217;t have any unwanted work items related to this <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>in user&#8217;s inbox.<\/li>\n<\/ol>\n<p>This would result in cleaner environment where we don&#8217;t have unnecessary data.<\/p>\n<p><strong>Extra perk with logging:<\/strong><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">Workflow <\/a>variables in <a href=\"https:\/\/www.sailpoint.com\/\">Sailpoint <\/a>are <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialized <\/a>in non-transient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflows<\/a>. This means that we can store only the objects that <a href=\"https:\/\/www.sailpoint.com\/\">Sailpoint <\/a>has capability to store as <a href=\"https:\/\/en.wikipedia.org\/wiki\/XML\">XML <\/a>object. <a href=\"https:\/\/logging.apache.org\/log4j\/2.x\/\">Log4J <\/a><a href=\"https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/Logger.html\">loggers <\/a>are very useful objects which are disqualified as <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>variables because of this restriction.<\/p>\n<p>As the transient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflows <\/a>do not try to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Serialization\">serialize <\/a>the objects referred by the variables, <a href=\"https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/Logger.html\">Logger <\/a>objects can also be stored in the workflow variables.<\/p>\n<p>This provides us the flexibility to maintain a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow <\/a>level <a href=\"https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/Logger.html\">logger <\/a>variable to use your custom <a href=\"https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/Logger.html\">logging<\/a>. Rather than instantiating the custom <a href=\"https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/Logger.html\">loggers <\/a>whenever we require them, we can simply use the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Workflow\">workflow<\/a> variable whenever required.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quicklinks are usually used for faster access of specific functionalities. Often a &#8220;no delays&#8221; workflow where the start and end of the workflow happen within one single launch of quicklink shall be launched by quicklinks. Usually these kind of workflows involve custom Sailpoint forms which would not be useful once the user stops using this [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,14,16],"tags":[10,29,11,12],"class_list":["post-471","post","type-post","status-publish","format-standard","hentry","category-identity-governance","category-sailpoint","category-technology","tag-identity-iq","tag-iiq","tag-sailpoint","tag-workflows"],"_links":{"self":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":4,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":478,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/posts\/471\/revisions\/478"}],"wp:attachment":[{"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enhisecure.com\/isecureblog\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}