API SegmentHandle : incluse dans le périmètre

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Méthodes de gestion d’une instance unique d’un segment, tel qu’un en-tête ou un élément. Cette classe est définie dans l’include de script SegmentHandler.

    L’include de script SegmentHandler nécessite l’application Connecteur zéro copie pour ERP de stockage (com.sn_erp_integration) et est fourni dans l’espace de noms sn_erp_integration. Pour plus d'informations, référez-vous à Zero Copy Connector for ERP.

    Rôle requis : sn_erp_integration.erp_user

    Utilisez les méthodes de cette classe pour les tâches suivantes :
    • Ajoutez des champs à cette instance de segment spécifique.
    • Ajoutez des segments imbriqués/enfants sous l’instance.
    • Revenez au parent ou à la racine à l’aide des méthodes endSegment() ou root().

    SegmentHandle : addField(String fieldName, valeur de chaîne)

    Ajoute un champ prédéfini sur l’instance de segment actuelle à la charge utile.

    Tableau 1. Paramètres
    Nom Type Description
    Fieldname Chaîne Nom du champ à ajouter au segment.
    valide Chaîne Valeur du champ à ajouter au segment.
    Tableau 2. Renvoie
    Type Description
    Objet Segment actuelObjet Handle pour le chaînage.
    L’exemple suivant montre comment créer une charge utile de segment. Utilisez des variables explicites lorsque vous souhaitez conserver des références à des segments spécifiques.
    • Plusieurs appels obj.addSegment(« E1EDK01 ») génèrent plusieurs segments d’en-tête.
    • Les segments imbriqués sont créés à partir de la poignée parent correcte (p01, p20, etc.).
    • Les descripteurs tels que k01_1, k01_2, p01 peuvent être réutilisés ultérieurement pour ajouter d’autres champs ou enfants.
    var obj = new SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    // Create first E1EDK01
    let k01_1 = obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD");
    
    // Create another E1EDK01 
    let k01_2 = obj.addSegment("E1EDK01")
        .addField("BELNR", "2000")
        .addField("CURCY", "EUR");
    
    // Create E1EDP01 with nested segments
    let p01 = obj.addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010");
    
    let p20 = p01.addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5");
    
    p20.addSegment("E1EDP19")
        .addField("IDTNR", "MAT01");
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    Sortie :

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }

    SegmentHandle : addSegment(String segmentName, Valeurs d’objet)

    Ajoute un segment enfant imbriqué prédéfini à la charge utile.

    Tableau 3. Paramètres
    Nom Type Description
    Nom du segment Chaîne Nom d’un segment imbriqué dans le segment actuel.
    valeurs Objet Implémentation facultative à la place de la méthode addField( ).
    Tableau 4. Renvoie
    Type Description
    Objet Renvoie un nouveau SegmentHandle pour le segment enfant.
    L’exemple suivant montre comment créer une charge utile de segment. Utilisez des variables explicites lorsque vous souhaitez conserver des références à des segments spécifiques.
    • Plusieurs appels obj.addSegment(« E1EDK01 ») génèrent plusieurs segments d’en-tête.
    • Les segments imbriqués sont créés à partir de la poignée parent correcte (p01, p20, etc.).
    • Les descripteurs tels que k01_1, k01_2, p01 peuvent être réutilisés ultérieurement pour ajouter d’autres champs ou enfants.
    var obj = new SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    // Create first E1EDK01
    let k01_1 = obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD");
    
    // Create another E1EDK01 
    let k01_2 = obj.addSegment("E1EDK01")
        .addField("BELNR", "2000")
        .addField("CURCY", "EUR");
    
    // Create E1EDP01 with nested segments
    let p01 = obj.addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010");
    
    let p20 = p01.addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5");
    
    p20.addSegment("E1EDP19")
        .addField("IDTNR", "MAT01");
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    Sortie :

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }

    SegmentHandle : endSegment()

    Se déplace d’un niveau vers le haut dans un schéma.

    Tableau 5. Paramètres
    Nom Type Description
    Néant
    Tableau 6. Renvoie
    Type Description
    Objet Descripteur parent ou gestionnaire racine.
    • À partir d’un segment enfant, renvoie l’objet SegmentHandle parent.
    • À partir du segment de niveau supérieur, renvoie l’objet SegmentHandler parent.
    Utilisez la méthode root() pour renvoyer l’objet SegmentHandler racine.

    L’exemple suivant montre comment créer un en-tête et un élément avec des segments imbriqués dans une chaîne fluente. La structure dépend du schéma configuré. Le modèle de schéma est constitué de tableaux de segments avec des tableaux imbriqués.

    let obj = new sn_erp_integration.SegmentHandler('460d3ff2ff5de210d3a2fffffffffff8');
    
    obj.addSegment("E1EDK01")
        .addField("BELNR", "1000")
        .addField("CURCY", "USD")
        .endSegment()
        .addSegment("E1EDP01")
        .addField("MENGE", "50")
        .addField("POSEX", "0010")
        .addSegment("E1EDP20")
        .addField("AMENG", "10")
        .addField("WMENG", "5")
        .addSegment("E1EDP19")
        .addField("IDTNR", "MAT01")
        .endSegment()
        .endSegment()
        .endSegment();
    
    gs.info(JSON.stringify(obj.getData(), null, 2));

    Sortie :

    {
      "data": {
        "E1EDK01": [{
          "BELNR": "1000",
          "CURCY": "USD"
        }],
          "E1EDP01": [{
            "MENGE": "50",
            "POSEX": "0010",
            "E1EDP20": [{
              "AMENG": "10",
              "WMENG": "5",
              "E1EDP19": [{
                "IDTNR": "MAT01"
              }]
            }]
          }]
      }
    }

    SegmentHandle : root()

    Obtient l’objet SegmentHandler racine, quelle que soit la profondeur d’imbrication.

    Tableau 7. Paramètres
    Nom Type Description
    Néant
    Tableau 8. Renvoie
    Type Description
    Objet SegmentHandler au niveau racine.

    L’exemple suivant montre comment naviguer entre les niveaux d’un schéma.

    let p19 = p20.addSegment("E1EDP19").addField("IDTNR", "MAT01");
    p19.endSegment()     // back to E1EDP20
        .endSegment()    // back to E1EDP01
        .root()          // back to SegmentHandler
        .addSegment("E1EDK01").addField("BELNR", "3000");