2017-05-30 4 views
1

J'utilise les services OData pour envoyer des données à un système SAP. Quand je fais unLa passerelle SAP obtient l'ID de création en tant que réponse

oModel.create({data}) 

Est-il possible de laisser le serveur me donner comme réponse l'ID ou sur le terrain que je viens de créer dans la base de données?

Toute suggestion est la bienvenue.

Répondre

0

Oui, c'est un cas d'utilisation très commun.

Modélisez l'ID en tant que champ de votre entité. Laissez l'ID vide lors de l'appel depuis le Frontend.

Le serveur remplit le champ id dans la réponse. Dans la réponse, le serveur peut également modifier ou remplir tout autre champ de l'entité.

dans votre méthode back-end MYENTITY_CREATE_ENTITY, faire quelque chose comme

io_data_provider->read_entry_data(IMPORTING es_data = ls_myentity). 

"create object in database which fills the field lv_id_from_database 

ls_myentity-id = lv_id_from_database. 
er_entity = ls_myentity. 

Frontend:

oModel.create("/Myentity", 
    oDataCreate, null, false, 
     function(oData, oResponse){ 
        //Function for Success 
     }, 
     function(oData, oResponse){ 
        //Function for Error 
}); 
+0

il semble que vous sait comment résoudre ce problème, mais je ne pourrais pas vraiment – Aline

+0

ajouté quelques exemples de code pour le backend –

+0

pouvez-vous s'il vous plaît également ajouter quels paramètres la méthode de création devrait avoir afin de récupérer la réponse? Thank you – Aline