{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":33855,"path":"it-service-management/service-operations-workspace/modify-upcoming-section.md","title":"Configure the Upcoming section on the landing page","bundle":null,"doc_type":null,"release":"australia","body":"\n# Configure the Upcoming section on the landing page\n\nConfigure the data displayed in the **Upcoming** section.\n\n## Before you begin\n\nRole required: admin\n\n## About this task\n\nUsing an extension point, you can call the custom scripts to extend the functionality of the **Upcoming** section and also easily integrate customizations without having to alter the base code. For information about extension points, see [Creating and adding a scripted extension point](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/api-reference/web-services/impl-scripted-ext-pts-base-code.md).\n\n|Extension point|Description|\n|---------------|-----------|\n|sn\\_sow.UpcomingLinkProvider|Gets a list of upcoming task records \\(changes, incident, requests, and overdue tasks\\) for the same day and the next day.|\n\n## Procedure\n\n1.  Navigate to **All** &gt; **System Extension Points** &gt; **Scripted Extension Points**.\n\n2.  From the Extension Points list, select **sn\\_sow.UpcomingLinkProvider**.\n\n3.  Create an implementation using the **Create Implementation** related link or edit an implementation from the Implementations related list.\n\n    Following is an example of how to add a new announcement type for change tasks.\n\n    -   Name: MyCustomUpcomingLinkProvider\\_ChangeTask\n    -   Script:\n\n        ```\n         var PREFIX_QUERY = 'active=true^' + assignToQuery; \n        \n                var TODAY_QUERY = '^planned_start_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()'; \n        \n                var TOMORROW_QUERY = '^splanned_start_dateONTomorrow@javascript:gs.beginningOfTomorrow()@javascript:gs.endOfTomorrow()'; \n        \n                var encodedQuery = null; \n        \n                var listTitle = gs.getMessage(\"Change_Task\"); \n        \n                if ('beginningOfToday' == request.from && 'endOfToday' == request.to) { \n        \n                    encodedQuery = PREFIX_QUERY + TODAY_QUERY; \n        \n                } else if ('beginningOfTomorrow' == request.from && 'endOfTomorrow' == request.to) { \n        \n                    encodedQuery = PREFIX_QUERY + TOMORROW_QUERY; \n        \n                } else { \n        \n                    throw gs.getMessage(\"Unsupported date range\"); \n        \n                } \n        \n                var LIMIT = 10; \n        \n                var changeTaskGr = new GlideRecordSecure('change_task'); \n        \n                changeTaskGr.addEncodedQuery(encodedQuery); \n        \n                changeTaskGr.setLimit(LIMIT + 1); \n        \n                changeTaskGr.query(); \n        \n                var count = changeTaskGr.next() ? changeTaskGr.getRowCount() : 0; \n        \n                var items = []; \n        \n                if (count > 0) { \n        \n                    var msg = null; \n        \n                    if (1 == count) { \n        \n                        msg = gs.getMessage(\"{0} change task\", [count]) + \"\"; \n        \n                    } else { \n        \n                        if (count > LIMIT) { \n        \n                            msg = gs.getMessage(\"More than {0} change task(s)\", [LIMIT.toString()]) + \"\"; \n        \n                        } else { \n        \n                            msg = gs.getMessage(\"{0} change task(s)\", [count]) + \"\"; \n        \n                        } \n        \n                    } \n        \n                    var route = { \n        \n                        route: 'simplelist', \n        \n                        fields: { \n        \n                            table: changeTaskGr.getTableName() \n        \n                        }, \n        \n                        params: { \n        \n                            listTitle: listTitle, \n        \n                            query: changeTaskGr.getEncodedQuery() \n        \n                        } \n        \n                    }; \n        \n                    if (1 == count) { \n        \n                        route = { \n        \n                            route: 'record', \n        \n                            fields: { \n        \n                                table: changeTaskGr.getTableName(), \n        \n                                sysId: changeTaskGr.getUniqueValue() \n        \n                            } \n        \n                        }; \n        \n                    } \n        \n                    var item = { \n        \n                        label: msg, \n        \n                        type: 'route', \n        \n                        value: route, \n        \n                        \"startsWith\": { \n        \n                            \"icon\": \"change-outline\", \n        \n                            \"align\": \"center\" \n        \n                        }, \n        \n                        \"opensWindow\": false, \n        \n                        \"configAria\": {}, \n        \n                        \"download\": false \n        \n                    }; \n        \n                    items.push(item); \n        \n                } \n        \n                return items; \n        ```\n\n4.  Select **Update** and save the script include record.\n\n5.  Create a task to verify if it is displayed as an upcoming task.\n\n    For example, create a change task.\n\n    1.  From the **All** menu, navigate to **change\\_task.list**.\n\n    2.  Select **New**.\n\n    3.  Specify the required information.\n\n        -   Short Description\n        -   Description\n        -   Planned start date. You can specify today's date.\n        -   Assigned to. Specify the user for whom the upcoming task should appear.\n    4.  Select **Submit**.\n\n    5.  Verify that the task appears in the **Upcoming** section of the Service Operations Workspace landing page for the selected user.\n\n\n**Parent Topic:**[Landing page configurations in Service Operations Workspace for ITSM](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-service-management/service-operations-workspace/landing-page-configurations-sow-itsm.md)\n\n"}}