Opération SData (sdata)
Les opérations SData peuvent être défini à trois niveaux dans le Contrat SData :
Au niveau d'une classe "Support de service local"
Dans ce cas l'attribut "path" associé à l'opération ne fait pas référence à une entité du contrat :
<xsd:element name="ndfContractOperation1" type="tns:ndfContractOperation1--type" sme:role="serviceOperation" sme:path="$service/Operation1" /> <xsd:complexType name="ndfContractOperation1--type"> <xsd:all> ... </xsd:all> </xsd:complexType>
lors de l'import de ce contrat la méthode sera ajouté à une classe "Support de Service distant (sdata)" du même nom que le contrat.
Au niveau d'une entité en tant que méthode de classe.
Dans ce cas l'attribut "path" associé à l'opération fait référence à l'entité du contrat en utilisant le nom pluriel de l'entité :
<xsd:element name="expenseUpdateAllExpenseStatus" type="tns:expenseUpdateAllExpenseStatus--type" sme:role="serviceOperation" sme:path="expenses/$service/UpdateAllExpenseStatus" /> <xsd:complexType name="expenseUpdateAllExpenseStatus--type"> <xsd:all> ... </xsd:all> </xsd:complexType>
lors de l'import de ce contrat la méthode sera ajouté à une classe "Support de Service distant (sdata)" du même nom que le contrat.
Au niveau d'une entité en tant que méthode d'instance.
Dans ce cas l'attribut "path" associé à l'opération fait référence à l'entité du contrat en utilisant le nom singulier de l'entité :
<xsd:element name="expenseUpdateExpense" type="tns:expenseUpdateExpense--type" sme:role="serviceOperation" sme:path="expense/$service/UpdateExpense" /> <xsd:complexType name="expenseUpdateExpense--type"> <xsd:all> ... </xsd:all> </xsd:complexType>
lors de l'import de ce contrat la méthode sera ajouté en tant qu'opération de Service à l'entité correspondante.