WebService Soap ou API Rest

SUGGESTED

Bonjour

j'ai pu configurer un Webservice de type objet pour créer des devis.

je le teste avec SoapUI et mon devis se crée bien, je peux le modifier, le supprimer.

tout est ok de ce coté.

je voudrais maintenant pouvoir passer ce devis en commande toujours en utilisant mon WebService (ou en passant par l'api) mais je ne trouve pas de solution pour faire ça.

quelqu'un aurait il déjà utilisé les actions de la fenêtre via webservice ou api?

Merci d'avance

Sylvain

Parents
  • 0
    SUGGESTED

    Bonjour  ,  ,

    Je pars du principe que vous maitrisez le code L4G et les web services SOAP.

    3 façons de procéder, j'essaye de vous syntéthiser les solutions:

    Première solution, comme si on faisait un picking de liste gauche sur les devis dans la fonction des commandes en création. Le point d'entrée LEFT_BOX permet de simuler le picking et de faire la création de commandes:

    • Envoyer les informations de devis nécessaires au picking côté commande
    • Dans l'evenement AV_WS, déclarer une structure type variables globales tableau pour récupérer les infomations, par exemple:

    Global Char XV1NUMORI (30)(60)
    [V]XV1NUMORI([L]II)=[L]NUMORI_2([L]II)

    le programme wrapper contient le nom des variables qui sont chargés avec le payload d'entrées du WS. Attention cela dépend directement des écrans.

    •  dans le PE LEFT_BOX,
      • en fonction du type de document, simuler l'appel des tiroirs:

    Gosub TIROIR From SUBSOHA
    Gosub DEB_PICK From SUBSOHA

    • Filtrer ensuite lignes par lignes pour charger l'ecran comme le picking

    #Filtering the lines table with the proper criteria. The more criteria, the more precise the selection
        For [F:POQ] Where  find([F:POQ]POHNUM, [V]XV1NUMORI(0..[V]XV1NBOFDOC))<>0 and find([F:POQ]POPLIN, [V]XV1LINORI(0..[V]XV1NBOFDOC))<>0
            Gosub PICKE From SUBPIHA
            #BGZ - Accomodate partial invoicing
            If [V]XV1QTYUOM(nolign-1)<>[M:PIH3]QTYUOM(nolign-1)
              [M:PIH3]QTYUOM(nolign-1)=[V]XV1QTYUOM(nolign-1)
              Call C_QTYUOM([M:PIH3]QTYUOM(nolign-1)) From SUBPIH
              Call AM_QTYUOM([M:PIH3]QTYUOM(nolign-1)) From SUBPIH
            Endif
            etc.
        Next POQ

    • le document commande de vente va être créé, et dans le retour avec l'evement AP_WS, supprimez les globales pour être propre:

    $AP_WS
    If NUMORI_2(0)="" : Return : Endif
    
    Kill [V]XV1NUMORI

    Cette technique demande pas mal de maitrise, mais elle fonctionne bien et permet de la fléxibilité.

    Deuxième technique, utiliser le web services AOWSIMPORT pour envoyer le payload de la commande à créer. Le modèle d'import SOH sera utilisé et vous pouvez choisir de le faire en synchrone (temps réel) où en asynchrone (via le batch). la documentation pour commencer:
    https://developer.sage.com/x3/import-export-guide/developing-with-web-services/

    Troisième technique, vous publiez un sugprog qui va :
    - Exporter les données du devis
    - lancer un importsil de la commande
    - renvoyer le numéro de commande et les infos dont vous avez besoin dans le système externe.

    Si cela vous semble vous encore trop flou, contactez le centre d'excellence Sage X3 à [email protected], et mettez bien en copie votre partenaire intégrateur. Nous sommes une équipe d'experts X3 techniques et fonctionnelles. Nous avons l'habitude de ce genre de sujet et nous proposerons un accompagnement en fonction de vos besoins toujours en lien avec votre partenaire.

    N'hésitez pas à nous faire savoir si cette réponse vous a été utile en la marquant comme vérifiée.

  • 0 in reply to Bruno Gonzalez

    Merci pour les infos , nous etudions cela de prêt , mais on essaie de voir si c'est possible via API REST. Traitant en permanence avec des API REST , voir même de grande complexité, Les manières qu'a X3 avec SOAP de traiter des enreigistrment , me semblent provenir d'un autre siècle ;-) . Si nous n'avons pas le choix nous ferons comme vous tous par SOAP , mais du coup on a la lecture des objets en REST et la création en SOAP , c'est bof ... 
    Ce qui est étonnant , pour créer une affaire par exemple en REST on y arrive ? je me dis alors , pourquoi pas le devis ? 
    Un grand merci a tous pour votre temps 
    A+

Reply
  • 0 in reply to Bruno Gonzalez

    Merci pour les infos , nous etudions cela de prêt , mais on essaie de voir si c'est possible via API REST. Traitant en permanence avec des API REST , voir même de grande complexité, Les manières qu'a X3 avec SOAP de traiter des enreigistrment , me semblent provenir d'un autre siècle ;-) . Si nous n'avons pas le choix nous ferons comme vous tous par SOAP , mais du coup on a la lecture des objets en REST et la création en SOAP , c'est bof ... 
    Ce qui est étonnant , pour créer une affaire par exemple en REST on y arrive ? je me dis alors , pourquoi pas le devis ? 
    Un grand merci a tous pour votre temps 
    A+

Children
No Data