API SegmentHandler : incluse dans le périmètre

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 2 minutes de lecture
  • Include de script fournissant une API chaînée pour générer une charge utile IDoc pour une opération spécifique.

    Cet include de script nécessite l’application Connecteur zéro copie pour ERP (com.sn_erp_integration) store 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

    La classe SegmentHandler :
    • Possède l’objet de données racine et le schéma de segment IDoc.
    • Permet de créer des segments de niveau supérieur. Par exemple, E1EDK01, E1EDP01, etc.
    Pour gérer les instances de niveau inférieur d’un segment, telles qu’un en-tête ou un élément, reportez-vous à .API SegmentHandle : incluse dans le périmètre

    Voir aussi API sn_erp_integration : incluse dans le périmètre, globale.

    SegmentHandler : SegmentHandler(String operationId)

    Instancier un nouvel objet SegmentHandler lié à une opération IDoc.

    Tableau 1. Paramètres
    Nom Type Description
    ID de l’opération Chaîne La sys_id d’une opération de modèle ERP configurée.

    Table : opération de modèle ERP [sn_erp_integration_model_operation]

    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"
              }]
            }]
          }]
      }
    }

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

    Ajoute un segment de niveau supérieur prédéfini de type segmentName à la charge utile.

    Remarque :
    Le segment doit être défini dans l’opération.
    Tableau 2. Paramètres
    Nom Type Description
    Nom du segment Chaîne Nom du segment de niveau supérieur.
    valeurs Objet Implémentation facultative à la place de la méthode addField( ).
    Tableau 3. Renvoie
    Type Description
    Objet SegmentHandle pour la nouvelle instance de segment.

    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"
              }]
            }]
          }]
      }
    }

    SegmentHandler : getData()

    Obtient la charge utile du segment créé.

    Tableau 4. Paramètres
    Nom Type Description
    Néant
    Tableau 5. Renvoie
    Type Description
    Objet Objet contenant des données de segment.
    données Couche de l’objet de charge utile contenant tous les segments de niveau supérieur et imbriqués.

    { data : <objet de charge utile> }

    La structure exacte dépend du schéma configuré, mais le modèle (tableaux de segments avec des tableaux imbriqués) est le même.

    Type de données : objet

    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"
              }]
            }]
          }]
      }
    }