I've created a simple control to see what the attribute 'usage' on a property does in the form editor UI.
Whenever I included a usage=output I would get an exception during save of the form. See attached file.
I was able to configure the property and bind it to an attribute yet I couldn't save and publish the form.
Hi Menik,
This is actually a documentation defect , we accidently got it included. We have not exposed this functionality for public preview yet and hence the form editor throws error. Since you would be curious what it does, it is an internal mechanism to pass values across control directly without using any bound values which are needed currently. Please dont try using it though 🙂
And thanks for reporting, I have requested doc update.
Hemant
I cannot attach .txt files so here's the content:
Unhandled exception: Exception type: System.ServiceModel.FaultException`1[Microsoft.Xrm.Sdk.OrganizationServiceFault] Message: The type attribute is missing from the declaration of Property OutputDetail: <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts"> <ActivityId>ae3236d6-f4ae-4960-9e58-43739af29027</ActivityId> <ErrorCode>-2147220970</ErrorCode> <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic"> <KeyValuePairOfstringanyType> <d2p1:key>ApiExceptionSourceKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">Plugin/Microsoft.Crm.ObjectModel.SystemFormService</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiOriginalExceptionKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">Microsoft.Crm.CrmException: The type attribute is missing from the declaration of Property Output ---> Microsoft.Crm.CrmException: The type attribute is missing from the declaration of Property Output at Microsoft.Crm.ObjectModel.CustomControlParameterValidationHelper.MakeEntryForTypeAttribute(XmlNode xmlPropertyNode, Boolean isStatic) at Microsoft.Crm.ObjectModel.CustomControlParameterValidationHelper.ValidateParameters(XmlNode containerNode, ExecutionContext context) at Microsoft.Crm.ObjectModel.CustomControlParameterValidationHelper.ValidateCustomControl(XmlNode customControlNode, Int32 entityTypeCode, ExecutionContext executionContext) at Microsoft.Crm.ObjectModel.CustomControlParameterValidationHelper.Validate(XmlNode controlDescriptionNode, Int32 entityTypeCode, ExecutionContext executionContext) at Microsoft.Crm.ObjectModel.CustomControlNodeValidationStep.Execute(FormValidationContext validationContext) at Microsoft.Crm.ObjectModel.FormValidator.Validate(FormValidationContext validationContext) at Microsoft.Crm.ObjectModel.SystemFormService.Update(IBusinessEntity entity, ExecutionContext context, DynamicMetadataCache cache, Boolean ignoreFormXmlLabels) at Microsoft.Crm.ObjectModel.SystemFormService.Update(IBusinessEntity entity, ExecutionContext context) --- End of inner exception stack trace --- at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context) at Microsoft.Crm.Extensibility.PipelineInstrumentationHelper.Execute(Boolean instrumentationEnabled, String stopwatchName, ExecuteWithInstrumentation action, PipelineExecutionContext context) at Microsoft.Crm.Extensibility.Pipeline.<>c__DisplayClass2_1.<Execute>b__0()</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiStepKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">57066171-5620-4448-aebf-472b99862006</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiDepthKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">1</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiActivityIdKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">ae3236d6-f4ae-4960-9e58-43739af29027</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiPluginSolutionNameKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">System</d2p1:value> </KeyValuePairOfstringanyType> <KeyValuePairOfstringanyType> <d2p1:key>ApiStepSolutionNameKey</d2p1:key> <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">System</d2p1:value> </KeyValuePairOfstringanyType> </ErrorDetails> <Message>The type attribute is missing from the declaration of Property Output</Message> <Timestamp>2019-05-01T09:55:31.5163291Z</Timestamp> <ExceptionRetriable>false</ExceptionRetriable> <ExceptionSource i:nil="true" /> <InnerFault i:nil="true" /> <OriginalException i:nil="true" /> <TraceText i:nil="true" /> </OrganizationServiceFault>
The manifest:
<?xml version="1.0" encoding="utf-8" ?> <manifest> <control namespace="MyNamespace" constructor="DemoControl" version="0.0.1" display-name-key="DemoControl_Display_Key" description-key="DemoControl_Desc_Key" control-type="standard"> <!-- property node identifies a specific, configurable piece of data that the control expects from CDS --> <property name="Bound" display-name-key="Bound" description-key="Bound" of-type="SingleLine.Text" usage="bound" required="true"/> <property name="Bound2" display-name-key="Bound2" description-key="Bound2" of-type="SingleLine.Text" usage="bound" required="true"/> <property name="Input" display-name-key="Input" description-key="Input" of-type="SingleLine.Text" usage="input" required="true"/> <property name="Output" display-name-key="Output" description-key="Output" of-type="SingleLine.Text" usage="output" required="true"/> <resources> <code path="index.ts" order="1"/> </resources> </control> </manifest>
WarrenBelz
85
Most Valuable Professional
Michael E. Gernaey
65
Super User 2025 Season 1
mmbr1606
55
Super User 2025 Season 1