-
Proposal:
Hide
-Define a <Function> element used to define the shape of a function in the schema. The function definition defines parameters, return values, and may specify an entitysetpath.
-Functions defined in the model are available for use by referencing the model. You do not need to "import them" into your container
-The only time you use a functionimport is if you want to expose a function as a top-level function in your entitycontainer, or bind a function to a specific entityset in your entitycontainer. Note that, if the return set is relative to the input set you can define this in the entitysetpath in the <Function> definition of the model, then you don't need to import it unless you want to expose it as a top-level function.
-The FunctionImport always references a <Function> defined in the schema (similar to how an EntitySet always references an EntityType defined in the schema)
-Functions should be bindable to primitive or complex types (or sets of primitive or complex types) in addition to entities/sets of entities.
Accepted: https://www.oasis-open.org/committees/download.php/48097/odata-meeting-23_on-20130130_31-F2F-minutes.html#odata-225
Show
-Define a <Function> element used to define the shape of a function in the schema. The function definition defines parameters, return values, and may specify an entitysetpath.
-Functions defined in the model are available for use by referencing the model. You do not need to "import them" into your container
-The only time you use a functionimport is if you want to expose a function as a top-level function in your entitycontainer, or bind a function to a specific entityset in your entitycontainer. Note that, if the return set is relative to the input set you can define this in the entitysetpath in the <Function> definition of the model, then you don't need to import it unless you want to expose it as a top-level function.
-The FunctionImport always references a <Function> defined in the schema (similar to how an EntitySet always references an EntityType defined in the schema)
-Functions should be bindable to primitive or complex types (or sets of primitive or complex types) in addition to entities/sets of entities.
Accepted: https://www.oasis-open.org/committees/download.php/48097/odata-meeting-23_on-20130130_31-F2F-minutes.html#odata-225
-
Resolution:
Show
https://www.oasis-open.org/committees/download.php/48171/odata-core-v1.0-wd01-part3-csdl-2013-02-07-RH.doc
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/schemas/csdl.xsd?rev=175
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/ABNF/odata-abnf-construction-rules-v1.0-wd01.txt?rev=182
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/ABNF/odata-abnf-testcases.xml?rev=182
Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-225
It is difficult to share functions because they are defined in an entitycontainer.
Functions should follow a similar model to Entities; the types should be defined in schema and we should use the entitycontainer to expose them at the container level, or to bind to particular sets within the container.
{"report":{"apdex":1,"isInitial":true,"journeyId":"c310f1b6-f57c-431e-ba86-4a0cc64091c0","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":516.2999997138977,"redirectCount":0,"resourceLoadedEnd":497.59999990463257,"resourceLoadedStart":140.90000009536743,"resourceTiming":[{"duration":8.399999618530273,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":140.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":140.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":149.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":8.599999904632568,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":141.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":141.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":149.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":8.799999713897705,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":141.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":141.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":150.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":9.099999904632568,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":141.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":141.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":150.69999980926514,"responseStart":0,"secureConnectionStart":0},{"duration":9.399999618530273,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":141.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":141.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":151.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":52.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":142.09999990463257,"connectEnd":142.09999990463257,"connectStart":142.09999990463257,"domainLookupEnd":142.09999990463257,"domainLookupStart":142.09999990463257,"fetchStart":142.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":142.09999990463257,"responseEnd":194.2999997138977,"responseStart":194.2999997138977,"secureConnectionStart":142.09999990463257},{"duration":152.30000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":142.69999980926514,"connectEnd":142.69999980926514,"connectStart":142.69999980926514,"domainLookupEnd":142.69999980926514,"domainLookupStart":142.69999980926514,"fetchStart":142.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":142.69999980926514,"responseEnd":295,"responseStart":294.90000009536743,"secureConnectionStart":142.69999980926514},{"duration":154.60000038146973,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":142.7999997138977,"connectEnd":142.7999997138977,"connectStart":142.7999997138977,"domainLookupEnd":142.7999997138977,"domainLookupStart":142.7999997138977,"fetchStart":142.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":142.7999997138977,"responseEnd":297.40000009536743,"responseStart":297.40000009536743,"secureConnectionStart":142.7999997138977},{"duration":154.80000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":143.09999990463257,"connectEnd":143.09999990463257,"connectStart":143.09999990463257,"domainLookupEnd":143.09999990463257,"domainLookupStart":143.09999990463257,"fetchStart":143.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":143.09999990463257,"responseEnd":297.90000009536743,"responseStart":297.90000009536743,"secureConnectionStart":143.09999990463257},{"duration":155,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":143.2999997138977,"connectEnd":143.2999997138977,"connectStart":143.2999997138977,"domainLookupEnd":143.2999997138977,"domainLookupStart":143.2999997138977,"fetchStart":143.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":143.2999997138977,"responseEnd":298.2999997138977,"responseStart":298.2999997138977,"secureConnectionStart":143.2999997138977},{"duration":155.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":143.40000009536743,"connectEnd":143.40000009536743,"connectStart":143.40000009536743,"domainLookupEnd":143.40000009536743,"domainLookupStart":143.40000009536743,"fetchStart":143.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":143.40000009536743,"responseEnd":298.69999980926514,"responseStart":298.69999980926514,"secureConnectionStart":143.40000009536743},{"duration":191.30000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":143.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":143.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":334.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":155.5,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":143.69999980926514,"connectEnd":143.69999980926514,"connectStart":143.69999980926514,"domainLookupEnd":143.69999980926514,"domainLookupStart":143.69999980926514,"fetchStart":143.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":143.69999980926514,"responseEnd":299.19999980926514,"responseStart":299.19999980926514,"secureConnectionStart":143.69999980926514},{"duration":161,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":174.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":174.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":335.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":125.39999961853027,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":174.40000009536743,"connectEnd":174.40000009536743,"connectStart":174.40000009536743,"domainLookupEnd":174.40000009536743,"domainLookupStart":174.40000009536743,"fetchStart":174.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":174.40000009536743,"responseEnd":299.7999997138977,"responseStart":299.7999997138977,"secureConnectionStart":174.40000009536743},{"duration":187.80000019073486,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":183.59999990463257,"connectEnd":183.59999990463257,"connectStart":183.59999990463257,"domainLookupEnd":183.59999990463257,"domainLookupStart":183.59999990463257,"fetchStart":183.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":183.59999990463257,"responseEnd":371.40000009536743,"responseStart":371.40000009536743,"secureConnectionStart":183.59999990463257},{"duration":266.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":204.19999980926514,"connectEnd":204.19999980926514,"connectStart":204.19999980926514,"domainLookupEnd":204.19999980926514,"domainLookupStart":204.19999980926514,"fetchStart":204.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":204.19999980926514,"responseEnd":470.2999997138977,"responseStart":470.2999997138977,"secureConnectionStart":204.19999980926514},{"duration":26.40000009536743,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":361.2999997138977,"connectEnd":361.2999997138977,"connectStart":361.2999997138977,"domainLookupEnd":361.2999997138977,"domainLookupStart":361.2999997138977,"fetchStart":361.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":361.2999997138977,"responseEnd":387.69999980926514,"responseStart":387.69999980926514,"secureConnectionStart":361.2999997138977},{"duration":76.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/be9ff0efea54a6453d2ac60b92912a09/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":404.2999997138977,"connectEnd":404.2999997138977,"connectStart":404.2999997138977,"domainLookupEnd":404.2999997138977,"domainLookupStart":404.2999997138977,"fetchStart":404.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":404.2999997138977,"responseEnd":480.7999997138977,"responseStart":480.7999997138977,"secureConnectionStart":404.2999997138977},{"duration":79.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/8dbb665766273a8e5e49159503d3c6a9-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/ea7e7a11d1f628533837874704f9a54d/_/download/contextbatch/js/jira.rich.editor.api,jira.rich.editor,-_super,-jira.view.issue,-jira.global,-atl.general,-project.issue.navigator/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":404.59999990463257,"connectEnd":404.59999990463257,"connectStart":404.59999990463257,"domainLookupEnd":404.59999990463257,"domainLookupStart":404.59999990463257,"fetchStart":404.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":404.59999990463257,"responseEnd":483.7999997138977,"responseStart":483.7999997138977,"secureConnectionStart":404.59999990463257},{"duration":91,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4.0.25/_/download/resources/com.atlassian.jira.plugins.jira-editor-plugin:tinymce/tinymce.js?batch=false","startTime":405,"connectEnd":405,"connectStart":405,"domainLookupEnd":405,"domainLookupStart":405,"fetchStart":405,"redirectEnd":0,"redirectStart":0,"requestStart":405,"responseEnd":496,"responseStart":496,"secureConnectionStart":405},{"duration":91.7000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4.0.25/_/download/resources/com.atlassian.jira.plugins.jira-editor-plugin:tinymce/tinymce-amd.js?batch=false","startTime":405.2999997138977,"connectEnd":405.2999997138977,"connectStart":405.2999997138977,"domainLookupEnd":405.2999997138977,"domainLookupStart":405.2999997138977,"fetchStart":405.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":405.2999997138977,"responseEnd":497,"responseStart":497,"secureConnectionStart":405.2999997138977},{"duration":91,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4.0.25/_/download/resources/com.atlassian.jira.plugins.jira-editor-plugin:tinymce/themes/modern/theme.js?batch=false","startTime":406.59999990463257,"connectEnd":406.59999990463257,"connectStart":406.59999990463257,"domainLookupEnd":406.59999990463257,"domainLookupStart":406.59999990463257,"fetchStart":406.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":406.59999990463257,"responseEnd":497.59999990463257,"responseStart":497.59999990463257,"secureConnectionStart":406.59999990463257}],"threshold":1000,"fetchStart":1,"domainLookupStart":36,"domainLookupEnd":36,"connectStart":36,"connectEnd":85,"secureConnectionStart":60,"requestStart":85,"responseStart":133,"responseEnd":204,"domLoading":137,"domInteractive":581,"domContentLoadedEventStart":581,"domContentLoadedEventEnd":626,"domComplete":696,"loadEventStart":696,"loadEventEnd":702,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"7fe5aa34847d52","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":86,"dbReadsTimeInMs":13,"dbConnsTimeInMs":15,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
As functions and actions are now schema children and function imports are only required for top-level functions we need to change the qualification rules for function and action names: they are now namespace- or alias-qualifed instead of container-qualified.