ScriptableDataStream – Scoped, Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 5 Minuten Lesedauer
  • Die ScriptableDataStream -API stellt Methoden für die Interaktion mit einem Datenstrom bereit.

    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.
    • Die getDataStream()- Methode in der ScriptableFlowRunnerResult -Klasse. Siehe ScriptableFlowRunnerResult.

    Rufen Sie nach dem Abrufen eines ScriptableDataStream-Objekts die Methoden in der folgenden Reihenfolge auf:

    1. Verwenden Sie die Methode hasNext(), um zu bestimmen, ob der Datenstrom weitere Elemente enthält.
    2. Verwenden Sie die next()- Methode, um auf das nächste Element im Stream zuzugreifen.
    3. Verwenden Sie die Methoden getItemIndex(), getItemInPageIndex()und getPageIndex(), um Informationen aus dem Stream abzurufen.
    4. Verwenden Sie die Methode close(), um den Stream zu schließen.

    Diese Klasse wird im Namespace sn_fd ausgeführt.

    Hinweis:
    Umschließen Sie die Datenstromlogik immer in einem try/catch -Block, um Fehler abzufangen. Fügen Sie immer eine „ endlich “-Anweisung ein, die mit der close()- Methode der ScriptableDataStream -Klasse endet, um den Datenstrom zu schließen und Leistungsprobleme zu vermeiden.

    ScriptableDataStream – close()

    Schließt die Verbindung zu einem Datenstrom. Rufen Sie diese Methode immer auf, nachdem Sie die 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.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    void
    (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()

    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.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Nummer Aktueller Index eines Elements in einem Datenstrom mit nullbasierter Indizierung.
    (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()

    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.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Nummer Aktueller Index eines Elements auf der aktuellen Seite im Datenstrom mit nullbasierter Indizierung.
    (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()

    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.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Nummer Aktueller Index einer Seite in einem Datenstrom mit nullbasierter Indizierung.
    (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()

    Gibt „true“ zurück, wenn der Datenstrom weitere 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.

    Hinweis:
    Standardmäßig wartet die Instanz 600 Sekunden, um eine einzelne Seite mit Daten aus einem MID-Serverabzurufen. Wenn beim Ausführen einer Datenstrom -Aktion über einen MID-Servereine Zeitüberschreitung auftritt, ändern Sie diesen Standard, indem Sie die datastream_alternative_env_fetch_page_timeout_seconds -Systemeigenschaft erhöhen.
    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    Boolean Kennzeichnung, die bestimmt, ob der Datenstrom weitere Elemente enthält. Werte:
    • true: Im Datenstrom müssen weitere Elemente durchlaufen werden.
    • false: Der Datenstrom enthält keine weiteren Elemente.

    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()

    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.

    Hinweis:
    Standardmäßig wartet die Instanz 600 Sekunden, um eine einzelne Seite mit Daten aus einem MID-Serverabzurufen. Wenn beim Ausführen einer Datenstrom -Aktion über einen MID-Servereine Zeitüberschreitung auftritt, ändern Sie diesen Standard, indem Sie die datastream_alternative_env_fetch_page_timeout_seconds -Systemeigenschaft erhöhen.
    Tabelle : 11. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 12. Ergebnisse
    Typ Beschreibung
    Objekt Nächstes Element im Datenstrom. Dieses Objekt enthält die Ausgaben, die durch die Datenstrom-Aktion definiert werden. Um die Ausgaben der Datenstrom-Aktion anzuzeigen, navigieren Sie in der Flow Designer-Schnittstelle zum Abschnitt Ausgaben der Datenstrom-Aktion.

    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();
    	}
    	
    })();