• 沒有找到結果。

TIBCO Flogo®

N/A
N/A
Protected

Academic year: 2022

Share "TIBCO Flogo®"

Copied!
42
0
0

加載中.... (立即查看全文)

全文

(1)

Guide

Software Release 2.7.0

August 2019

(2)

Important Information

SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE.

USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE LICENSE FILE) OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE “LICENSE” FILE(S) OF THE

SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE SAME.

ANY SOFTWARE ITEM IDENTIFIED AS THIRD PARTY LIBRARY IS AVAILABLE UNDER SEPARATE SOFTWARE LICENSE TERMS AND IS NOT PART OF A TIBCO PRODUCT. AS SUCH, THESE SOFTWARE ITEMS ARE NOT COVERED BY THE TERMS OF YOUR AGREEMENT WITH TIBCO, INCLUDING ANY TERMS CONCERNING SUPPORT, MAINTENANCE, WARRANTIES, AND INDEMNITIES. DOWNLOAD AND USE OF THESE ITEMS IS SOLELY AT YOUR OWN

DISCRETION AND SUBJECT TO THE LICENSE TERMS APPLICABLE TO THEM. BY PROCEEDING TO DOWNLOAD, INSTALL OR USE ANY OF THESE ITEMS, YOU ACKNOWLEDGE THE

FOREGOING DISTINCTIONS BETWEEN THESE ITEMS AND TIBCO PRODUCTS.

This document is subject to U.S. and international copyright laws and treaties. No part of this document may be reproduced in any form without the written authorization of TIBCO Software Inc.

TIBCO, the TIBCO logo, the TIBCO O logo, Two-Second Advantage, TIB, Information Bus, and Flogo are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/or other countries.

All other product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only.

This software may be available on multiple operating systems. However, not all operating system platforms for a specific software version are released at the same time. Please see the readme.txt file for the availability of this software version on a specific operating system platform.

THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.

THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME.

THE CONTENTS OF THIS DOCUMENT MAY BE MODIFIED AND/OR QUALIFIED, DIRECTLY OR INDIRECTLY, BY OTHER DOCUMENTATION WHICH ACCOMPANIES THIS SOFTWARE,

INCLUDING BUT NOT LIMITED TO ANY RELEASE NOTES AND "READ ME" FILES.

This and other products of TIBCO Software Inc. may be covered by registered patents. Please refer to TIBCO's Virtual Patent Marking document (https://www.tibco.com/patents) for details.

Copyright © 2016-2019. TIBCO Software Inc. All Rights Reserved.

(3)

Contents

TIBCO Documentation and Support Services. . . .5

Out-of-the-box Activities and Triggers. . . . 6

General Category. . . .6

Triggers. . . .6

Timer Trigger. . . .6

REST Trigger. . . .7

GraphQL Trigger. . . .10

Receive Lambda Invocation. . . .12

AWS API Gateway Lambda Trigger. . . .13

S3 Bucket Event Lambda Trigger. . . .15

gRPC Trigger. . . .16

Activities. . . .17

LogMessage. . . .17

SendMail. . . .18

InvokeRESTService. . . .19

Using SSL. . . .22

ReplyToHTTPMessage (Supported for backward compatibility only). . . .22

Mapper. . . 23

InvokeLambdaFunction. . . .23

ParseJSONActivity. . . .24

Sleep. . . .25

Apache Avro. . . .26

Overview. . . .26

Avro Serialize. . . .26

Avro Deserialize. . . .26

Apache Kafka. . . .27

Overview. . . .27

Configuring a Kafka Client Connection. . . .27

Kafka Client Configuration Details. . . .27

Kafka Consumer Trigger. . . .29

Kafka Producer. . . .31

Kafka Offset Commit. . . .33

MQTT. . . .33

Overview. . . .33

Creating an MQTT Connection. . . .33

MQTT Connection Details. . . .34

(4)

MQTT Publish Activity. . . .36

TIBCO Cloud Messaging. . . .37

Overview. . . .38

Creating a TIBCO Cloud Messaging Connection. . . .38

TIBCO Cloud Messaging Connection Details. . . .38

MessageSubscriber Trigger. . . .39

TCMMessagePublisher. . . .40

List of Supported Connectors. . . .41

(5)

TIBCO Documentation and Support Services

How to Access TIBCO Documentation

Documentation for TIBCO products is available on the TIBCO Product Documentation website, mainly in HTML and PDF formats.

The TIBCO Product Documentation website is updated frequently and is more current than any other documentation included with the product. To access the latest documentation, visit https://

docs.tibco.com.

Documentation for TIBCO Flogo® Enterprise is available on the TIBCO Flogo® Enterprise Product Documentation page.

Product-Specific Documentation

The following documents for this product can be found on the TIBCO Documentation site:

TIBCO Flogo® Enterprise Installation

TIBCO Flogo® Enterprise User's Guide

TIBCO Flogo® Enterprise Release Notes

TIBCO Flogo® Activities and Triggers Guide

How to Contact TIBCO Support

You can contact TIBCO Support in the following ways:

For an overview of TIBCO Support, visit http://www.tibco.com/services/support.

For accessing the Support Knowledge Base and getting personalized content about products you are interested in, visit the TIBCO Support portal at https://support.tibco.com.

For creating a Support case, you must have a valid maintenance or support contract with TIBCO.

You also need a user name and password to log in to https://support.tibco.com. If you do not have a user name, you can request one by clicking Register on the website.

How to Join TIBCO Community

TIBCO Community is the official channel for TIBCO customers, partners, and employee subject matter experts to share and access their collective experience. TIBCO Community offers access to Q&A forums, product wikis, and best practices. It also offers access to extensions, adapters, solution accelerators, and tools that extend and enable customers to gain full value from TIBCO products. In addition, users can submit and vote on feature requests from within the TIBCO Ideas Portal. For a free registration, go to https://community.tibco.com.

(6)

Out-of-the-box Activities and Triggers

This section documents the out-of-the-box activities and triggers that are suppoted in TIBCO Flogo® Enterprise.

General Category

The General category is available by default in all flows. It consists of activities and triggers that may be commonly used by any flow in the app. A trigger activates the flow in which it appears. An activity is used to perform a task.

Triggers

In addition to the Receive HTTP Message and Timer Trigger available for general use, Flogo

Enterprise supports triggers that were originally created in Project Flogo. This allows for a seamless import of apps that were created in Project Flogo. The Project Flogo triggers are marked with the

OSS abbreviation on them.

If you are creating an app in Flogo Enterprise, it is preferable to use the general purpose triggers (the triggers that do not have an OSS tag on them), since they are more robust in functionality.

Refer to https://github.com/TIBCOSoftware/flogo-contrib for details on the activities that are marked with an OSS tag.

You cannot create a flow branch from a trigger.

You can create the trigger at the time of flow creation or create a blank flow to begin with and add one or more triggers to it at a later time after the flow has been created. If you anticipate that you will need multiple triggers for a flow, be sure to create a blank flow and add the triggers as needed. If you attach a trigger to a flow during flow creation, you will not be able to modify it or add triggers to the flow once such a flow has been created.

For triggers that have an output, the output from the trigger becomes the input to the flow. Likewise, the output from the flow becomes the reply from the trigger.

Timer Trigger

Use the Timer Trigger trigger as a process starter when creating flows designed to be activated without external input. It is useful when you want your flows to run at certain time intervals. You can configure the Timer Trigger trigger to activate the flow multiple times at a specified interval.

Field Description

Handler Settings

Repeating True: Select the True radio button to run the flow at periodic intervals.

False: Select the False radio button if you want the flow to run only once.

If Repeating is set to True and a Time Interval and Interval Unit is specified, the flow will be triggered at the exact same time as the first run. For example, if the flow was run at 1:00 pm on Monday and the Interval Unit is specified as week with the Time Interval as 2, the flow be run at 1:00 pm on every other Monday.

(7)

Field Description

Time Interval An integer indicating the number of units specified in the Interval Unit field. For example, if you enter 1 as the Time Interval and select Hour in the Interval Unit drop down menu, the Timer trigger activates the flow every hour. If you enter 2 as the time interval and specify Week as the Interval Unit, the flow is run every other week.

Interval Unit The unit of time to use with the Time Interval field to determine how often to run the flow. The units can be: Second, Minute, Hour, Day, and Week.

REST Trigger

Use the REST trigger, ReceiveHTTPMessage, when creating flows that require invoking RESTful web services that provide some input necessary to activate the flow. The ReceiveHTTPMessage trigger is used when you want to expose your flow as an API, making it accessible by other apps running on either the TIBCO Cloud or elsewhere. This trigger must be configured to set up the fields for a request that the server receives from a REST client.

Trigger Settings

Field Description

Trigger Settings

Port By default, the port on which the trigger listens is set to 9999. You can change this to use another port that is open.

If the app has multiple triggers that require a port to be specified, make sure that the port number is unique for for each trigger. Two triggers in the same app cannot run on the same port.

Secure

Connection By default, it is set to False. If you set this field to True, you can create a secure endpoint by providing Server Key and CA or Server Certificate.

Server Key - A PEM encoded private key file

CA or Server Certificate - A PEM encoded CA or self-signed server certificate file Handler Settings

Method The REST operation which the flow implements, for example GET, PUT, POST, or DELETE. This is a non-editable field since each REST flow implements a single operation.

(8)

Field Description

Path The resource path for the operation. By default, the path displayed here is the resource path you had entered when you created the flow. The Path field is editable. For example, if you want to add a path parameter for a GET operation, you can do so by editing the resource path in the GET flow. If you edit the path in the Path field for a particular REST operation flow, the edited resource path will be applicable only to the flow in which it was edited.

Two resource paths with same base path should not contain path parameters at the same location. For example, you cannot have the following paths in the same application:

/books/{ISBN}/Author/{releaseDate} and /books/{ISBN}/Author/

releaseDate is considered the same from a routing perspective.

In these two paths, since the ISBN value is dynamic, it will cause a conflict during path resolution.

/books/{ISBN}/{releaseDate} and /books/{ISBN}/Author in the same application is not supported.

Although the two paths appear to be different, when a message comes in, the router mechanism cannot know which path to call (the one with parameter or the one without) since the actual value has been substituted for the paramter.

Resource path with two different path parameters at the same URL sub- section. For example, /0.6/api/account/{account}/orderhistory/

{orderhistory}/branch/{branch} and /0.6/api/account/

{AccountKey}/Price?ProductList={ProductList}

In these paths even though the paths differ after the base path (/0.6/api/

account/), there will be a conflict when resolving the {account} and

{AccountKey} values.

Multiple REST resources with same base path and same number of path parameters. For example, /resource/{id} and /resource/{id1}

/messages/{messageid}/comments/{commentid} and /messages/

{messageid}/likes/{likeid}

where the paths differ after {messageid}. Output

Validation When set to True, the incoming data (body, headers, and query parameters) is validated against the configured JSON schema. By default, it is set to False.

(9)

Output Settings

Field Description

Query

Parameters Query parameters to be appended to the path. To add the query parameters, click the button and press Enter to save your changes.

parameterName: Name of the query parameter

type: The data type of the query parameter. Supported types are string, number, or boolean.

repeating: Set to True if more than one value is expected for the query parameter.

required: Set to True if query parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required query parameter.

Path Parameters Path parameters that are appended to the path.

Headers

Header values for the trigger. To add the header parameters, click the button and press Enter to save your changes.

parameterName: Name of the header parameter.

type: The data type of the header parameter. Supported types are string, number, or boolean.

repeating: Set to True if more than one value is expected for the HTTP header.

required: Set to True if header parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required header parameter.

Request Schema Request schema for the trigger. Be sure to use straight quotes for element names and values in the schema.

Map to Flow Inputs

This tab allows you to map the trigger output to flow input.

(10)

Reply Settings

Field Description

Configure

Response Codes Allows you to configure response codes.

Default: False (See "Reply Data Schema" in this table.)

To specify a response code, select True and click the button. Enter the following details:

Code: Enter the response code.

Type: Select the type of response expected for the Code. Supported types are String and Object.

Response Body: If Object is selected as the Type, enter the JSON schema in the Response Body column. For String, you need not enter anything in the Response Body column.

Response Headers: The header parameters for the reply in JSON data format.

Actions: The actions displayed change based on the type of the response code.

Edit, Delete: For an Object type of response, you can edit the details or cancel it.

Save, Cancel: For a String type of response, you can save or cancel the changes.

The response codes appear in the Map from Flow Outputs tab.

Reply Data Schema NOTE: This field appears only when Configure Response Codes is set to False.

The schema used for the reply data of the trigger. Be sure to use straight quotes for element names and values in the schema.

Map from Flow Outputs

Map the flow output to the trigger reply in this tab.

GraphQL Trigger

The GraphQL Trigger lets the Flogo app act as the GraphQL server. To use this trigger, you simply upload your GraphQL schema and Flogo Enterprise automatically creates the flows corresponding to each query or mutation field in your schema.

Trigger Settings

Field Description

Trigger Settings

(11)

Field Description

Port The port on which the trigger listens to requests. By default, it is set to 7879. You can change this to use any other port that is open. This field can also be set using an application property.

If the app has multiple triggers that require a port to be specified, make sure that the port number is unique for for each trigger. Two triggers in the same app cannot run on the same port.

Path The HTTP resource path for the operation. By default, it is set to /graphql, but you can change it to any string that is meaningful to you. It is the single endpoint that GraphQL queries and mutations use to access data from the multiple resources on the server. This field can also be set using an application property.

Secure

Connection By default, it is set to False. If you set this field to True, you can create a secure endpoint by providing Server Key and CA or Server Certificate.

Server Key - A PEM encoded private key file

CA or Server Certificate - A PEM encoded CA or self-signed server certificate file Handler Settings

GraphQL

Operation The type of Graphql operation the flow should represent. You can select either Query or Mutation

Resolver for This field is populated based on the type of GraphQL Operation that you selected. If you selected Query, the Resolver For lists the field names under the

query type in the schema. If you select Mutation, the drop down menu lists the field names under the mutation type in the schema.

Map to Flow Inputs

This tab allows you to map the trigger output to flow input. The tab contains an element, arguments, which contains a list of fields or objects that match the input arguments of the Resolver For field in the GraphQL schema.

Map from Flow Outputs

Map the flow output to the trigger reply in this tab. The tab contains a child element, data, which contains either a simple type or an object that match the output type of the Resolver For field in the GraphQL schema. If the output type of the field is an interface type, the data will contain a single field of type any.

(12)

Receive Lambda Invocation

Use the Receive Lambda Invocation trigger for AWS to start your flow as a Lambda function. The Receive Lambda Invocation trigger can be configured only in blank flows. It must not be used with flows that are created with a trigger.

Trigger Settings

Field Description

AWSConnection Name

Name of the AWS connector connection you want to use for the flow.

Execution Role

Name Permission of the Lambda function to execute on your behalf. The role must be assumable by Lambda and must have CloudWatch logs permission execution role. A default role with the AWS predefined AWSLambdaBasicExecutionRole

permission will be created if omitted.

Output Settings

Enter the payload schema for the request received on the Lambda function invocation on AWS.

Map to Flow Inputs

This tab allows you to map the trigger output to flow input.

Field Description

Function Information about the Lambda function Context Envelope information about this invocation Identity Identity for the invoking users

ClientApp Metadata about the calling app API Gateway

Request Displays the elements in the payload schema that you entered in the Output Settings tab. The elements are displayed in a tree format.

Reply Settings

Enter a schema for the trigger reply in the Reply Data text box.

Map from Flow Outputs

Map the flow output to the trigger reply in this tab.

(13)

AWS API Gateway Lambda Trigger

Use the AWS API Gateway Lambda trigger to start your flow as a Lambda function using an API Gateway.

Trigger Settings

Field Description

AWSConnection Name

(Mandatory) Name of the AWS connection that you want to use for deploying the flow as a Lambda connection.

If there are multiple flows in an AWS API Gateway app, the AWS Connection Name of the first flow is considered. The value mentioned in other flows is not used while creating the API Gateway.

Execution Role

Name Permission of the Lambda function to execute. The role must be assumable by Lambda and must have CloudWatch logs permission execution role. A default role with the AWS predefined AWSLambdaBasicExecutionRole permission is created if you do not specify anything in this field.

By default, Cloud watching is enabled.

If there are multiple flows in an AWS API Gateway app, the Execution Role Name of the first flow is considered. The value mentioned in other flows is not used while creating the API Gateway.

API Deploy

Stage Name of the API Gateway deployment stage.

Spaces or special characters are not allowed.

You can use this field to create different deployment stages such as Testing, Production, and so on. You can also create this stage on the AWS console after deployment.

If there are multiple flows in an AWS API Gateway app, the API Deploy Stage of the first flow is considered. The value mentioned in other flows is not used in while creating the API Gateway.

Method The operation which the flow implements. For example GET, PUT, POST, or DELETE. You can select only one method at a time.

Path The resource path for the operation. By default, the path displayed here is the resource path you had entered when you created the flow.

Output

Validation When set to True, the incoming data (body, headers, and query parameters) is validated against the configured JSON schema. By default, it is set to False.

(14)

Output Settings

Field Description

Query

Parameters Query parameters to be appended to the path. To add the query parameters, click the ( ) button and press Enter to save your changes.

parameterName: Name of the query parameter

type: The data type of the query parameter. Supported types are string, number, or boolean.

repeating: Set to True if more than one value is expected for the query parameter.

required: Set to True if query parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required query parameter.

By default, query parameters are not mandatory. When you create an API Gateway, you must explicitly navigate to the API Gateway console and change the settings.

Path Parameters Path parameters are appended to the resource path. Add the path parameters by using '{ }' in the Path field in the trigger configuration as follows:

/path/{pathparam1}/{pathparam2}

Path parameters are of the string data type only.

Headers

Header values for the trigger. To add the header parameters, click the button and press Enter to save your changes.

parameterName: Name of the header parameter.

type: The data type of the header parameter. Supported types are string, number, or boolean.

repeating: Set to True if more than one value is expected for the HTTP header.

required: Set to True if header parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required header parameter.

By default, header parameters are not mandatory. When you create an API Gateway, you must explicitly navigate to the API Gateway console and change the settings.

Map to Flow Inputs

This tab allows you to map the trigger output to flow input.

Field Description

Function Information about the Lambda function

(15)

Field Description

Context Envelope information about this invocation Identity Identity for the invoking users

ClientApp Metadata about the calling app API Gateway

Request API Gateway default schema which can be mapped with the schema of AWS API Gateway Lambda trigger

Reply Settings

Field Description

Reply Data

Schema The schema used for the reply data of the trigger. Be sure to use straight quotes for element names and values in the schema.

Map from Flow Outputs

Map the flow output to the trigger reply in this tab.

Field Description

code HTTP code

body Body of the reply

S3 Bucket Event Lambda Trigger

Use the S3 Bucket Event Lambda trigger to trigger a Lambda function when a supported event occurs on the associated S3 bucket.

Trigger Settings

Field Description

AWSConnection Name

(Mandatory) Name of the AWS connection that you want to use for deploying the flow.

Execution Role

Name Permission of the Lambda function to execute. The role must be assumable by Lambda and must have CloudWatch logs permission execution role. A default role with the AWS predefined AWSLambdaBasicExecutionRole permission is created if omitted.

By default, Cloud watching is enabled.

Bucket Name of the S3 bucket to which the trigger is to be associated. This bucket must be an existing one.

Event name Name of the S3 bucket event notification.

(16)

Field Description

Event list A list of operations to be performed on the S3 bucket. Supported operations are POST, PUT, COPY, and DELETE.

Object prefix

filter (Optional) The prefix to be used to filter the S3 bucket.

For example, images/

Object suffix

filter (Optional) The suffix to be used to filter the S3 bucket.

For example, .jpg

Map to Flow Inputs

Map the flow output to the trigger reply in this tab. The tab displays the following fields.

Field Description

Function Information about the Lambda function Context Envelope information about this invocation Identity Identity for the invoking users

ClientApp Metadata about the calling app

S3Event Default schema of S3 bucket event trigger. It can be mapped with the flow input to pass the key values to the flow.

gRPC Trigger

The gRPC trigger acts as the server to the gRPC clients. You create the trigger when you create a flow that gets attached to the trigger.

Trigger Settings

Field Description

Trigger Settings

Port The port on which the trigger listens to requests. You can use any port that is open. This field can also be set using an application property.

Proto File A file with .proto extension that contains the methods and service(s) definition which Flogo Enterprise uses to create the flows. Currently, importing a .proto file into another .proto file is not supported.

Secure

Connection By default, it is set to False. If you set this field to True, you can create a secure endpoint by providing Server Key and CA or Server Certificate.

Server Key - A PEM encoded private key file

CA or Server Certificate - A PEM encoded CA or self-signed server certificate file

(17)

Field Description

Handler Settings

Service Name Name of the service defined in the .proto file. You must create one gRPC trigger for any specific .proto file. Any subsequent gRPC triggers using the

same .proto file can select the service and method they need from the dropdowns.

Method Name of RPC method in the .proto file. Each method in the .proto file is represented by a separate flow and attached to the same gRPC trigger.

Map to Flow Inputs

This tab allows you to map the trigger output to flow input. The tab displays fields from your selected method.

Map from Flow Outputs

Map the flow output to the trigger reply in this tab.

Activities

In addition to the activities available for general use, Flogo Enterprise supports activities that were originally created in Project Flogo. Such activities are marked with an OSS tag on them. This allows for a seamless import of apps that were created in Project Flogo. The Project Flogo activities are placed under the Default category.

If you are creating an app in Flogo Enterprise, it is preferable to use the general purpose activities (the activities that do not have an OSS tag on them), since they are more robust in functionality.

Refer to https://github.com/TIBCOSoftware/flogo-contrib for details on the activities that are marked with an OSS tag.

The available activities are placed under the following categories:

Default

General

You can create a flow branch from any activity except the Return activity.

To create a branch from an activity. Refer to the TIBCO Flogo® Enterprise User's Guide for steps to create a branch.

Refer to the TIBCO Flogo® Enterprise User's Guide for steps to delete an activity.

LogMessage

LogMessage is an activity that writes a message to the log. For each application, there is a log file. You can view the logs in the Log tab.

You can view the logs in the Log tab.

Settings

The Settings tab has the following fields.

(18)

Field Description

Log Level Select one of the following log levels:

Info: logs informational messages highlighting the application progress.

Warning: is the warning message of an unexpected error when running the flow.

Error: logs error conditions and messages.

Debug: can be used for debug-level messages.

Add Flow Details Appends Flow Instance ID, Flow Name and Activity Name to the log message.

By default, this field is set to False.

Input

Provide the following input for this activity.

Input Iten Description

message The message to be displayed in the log.

SendMail

SendMail is an activity that sends an email by way of an SMTP server.

To securely configure the SendMail activity using the smtp.gmail.com server, use TLS on Port 587 or SSL on port 465.

Settings

The Settings tab has the following fields.

Field Description

Server The host name or IP address for the mail server.

Port The port used to connect to the server.

Connection

Security The type of connection to be used to communicate with the mail server. Select TLS or SSL depending upon the security configuration of the mail server. In case no security is enabled on the mail server, select NONE.

Username The username to use when authenticating to the mail server.

Password The password to use when authenticating to the mail server.

Input

This tab displays the fields that are used as input for the activity.

(19)

Input Item Description

sender The email address of the sender.

recipients The recipient list for the email. You can send mail to more than one recipient.

Provide a list of recipients in a single string by using a comma as the delimiter.

subject The subject of the email.

message The text of the email message.

InvokeRESTService

This activity is both an outbound and inbound REST request which means that it is used to make a request to the REST service and also accept the reply returned by the service.

Settings

Field Description

Method Select an operation for the request. For example: GET, POST, PUT, or DELETE.

URL An absolute path to the REST service that you want to invoke. For example:

http://acme.com or https://acme.com. If you enter an absolute path beginning with https://, the Use certificate for verification section appears.

If your connection requires an SSL certificate, select True. Otherwise, select False.

To add a certificate, under Server Certificate, click Browse and browse to the certificate location on the machine.

Request Type NOTE: This field is

applicable and visible only in the POST and PUT method.

The Request content type of the REST service. The following content-type are supported:

text/plain

application/json

application/x-www-form-urlencoded

Timeout

Specify the timeout period for invoking a service. If a timeout value is specified, the activity waits for the specified time. If a response is not received by the specified time, the request expires with an error.

Default: 0 seconds (that is, there is no timeout for invoking a service) Proxy URL

Specify the URL to the HTTP proxy server. If a proxy URL is specified, the request to the REST service (specified in the URL field) is routed via this proxy URL.

A secure connection to the proxy server is not supported.

Default: Proxy URL is not enabled.

(20)

Input Settings

Field Description

Request Schema Enter a request schema here. This field is visible only if you selected the POST or PUT method in the Settings tab.

Query Params Query parameters to be appended to the path. To add the query parameters, click the button and press Enter to save your changes.

parameterName: Name of the query parameter.

type: The data type of the query parameter. Supported types are string, number, or boolean.

required: Set to True if query parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required query parameter.

Request

Headers Header values for the InvokeRESTService activity. To add the header parameters, click the button and press Enter to save your changes.

parameterName: Name of the header parameter.

type: The data type of the header parameter. Supported types are string, number, or boolean.

required: Set to True if header parameter is a required configuration. The trigger will report an error if no value(s) are provided to the required header parameter.

Input

Field Description

queryParams Provide a value to the query parameters configured on the Input Settings section. This field is visible only if you selected the POST or PUT method in the Settings tab.

pathParams Provide a value to path parameters defined as part of URL in the Settings tab.

This field is visible only if you selected the POST or PUT method in the Settings tab.

headers Header values for the activity. These values can be manually entered or mapped to the output of the trigger or any preceding activity.

body Request Schema values for the activity. These values can be manually entered or mapped to the output of the trigger or any preceding activity. This field is visible only if you selected the POST or PUT method in the Settings tab.

(21)

Output Settings

Field Description

Configure

Response Codes Allows you to configure response codes.

Default: False (See "Response Schema" and "Response Type" in this table.) To specify a response code, select True and click the button. Enter the following details:

Code: Enter the response code.

Type: Select the type of response expected for the Code. Supported types are String and Object.

Response Body: If Object is selected as the Type, enter the JSON schema in the Response Body column. For String, you need not enter anything in the Response Body column.

Actions: The actions displayed change based on the type of the response code.

Edit, Delete: For an Object type of response, you can edit the details or cancel it.

Save, Cancel: For a String type of response, you can save or cancel the changes.

The response codes appear in the Output tab.

Response Schema NOTE: This field appears only when Configure Response Codes is set to False.

The schema for the reply that the server sends.

Response Type NOTE: This field appears only when Configure Response Codes is set to False.

The content type of the REST service. The following content-types are supported:

text/plain

application/json

other

Response

Headers The header parameters for the reply.

Output

The Output tab displays the headers and response body configured for both the request and the response in a tree format.

(22)

Using SSL

If you choose to set up SSL authentication for the InvokeRESTService activity, you must have a self- signed server certificate that you must upload when setting up the activity.

Use Self-signed PEM certificate for secure connection.

To set up SSL authentication, follow these steps:

Prerequisites

You must have the self-signed server certificate handy on your machine.

Procedure

1. On the flow page, click the Invoke REST Service tile to open its properties.

2. In the Settings tab, under Use certificate for verification, select the True radio button.

This exposes the Browse button. The SSL verification will be turned off when Use certificate for verification is set to False.

3. Use the Browse button to navigate to the location of the server certificate.

Once the server certificate is uploaded successfully, the connection uses the certificate to authenticate.

ReplyToHTTPMessage (Supported for backward compatibility only)

This activity is not supported in Flogo Enterprise 2.5.0 and above. This activity is applicable only to flows that were created in previous versions of Flogo Enterprise (prior to version 2.5.0) that are imported into the current version.

This activity automatically gets created when you create a flow with a REST trigger. It is used by the server to reply to a request from the REST client.

Configuration

Field Description

Reply Reply sent by the server in response to the REST client request. The two supported replies are Success with Data and Error with Message.

If you select Success with Data, the reply schema must be configured in the Input Settings tab in the Schema field. If you select Error with Message, you must configure the error message in the message field of the Input tab.

Input Settings

Field Description

Schema Enter the reply schema or sample data using a JSON structure.

(23)

Input

Field Description

message The string that is included in the reply. If you configured the Reply field in the Configuration tab with Error with Message, the error message must be entered in message text box. If you configured the Reply field with Success with Data, then you must map your data according to the schema specified in the Input Settings tab.

Mapper

Use this activity to define a schema to get the desired data. This activity is particularly useful to define a schema for an object of type any. In the flow, you place the Mapper activity preceding an activity whose input requires an object of data type any. This allows you to map the object of type any to the output from the Mapper activity. An advantage of using this activity is that you can construct the data for the

any data type within the flow instead of fetching it from outside.

Input Settings

Field Description

Input Schema Enter the JSON schema that will be used as the input for this activity. The elements of this schema are available for mapping in the Input tab and are mappable to the output from any preceding activity, trigger, or the flow input.

The Mapper activity outputs the elements from this schema, so they are also displayed in the Output tab in a tree format. This makes them available for mapping in the following activities.

Input

The Input tab displays the schema you entered in the Input Settings tab in a tree format. You can map these elements to the output from any preceding activity, trigger, or the flow input.

Output

The Output tab displays the elements from the schema you entered in the Input Settings tab.

InvokeLambdaFunction

Use this activity to to invoke a specific Lambda function.

Settings

Field Description

AWSConnection Name

Select a AWS connection

ARN Amazon Resource Name

(24)

Input Settings

Field Description

Payload Schema Enter a JSON request schema for your payload that will be used to invoke the Lambda function.

Input

The payload schema that you entered in the Input Settings tab is displayed in a tree format in the Input tab. Map the elements in the schema using the mapper or alternatively, enter values for the element by manually typing the value in the mapper.

Output Settings

Field Description

Result Schema The schema for the result that is expected from the Lambda function invoke request

Output

The Output tab displays the result schema you entered in the Output Settings tab in a tree format.

ParseJSONActivity

This activity takes a stringified JSON data as input and converts it into a JSON object, which can then be accessed by the downstream activities that follow. You provide the input to the activity either by entering the stringified JSON data manually in the Input tab or saving it in a file and entering the file path in the Input tab. The activity supports output validation if you opt to validate the input JSON data against the output schema that you configure in the Output Settings tab.

Settings

Field Description

Output

Validation True: Select True to validate that the JSON data in your input string matches the schema that you configure in the Output Settings tab of the activity.

False: Select False if you do not want to validate the JSON data in your input string against the schema you configured.

This field can be configured with an application property.

Input

Field Description

jsonString The string containing the JSON data that you want to parse. This activity creates a JSON object with the parsed JSON data. Enter the string manually or map it to an element from the output of the trigger, flow input, or one of the preceding activities.

(25)

Output Settings

Field Description

Schema The schema that you want to use to create the JSON object. You have the option to validate the stringified JSON (input to the activity) against this schema.

Output

The output schema is displayed in a read-only tree format.

Iterator

For details on using the iterator, see the "Using the Iterator in an Activity" section in the TIBCO Flogo® Enterprise User's Guide.

Sleep

The Sleep activity is an asynchronous activity that suspends the execution of a flow for the specified time.

Settings

Field Description

Interval Type The unit of the time interval for which the execution of the flow must be suspended. Supported types are Millisecond, Second, and Minute.

Default: Millisecond

Interval The time interval for which the execution of the flow must be suspended.

Default: 0

Input

The fields in the Input tab are required only if you need to pass values from the output of a previous activity or trigger. Otherwise, you can directly specify the values in the Settings tab. Values specified in the Input tab take precedence over values specified in the Settings tab, if values are configured in both the tabs.

Field Description

Interval Type The unit of the time interval for which the execution of the flow must be suspended. Supported types are Millisecond, Second, and Minute.

Default: Millisecond

Interval The time interval for which the execution of the flow must be suspended.

Default: 0

(26)

Iterator

Use the Iterator tab to iterate a certain piece of logic multiple times. If you leave this tab blank, the activity is executed only once. For details on using the iterator, see the "Using the Iterator in an Activity" section in the TIBCO Flogo® Enterprise User's Guide.

Apache Avro

Overview

TIBCO Flogo® Connector for Apache Avro provides a mechanism to serialize and deserialize messages.

It uses JSON-based schemas. For information on using Apache Avro refer to the Apache Avro documentation.

Avro Serialize

Use this activity to serialize the message data into a base64 encoded string using the schema and message that you configure in the Input tab of this activity. Once the message is base64 encoded, it can be transported over network.

Settings

The elements from the schema that you enter in this tab will be available for manually configuring or mapping in the Input tab.

Field Description

Schema The Apache Avro schema to be used to serialize a message. It contains the complex and/or primitive types that are supported by Apache Avro.

Input

The Input tab displays the elements of the schema that you entered in the Settings tab in a tree format.

You can input the values for each element by hard coding the value or mapping the value to an element from the output schema of a previous activity in the flow. See the section on "Using the Mapper" in the TIBCO Flogo® Enterprise User's Guide for details on how to map elements.

Output

This tab displays serialized data in the base64 encoded format.

Avro Deserialize

Use this activity to deserialize serialized data into a JSON readable format using the schema that you configure in the Settings tab of this activity.

Settings

The elements from the schema that you enter in this tab will be available for manually configuring or mapping in the Input tab.

Field Description

Schema The Apache Avro schema to be used to deserialize a message. It contains the complex and/or primitive types that are supported by Apache Avro.

(27)

Input

Field Description

serializeddata Enter the serialized data or map it to serialized data from the output of a previous activity. This data will be decoded into JSON format.

Output

The Output tab displays the elements of the schema that you entered in the Settings tab in a tree format after the serialized data from the Input tab has been deserialized.

Apache Kafka

Overview

Apache Kafka is a distributed messaging system, providing fast, highly scalable, and redundant messaging through a publisher-subscriber model. By using TIBCO Flogo® Connector for Apache Kafka, you can design the flows to send and receive the records.

For information about how to use Apache Kafka, see Kafka documentation.

Configuring a Kafka Client Connection

To use TIBCO Flogo® Connector for Apache Kafka, you must first configure a Apache Kafka client connection. The Apache Kafka client connection contains the parameters required to connect to the Apache Kafka cluster. The Apache Kafka client connection is used by all the activities in the Apache Kafka category.

Prerequisites

Before you create a client connection, familiarize yourself with Apache Kafka. For details about how to use the Apache Kafka product, see the Kafka Documentation.

Procedure

1. On the TIBCO Flogo® Enterprise page, click the Connections tab and perform one of the following actions:

To add a client connection for the first time, click the Apache Kafka Client Configuration card.

You can search for a connector card by typing the connector name in the search field.

If you have existing connections and want to add a new connection, click the Add Connection link.

2. In the Apache Kafka Client Configuration dialog box, enter the connection details. For field descriptions, see the Kafka Connection Details topic.

3. Click Save.

Kafka Client Configuration Details

To establish the connection successfully, you must configure the Apache Kafka instance.

The Apache Kafka Client Configuration dialog box contains the following fields:

(28)

Condition Applicable Field Description

N/A Connectio

n Name The unique name for the connection you are creating.

This name is displayed in the Connection drop-down list for all the TIBCO Flogo® Connector for Apache Kafka activities.

N/A Descriptio

n A short description of connection

N/A Brokers A comma-separated list of host and port pair (host:port) for establishing the initial connection with the Kafka cluster.

Applicable only when SASL/PLAIN is selected in the Auth Mode field.

AuthMode Select one for following authentication type to establish the connection with Kafka cluster:

None: To establish the connection without authentication

SASL/PLAIN: To use Simple Authentication Security Layer (SASL) PLAIN authentication

SSL: To use Secure Socket Layer (SSL) authentication User Name The user name for authentication.

Password The password for authentication.

Applicable only when SASL/PLAIN or SSL is selected in the Auth Mode field.

Client

Certificate A Privacy Enhanced Mail (PEM) encoded client certificate file for mutual authentication.

Client Key A PEM encoded private key file for mutual authentication.

CA or Server Certificate

A PEM encoded private key file for server authentication.

Connectio

n Timeout The amount of time in seconds to wait for the initial connection.

Default value: 30 seconds

N/A Retry

Backoff The amount of time in milliseconds to wait for leader election to occur before retrying.

Default value: 250 milliseconds

N/A Max Retry The number of attempts to retry metadata request when the cluster is in the middle of a leader election.

Default value: 3 attempts

(29)

Condition Applicable Field Description

N/A Refresh

Frequency The amount of time in seconds after which metadata is refreshed.

Default value: 40 seconds

Kafka Consumer Trigger

Apache Kafka Consumer Trigger receives records from specified topic in the Apache Kafka cluster.

Settings

On the Settings tab, you can define the Apache Kafka connection and its details as given in the following table:

Condition Applicable Field Description

N/A Apache

Kafka Client Configurat ion

Apache Kafka client configuration to be used.

N/A Topic The topic where Apache Kafka cluster stores streams of record.

If you are using multiple topics, separate them using commas.

N/A Topic

Whitelist (Optional) A whitelist of topics you can subscribe to for consuming messages from multiple topics. You can specify the group using a regex pattern. For example:

mytopic*

N/A Consumer

Group ID The group ID for the consumer group.

N/A Value

Deserialize r

Select the type of record value to be received from the drop-down list: String or JSON

N/A Commit

Interval The time interval in which a consumer offset commits to Apache Kafka.

Default Value: 5000 milliseconds

N/A Initial

Offset Select one of the following options:

Newest: To start receiving published records since the consumer is started

Oldest: To start receiving records since the last commit N/A Fetch Min Minimum size of data that server sends on fetch request.

(30)

Condition Applicable Field Description

N/A Fetch Max

Wait The maximum amount of time that the server would block before answering a fetch request if there is not sufficient data to immediately satisfy the requirement that you have configured in the Fetch Min Bytes field.

N/A Heartbeat

Interval Time in milliseconds to send heartbeats to consumer.

Heartbeats are used to ensure that the consumer's session remains active and to facilitate rebalancing when

consumers join or leave a group.

Heartbeat interval must not be more than one- third of the session time.

N/A Session

Timeout The consumer sends periodic heartbeats to server

indicating about its liveness to the broker. If no heartbeats are received by a broker before the session times out, the broker removes this consumer from the group and initiates a rebalance.

Output Settings

Condition Applicable Field Description

N/A Headers Record headers to be received. Only String datatype value is supported.

Headers are supported in the Apache Kafka version 0.11.0 and later.

Applicable only when JSON is selected in the Value Serializer field on the Settings tab.

Schema for JSONvalue

The JSON schema for the Apache Kafka record value

Output

Condition Applicable Field Description Applicable only when

JSON is selected in the Value Serializer field.

jsonValue Complex data structure based on JSON schema that you have configured in the Output Settings section.

N/A partition Partition number of the record

N/A offset Offset of the record

N/A topic Name of the topic

N/A key Key value

(31)

Condition Applicable Field Description Applicable only when

String is selected in the Value Deserializer field on the Settings tab.

stringValu

e String value to be received

N/A headers Header value to be received

Kafka Producer

Apache Kafka producer activity sends a record to a specified topic or channel in the Kafka cluster.

Settings

On the Settings tab, you can define the Apache Kafka connection and its details as given in the following table:

Condition Applicable Field Description

N/A Apache

Kafka Connectio n

Select the connection you want to use from the drop- down list.

N/A Acks Mode Select one of the following acknowledgement modes from the drop-down list:

None: To receive no acknowledgement on record delivery

Leader: To receive an acknowledgement on record delivery from the leader

All: To receive acknowledgement on record delivery from leaders and all in-sync replicas

Applicable only when All is selected in the Ack Mode field.

AckTimeout The amount of waiting time in milliseconds to receive confirmation.

N/A Compressi

on Type Select a compression type: None, GZIP, or LZ4.

N/A Value

Serializer Select the type of record value to be sent: String or JSON.

N/A Max

Request Size

The maximum size of buffered records that can be sent in one request.

Default value: 1048576 bytes

N/A Max

Messages The maximum number of records that can be sent in a single broker request.

(32)

Condition Applicable Field Description

N/A Frequency The frequency of sending buffered records in milliseconds.

Default value: 1000

Input Settings

Condition Applicable Field Description

N/A Headers Header record to be sent. Only String datatype value is supported.

Headers are supported in the Apache Kafka version 0.11.0 and later.

Applicable only when JSON is selected in the Value Serializer field.

Schema for JSONvalue

The JSON schema for the Apache Kafka record value.

Input

Condition Applicable Field Description

N/A topic Name of the topic.

N/A partition Partition number of the record to send.

N/A key Optional key value.

Applicable only when String is selected in the Value Serializer field.

stringValu

e String value to be send

Applicable only when JSON is selected in the Value Serializer field.

jsonValue Complex data structure based on JSON schema that you have configured on the Input Settings tab.

N/A headers Header value to be sent

Output

Condition Applicable Field Description

N/A topic Name of the topic.

N/A partition Partition number of the record to send.

N/A offset Offset of the record.

(33)

Iterator

Use the Iterator tab to iterate a certain piece of logic multiple times. If you leave this tab blank, the activity is executed only once. For more information about Iterator, see "Using the Iterator in an Activity" in the TIBCO Flogo® apps documentation.

Kafka Offset Commit

Apache Kafka Offset Commit activity notifies Kafka Consumer Trigger to commit given offset. This is useful in case you want offsets to be committed as soon as the record is processed in the flow. By default, offsets are committed only when flow is successfully executed.

This activity can be used only in conjuction with Kafka Consumer Trigger.

Iterator

Use the Iterator tab to iterate a certain piece of logic multiple times. If you leave this tab blank, the activity is executed only once. For more information about Iterator, see "Using the Iterator in an Activity" in the TIBCO Flogo® apps documentation.

MQTT

Overview

TIBCO Flogo® Connector for MQTT is used to subscribe to a topic or publish messages to a topic. It supports security and authentication, quality of service, and message retention.

For information about how to use MQTT, see the MQTT documentation.

Creating an MQTT Connection

To use TIBCO Flogo® Connector for MQTT, you must first create an MQTT connection. The MQTT connection contains the parameters required to connect to the MQTT server. The MQTT connection is used by all the activities in the MQTT category.

Prerequisites

Before you create a connection, familiarize yourself with MQTT. For details about how to use the product, see the MQTT documentation.

Procedure

1. In TIBCO Cloud Integration, click the Connections tab and perform one of the following actions:

To add a connection for the first time, click the MQTT Connector card. You can search for a connector card by typing the connector name in the search field.

If you have an existing connection and want to add a new connection, click the Add Connection link.

2. In the MQTT Connector dialog box, enter the connection details. For field descriptions, see the MQTT Connection Details topic.

3. Click Save Connection.

(34)

MQTT Connection Details

To establish the connection successfully, you must configure the MQTT instance.

The MQTT Connector dialog box contains the following fields:

Field Description

Connection

Name A unique name for the connection that you are creating. This is displayed in the Connection drop-down list for all the TIBCO Flogo® Connector for MQTT activities.

Description A short description of the connection Broker URL The format of the broker URL is:

<proto>://<host>:<port>

Where proto is either "tcp" or "ssl".

Username Enter the user name required to authenticate the broker port for this connection.

Password Enter the password required to authenticate the broker port for this connection.

Encryption

Mode Choose the encryption mode from None, TLS-Cert, or TLS-ClientAuth.

Client Key Browse to the location of the client's secret key and select it. It is required for mutual authentication.

MQTT Subscriber Trigger

The MQTT Subscriber Trigger subscribes to a topic and presents the messages received as output.

When the messages arrive, a new flow is triggered.

Settings

The Settings tab has the following fields:

Field Description

Connection Name of the connection

(35)

Field Description

Topic The topic to which the trigger subscribes.

As the topic string can contain wild card characters, multiple topics can be subscribed.

Some topic string rules are:

+ is a single level wild card. It must be presented alone between '/' chars

# is a multi-level wild card corresponding to one or more levels. It must be presented as the last char in the topic preceded by a '/'. The following topic strings are allowed:

/country/province/county/street

/country/+/county/street

/country/province/#

/country/+/county/#

For details about topic string rules, see the MQTT documentation.

Maximum QoS If a message is sent with a higher QoS, the effective QoS of the message is reduced to the maximum QoS value. To avoid QoS getting reduced on the subscriber side, you must set maximum QoS to 2.

Value

Deserializer Establish the way the message body is treated Value

Deserializer:Stri ng

The activity input presents the message bytes as a simple string

Value

Deserializer:JSO N

The activity input presents the message bytes as a JSON object decoded with the provided schema

Value

Deserializer:Bas e64

The activity input presents the message bytes as a base64 encoded string

Output Settings

The Output Settings tab has the following field:

(36)

Field Description Schema for

JSON value Enter a JSON object representation used on the output tab.

For instance:

{

"fname":"Sam",

"lname":"Patricks",

"age":37,

"employed":true }

Output

The Output tab displays the schema in a tree format. The output is read-only.

The Output tab has the following fields:

Field Description

topic The exact topic on which the message arrived

retained It indicates whether this message was a retained message qos It indicates the quality of service of the message.

string value The value of the message presented as a string. An error is displayed if the message is not a string.

MQTT Publish Activity

The MQTT Publish activity publishes a message to a broker, which supports and exposes the MQTT protocol.

Settings

The Settings tab has the following fields:

Field Description

Connection Name of the connection

Topic The topic where the message is published

Retain You must enable this field to retain the last message for new subscribers QoS The quality of service is set to 0, 1, or 2

0 - message is delivered utmost once

1 - message is delivered at least once

2 - message is delivered exactly once

(37)

Field Description Value

Deserializer Establish the way the message body is treated Value

Deserializer:Stri ng

The activity input accepts a simple string. The string is sent as an array of bytes to the server.

Value

Deserializer:JSO N

An Input Settings field is enabled where the application designer can enter a JSON object. That object is presented on the input schema for mapping and at run time the object is deserialized and sent as bytes. A subscriber can use the same JSON object definition to deserialize the message.

Value

Deserializer:Bas e64

The activity accepts string data which is base64 decoded into a byte array before being sent to the broker. If a previous activity presents a byte array on its output, it is safe to map that value here.

Input Settings

The Input Settings tab is visible if the deserializer is set to JSON on the Settings tab. An example of a JSON object is entered in this field which can be used to compose the input schema.

The Input Settings tab has the following field:

Field Description

Schema for

JSON value Enter a JSON object representation to be used on the Input tab.

Sample JSON query:

{

"fname":"Sam",

"lname":"Patricks",

"age":37,

"employed":true }

Input

The Input tab has the following field:

Field Description

Input Map the string, byte array, or JSON object.

TIBCO Cloud Messaging

參考文獻

相關文件

• Color the nodes representing literals by their truth values (color 0 for false and color 1 for true).. – We are dealing with the a-triangles here, not the

Once you get down to a purely business level, your influence is gone and the true light of your life isdimmed. You must work in the missionary spirit, with a breadth of charity

You need to configure DC1 to resolve any DNS requests that are not for the contoso.com zone by querying the DNS server of your Internet Service Provider (ISP). What should

6 《中論·觀因緣品》,《佛藏要籍選刊》第 9 冊,上海古籍出版社 1994 年版,第 1

Robinson Crusoe is an Englishman from the 1) t_______ of York in the seventeenth century, the youngest son of a merchant of German origin. This trip is financially successful,

fostering independent application of reading strategies Strategy 7: Provide opportunities for students to track, reflect on, and share their learning progress (destination). •

Strategy 3: Offer descriptive feedback during the learning process (enabling strategy). Where the

• The approximate and introduces a false positive if a negative example makes either CC( X ) or CC(Y) return false but makes the approximate and return true. • The approximate