{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":14551,"path":"field-service-management/contractor-marketplace-cmpnts.md","title":"Field Service Marketplace components","bundle":null,"doc_type":null,"release":"australia","body":"\n# Field Service Marketplace components\n\nSeveral types of components are installed with the activation of the Field Service Marketplace feature including tables, roles, system properties, business rules, and script includes.\n\n## Tables\n\nField Service Marketplace adds the following tables:\n\n<table id=\"table_vrp_5lq_21c\"><thead><tr><th>\n\nTable\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nMarketplace engagement method\\[marketplace\\_engagement\\_method\\]\n\n</td><td>\n\nThis table has the basic rules for engaging with contractors. The engagement methods define the ways contractors can respond to the marketplace requests.\n\n</td></tr><tr><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nThis table establishes the relationship between engagement method and work order tasks. This table is populated by the dispatcher with all relevant fields to progress the request.\n\n</td></tr><tr><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nThis table maintains distinct records for each contractor, offering the dispatcher the capability to choose contractors permitted to participate in a marketplace request.\n\n</td></tr><tr><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nThis table is designated to gather responses from all contractors regarding their pricing, as well as the intended start and completion dates for the task.\n\n</td></tr><tr><td>\n\nEligible engagement method\\[eligible\\_engagement\\_method\\]\n\n</td><td>\n\nThis table defines the list of eligible engagements for a marketplace task filter.\n\n</td></tr></tbody>\n</table>## Roles\n\nField Service Marketplace adds the following roles:\n\n|Role|Description|\n|----|-----------|\n|sn\\_mktplace\\_core.mktplace\\_admin|Administrator role can create marketplace engagement methods.|\n|sn\\_mktplace\\_core.mktplace\\_requestor|Requestor role can push tasks to the marketplace.|\n|sn\\_mktplace\\_core.mktplace\\_fulfiller|Fulfiller role can respond to marketplace requests.|\n\n## System properties\n\nField Service Marketplace adds the following system properties:\n\nThe following table lists the system properties that are required to set up Field Service Marketplace. Navigate to **All**System Properties list\n\n<table id=\"table_xr5_hwt_g1c\"><thead><tr><th>\n\nSystem property\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nsn\\_fsm\\_mktplace.maximum\\_number\\_of\\_contractors\n\n</td><td>\n\nMaximum number of contractors to fetch and show for a Marketplace request. -   **Type**: Integer\n-   **Default value**: 10\n\n</td></tr><tr><td>\n\nsn\\_fsm\\_mktplace.use\\_playbook\\_experience\\_for\\_marketplace\n\n</td><td>\n\nProperty to use playbook experience for marketplace.-   **Type**: true/false\n-   **Default value**: true\n\n</td></tr><tr><td>\n\nsn\\_fsm\\_mktplace.wot\\_fields\\_to\\_restrict\\_update\n\n</td><td>\n\nComma separated fields to restrict update when Work Order Task is pushed to marketplace. 1.  **Type**: String\n2.  **Default values**: location,asset,work\\_type,estimated\\_work\\_duration,estimated\\_travel\\_duration,estimated\\_end,expected\\_start,expected\\_travel\\_start,window\\_start,window\\_end,schedule\\_lock\n\n</td></tr></tbody>\n</table>## Task Filters\n\nField Service Marketplace adds the following task filters:\n\n<table id=\"table_fll_gv4_zbc\"><thead><tr><th>\n\nTask Filter\n\n</th><th>\n\nConditions\n\n</th><th>\n\nCriterion\n\n</th><th>\n\nFunction\n\n</th></tr></thead><tbody><tr><td>\n\nMarketplace tasksEnsure that the Field Service Marketplace plugin is active. For more information, see [Activate Field Service Marketplace](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/workforce-optimization-for-field-service/activate-contractor-marketplace.md).\n\nDemo data is provided with this plugin.\n\n</td><td>\n\n-   State is pending dispatch\n-   Location is populated\n\n</td><td>\n\nMatching skills of contractorsDistance between task and contractors\n\nMatching mandatory skills of contractors\n\n</td><td>\n\nEligible for marketplace assignment.\n\n</td></tr></tbody>\n</table>## Business rules\n\nField Service Marketplace adds the following business rules:\n\n<table id=\"table_tqb_24q_21c\"><thead><tr><th>\n\nBusiness rule\n\n</th><th>\n\nTable\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nRestrict order change marketplace task\n\n</td><td>\n\nWork Order\\[wm\\_order\\]\n\n</td><td>\n\nBlocks suspension of a work order when one of its tasks is pushed to the marketplace.\n\n</td></tr><tr><td>\n\nRestrict fields for marketplace task\n\n</td><td>\n\nWork Order Task\\[wm\\_task\\]\n\n</td><td>\n\nBlocks updates to certain work order task fields.\n\n</td></tr><tr><td>\n\nCancel mp request on task cancellation\n\n</td><td>\n\nWork Order Task\\[wm\\_task\\]\n\n</td><td>\n\nCancels any open marketplace request when the work order task is cancelled.\n\n</td></tr><tr><td>\n\nRestrict marketplace task with assigned\n\n</td><td>\n\nWork Order Task\\[wm\\_task\\]\n\n</td><td>\n\nBlocks a work order task with an assignment group populated and marketplace task set to true.\n\n</td></tr><tr><td>\n\nRestrict updates to marketplace flag\n\n</td><td>\n\nWork Order Task\\[wm\\_task\\]\n\n</td><td>\n\nDisables changing marketplace task flag of the work order task to false.\n\n</td></tr><tr><td>\n\nDisable changes when open request exists\n\n</td><td>\n\nMarketplace engagement method\\[marketplace\\_engagement\\_method\\]\n\n</td><td>\n\nDisallows changes to the engagement method when an open marketplace is using it.\n\n</td></tr><tr><td>\n\nDisable cost/time update from list\n\n</td><td>\n\nMarketplace engagement method\\[marketplace\\_engagement\\_method\\]\n\n</td><td>\n\nValidates edits of time and cost fields on the marketplace engagement method table list view.\n\n</td></tr><tr><td>\n\nCancel all assignments and responses\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nCancels marketplace assignments and inactivate marketplace responses when a marketplace request is canceled.\n\n</td></tr><tr><td>\n\nValidate request insertion\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nBlocks the creation of a new marketplace request when an open request exists.\n\n</td></tr><tr><td>\n\nSet assignments to timeout on close\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nUpdates the state of marketplace assignment records when a marketplace request is closed.\n\n</td></tr><tr><td>\n\nCreate MP Assignment records in draft\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nCreates marketplace assignments in the draft state when a marketplace request is created.\n\n</td></tr><tr><td>\n\nCheck end time is more than start\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nValidates start and end times of the marketplace request.\n\n</td></tr><tr><td>\n\nCancel old flow on request end update\n\n</td><td>\n\nMarketplace request\\[marketplace\\_request\\]\n\n</td><td>\n\nCancels the old flow responsible for tracking the request end time, when the end time is updated.\n\n</td></tr><tr><td>\n\nValidate assignment insertion\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nBlocks the creation of a new assignment record for a request that isn’t open. Blocks duplicate assignment records for an open request.\n\n</td></tr><tr><td>\n\nInactivate responses when withdrawn\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nIf withdrawn, inactivates response of contractor.\n\n</td></tr><tr><td>\n\nCheck close condition\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nHandles closing marketplace request and flow data records based on its close condition.\n\n</td></tr><tr><td>\n\nUnaward assignments when task is awarded\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nWhen a task is awarded to a contractor, other contractors' assignment records are marked unawarded.\n\n</td></tr><tr><td>\n\nQuery on Assignment for Task\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nQuery business rule on marketplace assignment table\n\n</td></tr><tr><td>\n\nAssigned from marketplace\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nWhen a task is awarded to a contractor, closes the request and updates the work order task with the necessary details. Updates the work order task scheduling method to marketplace.\n\n</td></tr><tr><td>\n\nOverride wait duration on rejection\n\n</td><td>\n\nMarketplace assignment\\[marketplace\\_assignment\\]\n\n</td><td>\n\nFor a progressive push request, this BR will override the set wait duration when the current fulfiller receiving the bid, rejects the request\n\n</td></tr><tr><td>\n\nDisable negative in response duration\n\n</td><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nDisables insertion of responses with negative duration and checks response's start and end with work order task window start and end.\n\n</td></tr><tr><td>\n\nUpdate Assignment to accept\n\n</td><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nWhen a response is received, update the assignment record state of that contractor to accepted.\n\n</td></tr><tr><td>\n\nValidate response insertion\n\n</td><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nBlocks insertion of response if the work order task's \"Is Fixed Window\" flag is true and the response's start and end don’t fall within the work order task window. Blocks creation of responses for requests that aren’t open. Inactivates the previous response when a new response is received from the contractor.\n\n</td></tr><tr><td>\n\nQuery on Response for Task\n\n</td><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nQuery business rule on marketplace response table.\n\n</td></tr><tr><td>\n\nEvaluate response\n\n</td><td>\n\nMarketplace response\\[marketplace\\_response\\]\n\n</td><td>\n\nThis BR will help in evaluating the response received for a request, provided the selected engagement method has a response evaluation flow.\n\n</td></tr><tr><td>\n\nSet group resource type for contractors\n\n</td><td>\n\nTask Filter\\[dynamic\\_schedule\\_task\\_filter\\]\n\n</td><td>\n\nThis BR will set the resource type to sys\\_user\\_group for contractor or marketplace task filters.\n\n</td></tr><tr><td>\n\nValidate eligible engagement changes\n\n</td><td>\n\nEligible engagement method\\[eligible\\_engagement\\_method\\]\n\n</td><td>\n\nThis BR will validate any insertion or updates made to the eligible engagement method table.\n\n</td></tr></tbody>\n</table>## Script includes\n\nField Service Marketplace adds the following script includes:\n\n|Script include|Description|\n|--------------|-----------|\n|MarketplaceCoreUtil|Contains util methods used for generic Marketplace core workflows.|\n|FSMMarketplaceUtil|Contains util methods used for FSM specific workflows of Marketplace.|\n|FSMMarketplacePlaybookUtil|Contains util methods used for Playbook workflow of Marketplace.|\n|FieldServiceMarketplaceConstants|Holds constants.|\n|MarketplaceCoreAjaxHelper|Contains util methods used in Marketplace Core client-side scripts.|\n|FSMMarketplaceAjaxHelper|Contains util methods used in FSM Marketplace client-side scripts.|\n|FSMMarketplaceCspUtil|Util file that holds methods used in Playbook's CSP.|\n|FieldServiceMarketplaceDaoBase|The base dao for field service marketplace entities. All the entities can extend this class to re-use the common functionalities|\n|FieldServiceMarketplaceEligibleEngagementsDao|Contains all the queries and insertion made on eligible\\_engagement\\_method table|\n|MarketplaceTaskProcessorWOTImpl|Work order task implementation for MarketplaceTaskProcessorExtPoint|\n|MarketplaceTaskProcessorBase|This class contains default implementation for MarketplaceTaskProcessor. It extends MarketplaceTaskProcessorPicker to choose the correct implementation of the MarketplaceTaskProcessorExtPoint.|\n|MarketplaceTaskAssignment|This class will contain custom implementations for MarketplaceTaskAssignment. This will be the class that will be used for making any method invocations|\n|MarketplaceTaskAssignmentBase|This class contains default implementation for MarketplaceTaskAssignment. It extends MarketplaceTaskAssignmentPicker to choose the correct implementation of the MarketplaceTaskAssignmentExtPoint.|\n|FieldServiceMarketplaceEngagementDao|Contains all the queries and insertion made on marketplace\\_engagement\\_method table|\n|FieldServiceWorkManagementDao|Contains all the Work Management related queries|\n|MarketplaceEntityValidator|This class will contain custom implementations for MarketplaceEntityValidator. This will be the class that will be used for making any method invocations|\n|MarketplaceEntityValidatorBase|This class contains default implementation for MarketplaceEntityValidator. It extends MarketplaceEntityValidatorPicker to choose the correct implementation of the MarketplaceEntityValidatorExtPoint.|\n|MarketplaceTaskProcessor|This class will contain custom implementations for MarketplaceTaskProcessor. This will be the class that will be used for making any method invocations|\n|FieldServiceMarketplaceResponseDao|Contains all the queries and insertion made on marketplace\\_response table|\n|MarketplaceDynamicSchedulingUtil|This is a util containing methods to be shipped when dynamic scheduling is installed along with marketplace|\n|MarketplaceEntityValidatorAssignmentImpl|Marketplace Assignment Implementation for MarketplaceEntityValidatorExtPoint|\n|FieldServiceMarketplacePlaybookDao|Contains all the queries and insertion made on all playbook related tables|\n|MarketplaceTaskAssignmentWOTImpl|Work order task implementation for MarketplaceTaskAssignmentExtPoint|\n|FieldServiceMarketplaceRequestDao|Contains all the queries and insertion made on marketplace\\_request table|\n|MarketplaceEntityValidatorRequestImpl|Marketplace Request Implementation for MarketplaceEntityValidatorExtPoint|\n|MarketplaceEntityValidatorResponseImpl|Marketplace Response Implementation for MarketplaceEntityValidatorExtPoint|\n|FieldServiceMarketplaceAssignmentDao|Contains all the queries and insertion made on marketplace\\_assignment table|\n|FSMMarketplaceGlobalUtil|Script Includes containing utils to be run at a global scope for marketplace module|\n|MarketplaceTaskAssignmentPicker|Script include to choose the implementation of the MarketplaceTaskAssignmentExtPoint|\n|MarketplaceCoreExtPointUtil|Utililty used by the marketplace module to retrieve extension points|\n|MarketplaceTaskProcessorPicker|Script include to choose the implementation of the MarketplaceTaskProcessorExtPoint|\n|MarketplaceCoreConstants|Script Include to hold the constants for marketplace core plugin|\n|MarketplaceEntityValidatorPicker|Script include to choose the implementation of the MarketplaceEntityValidatorExtPoint|\n\n**Parent Topic:**[Components installed with additional plugins for Field Service Management](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/field-service-management/components-inst-additional-plugin.md)\n\n"}}