Opération SData (sdata)

De Wiki1000
(Différences entre les versions)
(Page créée avec « [http://interop.sage.com/daisy/sdata/ServiceOperations.html Les opérations SData] peuvent être défini à trois niveaux dans le Contrat SData : ===Au niveau d'une classe "… »)
 
(Au niveau d'une entité en tant que méthode d'instance.)
Ligne 51 : Ligne 51 :
  
 
lors de l'import de ce contrat la méthode sera ajouté en tant qu'opération de Service à l'entité correspondante.
 
lors de l'import de ce contrat la méthode sera ajouté en tant qu'opération de Service à l'entité correspondante.
 +
 +
L'appel de la méthode se fait ainsi :
 +
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="utf-8"?>
 +
<entry xmlns="http://www.w3.org/2005/Atom"
 +
  xmlns:sdata="http://schemas.sage.com/sdata/2008/1"
 +
  xmlns:http="http://schemas.sage.com/sdata/http/2008/1"
 +
  xmlns:ns3="http://www.sage.com/fr/line1000/ndfContract">
 +
<id>http://syfre/syfre/server/sdata/syfre/ndfContract/-/expense('11CD0000000001D20002000000360001')/$service/UpdateExpense</id>
 +
<sdata:payload>
 +
<ns3:expenseUpdateExpense>
 +
<ns3:request>
 +
...
 +
</ns3:request>
 +
</ns3:expenseUpdateExpense>
 +
</sdata:payload>
 +
<http:ifMatch>11CD0000000001D20002000000360001-0000002400000001</http:ifMatch>
 +
</entry>
 +
</source>
  
 
[[Category:SData]]
 
[[Category:SData]]

Version du 23 mai 2011 à 12:21

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.

L'appel de la méthode se fait ainsi :

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" 
  xmlns:sdata="http://schemas.sage.com/sdata/2008/1" 
  xmlns:http="http://schemas.sage.com/sdata/http/2008/1" 
  xmlns:ns3="http://www.sage.com/fr/line1000/ndfContract">
<id>http://syfre/syfre/server/sdata/syfre/ndfContract/-/expense('11CD0000000001D20002000000360001')/$service/UpdateExpense</id>
<sdata:payload>
<ns3:expenseUpdateExpense>
<ns3:request>
...
</ns3:request>
</ns3:expenseUpdateExpense>
</sdata:payload>
<http:ifMatch>11CD0000000001D20002000000360001-0000002400000001</http:ifMatch>
</entry>
Outils personnels