API SegmentHandle : incluse dans le périmètre
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
- 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()ouroot().
SegmentHandle : addField(String fieldName, valeur de chaîne)
Ajoute un champ prédéfini sur l’instance de segment actuelle à la charge utile.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ à ajouter au segment. |
| valide | Chaîne | Valeur du champ à ajouter au segment. |
| Type | Description |
|---|---|
| Objet | Segment actuelObjet Handle pour le chaînage. |
- 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.
| 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( ). |
| Type | Description |
|---|---|
| Objet | Renvoie un nouveau SegmentHandle pour le segment enfant. |
- 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.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Objet | Descripteur parent ou gestionnaire 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.
| Nom | Type | Description |
|---|---|---|
| Néant |
| 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");