J'ai un service Web pour mon application ASP.NET MVC 3 qui crée une nouvelle commande client dans AX. Dans AX j'ai créé une classe OnlineOrder qui a pour l'instant 1 méthode. C'est pour générer une référence de vente. Voici le code dans mon service web:Impossible de faire fonctionner Axapta.CreateAxaptaObject()
public AxaptaObject order;
public void CreateOrder()
{
AxaptaStart();
order = Axapta.CreateAxaptaObject("OnlineOrder");
AxaptaStop();
}
public string GetSalesRef(string username, string delivery, string reference)
{
AxaptaStart();
string number = order.Call("orderCreate", username, delivery, reference).ToString();
AxaptaStop();
return number;
}
Puis dans mon contrôleur j'appelle ces méthodes:
client.CreateOrder();
string number = client.GetSalesRef(user.Username, order.deliverymethod, order.custorder).ToString();
Cela ne fonctionne pas et il n'y a pas d'info d'exception à montrer, juste un vide message. Je crois que le order
AxaptaObject n'est pas de type OnlineOrder
donc il ne peut pas appeler ces méthodes. Comment instancier l'objet pour utiliser la méthode orderCreate
?
EDIT:
Si je fais:
public string CreateOrder(string username, string delivery, string reference)
{
AxaptaStart();
order = Axapta.CreateAxaptaObject("OnlineOrder");
string number = order.Call("orderCreate", username, delivery, reference).ToString();
AxaptaStop();
return number;
}
Cela fonctionne, mais ce n'est pas une solution valable que je voudrais ajouter d'autres méthodes à mon objet OnlineOrder à l'avenir et je Je ne veux pas tous les appeler dans la méthode 1 sur mon service Web
Mais cela nécessiterait aussi que tout soit en 1 méthode sur mon webservice wouldnt-il? Comment utiliser le même objet "order" dans une méthode différente? – CallumVass
Non ce ne serait pas. L'objet 'order' peut être renvoyé à partir de la méthode wrapper comme dans l'exemple (ou enregistré dans une variable membre). Tous les appels à COM sont cachés dans votre classe d'emballage cachant les détails laids. Cela rend également votre code de l'appelant agréable (r). –