• 沒有找到結果。

TIBCO Cloud™

N/A
N/A
Protected

Academic year: 2022

Share "TIBCO Cloud™"

Copied!
31
0
0

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

全文

(1)

(PAYG)

Release Notes

Software Release 2.9.0

July 2020

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

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, TIBCO Cloud, 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-2020. TIBCO Software Inc. All Rights Reserved.

(3)

Contents

TIBCO Documentation and Support Services. . . .4

New Features. . . .5

Changes in Functionality. . . .11

Deprecated and Removed Features. . . .15

Migration and Compatibility. . . .17

Closed Issues. . . .18

Known Issues. . . .26

(4)

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 Cloud Integration - Flogo® (PAYG) is available on the TIBCO Cloud Integration - Flogo (PAYG) Product Documentation page.

Product-Specific Documentation

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

TIBCO Cloud Integration - Flogo® (PAYG) Release Notes

TIBCO Cloud Integration - Flogo® (PAYG) Getting Started

TIBCO Cloud Integration - Flogo® (PAYG) User's Guide

TIBCO Cloud Integration - Flogo® (PAYG) 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.

(5)

New Features

The following list highlights some of the key features of TIBCO Cloud Integration - Flogo (PAYG).

Release 2.9.0 App-level schemas

In a flow input or output, you can now define a schema and share it across the app. An app-level schema can be used in any flow, activity, or trigger configuration where a schema editor is provided.

Types of schemas supported are JSON and Avro.

For details, see the "Application Schemas" section in the TIBCO Flogo® Enterprise User's Guide.

Coercing of fields

In the input, output or trigger reply configuration of an OSS activity, you can now coerce a parameter to take the value from a schema that you dynamically defined during design time.

Flogo Enterprise supports coercing for parameters of the following data types: array, object, param, and any.

Currently, coercion is supported only for top-level parameters.

Validation of flows

You can now validate an app before you deploy it. To validate your app, click the Validate button on the App details page. This validates each flow and activity. If a flow or activity has an error, it displays an error or warning icon on the flow or activity.

Validation of flow is done only when you click the Validate button.

Data mapping functions

This release now includes the DateTime and Array.flatten Open Source functions.

Iteration index available for "Repeat While True" loops

If you select Repeat while true as the type of a loop in an activity, iteration index is now available for mapping.

Support for PATCH method in InvokeRESTService activity

You can now use the PATCH method in the InvokeRESTService activity.

Configure app properties from the Flow View

You can now configure app properties from the Flow View directly, instead of navigating back to the Flow list page to edit the app properties.

Flexibility to start with a trigger or a flow

With the enhancements in this release, you can create and configure a new trigger without binding it to a flow. This gives you flexibility to start with either a trigger or a flow.

Streaming App Metrics to logs

You can now emit flow and activity metrics of a TIBCO Cloud Integration - Flogo (PAYG) app to logs by using two new environment variables: FLOGO_APP_METRICS_LOG_EMITTER_ENABLE and FLOGO_APP_METRICS_LOG_EMITTER_CONFIG.

Merging changes to an API specification

While creating a REST trigger, you can configure it by uploading the API specification file.

(6)

If the API specification changes after the trigger is created, you can now merge the changes into an existing app by uploading the specification file again.

Propagating error data from subflow to main flow

You can now propagate error data from a subflow to the main flow using the Throw Error activity.

Overriding host and port in the URL for Invoke REST Service activity

You can now override the host name and port in the URL when calling a REST service using InvokeRESTService activity.

Defining common schema for a response code category in REST Invoke activity

In the InvokeRESTService activity, you can now define a single schema for a category of response codes. For example, if you are calling a REST service which uses same schema for all response codes in the range 500-599 (such as 501, 502, 503, and so on), you can define a single schema (as 5xx) for them.

Improved TCM connection management

The TIBCO Cloud Messaging Connector now uses an upgraded client library for improved handling of reconnect and connection timeouts.

Two new fields have been added to TIBCO Cloud Messaging Connector - AutoReconnectAttempts and AutoReconnectMaxDelay (in seconds). These fields allow the client to re-establish a connection with TIBCO Cloud Messaging Server if the connection is lost.

Release 2.8.0 gRPC Support

This release provides the following gRPC capabilities:

Includes a gRPC Client activity for calling gRPC services from flows

Simplifies implementing the gRPC services by adding the ability to import gRPC Protocol Buffers (.proto) file for generating triggers and flows automatically.

Supports header input field for gRPC activity Avro Schema Registry for Kafka

This release supports built-in connectivity to Avro Schema Registry for Kafka Client Configuration for serialization and deserialization of messages published on or subscribed from Kafka topic in Avro format. If the user name and password are provided, basic authentication is used to connect to the registry.

OpenTracing

In the area of microservices observability, this release provides native support for OpenTracing, a Cloud Native Computing Foundation (CNCF) project, which provides vendor-neutral API

specification and instrumentation libraries for distributed tracing. This release also provides built-in integration with the open source Jaeger tracing library for collecting the traces from the apps.

For enabling generation of OpenTracing compliant traces and spans and collecting the traces and spans by using Jaeger, you can set the FLOGO_APP_MONITORING_OT_JAEGER environment variable to

true. Flow Design

This release provides the following functionality to improve the Developer Experience (DX) for designing apps using the Web UI:

(7)

Selective Import: To improve the reusability of apps, a Selective Import option has been added to the import functionality. This feature allows you to import an app into a new app or an existing app with the flexibility to select specific triggers, flows, and connections while importing the app.

Loop: The ability to iterate the execution of an activity has been significantly enhanced:

A Loop tab has been added for activity configuration.

Support for two types of loops has been added: Iterate and Repeat while true. You can use the Iterate loop to specify a number of iterations. You can use the Repeat while true loop to specify a condition to repeat the execution of activity when the condition is true.

An Accumulate option has been added on the Loop tab for accumulating output of the activity from each iteration into an array.

Retry on Error: A Retry on Error tab has been added in the activity configuration of

InvokeRESTService and TCMMessagePublisher activities. You can retry the execution of these activities if it encounters a retriable error. You can specify a retry count and retry interval in the Retry on Error tab.

Success with no matching condition: This new type of branch can be used when you want to execute one or more specific activities when none of the "Success with condition" branches meet the condition and execute.

List view: A new list view is added for Flow Input & Output parameters in addition to existing JSON schema view. You can define the flow parameters and their types in the UI.

Copy activity: You can now create a copy of an existing activity within the same flow.

Branch Labels: By default, a label is now added to a branch and displayed when you hover over the branch. You can also update the branch labels.

Release 2.7.0

Support for Amazon EKS

This release adds support for Amazon EKS. After you have developed an app and created its application run time image, you can run the app on Amazon EKS (in addition to Amazon ECS and Amazon Fargate).

REST API Development

This release adds the following advanced capabilities for simplifying development of REST APIs using Flogo applications:

A new Configure Response Codes option has been added to the ReceiveHTTPMessage trigger and InvokeRESTService activity that allows you to add multiple HTTP response codes and define response content-type and schema for each code.

A new ConfigureHTTPResponse activity has been added. You can add this activity before a Return activity if Configure Response Codes option is enabled on the ReceiveHTTPMessage trigger and use the activity to select a response code and define the response to be returned for that specific code.

You can also define custom HTTP response header on the ReceiveHTTPMessage trigger.

InvokeRESTService activity allows you to configure a connection timeout and proxy URL while invoking external REST APIs from the Flogo flows.

Kafka Consumer

(8)

KafkaConsumer trigger now supports the Whitelist feature to consume messages from multiple topics. You can whitelist a group of Kafka topics for consuming messages by specifying them as a comma-separated list of topics (Topic field) or a regex pattern (Topic Whitelist field).

Web UI Improvements

This release adds the following advanced Web UI capabilities:

You can add multiple handlers for a trigger allowing you to bind multiple flows to a single trigger.

It also adds a new Trigger View and the ability to switch between the Flow view and the Trigger view so that you can add more than one flows for a single trigger.

Errors and warnings:

This release provides a better and consolidated view of validation errors and warnings.

For error branches, details of the error (such as activity and type of error message) are now captured and returned in the $error variable. These details can be used by subsequent activities and the logic of the flow can be based on the type of error.

New Activities

This release adds the following out-of-the-box activities:

Sleep: This activity is used to pause execution of the Flow for a specified time period.

ParseJSON: This activity is used to parse JSON data in String format into a JSON Object.

Mapper Functions

This release adds the following advanced capabilities for mapper functions:

Adds support for mapper function contributions giving you the flexibility to create custom mapper functions, install them as extensions and use within the mapping expressions.

Includes a set of mapper functions from the open source Project Flogo out-of-the-box.

The array.foreach() function now supports passing of an argument for filtering array elements to return only the matching elements.

Extensibility

You can now install extensions from GitHub repositories, thus eliminating the need to zip and upload the extension.

Exporting an Application's .json File

You can now export an application's .json file (embedded within the binary file), by using the ./

<app-binary-name> --export app command. The .json is exported as <app-binary-name>.json. Out-of-the-box Connectivity

This release adds an out-of-the-box connector for MySQL.

Release 2.6.1 GraphQL

This release adds an out-of-the-box trigger for GraphQL that provides an efficient and flexible API design paradigm with a powerful query language allowing frontend clients to query exact data. You can import a GraphQL schema in a Flogo application and choose to auto-generate the GraphQL trigger and flows for implementing resolver functions or add a GraphQL trigger to existing flows allowing you to rapidly implement GraphQL server for your API.

Support for OpenAPI Specification 2.0 (formerly Swagger Specification)

(9)

You can now develop REST APIs from OpenAPI Specification version 2.0 (formerly Swagger Specification). You can import the OpenAPI Specification in an app and auto-generate the REST trigger and flows for implementing the API. This enables rapid development.

Improved error handling capabilities

The new Error branch type extends the flow execution control and error handling capabilities. An Error branch allows you to catch activity level exceptions and execute a different path in the flow if activity execution throws an error. Three types of branches are now supported - Success, Success with Condition, and Error.

Mapper activity

The new Mapper activity enables you to define data mappings for any data type and construct data in the required structure for mapping to subsequent activities in the flow.

New schema synchronization option

A new Sync flow input/output configuration option is added on the Trigger configuration tabs. If you make any changes in the trigger input/output schema, this option allows you to propagate the changes to the flow input and output parameters by copying the Trigger Output schema to Flow Inputs and Trigger Reply schema to Flow outputs without having to manually update flow input/

output schema.

Support for securing APIs using TLS

You can now secure APIs built using Swagger and GraphQL through X509 certificates.

Mapper improvement

You can clear child mappings configured for objects and arrays in the mapper using the Clear Mapping option.

Prometheus Support

In the area of application monitoring, this release now provides support for Prometheus, an open source project under Cloud Native Computing Foundation (CNCF). If the environment variable FLOGO_APP_METRICS_PROMETHEUS is set to true, the app starts exposing flow and activity metrics via the HTTP endpoint as Prometheus-compliant time series data. This gives you the ability to configure Prometheus for pulling and storing metrics, use features of Prometheus for monitoring as well as alerting, and also use tools like Grafana for visualization.

Duplicating Flows

You can now make a copy of an existing flow within an app.

OOTB Connectivity

This release adds out-of-the-box connectors for MS SQL Server and PostgreSQL.

Release 2.4.0

Configuration Management

This release adds a set of new features to help you isolate the configuration from your app and manage it using external stores, so that you can deploy the same app in multiple environments without making any changes to the app. This release extends the Application Properties feature and allows you to provide the values for application properties at run time using environment variables or fetch them by connecting to external configuration stores. It certifies use of Consul and AWS Param Store for storing your app configuration. This release also adds ability to export application properties from the app binary in a JSON file or as environment variables. If you use application properties for configuring secrets in your app, such as database passwords, you can generate obfuscated values for the secrets.

Application Logging

This release adds support for Zap library for application logging. Zap aims to provide fast, structured, and leveled logging. You can switch to the Zap logger for your app by setting the environment

(10)

variable, FLOGO_LOGGER_IMPL, to zap. This release also gives you the ability to log in JSON format by setting the environment variable FLOGO_LOGGER_FORMAT to JSON.

Application Metrics API

This release provides the ability to collect flow and activity metrics for monitoring your app using a REST API. You can now enable collection of app metrics by setting the environment variable

FLOGO_APP_METRICS to true and collecting instrumentation as well as execution statistics for flows and activities in your app using the REST API.

Subflows

This release adds support for creating a subflow and calling the subflow from other flows in your app.

This gives you the ability to define common logic in a subflow and reuse it in multiple flows.

Mapper Improvements

This release adds a set of new array functions to support the count, get, delete, and append operations in the mapper. The use of nested ternary operators in the mapper expressions for conditions is now supported. This release also improves the validation of mandatory fields and expressions in the mapper.

Cloud Formation Templates

Using the Cloud Formation templates, you can easily set up the AWS resources required for running Flogo apps on AWS Fargate.

Out-of-the-box support for Kafka, MQTT, TCM and Avro connectors

This release includes a range of activities and triggers for Apache Kafka, MQTT, Apache Avro, and TIBCO Cloud Messaging out-of-the-box removing the need to install them as separate connectors.

(11)

Changes in Functionality

The following functionality-related changes have been made in this release.

Release 2.9.0

Schema Configuration when a new REST trigger is added

When a new trigger is added, for GET and DELETE methods, the Response Schema configuration is enabled instead of the Request Schema.

When new trigger is added, for POST and PUT methods, both Request Schema and Response Schema configurations are enabled.

Connector installation

Starting with this release, you need not install the following connectors separately:

PostgreSQL Connector

MySQL Connector

MSSQL Connector

Database service installation

Starting with this release, the database service is available out-of-the-box and need not be installed separately.

Revalidating an app after navigating to the flow list page

After validating an app on flow details page, if you navigate back to flow list page you must validate the app again irrespective of whether you made changes to the flow or not. TIBCO Cloud Integration - Flogo (PAYG) does not retain the results of any previous validation.

Validation improvements

In prior releases, flows on the flow list page were validated automatically. Now, you need to manually validate the flows.

In prior releases, on editing an activity, the entire flow was validated automatically. Now, only that particular activity is validated automatically.

Timeout field of InvokeRESTService activity

The unit of measurement for the Timeout field in the InvokeRESTService activity has been changed to milliseconds. You might want to reconfigure this field using milliseconds and deploy the app again.

Changes in user interface

The following changes have been made to the user interface:

Flows list page

The App Properties Button has been renamed to Properties.

The Revert to last build, Import, and Export buttons have been moved into a list menu.

Flow Canvas/Details page

The Start testing button is renamed to Test.

(12)

The Revert to last build button is removed.

The Properties button has been added for specifying app properties.

Buttons have been rearranged to group primary actions together and secondary actions together.

Explicit save for activity and trigger configuration

If you make any changes to the schema that you entered when creating a trigger, you must save the changes explicitly by clicking Save and then propagate the changes to the flow input and flow output.

If you have make changes to the schema but do not save the changes explicitly by clicking Save, a warning message is displayed asking you to first save the changes before the schema can be synchronized.

Release 2.8.0 Lambda triggers

For apps with Lambda triggers (namely ReceiveLambdaInvocation trigger, S3BucketEventLambda trigger, and AWSAPIGatewayLambda trigger):

An app can have multiple flows or handlers.

When a trigger is added to other flows, a validation error indicating that other triggers are not allowed in the app is displayed.

Resource name for InvokeLambdaFunction

For InvokeLambdaFunction, you can now specify the Amazon Resource Name (ARN) from the Input tab in addition to the Settings tab. This can be used to take the ARN from a previous activity or trigger.

Return activity

A Return activity is not added by default. Depending on your requirements, you must add the Return activity manually. The Return activity is not added by default in the following cases:

Creating a flow

Adding a branch

Creating error handler

Importing an app Mandatory sign

In the input mapper window, for mandatory fields, the mandatory sign (*) is now displayed before the field name instead of after the field name.

Updating GraphQL schema

You can now update the GraphQL schema without generating a new Flogo flow.

Restarting Studio after installing connectors

After installing any connector, Studio must be re-started.

Release 2.8.0 Lambda triggers

For apps with Lambda triggers (namely ReceiveLambdaInvocation trigger, S3BucketEventLambda trigger, and AWSAPIGatewayLambda trigger):

(13)

An app can have multiple flows or handlers.

When a trigger is added to other flows, a validation error indicating that other triggers are not allowed in the app is displayed.

Resource name for InvokeLambdaFunction

For InvokeLambdaFunction, you can now specify the Amazon Resource Name (ARN) on the Input tab (in addition to the Settings tab). This way, you can now use the ARN from a previous activity or trigger.

Return activity

A Return activity is not added by default. Depending on your requirements, you must add the Return activity manually. The Return activity is not added by default in the following cases:

Creating a flow

Adding a branch

Creating error handler

Importing an app Mandatory sign

In the input mapper window, for mandatory fields, the mandatory sign (*) is now displayed before the field name instead of after the field name.

Updating GraphQL schema

You can now update the GraphQL schema without generating a new Flogo flow.

Restarting Studio after installing connectors

After installing any connector, Studio must be re-started.

InvokeRESTService activity

After installing any connector, Studio must be re-started.

In the InvokeRESTService activity, the timeout period for invoking a service is now set in milliseconds.

Specify the timeout period in the Timeout field in the Settings tab of the activity.

Release 2.7.0

JSON string in quotes

If an input string value contains a JSON string that is not enclosed in quotation marks, a validation error is returned.

Response Type in InvokeRestService

In the InvokeRestService activity, Response type has been moved from Settings to Output Settings.

The default value of Response type is application/json.

If you set Response type to plain/text and export the application from 2.6.1, after upgrading to 2.7.0, you must manually change the Response type to application/json.

Consistent structure across functions

The structure of TIBCO Cloud Integration - Flogo (PAYG) and open source Project Flogo functions is now consistent so that the open source Project Flogo functions can be used in TIBCO Cloud Integration - Flogo (PAYG) and vice versa.

(14)

Redesigned error panels

The error panel is no longer displayed. Errors and warnings are now displayed on the trigger, activity, and flow UI.

DEBUG logs

The default log level of the Flogo Tester is now INFO and not DEBUG.

Release 2.6.1 Iterator Mappings

Apps created in earlier versions of Flogo Enterprise have iterator mappings using the $current tag.

Such apps return validation errors in version 2.6. You must manually update the iterator mappings for such apps.

Also, the datatype for key attribute under $current is changed from number to string. So, any mappings that involve the key attribute must also be manually updated.

Imported Apps

It is mandatory to provide a condition on branches. If the condition is not provided, the app fails at run time.

Application Property

This release of TIBCO Cloud Integration - Flogo (PAYG) provides additional validations for app properties. If you delete an app property or the property is not configured properly, the app fails to start.

Application Property Override Using Environment Variables

The environment variable used to enable application property override using environment variables has changed from FLOGO_APP_PROPS_RESOLVERS=env to FLOGO_APP_PROPS_ENV="{}"

(15)

Deprecated and Removed Features

The following functionality-related changes have been made in this release.

Release 2.9.0

No features have been deprecated or removed in this release.

Release 2.8.0

No features have been deprecated or removed in this release.

Release 2.7.0

The following functions have been deprecated in this release.

Deprecated Function New Function

boolean.true() true

boolean.false() false

float.float64() string.float()

number.int64() coerce.toInt64()

number.len() string.len()

string.base64ToString() utils.decodeBase64() string.stringToBase64() utils.encodeBase64()

string.dateFormat() YYYY-MM-DD

string.datetimeFormat() YYYY-MM-DDTHH:mm:ss

string.timeFormat() HH-mm-ss

string.lowerCase() string.toLower() string.upperCase() string.toUpper()

string.regex() string.matchRegEx()

string.length string.len()

string.tostring() coerce.toString() utility.renderJSON coerce.toString()

Release 2.6.1

No features have been deprecated or removed in this release.

(16)

Release 2.4.0 New release.

(17)

Migration and Compatibility

The following functionality-related changes have been made in this release.

Release 2.9.0

HTTP Trigger Mappings

Importing an app created in a prior version of TIBCO Cloud Integration - Flogo® (PAYG) that uses a REST Trigger and is configured with an HTTP response code breaks trigger reply mappings. To fix this issue, export the app from the latest version and import it again.

Export the app without making any changes and then import it again.

Zuora App

If a Zuora app is created in a prior version of Flogo Enterprise and is then imported to the current version, mapping issues are observed on the Input tab of the Zuora Subscription Activity for the Create Subscription operation.

Export the app without making any changes and then import it again.

Release 2.8.0

There are no migration or compatibility related changes in this release.

Release 2.7.0

InvokeRESTService Backward Compatibility

After an old application JSON file is imported, if it uses the open source Project Flogo REST Invoke activity, an error is encountered.

As a workaround, import the application and delete the existing open source Project Flogo REST Invoke activity. Then, add a new REST Invoke activity from the Default category.

Release 2.6.1

Flogo Enterprise Web UI

In version 2.6, due to an application model change, it is recommended that you import old apps JSON in version 2.6 and export them.

(18)

Closed Issues

The following issues have been closed in this release of TIBCO Cloud Integration - Flogo (PAYG).

Release 2.9.0

Key Description

FLOGO-5570 If an input string contained the equals sign (=) in the app property and the app property was updated at run time, the string.replaceAll function generated an incorrect result.

FLOGO-5068 Loading an app and validating flows took a long time. In addition, if you tried to access mappings in a flow, the mapper UI did not load.

FLOGO-4969 Moving activities around in large flows was slow.

FLOGO-4968 Mapper was slow for large flows.

FLOGO-4954 Multiple flows using the same TIBCO Cloud Messaging subscriber trigger did not work as expected if you added more than one flow to the TIBCO Cloud Messaging subscriber trigger.

FLOGO-4953 When the InvokeRestService activity was used in an app with output settings configured for a String type response code, the output for the response code was generated as type JSON.

FLOGO-4946 If a TIBCO Cloud Messaging trigger had multiple flows, only one flow was triggered and the rest of the flows were not triggered.

FLOGO-4945 For the MongoDBInsertDocument activity, when an app was imported, input parameters were not displayed on the Input tab.

If the imported flow contained any object or param fields that did not have a fixed schema definition in the activity.json or trigger.json, it resulted in loss of data and a blank screen was displayed.

FLOGO-4935 After upgrading to the current release, all codes were displayed as 200 in the manifest.

FLOGO-4924 For REST triggers created in prior releases (which did not have the Configure Response Codes field in Reply Settings of the REST trigger), the Swagger spec was generated with response code as undefined.

FLOGO-4903 When a Flogo app was scaled down to 0, the app did not shut down gracefully.

Thus, in Flogo apps with Salesforce activites, the push topics were not deleted.

FLOGO-4902,

FLOGO-4872 The Extensions tab took a long time to load and, in some cases, was

unresponsive. If the number of large apps was high, the Extensions tab did not load.

FLOGO-4860 For large apps, there was a lag in design-time performance. For example, tasks such as viewing logs in a browser or downloading a large log file took a long time.

(19)

Key Description

FLOGO-4845 If an app was updated and the app already existed in another environment, when the app was imported into the other environment, changes made to the app did not reflect in the other environment.

FLOGO-4842 If you upgrade from Flogo Enterprise 2.x.x to 2.8.0, binaries of an app could not be generated.

FLOGO-4840 If you upgrade from Flogo Enterprise 2.x.x to 2.8.0, the Flow Tester did not work.

FLOGO-4625 If there are changes in an uploaded Swagger file, a warning message was not displayed requesting the user to update the activity mappings. As a result, you had to navigate to each downstream activity to check for changes in the schema.

This has now been fixed.

FLOGO-4583 A TIBCO Cloud Messaging Subscriber app of type Durable with Content Matcher failed to start if an app with the same Durable name and Content Matcher was pushed before.

FLOGO-4570 If an array name contained a dollar sign ($) or a dash (-) character and the flow output was mapped to the Return activity, the character ($ or -) was removed from the array name in the Input field.

FLOGO-4553 For the InvokeRESTService activity, if the Accumulate check box on the Loop tab was selected and you selected None as the Type of iteration, the output continued to be an accumulated output array. This has now been fixed.

FLOGO-4552 For the InvokeRESTService activity, the hover text of the Timeout field

erroneously displayed seconds as the unit of measurement. This has now been changed to display milliseconds.

FLOGO-4549 When flow execution branches were created, from the second branch onward, the destination activity name was missing in the branch label. This has now been fixed.

FLOGO-4548 In a flow, you could not map any fields on the Map Outputs tab of a Return activity. This issue occurred if the activity before the Return activity had a sub- flow in which output was accumulated (by selecting the Accumulate check box on the Loop tab).

FLOGO-4545 The ParseJSON activity failed with the following error when a jsonString (string containing JSON data) was provided on the Input tab:

Invalid character ' ' looking for beginning of object key string

FLOGO-4543 The condition in an Otherwise branch was executed even though the condition of the first branch was true.

FLOGO-4538 The ParseJSON activity could not parse a JSON array string if the array string did not have a root element and returned the following error:

Invalid input. It must be a valid JSON string or a file path prefixed with 'file://'

(20)

Key Description

FLOGO-4537 If an API returned a JSON data with an exclamation mark (!) in the JSON element name, the evaluation of the JSON path failed with the following error:

Execution failed for Activity[<activity name>] in Flow[<flow name>] - unable to evaluate path: ["T!T"].rows

FLOGO-4492 When an app property was bound to a trigger handler configuration and the same trigger was used in another flow, the same app property was used in the new trigger handler. You had to manually unbind the app property in the new trigger handler.

FLOGO-4582 A TIBCO Cloud Messaging Subscriber Content Matcher was not saved after importing the app.

FLOGO-4573 TIBCO Cloud Integration - Flogo (PAYG) did not handle special variables containing bracket notation, such as 'address[line1]'.

FLOGO-4489 When an app property was bound to a trigger handler configuration and the app was exported, the name of the property was lost and was not displayed in the design-time model after the app was imported into Flogo Web UI. The app failed at runtime.

FLOGO-4456 The Flogo AWS Connection failed at runtime if Use Assume Role was set to True.

FLOGO-4448 When the output was configured for a flow, a warning message regarding the Error Handler was reported.

FLOGO-4427 At design time, when a filter expression in a mapper had multiple arguments from $loop, a wrong validation marker was displayed.

FLOGO-4407 The Flogo AWS Connection failed at runtime if Use Assume Role was set to True and External ID was not configured.

FLOGO-4388 The data set in the Throw Error activity in a sub flow was not accessible to the parent flow.

FLOGO-4315 You could import apps with AWS API Gateway Lambda Trigger, Receive Lambda Invocation Trigger, or S3 Bucket Event Lambda Trigger along with other triggers in the same app. A validation error was not returned at design time and the app failed at runtime.

FLOGO-4250 If you changed or switched a Loop type, the configuration settings of the previous Loop type were not stored or preserved.

FLOGO-3912 Activities and flows showed an error when a parent element accessed the child element array as a filter.

FLOGO-3910 For an app, when a child element was added as a filter to the parent array mapping, an index was not added.

(21)

Key Description

FLOGO-3908 While mapping arrays, an extra element was added as a null value for missing elements in the array. For example, if the first element in an array had 3 fields and the second element had only 1 field, 2 fields were added as null for the second element.

FLOGO-3741 If you upgraded to TIBCO Cloud Integration - Flogo (PAYG) 2.7.0 and then tried to build a binary for an app with a Lambda trigger, building the binary failed with an error.

FLOGO-3650 Building an app using the builder CLI resulted in an issue for an app exported before 2.6.0.

You can import the app into the latest version of TIBCO Cloud Integration - Flogo (PAYG) and export it again.

FLOGO-3561 Logs were not visible in Flow Tester and the following error was displayed:

Debugger failed to start as the test engine is currently being built. Please try again after sometime. For more information check builder.log.

FLOGO-3520 For the InvokeRestService activity, if you selected Response type as text/

plain or Other in the Output settings tab, the Response schema was not refreshed.

FLOGO-3375 On re-importing an app, single quotes were replaced by double quotes in a JSON string field.

FLOGO-3305 After an old app JSON file was imported, if it used the default REST Invoke activity, an error was displayed.

FLOGO-3124 After importing an app, a Return activity was added by default if the flow had no return activity. This has now been fixed.

FLOGO-2676 On Linux platforms, the TIBCO Cloud Integration - Flogo (PAYG) Web UI was not launched after connecting to VPN.

You can disconnect the VPN and re-launch or refresh the Flogo Enterprise Web UI.

FLOGO-2451 After importing a Flogo app, an extra return activity was added if the flow had no return activity.

FLOGO-2344 When you used the Iterator key as an array index, the flow execution failed and the following error was displayed:

index based access expected for an array

FLOGO-389 Anonymous arrays are not supported. You can add a root element to the array.

(22)

Release 2.8.0

Key Description

FLOGO-4366 When using the isdefined() function in a mapper, if the source attribute was not configured and you wanted to set a null value for an object or array, a validation error was displayed. For example, when the isdefined() function was used as follows, a validation error was returned:

"address":"=isdefined($flow.p1.person.address)?

$flow.p1.person.address:null"

FLOGO-4330 An activity returned a mapper error if the mapped object did not exist. This error occurred because the FLOGO_MAPPING_SKIP_MISSING environment variable could not be set in the flow tester.

FLOGO-4322, FLOGO-4298

You could not filter the objects in an array based on a condition that is applied on the child element of the object in the array.

FLOGO-4262 When ternary operators were used with the array.count() function, an error message was displayed at design time.

FLOGO-4161 False validation errors were reported in case of nested array fields mapping from different sources.

FLOGO-4129 When an error occurred in one of the subflows, the main flow did not stop and continued executing.

FLOGO-4056 When the URL of a big-sized Github repo (which did not have the expected structure of extensions) was provided to extensions downloaded from Github, a new app could not be created.

FLOGO-3878 A RESTInvoke flow that used a ConfigureHTTPResponse activity failed. This issue occurred when all the following conditions were true:

The RESTInvoke activity called a REST service created in Flogo

The REST service used the ConfigureHTTPResponse activity

The input of ConfigureHTTPResponse activity was mapped from the output of the RESTInvoke activity

FLOGO-3858 If an array inside an array was mapped to root, the child elements were not upgraded to $loop. Instead, they were mapped by using $ only for hybrid mappings.

FLOGO-3856 If you mapped an array to another array and to its child elements, an error was displayed at the trigger and activity level even though the mappings were correct.

FLOGO-3754 When importing an app, if the app used an extension that was not present in the environment, the import process stopped responding.

(23)

Key Description

FLOGO-3742 After upgrading, if you uninstalled the dbservice and then installed it again, the installation failed and the following error message was displayed:

Failed to install service

FLOGO-3741 After upgrading, building a binary for an app with a Lambda trigger failed with an error.

FLOGO-3595 When an app was created by importing a Swagger specification with multiple response codes, the Message field was displayed in the Map from Flow Outputs tab even after adding a responseBody element in the Reply Settings tab.

FLOGO-3561 Logs were not visible in Flow Tester and the following error was displayed:

Debugger failed to start as the test engine is currently being built. Please try again after sometime. For more information check builder.log.

Release 2.7.0

Key Description

FLOGO-3304 An application that used an open source Project Flogo REST trigger or REST Invoke activity did not work in the Flow tester or with the binary.

FLOGO-3235 An error in a condition was not shown anywhere in the flow except on the condition definition page.

FLOGO-3209 When you import an application created in open source Project Flogo into TIBCO Cloud Integration - Flogo (PAYG), the data type of the code field in the REST trigger was not displayed.

FLOGO-3162 In Lambda applications, if you used an application property when configuring the Execution Role Name field, you could not push the application. The following error was displayed:

Execution role name [=$property ["execRoleName"] ]Execution role name [=$property ["execRoleName"] ]ValidationError: The

specified value for roleName is invalid.

FLOGO-3136 On importing a Lambda Trigger application, Reply Data schema (in the Reply Settings tab in Receive Lambda Invocation Trigger) was lost.

FLOGO-3131 In a condition, you could not check whether an object was empty or null.

FLOGO-3121 Creating a Flogo application from an API specification resulted in a validation error during application creation.

FLOGO-3117 In branch condition, if you compared a string type variable with a number, a validation error was not displayed at design time and the flow did not get executed at run time.

FLOGO-3102 An error was not displayed for an empty condition on the UI.

(24)

Key Description

FLOGO-3099 If a string in a mapper started with =, the flow failed at run time.

FLOGO-2863 You could not create a Flogo application from an API specification that had a 400 response code with a schema response.

FLOGO-2855 A flow was unable to capture the body of the response when Invoke API returned a 400 error.

FLOGO-2466 Use of any "trigger output" was not supported in "trigger output" to "flow input" array mappings. Also, use of "flow output" was not supported in "flow output" to trigger reply array mappings.

FLOGO-2187 When the Iterator key was used as an array index, the following error was displayed and the flow execution failed:

index based access expected for an array

FLOGO-646 Formatting and parsing of date and time to a MM-DD-YYYY format was not supported.

Release 2.6.1

Key Description

FLOGO-3204 Flogo apps exported from Project Flogo version 0.9.0 could not be imported into TIBCO Cloud Integration - Flogo (PAYG) 2.6.x.

FLOGO-3186 You could not import a Swagger specification which did not have any unsupported methods or paths while creating flows. This has been fixed.

FLOGO-3162 In Lambda apps, if you used an application property when configuring the Execution Role Name field, you were unable to push your app. You got an error, Execution role name [=$property ["execRoleName"] ]Execution role name [=$property ["execRoleName"] ]ValidationError: The specified value for roleName is invalid.

FLOGO-3160 TIBCO Cloud Integration - Flogo (PAYG) Web UI did not return a validation error for invalid credentials in Connections.

FLOGO-3154 Failed to get data from Marketo Upsert or Delete activity's output errors field.

FLOGO-3141 When an app is imported, input data (string) in a subflow activity was lost.

FLOGO-2923 For an empty condition, an error was not returned and the condition was evaluated as true at run time.

FLOGO-2695 Building a Flogo app binary through UI and testing the Flogo app through Flow tester did not work.

FLOGO-2512 If you created a Flogo app from an API specification, the flows for the REST methods that had query or path parameters of type integer or long were not created even though the app was created successfully.

(25)

Key Description

FLOGO-2404 If you imported an app that contained a connection extension, the app got imported without errors, but you had to recreate the connection after importing the app. The connection detail are now preserved except for the password which must be reset in the imported app.

(26)

Known Issues

The following known issues have been identified in this release of TIBCO Cloud Integration - Flogo (PAYG).

Key Description

FLOGO-5655 Summary: You cannot import tester launch configuration. The following error is displayed:

Configuration already exists.

Workaround: Create a new tester launch configuration.

FLOGO-5654 Summary: For the InvokeRESTService activity, the Accept request header is set to Response Type when using Configure Response Codes.

Workaround: Switch Configure Response Codes to false and change response type to others and switch back Configure Response Codes to true and set Accept header in the input.

FLOGO-5650 Summary: If an app-level schema is attached in the request or response schema of the AWSAPIGatewayLambda trigger, the API gateway is not created.

Workaround: Do not use an app-level schema in the AWSAPIGatewayLambda trigger.

FLOGO-5647 Summary: When creating a new trigger, you cannot use the Bind an application property button to bind a property to the port.

Workaround: None

FLOGO-5634 Summary: In the input and output of a flow, if you change the parameter type and then select another type as Required, the parameter type changes to the previous type again.

Workaround: None

FLOGO-5616 Summary: If you do not click the Save button while configuring an activity and then move to the Flow Inputs & Outputs tab, the flow is unavailable and appears as grayed out.

Workaround: Save the activity and then click anywhere on the canvas.

FLOGO-5400 Summary: While running an app in flow tester, if you provide a JSON schema with a nested array, it returns an error at design time.

Workaround: None

FLOGO-5344 Summary: While adding elements in the array.flatten() function, the mapper becomes slow and the page becomes unresponsive after some time.

Workaround: None

(27)

Key Description

FLOGO-5267 Summary:When the reply settings of a ReceiveHTTPMessage trigger are modified, the corresponding ConfigureHTTPResponse activities within the flow are not modified appropriately.

Workaround: None

FLOGO-5200 Summary: If you add wrong data in the input mapper, an error symbol is not displayed for the activity. The error symbol is, however, correctly displayed in the input mapper section.

Workaround: None

FLOGO-5133 Summary: In the ReceiveHTTPMessage trigger and InvokeRestService service, you cannot select an app-level schema if the trigger or activity has multiple responses.

Workaround: None

FLOGO-4855 Summary: If you upgrade from TIBCO Cloud Integration - Flogo (PAYG) 2.8.0 to 2.8.1, the following error message is displayed:

"'o' is not recognized as an internal command

or 'things' is not recognized as an internal command"

Workaround: Ignore the error. The upgrade happens correctly despite the error.

FLOGO-4717 Summary: When a Swagger specification file of size 2.5 MB or more is used for creating an app or uploaded using the REST trigger configuration, the app is not deployed to TIBCO Cloud.

Workaround: Use a Swagger specification file of a smaller size.

FLOGO-4716 Summary: If required elements of a request schema are not provided, the runtime provides a response but the tester returns a validation error.

Workaround: None

FLOGO-4661 Summary: Single quotes are not supported in TIBCO Flogo mapper variables.

Workaround: None

FLOGO-4659 Summary: When using a field name that contains special characters, the

array.foreach mapping fails with the following error:

eval expression failed to resolve Loop: 'field name', ensure that Loop is configured in the application

Workaround: Add a scope name before the field name. For example, manually change $loop["fieldName"] to $loop["ScopeName"]

["fieldName"].

FLOGO-4628 Summary: If changes are made to a Swagger specification file and the file is saved with a different name, the changes are not reflected in the app even if you click the Sync Schema button.

Workaround: None

(28)

Key Description

FLOGO-4420 Summary: When mapping arrays, the following validation error is displayed when the source array is a fixed array child:

$flow.input[0].test.arraysource

Workaround: None

FLOGO-4416 Summary: When using the isdefined() function in a mapper, if you want to validate whether an array is empty and you click the array in the Activity Input section on the left, array.foreach() is erroneously displayed on the right side and the app fails at run time.

Workaround: Remove array.foreach() manually before running the app.

FLOGO-4387 Summary: An activity returns a mapper error if the mapped object does not exist, as the FLOGO_MAPPING_SKIP_MISSING environment variable cannot be set in the flow tester.

Workaround: None

FLOGO-4375 Summary: When a Kafka app created in a previous version of TIBCO Cloud Integration - Flogo (PAYG) is imported to the current version and you click Edit on the Connections tab, the Use Schema Registry option is not available in the Apache Kafka Client Configuration dialog box.

Workaround: Create a new connection and use the connection in the app.

FLOGO-4363 Summary: When an app with different trigger and handler settings is imported, the trigger and handler settings are not replaced after the selective import.

Workaround: None

FLOGO-4255 Summary: When you use the same proto file to start a gRPC app binary that has a gRPC trigger and a gRPC activity, the following error message is displayed:

Duplicate proto type registered

or

Duplicate enum registered

Workaround: Ensure that the gRPC trigger and the gRPC activity use different package names in the proto file.

FLOGO-4188 Summary: For OpenTracing, even after terminating an app, recurring warnings are displayed in Jaeger UI.

Workaround: None

FLOGO-4104 Summary: When Project Flogo apps are imported, the settings on the Input/

Output mappings tab are lost after the Sync Schema option is used.

Workaround: None

(29)

Key Description

FLOGO-3821 Summary:While configuring the response code in a REST Trigger, the Response Body and Response Headers must follow the same input schema type. Failing to do so will result in an error.

Workaround: Make sure that the Response Body and Response Headers follow the same input schema type.

FLOGO-3624 Summary: In the mapper of an activity, if a field is mandatory and you have not provided a value, an error is not displayed on the activity or flow canvas.

Workaround: None.

FLOGO-3155 Summary: If there is no activity on the UI for some time, the UI is redirected to http://localhost:<port>/undefined/idm/logout-request.

Workaround: Change the URL and access it again:

http://localhost:<port>/

FLOGO-2888 Summary: You cannot upload Swagger specification definitions which have a cyclic dependency.

Workaround: None

FLOGO-2886 Summary: Depending on your machine configuration and browser

configuration, you might not be able to upload a large Swagger API definition JSON file or the browser might become unresponsive. The following error message is displayed on the Network tab and the file is not uploaded:

Request entity too large

Workaround: None

FLOGO-2861 Summary: When uploading custom schema for GraphQL, if the custom schema has a cyclic dependency, the upload fails and the following error is returned:

Maximum call stack size exceeded for circular reference

Workaround: None

FLOGO-2844 Summary: If you change the input or output schema in a subflow, it does not give any warning or error in mapping in the call flow activity.

Workaround: None

FLOGO-2536 Summary: Importing a Flogo app using Salesforce activities with no

connection set in connections page takes longer than expected time to import.

Workaround: None

(30)

Key Description

FLOGO-2224 Summary: In a REST trigger, when the endpoints have the same base path but different wildcard in path parameters, the app fails to run resulting in a path conflict error.

Workaround: Change the wildcard names such that they match. For example, if you have the following endpoints:

/books/{name}/id and /books/{name2}/id2

you must change them to either /books/{name}/id and /books/

{name}/id2 or /books/{name2}/id and /books/{name2}/id2

FLOGO-2223 Summary: When there is a conflict in the path parameters wildcards, even though you see an error in the logs, the app proceeds to run.

Workaround: Change the wildcard names.

FLOGO-1684 Summary: When accessing the TIBCO Cloud Integration - Flogo (PAYG) Web UI, if your machine is configured with a static IP address, the following error is displayed:

502 Bad Gateway

Workaround: Configure the machine IP address as dynamic.

FLOGO-814 Summary:: In the flow error handler, $error.data and $error.code are not supported in the mapper.

Workaround:: Manually delete them from mappings in any Project Flogo applications that are imported into TIBCO Cloud Integration - Flogo (PAYG).

FGTCM-21 Summary: TCM Publisher activity throws operation timeout error and duplicate message gets received at the subscriber side.

Workaround: Increase connection timeout value and re-push app or restart(Scale down/up) the app.

FGTCM-18 Summary: Content matcher does not work with integer type for TCM Subscriber.

Workaround: None

(31)

Key Description

WIDBSV-37 Summary: The following sections specify the grammar supported by Flogo DB Service 2.0.1 for SQL SELECT, INSERT and DELETE statements. The grammar follows the standard normative form as described in PostgresSQL documentation.

SQL Statement

The following grammar is supported for SQL SELECT queries:

[ WITH with_query [, ...] ] SELECT [

[ * | expression [ [ AS ] output_name ] [, ...] ] [ FROM from_item [, ...] ]

[ WHERE condition ]

[ GROUP BY grouping_element [, ...] ]

[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] [ ORDER BY expression [ USING operator ] ] [, ...] ] table_name ]

The following clauses and parameters are not supported:

[ RECURSIVE ] ]

[ HAVING condition ]

{ RANGE | ROWS | GROUPS } frame_start [ frame_exclusion ] { RANGE | ROWS | GROUPS } BETWEEN frame_start AND

frame_end [ frame_exclusion ] [ DISTINCT ]

FIRST | LAST } ] ]

[ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ]

[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF [ NOWAIT | SKIP LOCKED ] ]

INSERT Statement

The following grammar is supported for SQL INSERT statement:

INSERT INTO table_name [ ( column_name [, ...] ) ]

{ VALUES ( { expression } [, ...] ) [, ...] | query } [ RETURNING * | output_expression ]

The following clauses and parameters are not supported:

[ WITH [ RECURSIVE ] with_query [, ...] ] [ OVERRIDING { SYSTEM | USER} VALUE ] { DEFAULT VALUES ( { DEFAULT } ) }

[ ON CONFLICT [ conflict_target ] conflict_action ] [ [ [ AS ] output_name ] ]

DELETE Statement

The following grammar is supported for SQL DELETE statement:

DELETE FROM table_name [ * ] [ USING using_list ] [ WHERE condition ]

[ RETURNING * | output_expression ]

The following clauses and parameters are not supported:

[ WITH [ RECURSIVE ] with_query [, ...] ] [ ONLY ] [ [ AS ] alias ]

[ WHERE CURRENT OF cursor_name ] [ [ [ AS ] output_name ] [, ...] ]

SQL Functions (for all Database Connectors) The following SQL functions are not supported:

CONCAT

Workaround: None

參考文獻

相關文件

The first row shows the eyespot with white inner ring, black middle ring, and yellow outer ring in Bicyclus anynana.. The second row provides the eyespot with black inner ring

A factorization method for reconstructing an impenetrable obstacle in a homogeneous medium (Helmholtz equation) using the spectral data of the far-field operator was developed

• helps teachers collect learning evidence to provide timely feedback &amp; refine teaching strategies.. AaL • engages students in reflecting on &amp; monitoring their progress

This film was created by Into Film, an organisation that uses film and media production to develop skills in young people in the UK.?. Demonstration 2

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

How does drama help to develop English language skills.. In Forms 2-6, students develop their self-expression by participating in a wide range of activities