---
sourceDocument: Australia Telecom Service Operations Management
sourceDocumentLink: https://www.servicenow.com/docs/r/australia/telecom-service-ops

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Telecom Service Operations Management

ft:clusterId :

    - tsom

bundleId :

    - tsom

workflow :

    - Customer and Industry


---

# Customize scripted extension points

# Customize scripted extension points {#ariaid-title1}

Release version: Australia  
Updated December 19, 2024  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read  
Customize how license expiration dates for Fortinet devices are stored on CIs by implementing scripted extension points.

## Before you begin

Service Graph Connector for Fortinet must be installed. For instructions, see [Configure a Fortinet SD-WAN Service Graph Connector](https://www.servicenow.com/docs/SB5S4xhX~vNCwxtI_KFbVw "Configuring the Fortinet SD-WAN Service Graph Connector (SGC) enables you to import physical inventory data from FortiManager into the Configuration Management Database (CMDB) of your ServiceNow instance.").

Role required: tsom_visibility_admin

## About this task

By default, Fortinet
SGC stores license expiration dates as separate CI key-value pairs for each device, using the naming convention `license_expiration_date_`<var class="keyword varname">SERVICE_CODE</var>. You can
customize this behavior using scripted extension points to implement alternative storage logic, such as storing only the earliest expiration date across all devices.

## Procedure

1. Navigate to AllSystem Scripted Extension PointsScripted Extension Points.
2. Search for Fortinet in the Extension Points search field.
3. From the API Name search results list, select sn_sgc_fortinet.FortinetCustomizedContractParsing.
4. Select the Create implementation related link.
5. In the Script field, modify the `buildLicenseAttributes` function to return an array of `{key, value}` objects containing the CI key-value pairs you need to store.  
   For example, you might want to store only the earliest expiration date across all devices instead of one key-value pair per device. The script would loop through `contractItems` and find the minimum date value. It would then return it as a single object: `{ key: "license_expiration_date", value: "<earliest_date>" }`.
6. Run your implementation before the default by setting the Order field to a value less than <kbd class="ph userinput">100</kbd>.  
   The default implementation has an order of 100; implementations with a lower order number execute first and take precedence.
7. Select Update.

## Result

Your custom implementation is saved and active. The next time Fortinet
SGC discovers devices, your script runs first and stores the license key-value pairs you defined on the relevant CIs. This overrides the default per-device key-value pairs behavior.
**Related topics**   

* [Extension points](https://www.servicenow.com/docs/r/governance-risk-compliance/grc-common-functions/extension-points.html)
* [Create a scripted extension point](https://www.servicenow.com/docs/r/api-reference/web-services/create-scripted-ext-pt.html)

*[\>]: and then


