---
sourceDocument: Xanadu-API-Referenz
sourceDocumentLink: https://www.servicenow.com/docs/r/de-DE/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - de-DE

ft:publication_title :

    - Xanadu-API-Referenz

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ScriptableDataStream: Bereichsbezogen, global

# ScriptableDataStream: Bereichsbezogen, global {#ariaid-title1}

* Freigeben Version: Xanadu
* 
* Aktualisiert 1. August 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 Minuten Lesedauer

Die ScriptableDataStream -API bietet Methoden für die Interaktion mit einem Datenstrom.

Diese Klasse kann nur in einem serverseitigen Skript verwendet werden, nachdem ein ScriptableDataStream-Objekt mit einer der folgenden APIs abgerufen wurde:  
* Die executeDataStreamAction()- Methode in der FlowAPI -Klasse Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").
* Die getDataStream()- Methode in der ScriptableFlowRunnerResult -Klasse Siehe [ScriptableFlowRunnerResult](https://www.servicenow.com/docs/R6ksh43PAVEfPRznWGFIGQ#ScriptableFlowRunnerResultScopedAPI "Erfasst das Ergebnis der Verwendung von ScriptableFlowRunner zum Ausführen eines Flows, Subflows oder einer Aktion. Enthält Daten wie die Kontext-ID, die Domäne und alle Ausgaben der Flow-Ausführung.").
{#ScriptableDataStreamAPI__ul_wnh_sfv_ylb}

Rufen Sie nach dem Abrufen eines ScriptableDataStream-Objekts die Methoden in der folgenden Reihenfolge auf:  
1. Verwenden Sie die Methode [hasNext()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-hasNext "Gibt „true“ zurück, falls der Datenstrom mehrere Elemente enthält."), um zu bestimmen, ob der Datenstrom weitere Elemente enthält.
2. Verwenden Sie die Methode „ [next()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-next "Gibt das nächste Element in einem Datenstrom zurück.") ", um auf das nächste Element im Stream zuzugreifen.
3. Verwenden Sie die [Methoden getItemIndex()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-getItemIndex "Gibt den aktuellen Index eines Elements in einem Datenstrom zurück."), [getItemInPageIndex()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-getItemInPageIndex "Gibt den aktuellen Index eines Elements auf der aktuellen Seite in einem Datenstrom zurück.")und [getPageIndex()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-getPageIndex "Gibt den aktuellen Index einer Seite in einem Datenstrom zurück."), um Informationen aus dem Stream abzurufen.
4. Verwenden Sie die Methode [schließen ()](https://www.servicenow.com/docs/qlAtPoflbtDrqRs6J8ydMg#ScriptableDS-close "Schließt die Verbindung zu einem Datenstrom. Rufen Sie diese Methode immer auf, nachdem Sie alle gewünschten Vorgänge für einen Datenstrom ausgeführt haben."), um den Stream zu schließen.
{#ScriptableDataStreamAPI__ol_k1k_yp1_3jb}

Diese Klasse wird im Namespace `sn_fd ausgeführt`.  
Hinweis:  
Schließen Sie die Datenstromlogik immer in einen `Versuch/` Erfassung-Block ein, um Fehler abzufangen. Fügen Sie immer eine `finale` Anweisung ein, die mit der Methode schließen () aus der Klasse ScriptableDataStream endet, um den Datenstrom zu schließen und Leistungsprobleme zu vermeiden.

## ScriptableDataStream -- schließen () {#ariaid-title2}

Schließt die Verbindung zu einem Datenstrom. Rufen Sie diese Methode immer auf, nachdem Sie alle gewünschten Vorgänge für einen Datenstrom ausgeführt haben.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").
{#ScriptableDS-close__table_idv_glc_cjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 1. Parameter]

{#ScriptableDS-close__table_idv_glc_cjb} {#ScriptableDS-close__table_jdv_glc_cjb__entry__2}

| Typ | Beschreibung |
|-|-|
| void |   |
[Tabelle : 2. Ergebnisse]

{#ScriptableDS-close__table_jdv_glc_cjb}  

    (function() {
    	
    	try {
    ​
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_snc_my_scope.data_stream_name');
    ​
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    ​
    			// Get a single item from the data stream.
    			var user = stream.next();
    		
    			// Only log the first item in each page
    			if (stream.getItemInPageIndex() == 0) {
    				gs.info('first user on page is ' + user.name);
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

## ScriptableDataStream -- getItemIndex() {#ariaid-title3}

Gibt den aktuellen Index eines Elements in einem Datenstrom zurück.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").
{#ScriptableDS-getItemIndex__table_ic4_flc_cjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 3. Parameter]

{#ScriptableDS-getItemIndex__table_ic4_flc_cjb} {#ScriptableDS-getItemIndex__table_jc4_flc_cjb__entry__2}

| Typ | Beschreibung |
|-|-|
| Nummer | Aktueller Index eines Elements in einem Datenstrom mit nullbasierter Indizierung. |
[Tabelle : 4. Ergebnisse]

{#ScriptableDS-getItemIndex__table_jc4_flc_cjb}  

    (function() {
    	
    	try {

    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');

    		// Process each item in the data stream
    		while (stream.hasNext()) {

    			// Get a single item from the data stream.
    			var User = stream.next();

    			// Use the item. Example:
    			// var now_GR = new GlideRecord(<table_name>);
    			// now_GR.<field_name> = User.<field_name>;
    			// now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after your code has been tested.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

## ScriptableDataStream -- getItemInPageIndex() {#ariaid-title4}

Gibt den aktuellen Index eines Elements auf der aktuellen Seite in einem Datenstrom zurück.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").
{#ScriptableDS-getItemInPageIndex__table_mg4_zkc_cjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 5. Parameter]

{#ScriptableDS-getItemInPageIndex__table_mg4_zkc_cjb} {#ScriptableDS-getItemInPageIndex__table_ng4_zkc_cjb__entry__2}

| Typ | Beschreibung |
|-|-|
| Nummer | Aktueller Index eines Elements auf der aktuellen Seite im Datenstrom unter Verwendung der nullbasierten Indizierung. |
[Tabelle : 6. Ergebnisse]

{#ScriptableDS-getItemInPageIndex__table_ng4_zkc_cjb}  

    (function() {
    	
    	try {
    ​
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_snc_my_scope.data_stream_name');
    ​
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    ​
    			// Get a single item from the data stream.
    			var user = stream.next();
    		
    			// Only log the first item in each page
    			if (stream.getItemInPageIndex() == 0) {
    				gs.info('first user on page is ' + user.name);
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

## ScriptableDataStream -- getPageIndex() {#ariaid-title5}

Gibt den aktuellen Index einer Seite in einem Datenstrom zurück.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").
{#ScriptableDS-getPageIndex__table_l3t_g43_bjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 7. Parameter]

{#ScriptableDS-getPageIndex__table_l3t_g43_bjb} {#ScriptableDS-getPageIndex__table_m3t_g43_bjb__entry__2}

| Typ | Beschreibung |
|-|-|
| Nummer | Aktueller Index einer Seite in einem Datenstrom mit nullbasierter Indizierung. |
[Tabelle : 8. Ergebnisse]

{#ScriptableDS-getPageIndex__table_m3t_g43_bjb}  

    (function() {
    	
    	try {

    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');

    		// Process each item in the data stream
    		while (stream.hasNext()) {

    			// Get a single item from the data stream.
    			var item = stream.next();

    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 5 pages.
    			// Remove or modify this limit after testing your code.
    			if (stream.getPageIndex() >= 4) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

## ScriptableDataStream -- hasNext() {#ariaid-title6}

Gibt „true" zurück, falls der Datenstrom mehrere Elemente enthält.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").  
Hinweis:  
Standardmäßig wartet die Instanz 600 Sekunden, um eine einzelne Seite mit Daten von einem MID-Serverabzurufen. Wenn beim Ausführen einer Datenstrom -Aktion über ein MID-Servereine Zeitüberschreitung auftritt, ändern Sie diese Standardeinstellung, indem Sie die Systemeigenschaft datastream_alternative_env_fetch_page_timeout_seconds erhöhen.
{#ScriptableDS-hasNext__table_fcx_d43_bjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 9. Parameter]

{#ScriptableDS-hasNext__table_fcx_d43_bjb} {#ScriptableDS-hasNext__table_gcx_d43_bjb__entry__2}

| Typ | Beschreibung |
|-|-|
| Boolean | Kennzeichnung, die bestimmt, ob im Datenstrom weitere Elemente vorhanden sind. Werte: * wahr: Es gibt weitere Elemente, die im Datenstrom durchlaufen werden müssen. * „falsch": Der Datenstrom enthält keine Elemente mehr. {#ScriptableDS-hasNext__ul_xy5_z4d_cjb} |
[Tabelle : 10. Ergebnisse]

{#ScriptableDS-hasNext__table_gcx_d43_bjb}  
In diesem Beispiel wird ein Incident-Datensatz für jedes im Datenstrom zurückgegebene Element erstellt.

    (function() {
    	
    	try {

    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');

    		// Process each item in the data stream
    		while (stream.hasNext()) {

    			// Get a single item from the data stream.
    			var item = stream.next();

    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after testing your code.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

## ScriptableDataStream -- Next() {#ariaid-title7}

Gibt das nächste Element in einem Datenstrom zurück.
Sie können diese Methode nur für ein ScriptableDataStream-Objekt aufrufen, das von der executeDataStreamAction()- Methode in der FlowAPI-Klasse zurückgegeben wird. Siehe [FlowAPI](https://www.servicenow.com/docs/2rlH7KTkl8ll4oO5LMDxTQ#ScriptableFlowAPI "Die FlowAPI bietet Methoden zum Ausführen von Aktionen, Flows oder Subflows in serverseitigen Skripts mit blockierenden oder nicht blockierenden Methoden.").  
Hinweis:  
Standardmäßig wartet die Instanz 600 Sekunden, um eine einzelne Seite mit Daten von einem MID-Serverabzurufen. Wenn beim Ausführen einer Datenstrom -Aktion über ein MID-Servereine Zeitüberschreitung auftritt, ändern Sie diese Standardeinstellung, indem Sie die Systemeigenschaft datastream_alternative_env_fetch_page_timeout_seconds erhöhen.
{#ScriptableDS-next__table_lrc_f43_bjb__entry__3}

| Name | Typ | Beschreibung |
|-|-|-|
| Keine |   |   |
[Tabelle : 11. Parameter]

{#ScriptableDS-next__table_lrc_f43_bjb} {#ScriptableDS-next__table_mrc_f43_bjb__entry__2}

| Typ | Beschreibung |
|-|-|
| Objekt | Nächstes Element im Datenstrom. Dieses Objekt enthält die durch die Datenstromaktion definierten Ausgaben. Um die Ausgaben der Datenstromaktion anzuzeigen, navigieren Sie in der Flow Designer-Schnittstelle zum Abschnitt Ausgaben der Datenstromaktion. |
[Tabelle : 12. Ergebnisse]

{#ScriptableDS-next__table_mrc_f43_bjb}  
In diesem Beispiel wird ein Incident-Datensatz für jedes im Datenstrom zurückgegebene Element erstellt.

    (function() {
    	
    	try {

    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');

    		// Process each item in the data stream
    		while (stream.hasNext()) {

    			// Get a single item from the data stream.
    			var item = stream.next();

    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after testing your code.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();


