IBQConfigBase-API: Bereichsbezogen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 16 Minuten Lesedauer
  • Skripteinbindung, die für erweitert werden muss Vertriebs- und Auftragsmanagement Anforderungstracker zum Nachverfolgen der Anforderungen. Diese Skripteinbindung bietet überschreibbare Methoden, die definieren, wie Anforderungen ausgeführt werden sollen.

    Das Plugin „Sales and Service API Core“ (com.sn_tmt_Core) muss für aktiviert sein IBQConfigBase Skripteinbindung, die in einer Instanz verfügbar sein soll. Diese Skripteinbindung gehört zu sn_tmt_Core Namespace und erfordert die Administratorrolle.

    Erweitern der IBQConfigBase-API

    Definieren Sie eine Skripteinbindung mit den überschreibbaren Methoden der IBQConfigBase-API.

    1. Erstellen Sie eine Skripteinbindung. Der Name muss mit beginnen IBQConfig , Beispiel: IBQConfigQuoteToOrderFlowSNC .
    2. Erweitern Sie IBQConfigBase API.
      Zum Beispiel:
      IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, { 
      ...
      });
    3. Überschreiben Sie alle erforderlichen Methoden, die von bereitgestellt werden IBQConfigBase API.
      Zum Beispiel:
      getRunMode: function(inboundQueueParams) {
          return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
      },
      
      generateParentRecord: function(inboundQueueParams, additionalParams, context) {
          var result = "";
          var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
          var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
          var sourceHeaderId = inboundQueueParams.source_record_ids;
          if (gs.nil(inboundQueueParams.requested_flow))
              throw "sourceToTargetConfigID cannot be null";
          if (gs.nil(inboundQueueParams.source_record_ids))
              throw "source record id cannot be null";
          var util = new sn_l2c_core.PrimitiveUtil();
          if (gs.nil(additionalParams))
              additionalParams = {};
          additionalParams[this.SKIP_LINES_KEY] = "true";
      },
      
      processInboundQueueRequest: function(inboundQueueGR) {
          gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
          var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
          return result;
      }
    4. Erstellen Sie einen neuen Metadateneintrag in der Tabelle „Konfiguration eingehender Anforderungen“ [sn_tmt_Core_inbound_Queue_config], um zu definieren, wie eine Anforderung verarbeitet werden soll.
    5. Verknüpfen Sie die erstellte Skripteinbindung mit Configuration_api Feld des Metadatendatensatzes zur Verwendung der anwenderdefinierten Logik, die bei der Verarbeitung der Anforderung definiert wurde. Auf die Skripteinbindung wird in verwiesen Configuration_api Feld beim Erstellen eingehender Anforderungskonfigurationsmetadaten.

    Anwendungsfall: IBQConfigQuoteToOrderFlow

    Sie können verwenden IBQConfigBase API zum Erstellen einer Bestellung aus einem Angebot mithilfe eingehender Anforderungskonfigurationsmetadaten. IBQConfigQuoteToOrderFlow ist eine anwenderdefinierte Skripteinbindung, die durch Erweiterung von erstellt werden kann IBQConfigBase API. Die Logik für die überschreibbaren Methoden muss der Skripteinbindung IBQConfigQuoteToOrderFlow hinzugefügt werden.
    Hinweis:
    Diese Skripteinbindung erweitert IBQConfigBase API und wird in den Methodenbeispielen verwendet. Für Informationen zur Verwendung von PrimitiveUtil API, siehe LeadtoCashCore – Umfang.
    var IBQConfigQuoteToOrderFlowSNC = Class.create();
    IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, {
    
        initialize: function() {
    		this.quoteUtil = new sn_quote_mgmt.OrderIntegration();
            this.SKIP_LINES_KEY = "skipLines";
    		this.threshold = 15;
        },
    
        getRunMode: function(inboundQueueParams) {
            return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
        },
    
    
        generateParentRecord: function(inboundQueueParams, additionalParams, context) {
            var result = "";
            var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
            var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
            var sourceHeaderId = inboundQueueParams.source_record_ids;
            if (gs.nil(inboundQueueParams.requested_flow))
                throw "sourceToTargetConfigID cannot be null";
            if (gs.nil(inboundQueueParams.source_record_ids))
                throw "source record id cannot be null";
            var util = new sn_l2c_core.PrimitiveUtil();
            if (gs.nil(additionalParams))
                additionalParams = {};
            additionalParams[this.SKIP_LINES_KEY] = "true";
    
            // additional parameters are retrieved using the PrimitiveUtil() utility methods provided by the Lead to Cash Core application
            var service = util.getPrimitivesEPService(sourceToTargetConfigID, context);
            var isEmpty = false;
            if (service) {
                var createInstanceOutput = service.createInstance(sourceHeaderId, null, false, additionalParams);
                if (gs.nil(sourceHeaderId))
                    isEmpty = this.__isEmpty(createInstanceOutput.lineItems);
                else
                    isEmpty = this.__isEmpty(createInstanceOutput);
                if (!isEmpty) {
                    var effectOutput = service.effect(createInstanceOutput, null, additionalParams);
                    if (!this.__isEmpty(effectOutput)) {
                        var commitOutput = service.commitInstance(effectOutput, additionalParams);
                        return commitOutput;
                    }
                }
            }
            return result;
        },
    
        processInboundQueueRequest: function(inboundQueueGR) {
            gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
            var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
            return result;
        },
    
        __isEmpty: function(sourceObj) {
            if (gs.nil(sourceObj))
                return true;
            return Object.keys(sourceObj).length === 0;
        },
        getMapingConfigIdFromSysId(requestedFlow) {
            var gr = new GlideRecord("sn_l2c_core_entity_mapping");
            gr.addQuery("sys_id", requestedFlow);
            gr.query();
            if (gr.next()) {
                gs.info("mapping id received to corresponding requestedFlow");
                return gr;
            }
        },
    
        type: 'IBQConfigQuoteToOrderFlowSNC'
    });

    IBQConfigBase – generateParentRecord(Object ibqParams)

    Erstellt einen übergeordneten Datensatz, der der Record_ID des Datensatzes der eingehenden Anforderung [sn_tmt_Core_inbound_Queue_list] hinzugefügt wird, bevor die Anforderung verarbeitet wird.

    Hat Ein übergeordneter Datensatz „Vor der Verarbeitung erstellt“ ist ideal für die asynchrone Verarbeitung und ermöglicht Ihnen das Hinzufügen von Aktivitäten zu Ihrer Skripteinbindung, die während der Verarbeitung ausgeführt werden können. Beispiel: Anzeige einer Nachricht auf dem Bildschirm.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    IbqParams Objekt JSON-Objekt, das die Details des zu erstellenden Datensatzes für eingehende Anforderungen enthält.
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    Account Zeichenfolge Optional. Informationen zum Account, der dem Datensatz zugeordnet ist.

    Tabelle: Account [Customer_Account]

    Verbraucher Zeichenfolge Optional. Informationen zum Verbraucher, der dem Datensatz zugeordnet ist.

    Tabelle: Verbraucher [csm_Consumer]

    Kontakt Zeichenfolge Optional. Informationen zum Kontakt, der dem Datensatz zugeordnet ist.

    Tabelle: Kontakt [Customer_contact]

    Nutzlast Objekt Optional. JSON-Objekt, das erforderlich ist, um die Anforderung mit zu verarbeiten PrimitiveUtil() API. Informationen zur Nutzung finden Sie unter LeadToCashCore .
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    Payload.zusätzliche Parameter Objekt Optional. Zusätzliche zu verwendende Parameter.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    Payload.zusätzliche Parameter.Aktion Zeichenfolge Optional. Gibt den Typ der deklarativen Aktion an, die ausgeführt wird. Weitere Informationen finden Sie unter Customer Life Cycle Management Workflows.
    Mögliche Werte:
    • Trennen
    • modify
    • resume
    • Anhalten
    Nutzlast.zusätzliche Parameter.actionReason Zeichenfolge Optional. Eigenschaft, die in Flows mit deklarativen Aktionen verwendet wird. Grund für die Aktion.
    Payload.zusätzliche Parameter.Enddatum Zeichenfolge Optional. Enddatum, das zum Ausführen von Flows mit deklarativen Aktionen erforderlich ist.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.additionalParameter.skipLines Boolean Optional. Kennzeichnung, die angibt, ob Einzelposten für die angegebene Entität abgerufen werden sollen.
    Gültige Werte:
    • Wahr: Zurückgegebene Einzelposten-Informationen für die Entität werden übersprungen.
    • Falsch: Gibt Positionsinformationen für die Entität zurück.
    Standardwert: false
    Payload.zusätzliche Parameter.Startdatum Zeichenfolge Optional. Startdatum für die Ausführung von Flows mit deklarativen Aktionen.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum Aufrufen mehrerer Instanzen gleichzeitig.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    Nutzlast.Kontext.isMultiSelect Boolean Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe übergeben werden sollen, um die Instanz zu erstellen.
    Gültige Werte:
    • Wahr: Ermöglicht die Übergabe mehrerer Einzelposten in einer kommagetrennten Liste.
    • Falsch: Im Skript kann nur ein Eingabeelement übergeben werden.
    Standardwert: false
    Payload.context.sourceToTargetConfigID Zeichenfolge Optional. Zuordnungskonfigurations-ID für die Quell-zu-Ziel-Zuordnung.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    payload.inputParams Objekt Optional. Dieses Objekt ist ein Platzhalter für alle Eingabeparameter, die zum Aufrufen der Verwendung eines bestimmten Flows erforderlich sind.
    "inputParams": {}
    Payload.Source Array Optional. JSON-Objekt mit Details der Quellentität, aus der Daten abgerufen werden sollen.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.Source.headerId Zeichenfolge Optional. Header-sys_ID der Quellentität, aus der Daten abgerufen werden sollen.
    • Erforderlich, wenn Sie nicht angeben lineIdsParameter.
    • Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.Source.lineIds Array Optional. Array mit sys_ID(s) des Quellpositionselements einer Entität, aus der Entitätsdaten abgerufen werden sollen.

    Erforderlich, wenn Sie die Header-ID nicht angeben und wenn die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.

    Payload.target Array Optional. JSON-Objekt mit Details der Zielentität.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.target.headerId Zeichenfolge Optional. Header-sys_ID der Zielentität, aus der Daten abgerufen werden sollen. Erforderlich, wenn Sie nicht angeben lineIdsParameter. Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.target.lineIds Array Optional. Array mit sys_ID(s) des Zielpositionen einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie keine Header-ID angeben und die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.
    record_id Zeichenfolge Optional. SYS_ID des Zieldatensatzes, falls bereits vorhanden.
    Request_Flow Zeichenfolge Optional. Zuordnungskonfigurations-ID für Quell-zu-Ziel-Zuordnung. Diese Eigenschaft ist für Flows mit erforderlich Entity configuration and mapping.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    Source_Record_IDs Array Array, das die sys_IDs der Quelldatensätze enthält.
    source_table Zeichenfolge Name der Tabelle, die den Quelldatensatz des Flows enthält.
    table Zeichenfolge Name der Tabelle, die den Zieldatensatz des Flows enthält.
    Tabelle : 2. Rückgaben
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt mit der Header-ID des erstellten Zieldatensatzes.
    {
     "headerID": "String",
     // additional parameters, if any, per flow see payload.inputParams
    }
    HeaderID SYS_ID des Headers des erstellten Zieldatensatzes. Dieser Wert wird verwendet, um das Feld „Record_ID“ beim Erstellen des Datensatzes der eingehenden Anforderung auszufüllen.
    Das folgende Beispiel zeigt, wie Sie aufrufen GenerateParentRecord() Methode.
    Hinweis:
    IBQConfigQuoteToOrderFlow ist eine anwenderdefinierte Skripteinbindung, die durch Erweiterung von erstellt werden kann IBQConfigBase API. Die Logik für die überschreibbaren Methoden muss der Skripteinbindung IBQConfigQuoteToOrderFlow hinzugefügt werden.
    var ibqParams = {
      "source_record_ids": "f83e29574df02210f877142d1adc9531",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    }; 
    
    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow(); 
    var parentRecord = service.generateParentRecord(ibqParams); 
    
    gs.info("Parent record = "+JSON.stringify(parentRecord));
    Ausgabe:
    Parent record = {"headerID":"d11bd507dc6c6a10f877720033b5d0b9", ...} 

    IBQConfigBase – getRunMode (Objekt-ibqParams)

    Bestimmt, ob ein Flow im synchronisierten oder asynchronen Modus ausgeführt werden soll.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    IbqParams Objekt JSON-Objekt, das die Details des zu erstellenden Datensatzes für eingehende Anforderungen enthält.
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    Account Zeichenfolge Optional. Informationen zum Account, der dem Datensatz zugeordnet ist.

    Tabelle: Account [Customer_Account]

    Verbraucher Zeichenfolge Optional. Informationen zum Verbraucher, der dem Datensatz zugeordnet ist.

    Tabelle: Verbraucher [csm_Consumer]

    Kontakt Zeichenfolge Optional. Informationen zum Kontakt, der dem Datensatz zugeordnet ist.

    Tabelle: Kontakt [Customer_contact]

    Nutzlast Objekt Optional. JSON-Objekt, das erforderlich ist, um die Anforderung mit zu verarbeiten PrimitiveUtil() API. Informationen zur Nutzung finden Sie unter LeadToCashCore .
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    Payload.zusätzliche Parameter Objekt Optional. Zusätzliche zu verwendende Parameter.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    Payload.zusätzliche Parameter.Aktion Zeichenfolge Optional. Gibt den Typ der deklarativen Aktion an, die ausgeführt wird. Weitere Informationen finden Sie unter Customer Life Cycle Management Workflows.
    Mögliche Werte:
    • Trennen
    • modify
    • resume
    • Anhalten
    Nutzlast.zusätzliche Parameter.actionReason Zeichenfolge Optional. Eigenschaft, die in Flows mit deklarativen Aktionen verwendet wird. Grund für die Aktion.
    Payload.zusätzliche Parameter.Enddatum Zeichenfolge Optional. Enddatum, das zum Ausführen von Flows mit deklarativen Aktionen erforderlich ist.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.additionalParameter.skipLines Boolean Optional. Kennzeichnung, die angibt, ob Einzelposten für die angegebene Entität abgerufen werden sollen.
    Gültige Werte:
    • Wahr: Zurückgegebene Einzelposten-Informationen für die Entität werden übersprungen.
    • Falsch: Gibt Positionsinformationen für die Entität zurück.
    Standardwert: false
    Payload.zusätzliche Parameter.Startdatum Zeichenfolge Optional. Startdatum für die Ausführung von Flows mit deklarativen Aktionen.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum Aufrufen mehrerer Instanzen gleichzeitig.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    Nutzlast.Kontext.isMultiSelect Boolean Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe übergeben werden sollen, um die Instanz zu erstellen.
    Gültige Werte:
    • Wahr: Ermöglicht die Übergabe mehrerer Einzelposten in einer kommagetrennten Liste.
    • Falsch: Im Skript kann nur ein Eingabeelement übergeben werden.
    Standardwert: false
    Payload.context.sourceToTargetConfigID Zeichenfolge Optional. Zuordnungskonfigurations-ID für die Quell-zu-Ziel-Zuordnung.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    payload.inputParams Objekt Optional. Dieses Objekt ist ein Platzhalter für alle Eingabeparameter, die zum Aufrufen der Verwendung eines bestimmten Flows erforderlich sind.
    "inputParams": {}
    Payload.Source Array Optional. JSON-Objekt mit Details der Quellentität, aus der Daten abgerufen werden sollen.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.Source.headerId Zeichenfolge Optional. Header-sys_ID der Quellentität, aus der Daten abgerufen werden sollen.
    • Erforderlich, wenn Sie nicht angeben lineIdsParameter.
    • Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.Source.lineIds Array Optional. Array mit sys_ID(s) des Quellpositionselements einer Entität, aus der Entitätsdaten abgerufen werden sollen.

    Erforderlich, wenn Sie die Header-ID nicht angeben und wenn die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.

    Payload.target Array Optional. JSON-Objekt mit Details der Zielentität.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.target.headerId Zeichenfolge Optional. Header-sys_ID der Zielentität, aus der Daten abgerufen werden sollen. Erforderlich, wenn Sie nicht angeben lineIdsParameter. Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.target.lineIds Array Optional. Array mit sys_ID(s) des Zielpositionen einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie keine Header-ID angeben und die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.
    record_id Zeichenfolge Optional. SYS_ID des Zieldatensatzes, falls bereits vorhanden.
    Request_Flow Zeichenfolge Optional. Zuordnungskonfigurations-ID für Quell-zu-Ziel-Zuordnung. Diese Eigenschaft ist für Flows mit erforderlich Entity configuration and mapping.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    Source_Record_IDs Array Array, das die sys_IDs der Quelldatensätze enthält.
    source_table Zeichenfolge Name der Tabelle, die den Quelldatensatz des Flows enthält.
    table Zeichenfolge Name der Tabelle, die den Zieldatensatz des Flows enthält.
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    Zeichenfolge Informationen zum Ausführungsmodus, der zum Ausführen der Anforderung verwendet werden soll.
    Mögliche Werte:
    • async
    • sync
    Das folgende Beispiel zeigt, wie Sie aufrufen GetRunMode() Methode, die die sys_ID der Quelle verwendet, die von der Eigenschaft „Source_Record_IDs“ bereitgestellt wird. Wenn die Anzahl der Einzelposten größer als 10 ist, dann runModeIst Asynchron .
    Hinweis:
    IBQConfigQuoteToOrderFlow ist eine anwenderdefinierte Skripteinbindung, die durch Erweiterung von erstellt werden kann IBQConfigBase API. Die Logik für die überschreibbaren Methoden muss der Skripteinbindung IBQConfigQuoteToOrderFlow hinzugefügt werden.
    var ibqParams = {
      "source_record_ids": "04ba9004f11f3110f8777d7194f166f6",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };
    
    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();
    
    var runMode = service.getRunMode(ibqParams);
    
    gs.info("RunMode = "+JSON.stringify(runMode));
    Ausgabe:
    RunMode = "async"
    Das folgende Beispiel zeigt, wie aufgerufen wird GetRunMode() Methode. Verwendet die sys_ID der Quelle, die in Source_Record_IDs angegeben wird. Hier ist die Anzahl der Einzelposten kleiner als 10, also die runModeIst synchronisiert.
    Hinweis:
    IBQConfigQuoteToOrderFlow ist eine anwenderdefinierte Skripteinbindung, die durch Erweiterung von erstellt werden kann IBQConfigBase API. Die Logik für die überschreibbaren Methoden muss der Skripteinbindung IBQConfigQuoteToOrderFlow hinzugefügt werden.
    var ibqParams = {
      "source_record_ids": "0b0f5cc8f11f3110f8777d7194f16610",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };
    
    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();
    
    var runMode = service.getRunMode(ibqParams);
    
    gs.info("RunMode = "+JSON.stringify(runMode));
    Ausgabe:
    RunMode = "sync"

    IBQConfigBase – processInbound QueueRequest(GlideRecord ibqGr)

    Definiert die Logik für die Verarbeitung eines eingehenden Anforderungsdatensatzes.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    IbqGr GlideRecord GlideRecord Verweis auf den Datensatz der eingehenden Anforderung, der den Flow ausgelöst hat.

    Tabelle: Eingehende Anforderung [sn_tmt_Core_inbound_Queue]  

    Tabelle : 6. Rückgaben
    Typ Beschreibung
    Objekt Ein JSON-Objekt, das die Verarbeitungsdetails des Datensatzes der eingehenden Anforderung enthält.
    {
      "error": "String",
      "response": {Object},
      "status": "String",
      "target": "String"
    }
    Fehler Wert, der den Fehler bei der Verarbeitung der Anforderung angibt.

    Datentyp: Zeichenfolge

    response Ein JSON-Objekt, das die Antwort der Verarbeitung des Datensatzes der eingehenden Anforderung enthält. Für Flows, die vom Lead-to-Cash-Core erstellt wurden PrimitiveUtil API, kann diese Ausgabe mit bereitgestellt werden CommitInstance() Methode.

    Datentyp: Objekt

    status Wert, der den Status der Anforderungsverarbeitung angibt.
    Mögliche Werte:
    • Fehler: Der Vorgang ist fehlgeschlagen.
    • Partial_success: Bei der Verarbeitung des JSON-Objekts sind einige Fehler aufgetreten. Informationen zur Behebung bestimmter Fehler finden Sie unter Verarbeitungsprotokolle in der Tabelle „Protokoll“ [syslog].  
    • Erfolg: Der Vorgang war erfolgreich.

    Datentyp: Zeichenfolge

    Ziel Optional. SYS_ID des Zieldatensatzes, der für die weitere Verarbeitung verwendet werden soll, z. B. UI-Bestätigung. Das Ziel kann entweder während des Flows erstellt oder als Eingabe an übergeben werden ibqParamsVon GenerateParentRecord() Methode abhängig von der Anforderung.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie aufgerufen wird ProcessInbound QueueRequest() Methode.
    Hinweis:
    Diese Methode wird während des Flows mit aufgerufen Flow Designer. Im folgenden Beispiel Lead-to-Cash Core PrimitiveUtil CommitInstance() Die Methode wird verwendet, um die Ausgabe bereitzustellen.
    var gr = new GlideRecord('sn_tmt_core_inbound_queue');
    gr.get('c48ea9974df02210f877142d1adc951a');
    
    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow();
    var processRequest = service.processInboundQueueRequest(gr);
    
    gs.info("processRequest = "+JSON.stringify(processRequest));
    Ausgabe:
    processRequest = {
      "response": {
        "status": "success",
        "error": "",
        "message": "Commit operation successfully processed.",
        "displayMessage": "Commit operation successfully processed.",
        "dataObject": {
          "sys_id": "a6f4568bdce0aa10f877720033b5d069",
          "table": "sn_ind_tmt_orm_order",
          "attributes": {
            "account": {
              "value": "9e2fd2ee11b43110f877366201dea674"
            },
            "quote": {
              "value": "c8841a4bdce0aa10f877720033b5d0f8"
            }
          },
          "_glide_action": "UPDATE",
          "_source_object": {
            "sys_id": "c8841a4bdce0aa10f877720033b5d0f8",
            "table": "sn_quote_mgmt_core_quote"
          },
          "lineItems": [
            {
              "sys_id": "-1",
              "table": "sn_ind_tmt_orm_order_line_item",
              "attributes": {
                "short_description": {
                  "value": "Home Automation Bundle"
                },
                "account": {
                  "value": "9e2fd2ee11b43110f877366201dea674"
                }
              },
              "_glide_action": "INSERT",
              "_source_object": {
                "sys_id": "afc4528bdce0aa10f877720033b5d0d0",
                "table": "sn_quote_mgmt_core_quote_line_item"
              },
              "characteristics": [],
              "lineItems": [
                {
                  "sys_id": "-1",
                  "table": "sn_ind_tmt_orm_order_line_item",
                  "attributes": {
                    "short_description": {
                      "value": "Door Sensor"
                    },
                    "account": {
                      "value": "9e2fd2ee11b43110f877366201dea674"
                    }
                  },
                  "_glide_action": "INSERT",
                  "_source_object": {
                    "sys_id": "77c4528bdce0aa10f877720033b5d0d5",
                    "table": "sn_quote_mgmt_core_quote_line_item"
                  },
                  "characteristics": [],
                  "lineItems": [],
                  "pricingAdjustments": [
                    {
                      "sys_id": "-1",
                      "table": "sn_ind_tmt_orm_pricing_adjustment",
                      "attributes": {
                        "name": {
                          "value": "door sensor bundle discount"
                        }
                      },
                      "_glide_action": "INSERT",
                      "_source_object": {
                        "sys_id": "f3c4928bdce0aa10f877720033b5d02f",
                        "table": "sn_quote_mgmt_core_pricing_adjustment"
                      },
                      "_commitObjectInfo": {
                        "sys_id": "e6955acbdce0aa10f877720033b5d082",
                        "status": "success"
                      }
                    }
                  ],
                  "coveredProducts": [],
                  "attributeAdjustment": [],
                  "_commitObjectInfo": {
                    "sys_id": "26955acbdce0aa10f877720033b5d07d",
                    "status": "success"
                  }
                }
              ],
              "pricingAdjustments": [],
              "coveredProducts": [],
              "attributeAdjustment": [],
              "_commitObjectInfo": {
                "sys_id": "22955acbdce0aa10f877720033b5d078",
                "status": "success"
              }
            }
          ],
          "_commitObjectInfo": {
            "status": "success"
          }
        },
        "headerID": "a6f4568bdce0aa10f877720033b5d069",
        "rootLineIDs": [
          "22955acbdce0aa10f877720033b5d078"
        ]
      },
      "status": "success",
      "error": "",
      "target": "a6f4568bdce0aa10f877720033b5d069"
    }

    IBQConfigBase – setExecuteAfterRequest(Object ibqParams)

    Legt fest Execute_After Wert und Updates status Zu Ausstehend für den aktuellen Datensatz der eingehenden Anforderung, um die Reihenfolge zu konfigurieren, in der Datensätze in der Tabelle „eingehende Anforderungen“ verarbeitet werden.

    Die SetExecuteAfterRequest() Die Methode kann überschrieben werden, um abzuleiten execute_afterWert aus anderen Parametern. Standardmäßig fragt diese Methode die Tabelle „eingehende Anforderung“ [sn_tmt_Core_inbound_Queue] ab, um den neuesten Datensatz mit Übereinstimmung zu finden source_record_ids, record_id, Und resourceWerte. Diese Methode aktualisiert dann den aktuellen Datensatz Execute_After Feld mit sys_ID des abgefragten Datensatzes, das den aktuellen Datensatz markiert, der nach dem abgefragten Datensatz verarbeitet werden soll. Infolgedessen SetExecuteAfterRequest() Legt die Reihenfolge fest, in der Datensätze verarbeitet werden.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    IbqParams Objekt JSON-Objekt, das die Details der festzulegenden Datensätze für eingehende Anforderungen enthält. Diese Parameter umfassen die sys_ID des Datensatzes, die vor dem aktuellen Datensatz verarbeitet werden soll, und den Workflow-Namen, nach dem in der Tabelle „eingehende Anforderung“ [sn_tmt_Core_inbound_Queue] gefiltert werden soll.
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "execute_after": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "resource": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    Account Zeichenfolge Optional. Informationen zum Account, der dem Datensatz zugeordnet ist.

    Tabelle: Account [Customer_Account]

    Verbraucher Zeichenfolge Optional. Informationen zum Verbraucher, der dem Datensatz zugeordnet ist.

    Tabelle: Verbraucher [csm_Consumer]

    Kontakt Zeichenfolge Optional. Informationen zum Kontakt, der dem Datensatz zugeordnet ist.

    Tabelle: Kontakt [Customer_contact]

    IbqParams.execute_After Zeichenfolge Optional. SYS_ID der eingehenden Anforderung, die vor der aktuellen Anforderung verarbeitet werden soll.

    Tabelle: Eingehende Anforderung [sn_tmt_Core_inbound_Queue]

    Nutzlast Objekt Optional. JSON-Objekt, das erforderlich ist, um die Anforderung mit zu verarbeiten PrimitiveUtil() API. Informationen zur Nutzung finden Sie unter LeadToCashCore .
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    Payload.zusätzliche Parameter Objekt Optional. Zusätzliche zu verwendende Parameter.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    Payload.zusätzliche Parameter.Aktion Zeichenfolge Optional. Gibt den Typ der deklarativen Aktion an, die ausgeführt wird. Weitere Informationen finden Sie unter Customer Life Cycle Management Workflows.
    Mögliche Werte:
    • Trennen
    • modify
    • resume
    • Anhalten
    Nutzlast.zusätzliche Parameter.actionReason Zeichenfolge Optional. Eigenschaft, die in Flows mit deklarativen Aktionen verwendet wird. Grund für die Aktion.
    Payload.zusätzliche Parameter.Enddatum Zeichenfolge Optional. Enddatum, das zum Ausführen von Flows mit deklarativen Aktionen erforderlich ist.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.additionalParameter.skipLines Boolean Optional. Kennzeichnung, die angibt, ob Einzelposten für die angegebene Entität abgerufen werden sollen.
    Gültige Werte:
    • Wahr: Zurückgegebene Einzelposten-Informationen für die Entität werden übersprungen.
    • Falsch: Gibt Positionsinformationen für die Entität zurück.
    Standardwert: false
    Payload.zusätzliche Parameter.Startdatum Zeichenfolge Optional. Startdatum für die Ausführung von Flows mit deklarativen Aktionen.

    Format: jjjj-MM-TT HH:mm:ss

    Payload.context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum Aufrufen mehrerer Instanzen gleichzeitig.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    Nutzlast.Kontext.isMultiSelect Boolean Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe übergeben werden sollen, um die Instanz zu erstellen.
    Gültige Werte:
    • Wahr: Ermöglicht die Übergabe mehrerer Einzelposten in einer kommagetrennten Liste.
    • Falsch: Im Skript kann nur ein Eingabeelement übergeben werden.
    Standardwert: false
    Payload.context.sourceToTargetConfigID Zeichenfolge Optional. Zuordnungskonfigurations-ID für die Quell-zu-Ziel-Zuordnung.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    payload.inputParams Objekt Optional. Dieses Objekt ist ein Platzhalter für alle Eingabeparameter, die zum Aufrufen der Verwendung eines bestimmten Flows erforderlich sind.
    "inputParams": {}
    Payload.Source Array Optional. JSON-Objekt mit Details der Quellentität, aus der Daten abgerufen werden sollen.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.Source.headerId Zeichenfolge Optional. Header-sys_ID der Quellentität, aus der Daten abgerufen werden sollen.
    • Erforderlich, wenn Sie nicht angeben lineIdsParameter.
    • Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.Source.lineIds Array Optional. Array mit sys_ID(s) des Quellpositionselements einer Entität, aus der Entitätsdaten abgerufen werden sollen.

    Erforderlich, wenn Sie die Header-ID nicht angeben und wenn die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.

    Payload.target Array Optional. JSON-Objekt mit Details der Zielentität.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    Payload.target.headerId Zeichenfolge Optional. Header-sys_ID der Zielentität, aus der Daten abgerufen werden sollen. Erforderlich, wenn Sie nicht angeben lineIdsParameter. Übergeben Sie null , wenn Sie keine Header-sys_IDs übergeben.
    Payload.target.lineIds Array Optional. Array mit sys_ID(s) des Zielpositionen einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie keine Header-ID angeben und die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.
    record_id Zeichenfolge Optional. SYS_ID des Zieldatensatzes, falls bereits vorhanden.
    Request_Flow Zeichenfolge Optional. Zuordnungskonfigurations-ID für Quell-zu-Ziel-Zuordnung. Diese Eigenschaft ist für Flows mit erforderlich Entity configuration and mapping.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    IbqParams.resource Zeichenfolge Name des Flows, der den Datensatz in der Tabelle „eingehende Anforderung“ erstellt (z. B. ein Angebot oder eine Bestellung). Dieser Wert wird verwendet, um abhängige Datensätze desselben Typs zu finden, um die Reihenfolge der Datensatzverarbeitung zu bestimmen.
    Source_Record_IDs Array Array, das die sys_IDs der Quelldatensätze enthält.
    source_table Zeichenfolge Name der Tabelle, die den Quelldatensatz des Flows enthält.
    table Zeichenfolge Name der Tabelle, die den Zieldatensatz des Flows enthält.
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    Keine

    Im folgenden Beispiel fragt das Skript die Tabelle „eingehende Anforderung“ [sn_tmt_Core_inbound_Queue] ab, um den neuesten Datensatz mit übereinstimmenden Source_Record_IDs, Record_ID und Ressourcenwerten zu finden. Das Skript ruft dann auf SetExecuteAfterRequest() Methode zum Aktualisieren des Werts „execute_After“ des aktuellen Datensatzes mit der sys_ID des abgerufenen Datensatzes und zum Festlegen des Status auf „Ausstehend“. Daher wird der aktuelle Datensatz nach dem im Feld „execute_After“ angegebenen Datensatz ausgeführt.

    var ibqParams = { 
      "source_record_ids": "e32e29fd28d26a14f8775b8f954723b8",
      "record_id":"b9be293128166a14f8775b8f9547239f", 
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc", 
      "initiated_by": "admin", 
      "source_table": "sn_quote_mgmt_core_quote", 
      "table": "sn_ind_tmt_orm_order", 
      "payload": {
      "context": {}}, 
      "resource": "quote_to_order" 
     }; 
    
    new sn_tmt_core.IBQConfigBase().setExecuteAfterRequest(ibqParams);

    Diese Methode gibt keine Ausgabe zurück.