{"id":31104,"date":"2026-01-06T08:05:46","date_gmt":"2026-01-06T08:05:46","guid":{"rendered":"http:\/\/kovaion-new1.local\/bi-schedule-trigger-dynamic-job-scheduling\/"},"modified":"2026-01-06T08:12:32","modified_gmt":"2026-01-06T08:12:32","slug":"bi-schedule-trigger-dynamic-job-scheduling","status":"publish","type":"post","link":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/bi-schedule-trigger-dynamic-job-scheduling\/","title":{"rendered":"BI Schedule Trigger\u2013Dynamic Job Scheduling"},"content":{"rendered":"<h1>Purpose<\/h1>\n<ul>\n<li>How often have you seen the BI Jobs run into Skipped, then you found out that it is because there is not data returned to it.<\/li>\n<li>Would not be nice if we have a feature in system which will make the system to schedule a Job only when it is needed. For instance, only when there is a pay slip eligible for the employee or only when an escalation reminder must be sent on deadline failing (Please contact the Kovaion Cloud help desk to seek the guidance on how to enable any Reminders, Escalations or generate letters).<\/li>\n<li>It can be leveraged through Trigger option in BI Reports in Fusion HCM Cloud.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1>Use of Event triggers to control scheduler\u2019s<\/h1>\n<p>By using the event triggers, we can schedule the reports only when required, in other words only when the report has some data.<\/p>\n<p>Detail steps on how to enable it for any BI report is explained below.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step1<\/strong>: Go to\u00a0<strong>Navigator-&gt;Tools-&gt;Reports and Analytics<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9253\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1037px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image.png 1037w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-980x597.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-480x293.png 480w\" width=\"1037\" height=\"632\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step2:<\/strong>\u00a0Then will be land upon\u00a0<strong>Reports and Analytics\u00a0<\/strong>page, Click on\u00a0<strong>Browse Catalog<\/strong>\u00a0as shown below<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9254\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-1.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1362px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-1.png 1362w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-1-1280x366.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-1-980x280.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-1-480x137.png 480w\" width=\"1029\" height=\"294\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step3:<\/strong>\u00a0Next go to\u00a0<strong>New-&gt;Data Model<\/strong> as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9255\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-2.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1366px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-2.png 1366w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-2-1280x579.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-2-980x443.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-2-480x217.png 480w\" width=\"1046\" height=\"473\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step4:<\/strong>\u00a0Then will be land upon\u00a0<strong>Data Model<\/strong> task pane, next click on + icon and choose the source to create a new data model as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9256\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-3.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1360px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-3.png 1360w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-3-1280x517.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-3-980x396.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-3-480x194.png 480w\" width=\"1047\" height=\"423\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step5:\u00a0<\/strong>write SQL query as per requirement.<\/p>\n<p><strong>For example:<\/strong><\/p>\n<p>To fetch the list of employees whose <strong>\u2018Last Working Day\u2019<\/strong>\u00a0is current day in an organization.<\/p>\n<p>1.For achieving above case, we need to fill the following details as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6109\" src=\"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-content\/uploads\/2026\/01\/BI-trigger-Trigger-image-1-300x149.png\" alt=\"BI Schedule Trigger\u2013Dynamic Job Scheduling -1\" width=\"1059\" height=\"526\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>2. Next click on\u00a0<strong>ok<\/strong>, go to\u00a0<strong>data and view<\/strong>\u00a0the result as shown below<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9258\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-5.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1364px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-5.png 1364w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-5-1280x607.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-5-980x465.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-5-480x228.png 480w\" width=\"1060\" height=\"503\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>3. Then Save the\u00a0<strong>Data Model\u00a0<\/strong>as shown below<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9259\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-6.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1360px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-6.png 1360w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-6-1280x536.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-6-980x411.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-6-480x201.png 480w\" width=\"1064\" height=\"445\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step6:<\/strong>\u00a0Next in the Data Model task pane, we need to click on Event Triggers under Properties as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9260\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-7.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1355px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-7.png 1355w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-7-1280x438.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-7-980x336.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-7-480x164.png 480w\" width=\"1055\" height=\"361\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step7:\u00a0<\/strong>Next, we need to click on the (+) icon and fill in the following details as shown below.<\/p>\n<table style=\"height: 109px;\" width=\"683\">\n<tbody>\n<tr>\n<td><strong>Attribute Name<\/strong><\/td>\n<td><strong>Attribute Value<\/strong><\/td>\n<\/tr>\n<tr>\n<td>*Name<\/td>\n<td>Schedule Trigger (Could be any name)<\/td>\n<\/tr>\n<tr>\n<td>Type<\/td>\n<td>Schedule<\/td>\n<\/tr>\n<tr>\n<td>Language<\/td>\n<td>SQL Query (Gets Auto-Populated when Type is Schedule)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9261\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-8.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1290px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-8.png 1290w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-8-1280x324.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-8-980x248.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-8-480x122.png 480w\" width=\"1061\" height=\"269\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step8:\u00a0<\/strong>Also, for each trigger we do have other fields too which are on the lower UI Pane as shown below.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Attribute Name<\/strong><\/td>\n<td><strong>Attribute Value<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Options<\/td>\n<td>Checked (caches the result of Trigger Query)<\/td>\n<\/tr>\n<tr>\n<td>Data Source<\/td>\n<td>ApplicationDB_HCM<\/td>\n<\/tr>\n<tr>\n<td>SQL Query<\/td>\n<td>Could be based on requirement<\/p>\n<p>E.g.: Select Sysdata as Date from dual<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6110\" src=\"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-content\/uploads\/2026\/01\/BI-trigger-Event-Trigger-2-300x168.png\" alt=\"BI Schedule Trigger\u2013Dynamic Job Scheduling 2\" width=\"1082\" height=\"606\" \/><\/p>\n<p>Here we are using SQL query (written below) to fetch the list of employees who\u2019s\u00a0<strong>Last working day<\/strong>\u00a0is Current day in an organization.<\/p>\n<p>Select distinct ppnf. display_name, ppos.ACTUAL_TERMINATION_DATE<\/p>\n<p>from<\/p>\n<p>per_person_names_f ppnf,<\/p>\n<p>per_periods_of_service ppos,<\/p>\n<p>where<\/p>\n<p>ppnf. person_id = ppos. person_id \/* Using key field to be mapping both tables *\/<\/p>\n<p>and trunc (ppos. ACTUAL_TERMINATION_DATE) = trunc(sysdate) \/* Condition to check last working<\/p>\n<p>day of employee is current day or not if yes then data returns else returns no data *\/<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step9:\u00a0<\/strong>Now we already have a Schedule Trigger Defined and we will proceed to the next step where we will try to use this schedule. For this we will take an already existing BIP Report as shown below.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9263\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-10.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1364px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-10.png 1364w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-10-1280x515.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-10-980x394.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-10-480x193.png 480w\" width=\"1106\" height=\"445\" \/><\/strong><\/p>\n<p><strong>Step10:\u00a0<\/strong>Try to schedule the same, for that We need to fill the populate details on the Schedule Tab and click on submit as shown below.<\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9264\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-11.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1366px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-11.png 1366w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-11-1280x575.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-11-980x440.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-11-480x216.png 480w\" width=\"1117\" height=\"502\" \/><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step11:<\/strong>\u00a0Next will see the status of the report which earlier scheduled as shown below<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9266\" src=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-13.png\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1364px, 100vw\" srcset=\"https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-13.png 1364w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-13-1280x525.png 1280w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-13-980x402.png 980w, https:\/\/www.kovaion.com\/kovaioncom_2020\/wp-content\/uploads\/2019\/05\/word-image-13-480x197.png 480w\" width=\"1130\" height=\"463\" \/><\/p>\n<p><strong>Note:<\/strong>\u00a0If data is returned from the trigger SQL query, then the report job status is \u2018Success\u2019. If data is not returned from the trigger SQL query, the report job is \u2018Skipped\u2019.<\/p>\n<h1><\/h1>\n<h1>Advantages<\/h1>\n<ul>\n<li>Maintains clear History of the JOB. Helps the developers to probe in future without going through all the unwanted schedulers.<\/li>\n<li>Scheduler will post the output file only when there is any data.<\/li>\n<\/ul>\n<p><strong>Author<\/strong><br \/>\nKishore Kolluru<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Purpose How often have you seen the BI Jobs run into Skipped, then you found out that it is because there is not data returned to it. Would not be nice if we have a feature in system which will make the system to schedule a Job only when it is needed. For instance, only [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":25437,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-31104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/posts\/31104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/comments?post=31104"}],"version-history":[{"count":1,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/posts\/31104\/revisions"}],"predecessor-version":[{"id":31105,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/posts\/31104\/revisions\/31105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/media\/25437"}],"wp:attachment":[{"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/media?parent=31104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/categories?post=31104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stage.kovaionplay.com\/stage-kovaion\/wp-json\/wp\/v2\/tags?post=31104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}