Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On this Page

Table of Contents
maxLevel2
excludeOlder Versions|Additional Resources|Related Links|Related Information


Panel
bgColor#ebf7e1
borderStylesolid

In this Section

Child pages (Children Display)
alltrue
depth2


Overview

The Remote Python Script Snap is a Transform type Snap that enables you to execute a Python script on a Remote Python Executor (RPE). The RPE can be installed on the same node as the JCC or elsewhere. The location of the RPE is specified in the account. See Remote Python Executor Installation for steps on installing the RPE.

The Snap has an additional Input and Output view. You can use the second Input view to pass a script to the Snap, in which case the default script within the Snap is ignored. This is useful in case the script is stored in external locations such as GitHub or SFTP server. The second Output view shows the standard output (STDOUT) redirected from the RPE. 

Input and Output

Expected input

  • First input view: The document upon which the Python script is to be executed. 
  • Second input view: The Python script to be executed. 

Expected output:

  • First output view: The output from the Python script's execution. 
  • Second output view: The STDOUT redirected from the RPE.

Expected upstream Snaps

  • First input view: Any Snap that has a document output view. For example, CSV Generator, or a combination of File Reader and CSV Parser.
  • Second input view: You can use Snaps that read script files from the SLDB or external locations such as GitHub. For example, a combination of File Reader and Binary to Document.

Expected downstream Snaps:

  • First output view: Any Snap that accepts a document input. For example, Mapper, or a combination of JSON Formatter and File Writer.
  • Second output view: Any Snap that accepts a document input. For example, Mapper, or a combination of Document to Binary and File Writer.

Prerequisites

The RPE should be installed and running before using this Snap. See Remote Python Executor Installation for steps to install the RPE.

Configuring Accounts

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See Remote Python Executor Account for information on setting up this type of account.

Configuring Views

Input

This Snap has at most two document input views.
OutputThis Snap has at least one and at most two document output views.
ErrorThis Snap has at most one document error view.

Troubleshooting

None.

Limitations and Known Issues

None.

Modes


Snap Settings


Snap Execution


Anaplan Read

Select one of the following three modes in which the Snap executes:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.

  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.

  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Default ValueExecute only
Example: Validate & Execute

LabelRequired. The name for the Snap. Modify this to be more specific, especially if there are more than one of the same Snap in the pipeline.
Edit Script

Required. The Python script to be executed. Click Edit Script to open the script editor. The editor contains a default Python script, edit it as required or supply another script through the second input view. 

The default script writes the input documents to the $original field in the output. 

Default value: Default Python script as shown below:

Paste code macro
titleDefault Python Script
#Imports

#Global Variables

#This function will be executed once before consuming the data.
def snaplogic_init():
    return None

#This function will be executed on each document from the upstream snap.
def snaplogic_process(row):
    output = {}
    output["original"] = row
    return output

#This function will be executed after consuming all documents from the upstream snap.
def snaplogic_final():
    return None


Note
titleFunctions in the default script

There are three main functions:

  • snaplogic_init
  • snaplogic_process
  • snaplogic_final 

The first function (snaplogic_init) is executed before consuming input data. The second function (snaplogic_process) is called on each of the incoming documents. The last function (snaplogic_final) is processed after all incoming documents have been consumed by snaplogic_process.


Note

This Snap supports pipeline parameters. Refer to the example below to understand how to use pipeline parameters in this Snap.


Multiexcerpt include macro
name
pageAnaplan Read
Multiexcerpt include macro
nameSnap_Execution_Introduced
page


Examples


Using Pipeline Parameters to Append Values

Prerequisites:

Remote Executor Account.

This example pipeline demonstrates how to use the pipeline parameters to execute the Python Script remotely to get the desired output.

Download this pipeline.

Step 1: Configure the pipeline parameters as follows:

Step 2: In the Remote Python Script Snap, update the script as follows to use or access pipeline parameters. In the below code, we have captured the parameter keys num1 and num2 values to return the appended value of parameters.

Step 3: Validate the pipeline. The script is run using the pipeline parameters on the Remote Python Executor. You can view the output of the Python script in the output preview.

Case Conversion

This example demonstrates using a Python script to convert all lower-case characters in an incoming document to upper-case characters.

Image Modified

Download this pipeline.

Expand
titleUnderstanding the pipeline

The input to the Remote Pyhon Script Snap is a CSV document generated by the CSV Generator Snap. Below is a preview of the CSV Generator Snap's output:


The Remote Python Script Snap is configured with the following script:

Paste code macro
#Imports

#Global Variables

#This function will be executed once before consuming the data.
def snaplogic_init():
    return None

#This function will be executed on each document from the upstream snap.
def snaplogic_process(row):
    return {"text": row["text"].upper()}

#This function will be executed after consuming all documents from the upstream snap.
def snaplogic_final():
    return None


When executed, the script converts all lower-case characters in $text to upper-case characters. This is shown in the output preview of the Remote Python Script Snap below:


Download this pipeline.

Additional Examples

The following use cases demonstrate a few real-world scenarios for using this Snap:

Downloads

Multiexcerpt include macro
namedownload_instructions
pageOpenAPI

Attachments
patterns*.slp,*.zip

Insert excerpt
ML Core Snap Pack
ML Core Snap Pack
nopaneltrue