How to mark a mandatory field in WSDL interface.
The WSDL xml interface is generated by Identity Manager based on the configuration and settings of the IDM tasks which are enabled for web services.
Each attribute on a task is translated to a "Element" in the wsdl interface. On the XML element tag there are properties.
One of these properties is called: "minOccurs". This property indicates to the web service the minimum number of occurrences this element must be included in the SOAP request of that particular task. When generating the interface this property will be explicit on each element with a value of '0'. This suggests it's not a mandatory field and is optional on the SOAP request.
Here is an example:
Below is an excerpt of a Modify User profile tab wsdl interface. If you wanted to ensure that Full Name will be mandatory for web service call submissions then you shall make sure that minOccurs="1" is marked for that field. In the example below you can see this being the case for the Full Name attribute (which is the last in that excerpt).
<xs:element name="_PCT_ORG_MEMBERSHIP_PCT_" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="_PCT_USER_ID_PCT_" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="_PCT_PASSWORD_PCT_" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="_BAR_enable_BAR_" type="xs:string" minOccurs="0" nillable="true"/>
<xs:element name="_PCT_FIRST_NAME_PCT_" type="xs:string" nillable="true"/>
<xs:element name="_PCT_LAST_NAME_PCT_" type="xs:string" nillable="true"/>
<xs:element name="_PCT_FULL_NAME_PCT_" type="xs:string" minOccurs="1" nillable="true"/>
Now, since the wsdl interface is generated by Identity Manager then you don't really need to edit it. If you simply went to Identity Manager and modified the Modify User task and marked the Full Name as mandatory then this would be auto-generated for you.
However, some customers are sharing the generated wsdl with their own development or other remote teams which consume the wsdl interface with possibly different requirements then they are on Identity Manager itself. So, for example: if you have an application that's modifying users for Identity Manager and requires to do that using TEWS where Full Name should be mandatory for that application, but not necessarily mandatory for any other Identity Manager's usage - then it will make sense to do that.
N/A - All Identity Manager's environments.
If a field is mandatory on the task (for example: Read/Write Required) then this property is omitted from the 'Element' tag. By this omission this attribute is now becoming mandatory for the SOAP xml request.