API Connector for CData Sync

Build 22.0.8479
  • API
    • 接続の確立
    • 高度な機能
      • SSL の設定
      • ファイアウォールとプロキシ
    • API Script Reference
      • Items in API Script
      • Value Formatters
        • String Formatters
        • Date Formatters
        • Math Formatters
      • Keyword Reference
        • api:break
        • api:call
        • api:case
        • api:catch
        • api:check
        • api:continue
        • api:default
        • api:else
        • api:enum
        • api:equals
        • api:exists
        • api:first
        • api:finally
        • api:if
        • api:include
        • api:info
        • api:last
        • api:map
        • api:match
        • api:notequals
        • api:null
        • api:notnull
        • api:push
        • api:script
        • api:select
        • api:set
        • api:setc
        • api:setm
        • api:throw
        • api:try
        • api:unset
        • api:validate
    • 接続文字列オプション
      • Authentication
        • User
      • OAuth
        • OAuthVersion
        • OAuthClientId
        • OAuthClientSecret
      • SSL
        • SSLServerCert
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
      • APIProfile
        • Profile
        • ProfileSettings
      • APIServer
        • AuthScheme
        • Password
        • URL
      • Miscellaneous
        • MaxRows
        • Other
        • PseudoColumns
        • Timeout
        • UserDefinedViews

API Connector for CData Sync

概要

CData Sync App は、API データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。

API コネクタはCData Sync アプリケーションから使用可能で、API からデータを取得して、サポートされている任意の同期先に移動できます。

API Connector for CData Sync

接続の確立

Sync App アプリケーションの接続 ページに移動し、接続の追加 パネルで対応するアイコンを選択して、API への接続を作成します。API アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからAPI コネクタをダウンロードおよびインストールします。

必須プロパティは[設定]タブにリストされています。[Advanced]タブには、通常は必要ない接続プロパティが表示されます。

API Connector for CData Sync を使用すると、アプリケーション内からさまざまなデータソースに接続できます。

プロファイルへの接続

Sync App を使用すると、アプリケーション内から、プロファイルと呼ばれるさまざまなデータソースに接続できます。API プロファイルは、アプリケーションまたはオンラインサービスからのデータをテーブル、ビュー、ストアドプロシージャとしてモデル化するスキーマのコレクションです。API プロファイルのファイル拡張子は".apip" で、CData のWeb サイトからダウンロード可能です。

プロファイルを使用して接続を確立するには、Profile プロパティをAPI プロファイルファイルのパスに設定し、ProfileSettings をデータソースへの資格情報を含む接続文字列に設定します。HTTP basic、HTTP digest、NTLM、およびOAuth など、最も一般的な認証方式がサポートされています。必要な接続プロパティの詳細については、各プロファイルのドキュメントを参照してください。

API Connector for CData Sync

高度な機能

このセクションでは、API Sync App の高度な機能を厳選して説明します。

ユーザー定義ビュー

Sync App を使用すると、事前設定されたクエリによって内容が決定されるユーザー定義ビューと呼ばれる仮想テーブルを定義できます。 このビューは、ドライバーに発行されるクエリを直接制御できない場合に有効です。 カスタムビューの作成と設定の概要については、ユーザー定義ビュー を参照してください。

SSL の設定

SSL の設定 を使用して、Sync App が証明書のネゴシエーションをどのように扱うかを調整します。さまざまな証明書形式を選択できます。 詳しくは、接続文字列オプションにあるSSLServerCert プロパティを参照してください。

ファイアウォールとプロキシ

Windows プロキシとHTTP プロキシを含むファイアウォールとプロキシ に合致するようSync App を設定します。トンネル接続を設定することもできます。

クエリ処理

Sync App は、API にできるだけ多くのSELECT ステートメント処理をオフロードし、残りのクエリをクライアント側のインメモリで処理します。

詳しくはクエリ処理 を参照してください。

ログ

CData ログを調整するために使用可能な設定の概要については、ログ を参照してください。基本的なロギングでは、 次の2つの接続プロパティを設定するだけです。LogModules 接続プロパティを使用してログに記録する情報のサブセットを選択できる、 より洗練されたロギングをサポートする多数の機能があります。

API Connector for CData Sync

SSL の設定

SSL 設定のカスタマイズ

デフォルトでは、Sync App はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL / TLS のネゴシエーションを試みます。

別の証明書を指定するには、利用可能なフォーマットについてSSLServerCert プロパティを参照してください。

API Connector for CData Sync

ファイアウォールとプロキシ

Firewall またはProxy 経由の接続

HTTP プロキシ

Windows のシステムプロキシ経由の接続では、接続プロパティを追加で設定する必要はありません。他のプロキシに接続するには、ProxyAutoDetect をfalse に設定します。

さらにHTTP プロキシへの認証には、ProxyServer とProxyPort に加えてProxyAuthScheme、ProxyUser、およびProxyPassword を設定します。

その他のプロキシ

次のプロパティを設定します。

  • プロキシベースのファイヤーウォールを使用するには、FirewallType、FirewallServer、およびFirewallPort を設定します。
  • 接続をトンネルするには、FirewallType をTUNNEL に設定します。
  • 認証するには、FirewallUser とFirewallPassword を設定します。
  • SOCKS プロキシへの認証には、さらにFirewallType をSOCKS5 に設定します。

API Connector for CData Sync

API Script Reference

CData Sync App は、API に対して、ローカルおよびリモートデータをリレーショナルテーブル、ビュー、およびストアドプロシージャにモデル化することにより、標準準拠のアクセスを可能にします。API は、API Script と呼ばれる独自のコンフィギュレーション言語を持ち、お客様のAPI のリソースのためのスキーマをマークアップするために使うことができます。API Script は、API へのリクエスト生成および返されたフィードのパースを容易にします。

API Script は、データアクセスおよびプロセッシングのあらゆる側面の管理を可能にするハイレベルなプログラミング言語です。スキーマはAPI Script エンジンにより変換されたスクリプトです。

スクリプトを書く際には、キーワード、アトリビュート、アイテム、オペレーション、およびフィードを使います。

  • Attribute:name-value ペアのname 部分で、attribute="address", value="123 Pleasant Lane" のように使われます。
  • Item:Attribute-value ペアの関連するグループで、インプットとアウトプットを説明します。次に例を示します。
    Attribute="name" value="Bob"
    Attribute="address" value="123 Pleasant Lane"
    Attribute="phone" value="123-4567"
  • Feed:アイテムのリスト。例えば、アドレスと電話番号を含む顧客のリストなど
  • Operation:アイテムをインプットとして受け、フィードをアウトプットとして生成するメソッドの一般名。
  • Keyword:API Script の構文で、api:set のようなもの。
API Script は多様なキーワードを持ち、次のようなことが可能です:
  • フィードの上にカラムを投影し、フィードアイテムを行に分割する。
  • 実行フローを管理するためにIf/else 構文やcase 構文などのハイレベルなプログラミング構成を使う。
  • オペレーションを呼び出し、カスタムオペレーションを定義する。
  • アイテム、オペレーションのインプット、フィード、オペレーションの結果を作成し、変更する。
  • アイテムの反復によりオペレーション呼び出しからの結果フィードを処理する。

API Connector for CData Sync

Items in API Script

フィードは、アイテムにより成り立ちますが、API Script ではアイテムはフィードの部品という以上の働きをします。アイテムは、オペレーションにインプットを提供するために使われることもあります。

アイテムの宣言

API Script では、アイテムは、api:set キーワードを通じて作成され、名付けられ、アトリビュート値を与えられます。

<api:set item="input" attr="mask" value="*.txt" />
このラインは、"input" という名前のアイテムの、"mask" アトリビュートに"*text" という値をセットします。この場合、インプットアイテムはAPI Script の変数の働きをします。

ただし、"input" という名前のアイテムは宣言されていません。その代わりに、初回にアトリビュートをセットしようとすると、そのアイテムが生成されます。上の例では、インプットアイテムが存在していない場合、そのアイテムが生成され、mask アトリビュートがセットされます。

アトリビュート値の選択

アトリビュートを参照するには、 item.attribute (e.g., "input.mask") シンタックスを使います。あるアトリビュート値をクエリするには、括弧 ([]) でアトリビュート名を囲います。これは、文字列リテラルとしてではなく、文字列を評価したいということを示します。

例えば、次のコードスニペットを見てください:

<api:set item="item1" attr="attr1" value="value1"/>
<api:set item="item1" attr="attr2" value="item1.attr1"/>
<api:set item="item1" attr="attr3" value="[item1.attr1]"/>

結果は次のとおりです:

  • item1.attr1 は、"value1" のリテラル文字列の値を割り振られます。
  • item1.attr2 は、"item1.attr1" のリテラル文字列の値を割り振られます。
  • item1.attr3 は、"value1" の値を割り振られます。これは、文字列"[item1.attr1]" がitem1 のattr1 アトリビュートとして評価されるからです。
文字列リテラルにおいて、\ を使って、括弧からエスケープすることができます。

デフォルトアイテム

API Script では、デフォルトアイテムという、アイテムの層の中に黙示的で名付けられていないアイテムがあります。 次の2つのケースでは、デフォルトアイテムは共通してスクリプトをより短く、簡単に書くために使われています。

  • オペレーションの呼び出し:デフォルトアイテムは、他に指定されたアイテムがない場合に、デフォルトで呼び出されたオペレーションに渡されるアイテムです。これはつまり、api:set を使って、デフォルトの名付けられていないアイテムのアトリビュートを書いて、そのアトリビュートがスクリプト内の次のオペレーションのインプットとして渡されることを意味します。これは、オペレーションに必要なパラメータを提供する一つの方法です。
  • オペレーションまたはスクリプトのアウトプット内の現在のアイテムを処理:オペレーションの結果の変数名を指定しなかった場合、オペレーションを起動するapi:call ブロックの内部でデフォルトアイテムはオペレーションで生成された現在のアイテムを参照します。
API Script のキーワードのアイテムアトリビュートを単に省略することでデフォルトアイテムを操作する:
<api:set attr="path" value="." />

Named Items

スクリプト内で宣言されたアイテムに加えて、スクリプトのスコープでは、いくつかのビルトインアイテムが利用可能です。 API Script では、ビルトイン、もしくは特殊なアイテムが利用可能で、接続文字列およびSQL クエリへのアクセスのインターフェースを提供します。 これらの特殊なアイテムはインプットをデータ処理オペレーションにマッピングするために役立ちます。

以下のセクションで、特殊なアイテムについて説明します。

Script Inputs (_input)

スクリプトへのインプットは_input アイテムから参照されます。 SQL ステートメントはテーブルおよびストアドプロシージャのスキーマへのインプットを提供します:SELECT ステートメントでは、_input アイテムは、WHERE 句において指定されたカラム、もしくは疑似カラムを含みます。

スクリプト内のデフォルトアイテムから値を読む場合、_input から値を読んでいます。同様に、デフォルトアイテムに書き込みたいアトリビュートは、インプットスクリプトと共にオペレーションのパラメータとして渡されます。情報ブロック、もしくはスクリプト内に定義された変数だけが_input アイテム内では有効です。

api:call ブロックの内部では、_input はデフォルトアイテムではなく、アクセスするためには名前を参照しなければなりません。

Script Outputs (_out[n])

api:call キーワードにより生成されたフィード内の現在のアイテムは、デフォルトアイテムもしくは名前を指定された特殊アイテム"_outX" を通じてアクセスすることができます。X はapi:call のネスティングのレベルです。例えば、単一のapi:call キーワードの内部の場合、アイテム名は"_out2" です。api:call キーワードの3つのネストレベルの内部の場合、_out3 となります。

接続文字列プロパティ (_connection)

The _connection item has the connection properties of the Sync App.The Sync App does not perform any validation of the connection string properties.It is left to the schema author to decide which properties are required, how they are used, etc.

In addition to providing access to the connection properties, the _connection item can be used to store pieces of data in a connection.For example, it may be necessary to store session tokens that can be reused while a connection lasts.You can use the api:set keyword to store any values, as shown in the code example below:

<api:set attr="_connection._token" value="[oauth.connection_token]"/>

Note:You can set only the attributes that start with the _ symbol.This is done so that the connection properties set by the user cannot be overriden.

SQL Clauses (_query)

The _query item has the following attributes that describe the query that was issued to the Sync App:

querySQL ステートメント。次に例を示します。
SELECT Id, Name FROM Accounts WHERE City LIKE '%New%' AND COUNTRY = 'US' GROUP BY CreatedDate ORDER BY Name LIMIT 10,50;
selectcolumnsA comma-separated list of the columns in the SELECT clause.For example, the Id and Name columns in the example.If "*" is specified in the SELECT clause, the value of [_query.selectcolumns] is "*".
tableテーブル名。For example, Accounts in the example.
isjoinWhether the query is a join.
jointableThe table in the JOIN clause.
criteriaThe WHERE clause.For example, the following WHERE clause in the example:
City LIKE '%New%' AND COUNTRY = 'US'
orderbyThe ORDER BY clause.For example, Name in the example.
groupbyThe GROUP BY clause.For example, CreatedDate in the example.
limitThe limit specified in the LIMIT or TOP clauses of the SELECT statement.For example, 50 in the example.
offsetThe offset specified in the LIMIT or TOP clauses of the SELECT statement.For example, 10 in the example.
insertselectThe SELECT statement nested in an INSERT statement.
updateselectThe SELECT statement nested in an UPDATE statement.
upsertselectThe SELECT statement nested in an UPSERT statement.
deleteselectThe SELECT statement nested in a DELETE statement.
bulkoperationcolumnsThe columns of the table the bulk operation modifies, separated by commas.For example, consider the following query:
INSERT INTO Account(account_name, account_type) SELECT customer_name, customer_type FROM Customer#TEMP
[_query.bulkoperationcolumns] returns the following:
[account_name], [account_type]
temptablecolumnsThe columns selected from the temp table in a bulk operation, separated by commas.For example, consider the following query:
DELETE FROM Account WHERE EXISTS SELECT customer_name, customer_type FROM Customer#TEMP
[_query.temptablecolumns] returns the following:
[customer_name], [customer_type]
nullupdatesThe columns of an UPDATE statement, separated by commas, that contain a null value or a null parameter value.
isschemaonlyWhether the query retrieves only schema information.

API Connector for CData Sync

Value Formatters

Value formatters enable you to generate new values with specific formatting. You can use value formatters to perform string, date, and math operations on values.

The general format for invoking formatters is

[ item.attribute | formatter(parameters) | formatter (parameters) | ...]
where formatter is the name of the formatter and parameters is an optional set of parameters to control formatter output. Formatter output can be provided as input to another formatter with the pipe character ("|").

Examples

  • In the following snippet any "*" character in the myid attribute's value is replaced by "-", and the resulting value is assigned to input1.id.
    <api:set attr="input1.id" value="[myid | replace('*', '-')]"/>
  • Below, two value formatters are chained with the pipe ("|") character. In the example, only .log files are pushed from the operation.
    <api:call op="fileListDir">
      <api:check attr="name" value="[filename|tolower | endswith('.log')]">
        <api:push/>
      </api:check>
    </api:call>

API Connector for CData Sync

String Formatters

[attr | allownull()]

Returns NULL if the attribute does not exist or the value if it does.

[attr | arrayfind(substring)]

Returns the index at which the string is found in the attribute array. The index is 1 based.

  • searchstring: The string to search for in the original value.

[attr | base64decode()]

Converts the attribute value to a base 64 decoded string.

[attr | base64encode()]

Converts the attribute value to a base 64 encoded string.

[attr | .rsbtalize()]

Returns the original attribute value with only its first character .rsbtalized.

[attr | .rsbtalizeall()]

Returns the original attribute value with the first character of all words .rsbtalized.

[attr | center(integer_width[, character])]

Returns the attribute value centered in a string of width specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. If not specified this defaults to a space.

[attr | contains(value[, ifcontains][, ifnotcontains])]

Returns true (or ifcontains) if the attribute value contains the parameter value, false (or ifnotcontains) otherwise.

  • value: The string to find from the attribute value.
  • ifcontains: The optional value returned if the attribute value contains the parameter value.
  • ifnotcontains: The optional value returned if the attribute value does not contain the parameter value.

[attr | count(substring)]

Returns the number of occurrences in the attribute value of a substring specified by the first parameter.

  • substring: The substring to search for in the attribute value.

[attr | currency([integer_count])]

Returns the numeric value formatted as currency.

  • count: The optional number specifying how many places to the right of the decimal are displayed. The default is 2.

[attr | decimal([integer_count])]

Returns the numeric value formatted as a decimal number.

  • count: The optional number that indicates how many places to the right of the decimal are displayed. Default is 2.

[attr | def([notexists][, exists])]

Checks for the existence of an attribute and returns the specified parameter value if it does not.

  • notexists: The optional value to return if the attribute value does not exist.
  • exists: The optional value to return if the original attribute exists. If not specified, the original value of the attribute is returned.

[attr | empty(value)]

Returns the specified value if the attribute value is empty, otherwise the original attribute value.

  • value: The value that will be used if the attribute is empty.

[attr | endswith(substring[, iftrue][, iffalse])]

Determines whether the attribute value ends with the specified parameter. Returns true (or iftrue) if the attribute ends with the value and false (or iffalse) if not.

  • substring: The string expected at the end.
  • iftrue: The optional value returned if the attribute value ends with the parameter value.
  • iffalse: The optional value returned if the attribute value does not end with the parameter value.

[attr | equals(value[, ifequals][, ifnotequals])]

Compares the attribute value with the first parameter value and returns true (or ifequals) if they are equal and false (or ifnotequals) if they are not.

  • value: The string to compare with the attribute value.
  • ifequals: The optional value returned if the attribute value equals the value represented by the first parameter.
  • ifnotequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.

[attr | extendtabs([integer_width])]

Replaces all tab characters found in the attribute value with spaces. If the tab size specified by the parameter is not given, a default tab size of 8 characters is used.

  • width: The optional tab width, defaults to 8 if not specified.

[attr | expr(expression)]

Evaluates the mathematical expression.

  • expression: The expression.

[attr | find(substring[, integer_startindex])]

Returns the lowest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the attribute value.
  • startindex: The optional index at which to start the search.

[attr | getlength()]

Returns the number of characters in the attribute value.

[attr | ifequal(value[, ifequals][, ifnotequals])]

Compares the attribute value with the first parameter value and returns true (or ifequals) if they are equal and false (or ifnotequals) if they are not.

  • value: The string to compare with the attribute value.
  • ifequals: The optional value returned if the attribute value equals the value represented by the first parameter.
  • ifnotequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.

[attr | ifmatches(value[, ifmatch][, ifnotmatch])]

Returns true (or ifmatch) if the attribute value matches the first parameter, otherwise false (or ifnotmatch).

  • value: The value that will be compared with the attribute value.
  • ifmatch: The optional value returned if the attribute value matches the parameter value.
  • ifnotmatch: The optional value returned if the attribute value does not match the parameter value.

[attr | iftrue([iftrue][, iffalse])]

Checks the attribute value and returns true (or iftrue) if true and false (or iffalse) if false.

  • iftrue: The optional value returned if the attribute value is true.
  • iffalse: The optional value returned if the attribute value is false.

[attr | implode([separator])]

Implodes multiple values to a string separated by a separator.

  • separator: The optional separator.

[attr | insert(integer_index, string)]

Inserts the specified string at the specified index.

  • index: The zero-based index of the position in the original value where the new string should be inserted.
  • string: The string to insert into the original value.

[attr | isalpha([ifalpha][, ifnotalpha])]

Returns true (or ifalpha) if all characters in the attribute value are alphabetic and there is at least one character, false (or ifnotalpha) otherwise.

  • ifalpha: The optional value returned if the attribute value is alphabetic.
  • ifnotalpha: The optional value returned if the attribute value is not alphabetic.

[attr | isalphabetic([ifalpha][, ifnotalpha])]

Returns true (or ifalpha) if all characters in the attribute value are alphabetic and there is at least one character, false (or ifnotalpha) otherwise.

  • ifalpha: The optional value returned if the attribute value is alphabetic.
  • ifnotalpha: The optional value returned if the attribute value is not alphabetic.

[attr | isalphanum([ifalphanum][, ifnotalphanum])]

Returns true (or ifalphanum) if all characters in the attribute value are alphanumeric and there is at least one character, false (or ifnotalphanum) otherwise.

  • ifalphanum: The optional value returned if the attribute value contains only alphabetic or numeric characters.
  • ifnotalphanum: The optional value returned if the attribute value contains nonalphabetic or nonnumeric characters.

[attr | isalphanumeric([ifalphanum][, ifnotalphanum])]

Returns true (or ifalphanum) if all characters in the attribute value are alphanumeric and there is at least one character, false (or ifnotalphanum) otherwise.

  • ifalphanum: The optional value returned if the attribute value contains only alphabetic or numeric characters.
  • ifnotalphanum: The optional value returned if the attribute value contains nonalphabetic or nonnumeric characters.

[attr | isdigit([ifnum][, ifnotnum])]

Returns true (or ifnum) if all characters in the attribute value are digits and there is at least one character, false (or ifnotnum) otherwise.

  • ifnum: The optional value returned if the attribute value is numeric.
  • ifnotnum: The optional value returned if the attribute value is not numeric.

[attr | islower([iflower][, ifnotlower])]

Returns true (or iflower) if all letters in the attribute value are lowercase and there is at least one character that is a letter, false (or ifnotlower) otherwise.

  • iflower: The optional value returned if the attribute value is lowercase.
  • ifnotlower: The optional value returned if the attribute value is not lowercase.

[attr | isnumeric([ifnum][, ifnotnum])]

Returns true (or ifnum) if all characters in the attribute value are digits and there is at least one character, false (or ifnotnum) otherwise.

  • ifnum: The optional value returned if the attribute value is numeric.
  • ifnotnum: The optional value returned if the attribute value is not numeric.

[attr | isspace([ifspace][, ifnotspace])]

Return true (or ifspace) if there are only white-space characters in the attribute value and there is at least one character, false (or ifnotspace) otherwise.

  • ifspace: The optional value returned if the attribute value is a space.
  • ifnotspace: The optional value returned if the attribute value is not a space.

[attr | isupper([ifupper][, ifnotupper])]

Returns true (or ifupper) if all letters in the attribute value are uppercase and there is at least one character that is a letter, false (or ifnotupper) otherwise.

  • ifupper: The optional value returned if the attribute value is uppercase.
  • ifnotupper: The optional value returned if the attribute value is not uppercase.

[attr | join([separator])]

Implodes multiple values to a string separated by a separator.

  • separator: The optional separator.

[attr | jsonescape()]

Converts the attribute value to a JSON-escaped, single-line string.

[attr | just(integer_width[, character])]

Returns the attribute value left-justified in a string of length specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. The default is a space.

[attr | lfind(substring[, integer_startindex])]

Returns the lowest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the attribute value.
  • startindex: The optional index at which to start the search.

[attr | ljust(integer_width[, character])]

Returns the attribute value left-justified in a string of length specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. The default is a space.

[attr | lsplit(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited by the first parameter and returns the token at the index specified by the second parameter; counts from the left.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | match(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | md5hash([converttobase64])]

Computes the MD5 hash of the attribute value.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.

[attr | notequals(value[, notequals][, equals])]

Compares the attribute value with the first parameter value. Returns true (or notequals) if they are not equal and false (or equals) if they are.

  • value: The string to compare with the attribute value.
  • notequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.
  • equals: The optional value returned if the attribute value equals the value represented by the first parameter.

[attr | nowhitespace()]

Removes the white space from the string represented by the atttribute value.

[attr | percentage([integer_count])]

Returns the numeric value formatted as a percentage.

  • count: The optional number that indicates how many places to the right of the decimal are displayed.

[attr | regex(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | regexmatch(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | regexreplace(search, replacewith[, integer_startat])]

Replaces all occurrences of the regular expression pattern found in the attribute value with replacewith.

  • search: The regular expression to search with.
  • replacewith: The text to replace the match with.
  • startat: The optional character index at which to start replacement. Default is 0.

[attr | remove(integer_index[, integer_count])]

Deletes characters from the attribute value; begins at the zero-based index specified by the first parameter.

  • index: The position to begin deleting the characters.
  • count: The optional number of characters to delete. If not provided all characters starting from the specified index will be deleted.

[attr | replace(oldvalue, newvalue[, ishex])]

Replaces all occurrences of the first parameter in the string represented by the attribute value with the value of the second parameter.

  • oldvalue: The string to be replaced.
  • newvalue: The string to replace all occurrences of the first parameter.
  • ishex: The optional boolean value specifying whether the first parameter is a hex representation of a character to replace. Default is false.

[attr | rfind(substring[, integer_startindex])]

Returns the highest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the original value.
  • startindex: The optional index at which to start the search.

[attr | rjust(integer_width[, character])]

Returns the right-justified attribute value in a string of length specified by the second parameter. Padding is done using the fillchar specified by the first parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding, if not specified this defaults to a space.

[attr | rsplit(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited with the first parameter and returns the token at the index specified by the second parameter; counts from the right.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | sha1hash([converttobase64])]

Computes the SHA-1 hash of the attribute value.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.

[attr | substring(integer_index[, integer_length])]

Returns a substring of the attribute value; starts at the index specified by the parameter and counts to the right.

  • index: The zero-based index at which the substring starts from the right.
  • length: The optional length of characters from the start index. The substring to the end is returned if length is not specified.

[attr | split(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited by the first parameter and returns the token at the index specified by the second parameter; counts from the left.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | sqlescape()]

Converts the attribute value to an SQL-escaped, single-line string.

  • dbtype: The database type to encode. The allowed values are SQL or SQLite. Default is SQL.

[attr | startswith(substring[, iftrue][, iffalse])]

Returns true (or iftrue) if the attribute value starts with the specified parameter, false (or iffalse) otherwise.

  • substring: The string expected at the begining.
  • iftrue: The optional value returned if the attribute value starts with the parameter value.
  • iffalse: The optional value returned if the attribute value does not start with the parameter value.

[attr | striphtml()]

Returns the string with any HTML markup removed.

[attr | substring(integer_index[, integer_length])]

Returns a substring of the attribute value; starts at the index specified by the parameter.

  • index: The zero-based index at which the substring starts.
  • length: The optional length of characters from the start index. A substring to the end of the string is returned if length is not specified.

[attr | toalpha()]

Returns only the letters in a string.

[attr | toalphanum()]

Returns only the alphanumeric characters in a string.

[attr | tolower()]

Returns the string represented by the attribute value with all characters converted to lowercase.

[attr | toupper()]

Returns the string represented by the attribute value with all characters converted to uppercase.

[attr | trim()]

Trims leading and trailing white space from an attribute.

[attr | trimend()]

Trims trailing white space from an attribute.

[attr | trimstart()]

Trims leading white space from an attribute.

[attr | truncate(integer_count)]

Truncates the attribute value to the number of characters specified by the parameter.

  • count: The number of characters in the resulting string.

[attr | wordwrap([integer_width][, break][, cut][, wrapexp])]

Wraps a string to a given number of characters.

  • width: The optional number of characters at which the string will be wrapped.
  • break: The optional break parameter to be used to break the line.
  • cut: The optional boolean value that specifies whether to wrap the string at or before the specified width. Default is false.
  • wrapexp: The optional regex expression to be used as a breakable characters. Default is space.

[attr | print([delim])]

Returns a string with all the values of the attribute concatenated using the specified delimiter.

  • delim: The optional delimiter to separate values with. Default is a comma.

[attr | xmldecode()]

Converts the attribute value to a XML decoded string.

[attr | xmlencode()]

Converts the attribute value to a XML encoded string.

API Connector for CData Sync

Date Formatters

[attr | compare([value][, inputformat])]

Returns a signed number indicating the relative values of dates represented by the attribute value and parameter value.

  • value: The optional string representation of the date that will be compared with the attribute value. Default is now.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | date([outputformat])]

Returns the current system date and time in the format specified by the parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | dateadd([interval][, integer_value][, outputformat][, inputformat])]

Returns a string value of the datetime that results from adding the specified number interval (a signed integer) to the specified date part of the date.

  • interval: The optional interval you want to add. Specify year, month, day, hour, minute, second, or millisecond.
  • value: The optional number of intervals you want to add. Can either be positive for dates in the future or negative for dates in the past.
  • outputformat: The optional output format specifier. Valid specifiers include d(short date pattern), D(long date pattern), f(long date/short time pattern), F(long date/time pattern), g(general short date/time pattern), G(general short date/long time pattern), r or R(RFC1123 pattern), s(sortable date/time pattern), t(short time pattern), T(long time pattern), file(Windows file time), MM/dd/yy, etc.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | datediff([interval][, value][, inputformat])]

Returns the difference (in units specified by the first parameter) between now and the date specified by the second parameter.

  • interval: The optional interval you want the result in. Specify day, hour, minute, second, or millisecond.
  • value: The optional string representation of the date to compare with attribute value. Default is now.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | day([inputformat])]

Returns the day component, expressed as a value between 1 and 31, of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | dayofweek([inputformat])]

Returns the day of week for the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | dayofyear([inputformat])]

Returns the day of year expressed as a value between 1 and 366 for the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | filetimenow()]

Returns the date and time for the current system file time.

[attr | fromfiletime([outputformat])]

Converts a valid file time to a valid datetime value formatted as specified by the parameter if one was provided.

  • outputformat: The optional output format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | isleap([ifleap][, ifnotleap])]

Returns true (or ifleap) if the 4-digit year represented by the attribute value is a leap year, false (or ifnotleap) otherwise.

  • ifleap: The optional value returned if the attribute value is a leap year.
  • ifnotleap: The optional value returned if the attribute value is not a leap year.

[attr | month([inputformat])]

Returns the month component expressed as a value between 1 and 12 of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | now([outputformat])]

Returns the current system date and time in the format specified by the parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | todate([outputformat][,inputformat])]

Returns the date specified by the attribute value formatted as specified by the parameter if one was provided.

  • outputformat: The optional output format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | tofiletime([inputformat])]

Converts a valid datetime to a valid file time value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | tomonth()]

Returns the name of the month for the numeric value specified by the attribute value.

[attr | toutc([outputformat][, inputformat])]

Returns the date specified by the attribute value converted to UTC and formatted as specified by the outputformat parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), and file (Windows file time), MM/dd/yy, etc.

[attr | utcnow([outputformat])]

Returns the current system UTC date and time.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g(general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | weekday([inputformat])]

Returns the day of the week as an integer where Monday is 0 and Sunday is 6.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | year([inputformat])]

Returns the year component of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

API Connector for CData Sync

Math Formatters

[attr | abs()]

Returns the absolute value of the numeric attribute value.

[attr | add([value])]

Returns the sum of the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to add to the specified attribute value. Default is 1.

[attr | and(value)]

Returns the AND of two values. The values provided on each side must be 1/0, yes/no or true/false.

  • value: The boolean value to compare by.

[attr | ceiling()]

Returns the smallest integer greater than or equal to a numeric attribute value.

[attr | div([value])]

Returns the result of dividing the numeric attribute value by the specified value of the parameter.

  • value: The optional numeric value to divide the numeric attribute value by. Default is 2.

[attr | divide([value])]

Returns the result of dividing the numeric attribute value by the specified value of the parameter.

  • value: The optional numeric value to divide the numeric attribute value by. Default is 2.

[attr | floor()]

Returns the largest integer less than or equal to the numeric attribute value.

[attr | greaterthan(value[, ifgreater][, ifnotgreater])]

Returns true (or ifgreater) if the attribute value is greater than the parameter value, false (or ifnotgreater) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifgreater: The optional value returned if the attribute value is greater than the parameter value.
  • ifnotgreater: The optional value returned if the attribute value is not greater than the parameter value.

[attr | isbetween(integer_lowvalue, integer_highvalue[, ifbetween][, ifnotbetween])]

Returns true (or ifbetween) if the attribute value is greater than or equal to the first parameter value and less than or equal to the second parameter value, false (or ifnotbetween) otherwise.

  • lowvalue: The lower bound of the range to check.
  • highvalue: The higher bound of the range to check.
  • ifbetween: The optional value returned if the attribute value is greater than or equal to the first parameter value and less than or equal to the second parameter value.
  • ifnotbetween: The optional value returned if the attribute value is less than the first parameter value or greater than the second parameter value.

[attr | isequal(value[, ifequal][, ifnotequal])]

Returns true (or ifequal) if the attribute value is equal to the parameter value, false (or ifnotequal) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifequal: The optional value returned if the attribute value is equal to the parameter value.
  • ifnotequal: The optional value returned if the attribute value is not equal to the parameter value.

[attr | isgreater(value[, ifgreater][, ifnotgreater])]

Returns true (or ifgreater) if the attribute value is greater than the parameter value, false (or ifnotgreater) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifgreater: The optional value returned if the attribute value is greater than the parameter value.
  • ifnotgreater: The optional value returned if the attribute value is not greater than the parameter value.

[attr | isless(value[, ifless][, ifnotless])]

Returns true (or ifless) if the attribute value is less than the parameter value, false (or ifnotless) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifless: The optional value returned if the attribute value is less than the parameter value.
  • ifnotless: The optional value returned if the attribute value is not less than the parameter value.

[attr | lessthan(value[, ifless][, ifnotless])]

Returns true (or ifless) if the attribute value is less than the parameter value, false (or ifnotless) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifless: The optional value returned if the attribute value is less than the parameter value.
  • ifnotless: The optional value returned if the attribute value is not less than the parameter value.

[attr | mathadd([value])]

Returns the sum of the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to add to the specified attribute value. Default is 1.

[attr | mathmod(value)]

Returns the modulus of the numeric attribute value divided by the specified parameter value.

  • value: The number to divide the attribute value by.

[attr | mathpow([value])]

Returns the numeric attribute value raised to the power specified by the parameter value.

  • value: The optional power to raise the attribute value to. Default is 2.

[attr | mathround([integer_value])]

Returns the numeric attribute value rounded to the number of decimal places specified by the parameter.

  • value: The optional number of decimal places. Default is 2.

[attr | mathsub([value])]

Returns the difference between the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to subtract the attribute value by.

[attr | modulus(value)]

Returns the modulus of the numeric attribute value divided by the specified parameter value.

  • value: The number to divide the attribute value by.

[attr | multiply([value])]

Returns the result of multiplying the numeric attribute value with the specified value of the parameter.

  • value: The optional numeric value to multiply the numeric attribute value by. Default is 2.

[attr | or(value)]

Returns the OR of two values. The values provided on each side must be 1/0, yes/no or true/false.

  • value: The boolean value to compare by.

[attr | pow([value])]

Returns the numeric attribute value raised to the power specified by the parameter value.

  • value: The optional power to raise the attribute value to. Default is 2.

[attr | rand([integer_value])]

Returns a random integer between 0 and the parameter value.

  • value: The optional value that limits the highest possible random integer. Default is 100.

[attr | random([integer_value])]

Returns a random integer between 0 and the parameter value.

  • value: The optional value that limits the highest possible random integer. Default is 100.

[attr | round([integer_value])]

Returns the numeric attribute value rounded to the number of decimal places specified by the parameter.

  • value: The optional number of decimal places. Default is 2.

[attr | sqrt()]

Returns the square root of the numeric attribute value.

[attr | subtract([value])]

Returns the difference between the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to subtract the attribute value by.

API Connector for CData Sync

Keyword Reference

API Script の構文は、"api:" を接頭辞に取るXML エレメントであるキーワードを使って定義されます。キーワードは、プログラミングもしくはスクリプト言語の一般的な機能である、条件分岐、ループ、およびフロー制御を含みます。ただし、API Script は、フィード操作や生成に特化した専用のキーワードも含みます。例えば、api:call、api:enum、およびapi:set があります。

キーワードの多くは、その動作を定義もしくは変化させるパラメータを取ります。パラメータは、キーワードエレメントのXML アトリビュートとして定義されます。このセクションでは、それぞれのキーワードについて、必須およびオプションのパラメータ、コードサンプルが記載されています。

キーワードスコープ

API Script では、キーワードでスコープを持つものがあります。つまり、他のキーワードのボディの内部にネストされるキーワードがあり、ネストされ方はAPI Script 言語において重要な意味を持ちます。

  • キーワードのスコープ内で反復の指示を定義することが可能です。例えば、api:call キーワードのボディは、api:call により起動したオペレーションにより生成されたフィード内のそれぞれのアイテムに対して実行されます。このため、api:call の内部にネストされたキーワードは、それぞれの反復において実行され、フィード内にそれぞれのアイテムを作成します。
  • スコープは、キーワードのマッチングペアと関連付けられます。例えば、api:else キーワード、api:equals、もしくはapi:check のような条件分岐キーワードのそれぞれの実行パスを定義します。API Script では、特定のapi:else キーワードは、条件ステートメントの直接の子としてネストされている場合には、条件ステートメントに関連付けられます。このため、api:else キーワードは、条件分岐キーワードによるスコープの外部に定義されなければなりません。
  • キーワードは、スコープ内で新しいアイテム(変数)を持ち込むことができます。例えば、api:call キーワードは、生成されているフィード内での反復されているアイテムを表すデフォルトアウトプットアイテムを出します。
  • キーワードは、スコープ内でより多くの情報を提供する追加アトリビュートをデフォルトアイテムに追加することができます。これらのアトリビュートは、本ドキュメントで説明される際にはコントロールアトリビュートと呼ばれます。これらは、通常、_文字から始まるため、簡単に判別できます。例えば、_attr、_index、_value などです。

API Connector for CData Sync

api:break

api:break キーワードは、api:call、もしくはapi:enum の反復を終了するために使われます。他のAPI Script キーワードのスコープ外で使われた場合には、スクリプト全体を終了するために使うこともできます。

パラメータ

None

アトリビュートの制御

None

サンプル

api:enum から出る。次の例では、foo アイテムの最初の2つのアトリビュートをリストします:

<api:set attr="foo.attr1" value="value1"/>
<api:set attr="foo.attr2" value="value2"/>
<api:set attr="foo.attr3" value="value3"/>

<api:enum item="foo">
[_index]: [_attr] has the value [_value]. 
<api:equals attr="_index" value="2"> 
<api:break/>
</api:equals>
</api:enum>

関連項目

  • api:continue:次のアイテムに続く。
  • api:enum:アイテムの値、リスト、レンジ、もしくは複数の値を持つアトリビュートをループする。
  • api:call:オペレーションにより返されたアイテムのループ。

API Connector for CData Sync

api:call

api:call キーワードは、オペレーションを呼び出すことに使われます。有効なオペレーションは次のとおり:

  • アプリケーションのbin サブフォルダに位置する、Sync App アセンブリとともにインストールされているビルトインオペレーション
  • .NET、またはJava で独自に書き、アプリケーションのbin サブフォルダに置かれたオペレーション

オペレーションは、アイテムをインプットに取り、フィードをアウトプットします。api:call のスコープは、呼び出しから返されたフィード内のすべてのアイテムに対し実行されます。api:call のスコープ内では、返されたアイテムのアトリビュートを調べ、変更することができます。そして、それらのアトリビュートを他のオペレーションのインプットとして提供することができます。このようにオペレーションパイプラインが形成されます。もしくは、アイテムをアウトプットに追加することもできます。

Output Item Stack およびDefault Item

api:call が起こるたびに、内部のアイテムスタックに新しいアイテムが追加されます。スタックの一番上のアイテムがデフォルトアイテムです。アイテム名が呼び出しのインプットで明示的に指定されていない場合には、このアイテムがapi:call にインプットを提供します。

呼び出されたオペレーションはアトリビュートにデフォルトアイテムを書き込み、api:push がデフォルトアイテムをアウトプットに追加します。アイテムを追加する際に、スタックの一番上のデフォルトアイテムからのアトリビュートだけが追加されます。

デフォルトアイテムは、アイテムが反復されると消され、api:call は次のアイテムに働きます。つまり、次の反復では、api:callの前の反復のvalue セットを読むことはできません。反復に渡って値を残すには、api:set を使って、名前を明示したアイテムにコピーします。

デフォルトのアイテムは_ もしくは明示的に_out1、_out2、_out[n]、(N はスタック の深さです)と示すことができます。これにより、実行処理におけるすべての有効な値を読むことができます。ルックアップ処理はデフォルトアイテムからはじまり、値が見つかるまでスタック内を読みます。

下の例では、それぞれの呼び出しでアイテムがスタックの一番上に追加されること、およびデフォルトアイテムがそれぞれの呼び出しスコープ内で変化することを確認できます。

<api:call op="operation1"> 
The default item here is _out1 
A push here would push the attributes from _out1 
The input item used to call operation2 is also _out1 
<api:call op="operation2"> 
The default item here is _out2 
A push here will push the attributes from _out2 
If there was another api:call here the input item used would be _out2 
_out2 is swept clean here for the next iteration 
</api:call> 
The default item here is again _out1 
A push here would again push the attributes from _out1 
The input item at this level is again _out1 
_out1 is swept clean here for the next iteration 
</api:call> 

オペレーションにインプットを指定する

インプットを呼び出しに提供する3つの方法があります:

  • デフォルトアイテム:インプットアイテムが指定されない場合には、呼び出されたオペレーションはデフォルトアイテムのインプット値を読みます。呼び出された処理で使われるように、デフォルトアイテムの値の設定にはapi:set キーワードを使うことができます。
    <api:set attr="mask" value="*.txt"/>
    <api:set attr="path" value="C:\\"/>
    <api:call op="fileListDir">
    ... 
    </api:call>
  • 明示的なインプットアイテム:デフォルトアイテムを使う代わりに、オペレーションのインプットアイテムとして使いたいアイテムを明示的にパラメータ内で指定することができます。そうすると、デフォルトアイテムは使われず、次のように、指定されたインプットアイテムからインプット値が読まれ、オペレーションにクエリ文字列が渡されます。
    <api:set attr="mask" value="*.* -- Will be ignored --"/>
    <api:set attr="myinput.mask" value="*.txt"/>
    <api:set attr="myinput.path" value="C:\\"/>
    <api:call op="fileListDir" in="myinput">
    ... 
    </api:call>
  • クエリ文字列パラメータ:クエリ文字列表記を使って、オペレーションのインプットを特定することができます。クエリ文字列の一部として指定されたアトリビュートが優先されます。つまり、クエリ文字列で指定されたアトリビュートとインプットアイテムで指定されたアトリビュート名に差異がある場合、クエリ文字列のほうが優先されます。ただし、インプットアイテムの他のアトリビュートは、引き続きアクセス可能です。次の例では、クエリ文字列においてインプットを指定するシンタックスが説明されています:
    <api:set attr="myinput.mask" value="*.txt -- will be overridden --"/> 
    <api:set attr="myinput.path" value="C:\\"/> 
    <api:call op="fileListDir?mask=*.rsb" in="myinput">
    ...
    </api:call>

パラメータ

  • op:呼び出されるオペレーションの名前。
  • in[put]:オペレーションを起こす際にインプットとして使われるアイテムのリスト。指定されたインプットアイテムの中でアトリビュートは左から右へルックアップされます。
  • out[put]:アウトプットアトリビュートが位置するアイテム。api:call のスコープで、指定されたアイテム名を使って、現在のアウトプットアイテムを取得することができます。_out[n]、または _pipe を使って、呼び出し結果を参照することができます。

    Note:呼び出しのスコープ外では、呼び出し内のアトリビュートセットは使用できません。これは、呼び出しのそれぞれの反復は、前の反復のアトリビュートを削除するためで、呼び出しの最後にはなにも残りません。呼び出しのスコープ外のアトリビュートにアクセスするためには、api:set を使って呼び出しの外で使いたいアイテムにアトリビュートを明示的にコピーします。

  • item:インプットとアウトプット双方で使われるアイテムの名前。
  • sep[arator]:マルチインプットアイテムを区切るためのセパレータ。デフォルトはカンマです。
  • ignoreprefix:見つけられたときに無視される接頭辞のカンマ区切りのリスト。いくつかのオペレーションでは、"prefix:name" (例えば、api:operation and sql:company)のような名前のアトリビュートを返します。いくつかのシチュエーションでは、prefix:name および name を同じアトリビュートとして扱います。
  • page およびpagesize:反復されるアイテムのサブセット。オペレーション、もしくはフィード結果のページングを有効化するために使われます。例えば、page-"2"、およびpagesize="5" を指定した場合に、api:call キーワードは結果フィードの6から10 のみを反復します。

アトリビュートの制御

  • _index:api:call によって現在反復されているアイテムのインデックス。
  • _op:呼び出されているオペレーションの名前。実行までオペレーション名が知られていない場合に役立ちます。
  • _separator:マルチインプットアイテムを区切るための区切り。

サンプル

デフォルトアイテムをインプットとしてオペレーションを呼び出します:

<api:set attr="path" value="C:\myfiles"/>
<api:call op="fileListDir">
  <api:push/>
</api:call>

関連項目

  • api:first:反復の一番はじめだけに実行されるエレメントを書く。
  • api:catch:呼び出し内でエラーをキャッチする。
  • api:continue:次の反復に続く。

API Connector for CData Sync

api:case

api:case キーワードは、api:select とともに使われます。api:case キーワードは、api:select の値がapi:caseに合致する場合に実行されるAPI Script のブロックからなります。

パラメータ

  • value:api:select で指定された値に対して比較するパターン、もしくは値。
  • match:Case 構文が実行されるかどうかを決定するマッチタイプ。デフォルト値は"exact" で、値のexact match を必要とします。他のサポートされるタイプは、正規表現マッチングの"regex"、ファイル名パターン(e.g., *.txt)に使われるのと類似したシンプルなexpression モデルをサポートする"glob"。Sync App の.NET 版は、.NET Framework 版の正規表現マッチングを使います。Java 版は、Java 正規表現構造を使います。

アトリビュートの制御

None

サンプル

条件によりアイコンを表示する。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB" に合致します。そしてケースに関連するアクションがとられます。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

関連項目

  • api:select:マルチセレクトAPI Script ブロックを書く。
  • api:default:api:select のデフォルトケースを書く。

API Connector for CData Sync

api:catch

api:catch キーワードは、スクリプト内で例外処理ブロックを作成するために使われます。api:try に加え、次のキーワード内でapi:catch ブロックを有することができます。スコープは黙示的api:try セクションとして機能します:

  • api:call
  • api:script

パラメータ

  • code:コードパラメータは、選択的に例外をキャッチすることを許容します。すべての例外をキャッチする場合には * 記号を使います。

アトリビュートの制御

  • _code:キャッチされた例外のコード。
  • _desc:キャッチされた例外の短い説明。
  • _details:例外のより詳細な説明。

サンプル

例外をスローしキャッチする。 api:call の中で、APIException が投げられ、キャッチされます。キーワードのスコープ内で、rsb エンコードおよびrsb メッセージアトリビュートが、現在のアイテムに足され、はき出されます。

<api:call op="...">
  <api:throw code="myerror" description="thedescription" details="Other Details."/>
  <api:catch code="myerror">
    <api:set attr="api:ecode" value="[_code]"/>
    <api:set attr="api:emessage" value="[_description]: [_details]"/>
    <api:push/>
  </api:catch>
</api:call>
すべての例外をキャッチする:
<api:catch code="*">
  An exception occurred. Code: [_code], Message: [_desc]
</api:catch>

関連項目

  • api:try:例外をキャッチするスコープの定義。
  • api:throw:例外の強制。

API Connector for CData Sync

api:check

api:check キーワードは、他の値のパラメータと同時もしくは別に使うことができます。パラメータ値が無しの場合は、api:check のボディが実行される前に、アトリビュートがアイテムの中に存在し、null 文字列ではないことを確認します。

パラメータ値が指定されている場合は、api:check ボディはエクスプレッションがtrue と評価された場合のみ実行します。他の値はfalse となります。評価は大文字・小文字の区別が必要です。

他のAPI Script のシンプルな条件文と同様に、これはapi:else キーワードとペアで使うことができます。api:equals とは異なり、api:check はアイテムにアトリビュートが存在しない場合でも例外をスローしないことに注意してください。

パラメータ

  • item:アトリビュートをチェックするアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:チェックするアトリビュートの名前。このパラメータは必須です。
  • value:True もしくはfalse を判断されるエクスプレッション。例えば、true もしくはfalse を返すフォーマッターの結果。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

アトリビュートが設定されているかどうかを、使用する前にチェックしてください。
<api:check attr="_input.In_Stock">
...
</api:check>

関連項目

  • api:exists:アトリビュートが存在するかをチェック。
  • api:equals:同じ値かどうかのチェック。
  • api:notequals:同じ値ではないかのチェック。

API Connector for CData Sync

api:continue

api:continue キーワードは、api:call、もしくはapi:enum の次の反復に移る際に使われます。

パラメータ

None

アトリビュートの制御

None

サンプル

ディレクトリ内のファイルのみをリストするフィードの作成。api:continue キーワードは、ディレクトリを表すアイテムをスキップするために使われます。

<api:call op="fileListDir">
  <api:equals attr="file:isdir" value="true">
    <api:continue/>
  </api:equals>
  <api:push/>
</api:call>

Single-value アトリビュートの値をリストする。api:continue を使って、multivalue のアトリビュートをスキップすることができます。

<api:set attr="foo.multiattr#" value="value1"/>
<api:set attr="foo.multiattr#" value="value2"/>
<api:set attr="foo.attr2"      value="value3"/>
<api:enum item="foo">
  <api:notequals attr="_count" value="1">
    <api:continue/>
  </api:notequals>
  [_index]: [_attr] has the value [_value] <!-- only evaluated for attr2 -->
</api:enum>

関連項目

  • api:break:api:call、もしくはapi:enum の反復から出る。
  • api:enum:アイテム、アトリビュート、リスト、もしくはレンジの値を反復する。
  • api:call:スクリプト、オペレーション、もしくはフィードを呼び出す。

API Connector for CData Sync

api:default

api:default キーワードは、api:select キーワードとともに使われます。api:default キーワードは、api:select の値がapi:caseのどの値にも合致しない場合に実行されるAPI Script のブロックからなります。

パラメータ

None

アトリビュートの制御

None

サンプル

条件によりアイコンを表示する。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB"に合致します。そしてケースに関連するアクションがとられます。
<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

<p>

関連項目

  • api:select:マルチセレクトAPI Script ブロックを書く。

API Connector for CData Sync

api:else

api:else キーワードは、api:exists もしくはapi:match などのテストが失敗した場合に、代替のコードブロックを実行するために使われます。これは、呼び出しがアウトプットアイテムを生成することに失敗した場合に、api:call 内の代替コードブロックを実行するためにも使われます。

他の言語とは異なり、API Script はそれが 属するテストスコープの内部にapi:else 構文を必要とします。

パラメータ

None

アトリビュートの制御

None

サンプル

ファイルに名前がない場合には、プレースホルダータイトルを返します:
<api:call op="fileListDir" out="out">
  <api:null attr="filename">
    <api:set attr="title" value="Unnamed File"/>
    <api:else>
      <api:set attr="title" value="[filename]"/>
    </api:else>
  </api:null>
  <api:push title="[title]">
  [out.*]
  </api:push>
</api:call> 

関連項目

  • api:exists:アトリビュートが存在するかをチェック。
  • api:equals:同じ値かどうかのチェック。

API Connector for CData Sync

api:enum

api:enum キーワードは、アイテム内のアトリビュート、制限のないリスト、与えられた値の範囲、および複数の値を持つアトリビュートの値を列挙することに使われます。api:enum のボディは、反復されるセットのエレメントごとに実行されます。

パラメータ

  • item:反復するアトリビュートのアイテム名。
  • attr:どのアトリビュートが反復されるかを指定する、マッチするエクスプレッション。例、"rsb.:*"。複数の値を持つアトリビュートの値を反復するパラメータを提供することもできます。
  • prefix:その上にアイテムが列挙される接頭辞。
  • expand:複数の値を持つアトリビュートが検出された場合に、どのようにapi:enum が挙動するかを指定するboolean 値。Expand がtrue に設定されている場合、api:enum のボディはアトリビュートのそれぞれの値につき一度づつ実行されます。False の場合、すべての値は、1つの文字列値として結合され、一度の反復のみが実行されます。デフォルトで、api:enum はすべての値をexpand しません。
  • sep[arator]:セパレータは、expand パラメータがfalse の場合、複数の値を持つアトリビュートの値を結合させるために使われます。追加で、セパレータはlistseparator が定義されていないリストの値をトークンとすることに使われます。デフォルト値は、new-line charactor "\n" です。
  • list:列挙される区切られた値のリスト。例えば、値のリストが"violet, indigo, blue, green, yellow, orange, red" で、セパレータが',' の場合、api:enum のスコープは虹のそれぞれの色ごとに実行されます。
  • range:昇順、降順で列挙される数字もしくは文字のレンジは、例えば、"a..z"、"Z..A" です。
  • recurse:ネストされたアトリビュートを列挙されるかどうか。デフォルトはtrue です。
Note:アトリビュートのレンジ、もしくはアイテムアトリビュートを指定できますが、両方同時にはできません。さらに、アトリビュートは、アルファベット順で列挙されます。

アトリビュートの制御

  • _attr:反復されるアトリビュートの名前。複数の値を持つアトリビュートの値を反復している場合、アトリビュート名は、名前の一部としてindex を持つ以外はアトリビュート名は同じです。Index は、ハッシュ記号(#)で名前と区別されます。例えば、name#1、name#2、etc.
  • _index:アイテム内でアトリビュートが出現するindex、もしくはリストエレメントが現在列挙されている位置。
  • _value:反復されるアトリビュートの値。複数の値を持つアトリビュートでは、expand およびセパレータパラメータ設定は、_value が1つのアトリビュート値の参照なのか、すべてのアトリビュート値の参照なのかを決定します。
  • _count:アトリビュート内またはリスト内の値の数。
  • _separator:リスト内の値を区切るセパレータ。

サンプル

アトリビュート名、および"input" と名付けられたアイテムのアトリビュート値を表示:

<api:set item="input" attr="Greeting" value="Hello" />
<api:set item="input" attr="Goodbye" value="See ya" />
<api:enum item="input">
  [_attr] is [_value]
  <br/>
</api:enum> 

goodbye is See ya greeting is Hello
値のリストを列挙するには、api:enum のリストおよびセパレータパラメータを使います。例えば、次のコードはcolors アットリビュートで指定された色をリストします。
<api:set attr="colors" value="violet, indigo, blue, green, yellow, orange, red"/>
<api:enum list="[colors]" separator=",">
  [_value] 
</api:enum>
値のレンジを列挙するには、レンジアトリビュートを使います。例えば、次のコードはa からz の文字セット、および1 から25 の数字をリストします:
<api:enum range="a..z">
  [_value] 
</api:enum>
<api:enum range="Z..A">
  [_value] 
</api:enum>
<api:enum range="1..25">
  [_value] 
</api:enum>
複数の値を持つアトリビュートの値すべてを列挙するには、複数の値を持つアトリビュートを指定するためにattr アーギュメントを使い、expand をtrue に設定します。
<api:set attr="foo.email#1" value="[email protected]"/>
<api:set attr="foo.email#2" value="[email protected]"/>
<api:enum attr="foo.email" expand="true">
    ([_index]) [_attr] -> [_value]
</api:enum>
上記の例は次のアウトプットになります:
(1) email#1 -> [email protected] (2) email#2 -> [email protected]

関連項目

  • api:break:api:call、もしくはapi:enum の反復から出る。
  • api:continue:api:call もしくは、api:enum の反復をスキップする。
  • api:first:初めの反復で特別な処理を行う。
  • api:last:最後の反復で特別な処理を行う。

API Connector for CData Sync

api:equals

api:equals キーワードは、あるアトリビュートの値と参照値を比較します。api:check とは異なり、api:equals キーワードは指定されたアイテムが指定されたアトリビュートを含まない場合、例外をスローします。指定されたアトリビュートが存在し、その値がマッチする場合、比較が行われます。

Note:api:equals およびapi:check はどちらも与えられた値と比較される値を持つアトリビュート名を求めます。もし2つの値を比較する場合には、代わりにapi:selectを使うことができます。次に例を示します。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

パラメータ

  • item:アトリビュートを比較するアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:比較するアトリビュートの名前。
  • case:比較で大文字-小文字を区別するかどうか。デフォルトは大文字-小文字を区別します。大文字-小文字を区別しない場合には、case パラメータを"ignore" に設定します。
  • value:アトリビュートを比較する値。
  • action:同じ値の場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

他の条件キーワードと同様に、api:equals のボディは、api:else キーワードを含むことがあり、値がマッチしない場合に実行されます。以下は、Err ファイルを除くすべてのファイルをリストします:

<api:call op="fileListDir">
  <api:equals attr="file:extension" value=".err">
  <api:else>
    <api:push/>
  </api:else>
  </api:equals>
</api:call>

関連項目

  • api:select:2つ以上の選択肢から選択。
  • api:notequals:同じ値ではない場合に実行されるブロックの作成。

API Connector for CData Sync

api:exists

api:exists キーワードは、指定されたアイテムにおいてアトリビュートが値を持っているかをチェックします。api:notnull キーワードは、api:exists の類義語です。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

ファイルのフィードの欠けているタイトルアトリビュートの定義:
<api:call op="fileListDir" output="out">
  <api:exists attr="filename">
    <api:set attr="title" value="[filename]"/>
    <api:else>
      <api:set attr="title" value="Unnamed File"/>
    </api:else>
  </api:exists>
  <api:push title="[title]">
  [out.file:*] 
  </api:push>
</api:call> 

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

API Connector for CData Sync

api:first

api:first キーワードは、api:call、もしくはapi:enum キーワードの反復のはじめだけ、スクリプトの一部を使うために使われます。これは、ヘッディングを生成したり、残りのフィードに行く前にフィードのはじめのアイテムを調べたりするのに便利な方法です。

反復のはじめに、api:first ボディは、api:firstがapi:call、もしくはapi:enum ボディ内のどこに位置しているかにかかわらず、api:call、もしくはapi:enum 内の他のコードより前に、実行されます。強いて言えば、api:first は、api:call、もしくはapi:enum ボディの最初に置くことを推奨します。

スコープにアイテムがない場合、api:first、およびapi:last はどちらも実行されません。

パラメータ

None

アトリビュートの制御

None

サンプル

それぞれのアイテムが行として表示されているHTML テーブルを作成する:

<api:call op="listCustomers">
  <api:first>
    <table>
    <thead>
      <api:enum item="customer">
        <td>[_attr]</td>
      </api:enum>
    </thead>
  </api:first>
    <tr>
      <api:enum item="customer">
        <td>[_value]</td>
      </api:enum>
    </tr>
  <api:last>
    </table>
  </api:last>
</api:call>

関連項目

  • api:last:反復の最後のみコードブロックを実行する。

API Connector for CData Sync

api:finally

api:finally キーワードは、コントロールがapi:call、api:try、、またはapi:script 構文を離れた後にスクリプトのセクションを実行するのに使われます。これは、生成されたドキュメントのフォーマットをきれいにするのに便利です。

パラメータ

None

アトリビュートの制御

None

サンプル

api:finally ブロックは、ハンドルされていない例外が発生された場合に実行されます。これによりタグが閉じていることが確認できます:

<table>
<api:call op="listCustomers" out="customer">
  <api:first>
    <thead>
        <api:enum item="customer">
          <td>[_attr]</td>
        </api:enum>
    </thead>
  </api:first>
  <tr>
      <api:enum item="customer">
        <td>[_value]</td>
      </api:enum>
  </tr>
  <api:finally>
  </table> <!-- ensure tags are still closed -->
  </api:finally>
</api:call>

関連項目

  • api:try:例外をキャッチするスコープの定義。
  • api:call:処理により返されたアイテムのループ。
  • api:script:スクリプトブロックの作成。

API Connector for CData Sync

api:if

api:if キーワードを、アイテム、アトリビュート、値を含むエクスプレッションを評価するために使うことができます。キーワードのスコープは、特定のエクスプレッションがtrue と評価された場合に実行されます。

パラメータ

  • exp:評価するエクスプレッション。文字列、日付、および数値の比較をすることができます。
  • attr:値を比較するアトリビュートの名前。アトリビュートの値は、マッチする値、もしくはnull やnotnull 値に対しチェックすることができます。
  • value:attr で指定されたアトリビュートの値と比較する値。
  • item:比較されるアトリビュートを含むアイテム。
  • operator:attr と値により指定されたoperands と比較するオペレータの名前。有効な値は、null、notnull、hasvalue、equals、equalsignorecase、lessthan、とgreaterthan です。デフォルト: notnull。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

二つの値のシンプルな比較を評価。

<api:if exp="[attr] == 10">
与えられた値と、与えられたアトリビュートの値が同じ値かどうかを評価:
<api:set attr="attr1" value="value1"/>
<api:set attr="attr2" value="value2"/>
<api:if attr="attr1" value="[attr2]" operator="notequals"> <!-- Evaluates to true -->
<api:else>
False
</api:else>
True
</api:if>
アトリビュートが存在する場合にはチェック:
<api:set attr="exists" value="true"/>
<api:if attr="exists"> <!-- Evaluates to true -->
[exists]
</api:if>

関連項目

  • api:exists:アトリビュートが指定されたアイテムに値を持っているかどうかをチェック。
  • api:equals:同じ値である場合に実行されるブロックの作成。

API Connector for CData Sync

api:include

api:include キーワードは、他のファイルからのAPI Script を含むことに使われます。他のプログラミング言語においてtraditional が含まれているように、api:include はファイルパラメータで指定されるファイルの内容にリプレースされます。

パラメータ

  • file | document:ファイル名が含まれるようになります。

アトリビュートの制御

None

サンプル

重複なしにそれぞれのスクリプトのアトリビュート(会社名、著作権)をインポートする:

<api:include file="globals.rsb"/> 
[companyname] 
[copyright] 
<api:call ...>

API Connector for CData Sync

api:info

api:info キーワードは、スクリプトのメタデータを説明するために使われます。この情報は、Sync App でユーザーインプットベーシックなエラーチェックおよびデフォルト値の設定に使われます。api:info キーワードには、次のような情報が含まれます。

  • カラム定義
  • スクリプトが受け入れるインプットパラメータ
  • スクリプトが生成するアウトプット

Table パラメータ

次のパラメータはtable 自体を定義します:

  • desc[ription]:tableの説明。もし説明がない場合には、スクリプトの名前が使われます。
  • title:スクリプトのタイトル。もしタイトルがない場合には、スクリプトの名前が使われます。
  • methods:スクリプトに対して実行できるHTTP メソッド。SELECT、INSERT、UPDATE、およびDELETE はHTTP GET、POST、PUT/PATCH/MERGE、およびDELETE にそれぞれ対応します。
  • url:スクリプトauther のURL。
  • keywords:スクリプトを説明するキーワード。

インプット、アウトプット、およびカラム パラメータ

api:info キーワードは、スクリプトインプット、およびアウトプットに加えて、カラムを定義するスコープに含まれる追加パラメータを持ちます。これらのパラメータはAPI Script キーワードではなく、api:info の追加情報であることに注意してください。

attr

attr パラメータは、table カラムを説明し、最低でもname およびdata type の二つのアトリビュートを含みます。name はアルファベット文字列でなければなりません。

他のオプションアトリビュートは、カラムについてより多くの情報を提供し、Sync App がさまざまなツールにおいてこれらのカラムを正しく表示することを実現します。

<attr 
  name="Name"
  xs:type="string"
  other:xPath="name/full"
  readonly="true"    
  columnsize="100"
  desc="The name of the person." 
/> 

  • name:カラムの名前を定義するアルファベット文字列。
  • xs:type:カラムのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。
  • desc[ription]:カラムの短い説明。
  • key:カラムがtable の主キーの一部であるかどうか。
  • readonly:カラムが更新できるかどうか。'TRUE またはFALSE' が使用可能です。
  • req[uired]:挿入において、カラムが指定される必要があるかどうか。'TRUE またはFALSE' が使用可能です。
  • def[ault]:指定がない場合のカラムのデフォルト値。
  • values:カンマ区切りのカラムの有効な値。指定されている場合、指定されたカラム値が許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
  • reference[s]:別のtable の主キーの外部キー。外部キーは、次のシンタックスで指定できます。 table.key.例:"Employees.EmployeeId".
  • columnsize:文字列の最大文字数、もしくは数値カラムの桁精度。数値カラムの桁制度とは、桁数です。
  • scale | decimaldigits:小数点以下のスケール。小数点以下のスケールとは、小数点の右側の桁数です。
  • isnullable:カラムがnull 値を受け入れるかどうか。これは、null 値を送受信することを阻害することではありません。

input

インプットパラメータは、スクリプトへのインプットを説明するために使われます。

インプットエレメントは、tables、およびstored procedures の双方のスキーマに使うことができます。

パラメータのアトリビュートは、ユーザーに対してインプットの追加情報を提供し、エンジンが基礎チェックを行うことを許可します。

stored procedure スキーマでは、一つもしくは複数のエレメントがstored procedure のインプットを説明するために使われます。table スキーマでは、インプットエレメントは、WHERE 句でのみ使うことできる、疑似カラムを定義します。

XML データソースでは、疑似カラムはXPath を含むことができません。

<input
  name="name"
  desc="Example of an input parameter"
  default="defValue"
  req="true"
  values="value1, value2, value3"
  xs:type="string" 
/>
  • name:インプット名。英数字で、以下を追加で含むことができる:"#" はインプットが複数の値を持つことができることを意味し、"myprefix:*" は同一の接頭辞や値を含むインプットのセットを意味し、"*" は、任意のインプットパラメータを意味します。
  • desc[ription]:インプットの短い説明。
  • xs:type:インプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • def[ault]:スクリプトコールでインプット値が提供されていない場合に使われるデフォルト値。
  • key:インプットが主キーかどうか。
  • req[uired]:インプットが必要かどうか。要求されたインプットが提供されず、デフォルト値が定義されていない場合にはエンジンはエラーを出します。'TRUE またはFALSE' が使用可能です。
  • values:カンマ区切りのインプットの有効な値。指定されている場合、指定されたインプットが許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
  • alias:インプットのエイリアス。
  • other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。

output

オペレーションのアウトプットを説明するアウトプットパラメータ。ただし、これらはSync App には無視されます。よって、オペレーションのアウトプットは、情報ブロックでの定義から独立しています。

<output  name="Id" 
         desc="The unique identifier of the record."
         xs:type="string"
         other:xPath="content/properties/Id" 
/>
  • name:アウトプットの名前で、"myprefix:*" はどいういつの接頭辞や値を含むインプットのセットを意味し、"*" は、任意のアウトプットパラメータを意味します。
  • xs:type:アウトプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • desc[ription]:アウトプットの短い説明。
  • columnsize:文字列の最大文字数、もしくは数値アウトプットの桁精度。カラムの桁制度とは、桁数です。
  • other:'other:' で始まるアトリビュートでアウトプットについて追加の情報を提供します。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。

サンプル

異なるデータ型のカラムを含む一般的なテーブルのメタデータについて説明します:
<api:info title="NorthwindOData" desc="Parse an XML document (NorthwindOdata.xml) into rows.">
  <attr name="ID"           xs:type="int" key="true" other:xPath="content/properties/ID" />
  <attr name="EmployeeID"   xs:type="int"            other:xPath="content/properties/EmployeeID" />
  <attr name="Name"         xs:type="string"         other:xPath="content/properties/Name" />
  <attr name="TotalExpense" xs:type="double"         other:xPath="content/properties/TotalExpense" />
  <attr name="HireDate"     xs:type="datetime"       other:xPath="content/properties/HireDate" />
  <attr name="Salary"       xs:type="int"            other:xPath="content/properties/Salary" />
</api:info> 

以下は、Bing 検索API を使ったウェブ検索のストアドプロシージャのメタデータを説明します:

<api:info title="SearchWeb"    desc="Use Bing to search the Web."> 
  <output name="Id"          xs:type="string"    other:xPath="content/properties/ID"          />
  <output name="URL"         xs:type="string"    other:xPath="content/properties/Url"         />
  <output name="Title"       xs:type="string"    other:xPath="content/properties/Title"       />
  <output name="Description" xs:type="string"    other:xPath="content/properties/Description" />
  <output name="DisplayURL"  xs:type="datetime"  other:xPath="content/properties/DisplayUrl"  />

  <input name="SearchTerms"    />
</api:info>

関連項目

  • api:script:スクリプトブロックの作成。
  • api:call:スクリプトおよびオペレーションの呼び出し。
  • api:set:アイテムでアトリビュートを設定。

API Connector for CData Sync

api:last

api:last キーワードのスコープ内のAPI Script キーワードは、最後のアイテムの出現後のみ、かつアイテムがapi:call、もしくはapi:enum で返された場合のみ、実行されます。

api:last 構文は、最後のアイテムが処理された後に実行されます。これはフィードの最後のアイテムとのアクセスを保持します。スコープにアイテムがない場合、api:first、およびapi:last はどちらも実行されません。

パラメータ

None

アトリビュートの制御

None

サンプル

それぞれのアイテムが行として表示されているHTML テーブルを作成する:

<api:call op="listCustomers">
  <api:first>
    <table>
    <thead>
      <api:enum item="customer">
        <td>[_attr]</td>
      </api:enum>
    </thead>
  </api:first>
  <tr>
    <api:enum item="customer">
      <td>[_value]</td>
    </api:enum>
  </tr>
  <api:last>
    </table>
  </api:last>
</api:call>

関連項目

  • api:first:反復の最初のみコードブロックを実行する。

API Connector for CData Sync

api:map

api:map キーワードは、あるアイテムのアトリビュートを別のアイテムのアトリビュートにマップするために使われます。アトリビュートは、あるアイテムから参照され、マップ文字列で指定された新しい名前で別のアイテムに書かれます。api:map キーワードは、destination アイテムを削除しません:これは、単に新しいアトリビュートを追加するだけです。もしくは、destination アイテムにアトリビュートが存在する場合には、それは上書きされ、他のアトリビュートはそのまま残ります。

パラメータ

  • to:アトリビュートが書き込まれるアイテムの名前。
  • from:アトリビュートが読まれるアイテムの名前。
  • map:destination アイテムの中でアトリビュート名を指定するアトリビュート名のリスト、そしてソースアイテムのアトリビュート名。例えば、次のシンタックスを使って、ある接頭辞のアトリビュートを別の接頭辞にマップすることができます。
    customer:* = soap:*
    有効なアトリビュート名ではない文字は無視され、名前の終わりの境界を示します。

アトリビュートの制御

  • このキーワードはコントロールアトリビュートを持ちません。

サンプル

3個のアトリビュートをマップ:マップは、"to" アトリビュート名と、それに続く"from" アトリビュート名です。

<api:set item="item1" attr="var1" value="x"/>
<api:set item="item1" attr="var2" value="y"/>
<api:set item="item2" attr="attr1" value="z"/>
<api:map to="item2" from="item1" map="attr1=var1, attr2=var2"/>
このサンプルでは、item1 のvar1 およびvar2 アトリビュートは、item2 のattr1 、attr2、アトリビュートにそれぞれマップされます。item2 でvalue z に設定されているattr1 アトリビュートは、item1 のvar1 の値x に上書きされます。item2 に存在しないattr2 アトリビュートは、新たに作成され、item1 のvar2 の値y に設定されます。

ある接頭辞のアイテムからの複数のアトリビュートを別の接頭辞のアイテムにマップすることができます。Sync App 接頭辞(例えば soap:*)からビジネスドメインの接頭辞(例えば customer:*)に接頭辞を変更する際に便利です。次の例は、soapout アイテムのすべてのsoap:* アトリビュートからcustomer アイテムのcustomer:* 接頭辞を持つアトリビュートへのマッピングを作成します。

<api:map from="soapout" to="customer" map="customer:* = soap:*"/>
すべてのアイテムから別のアイテムにすべてのアトリビュートをコピーする:
<api:map from="copyfrom" to="copyto" map="* = *"/>

関連項目

  • api:set:アイテムのアトリビュートを設定する。

API Connector for CData Sync

api:match

api:match キーワードは、api:equals キーワードと類似します。ただし、これは複雑なマッチング規則を許容します。

パラメータ

  • pattern:マッチするパターン。
  • type:発見するマッチのタイプ。デフォルト値は"exact" で、値のexact match を必要とします。api:match がapi:equals と全く同一の場合。他のサポートされるタイプは、正規表現マッチングの"regex"、ファイル名パターン(e.g., *.txt)に使われるのと類似したシンプルなexpression モデルをサポートする"glob"。

    Sync App の.NET 版は、.NET Framework 版の正規表現マッチングを使います。Java 版は、Java 正規表現構造を使います。

  • value:マッチする値。

アトリビュートの制御

None

サンプル

正規表現パターンを使って浮動小数点数をチェック。パターンがマッチすれば、アイテムが追加されます。

<api:match pattern="\[-+\]?\[0-9\]*\.?\[0-9\]*" type="regex" value="-3.14">
  <api:push/>
</api:match>

関連項目

  • api:select:複数の値の比較。

API Connector for CData Sync

api:notequals

api:notequals キーワードは、アトリビュートが特定の値にマッチしないことを確認します。これは、api:equals キーワードと類似した動きをします。

パラメータ

  • item:アトリビュートを比較するアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:比較するアトリビュートの名前。
  • value:アトリビュートを比較する参照値。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

Err ファイルを除くすべてのファイルをリスト:
<api:call op="fileListDir">
  <api:notequals attr="file:extension" value=".err">
    <api:push/>
  </api:notequals>
</api:call>

関連項目

  • api:equals:同じ値であるかのチェック。
  • api:else:条件が充足されない場合に実行されるブロックの作成。

API Connector for CData Sync

api:null

api:null キーワードは、アトリビュートが指定されたアイテム内に存在しないことをチェックします。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

欠けているタイトルアトリビュートの定義。
<api:call op="fileListDir" output="out">
  <api:null attr="filename">
    <api:set attr="title" value="Unnamed File"/>
    <api:else>
      <api:set attr="title" value="[filename]"/>
    </api:else>
  </api:null>
  <api:push title="[title]">
  [out.file:*] 
  </api:push>
</api:call>

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

API Connector for CData Sync

api:notnull

api:notnull キーワードは、アトリビュートが指定されたアイテムに値を持っているかどうかをチェックします。api:exists キーワードは、api:notnull の類義語です。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

欠けているタイトルアトリビュートの定義。
<api:call op="fileListDir" output="out">
  <api:notnull attr="filename">
      <api:set attr="[title]" value="[filename]"/>
    <api:else>
      <api:set attr="[title]" value="Unnamed file"/>
    </api:else>
  </api:notnull> 
  <api:push title="[title]">
  [out.file:*]
  </api:push>
</api:call>

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

API Connector for CData Sync

api:push

api:push キーワードは、アイテムをスクリプトのアウトプットフィードに追加します。スクリプトにapi:push エレメントがない場合、ここから結果としてアウトプットアイテムは出されません。

パラメータ

  • item:フィードに追加されるアイテム。存在しない場合、スタックの一番上のアイテムが追加されます。
  • title:フィードアイテムのタイトル。
  • desc[ription]:フィードアイテムの説明。提供されるものがない場合は、api:push キーワードの範囲がこのアトリビュートの値として使われます。api:push キーワードの範囲は、他のキーワード、HTML タグなどを含むことがあります。すべてのものがテンプレートとして評価され、説明の設定に使われます。
  • op:呼び出して、結果アイテムを追加するオペレーションの名前。次に例を示します。
      <api:push op="myOp"/>    
      

    これは、次の簡易版です。

    <api:call op="myOp">
      <api:push/>
    </api:call>

  • enc[oding]:説明のエンコーディング。デフォルトで、Sync App は説明をエスケープ XML として追加します。このパラメータを"cdata" に設定して、CData として説明をエンコードしてエスケープされていない XML を含めることを選択できます。

アトリビュートの制御

None

サンプル

追加されたそれぞれのアイテムの説明を作成。説明はapi:push キーワードの範囲の中のテキストで、以下に示されます:
<api:call op="fileListDir?mask=*.log">
  <api:push>
    The .log file contains details about the transmission, including any error messages.
  </api:push>
</api:call>

API Connector for CData Sync

api:script

api:script キーワードは、スクリプトブロックを作成するために使われます はSQL 構文に対応する.

パラメータ

  • method:HTTP メソッド(GET、POST、PUT/PATCH/MERGE、やDELETE)はスクリプトを呼び出すために使われます。カンマ区切りのリストで複数のメソッドを指定します。 これらの メソッドは、SELECT、INSERT、UPDATE、およびDELETE の各クエリに対応します。

アトリビュートの制御

None

サンプル

Call two operations that manipulate remote API.この例は、OData API、odata.org Northwind リファレンスサービスを使います。次の説明では、初めのブロックはスクリプトがPOST メソッドを使ってアクセスされた場合のみ実行されます(INSERT 構文が実行されます)、一方、二つ目のブロックはスクリプトがGET メソッドを使ってアクセスされた場合のみ実行されます(SELECT 構文が実行されます)。

<api:script method="POST">
  <api:set attr="sql.rec:name" value="[_input.name]"/>
  <api:set attr="sql.rec:address" value="[_input.address]"/>
  <api:call op="sqliteInsert" in="sql">
    <api:push/>
  </api:call>
</api:script>
<api:script method="GET">
  <api:set attr="sql.query" value="SELECT * FROM [sql.table];"/>
  <api:call op="sqliteQuery" in="sql">
    <api:push/>
  </api:call>
</api:script>

API Connector for CData Sync

api:select

api:select キーワードは、他のプログラミング言語のswitch-case ブロックに類似しており、複雑な条件分を作成するために使われます。api:select のボディは、一つかそれ以上のapi:case キーワードおよび一つのapi:default キーワードを有します。

api:select の値は、api:case で指定された値にマッチします。api:case 構文のボディは、キーワードおよび、指定された値がapi:select キーワードの値に合致する場合に実行される構文を有します。

api:default 構文のボディは、api:case 構文の結果のどれもがマッチしない場合のみ実行されます。api:default キーワードは、パラメータを持たず、api:select の中で一度のみ出現します。

パラメータ

  • value:api:case 構文で指定された値と比較する値。
  • attr:api:case 構文で指定された値と比較される値のアトリビュート。

アトリビュートの制御

None

サンプル

会社名に応じてアイコンを設定。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB"に合致します。そしてケースに関連するアクションがとられます。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

<p>

関連項目

  • api:case:api:select のケースを書く。
  • api:default:api:select のデフォルトケースを書く。

API Connector for CData Sync

api:set

api:set キーワードはアトリビュートで値を設定します。アトリビュートが、存在しないアイテム内に設定されている場合、アイテムは自動的に生成されます。

api:set を使って値を設定する方法は2種類あります。値のパラメータを設定するか、マルチラインで複雑な大きな値の場合には、キーワード自身のスコープを使って値を設定することもできます。

パラメータ

  • item:アイテムパラメータは、アトリビュートが設定されているアイテムを指定するために使われます。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアイテムが使われます。
  • attr:アトリビュートの名前。ドット表現(例えば item.prefix:attr)アイテムを指定することもできます。完全なアトリビュート名にはname、および接頭辞が両方ありますが、接頭辞は必須ではありません。
  • value:アトリビュートにアサインされる値。このパラメータが与えられていない場合、api:set キーワードのの全ボディが値として使われます。これは、長い、もしくは複数の値を設定する際に便利です。
  • copyfrom:このパラメータにて指定されたアイテムからのアトリビュートはアイテムパラメータにより指定されたアイテムにコピーされます。

アトリビュートの制御

None

サンプル

キーワードのスコープを使って、"input" という名前のアイテムのメッセージアトリビュートの値を設定します:

<api:set item="input" attr="message">
  Dear [name],
  You have won a cruise trip to Hawaii.
  Please confirm your acceptance by [date].
  Thanks, [sales]
</api:set>

関連項目

  • api:unset:アイテムからアトリビュートを削除する:
  • api:setm:一つのキーワードしか持たないマルチプルアトリビュートを設定する。

API Connector for CData Sync

api:setc

api:setc キーワードは、API Script 内のかぎ括弧などの特殊文字をエスケープすることなく、静的なテキストを追加することを可能にします。特殊文字はバックスラッシュでエスケープできますが、このキーワードはショートカットを提供します。例えば、このキーワードはXPath を簡単に設定することができます。

パラメータ

  • item:アトリビュートをセットするアイテム。
  • attr:アトリビュートの名前。
  • value:アトリビュートにアサインされる値。このパラメータが与えられていない場合、api:setc キーワードのの全ボディが値として使われます。これは、長い、もしくは複数の値を設定する際に便利です。
  • copyfrom:このパラメータにて指定されたアイテムからのアトリビュートはアイテムパラメータにより指定されたアイテムにコピーされます。

アトリビュートの制御

None

サンプル

エスケープされていないXPath を設定:

<api:setc attr="xpath" value="/root/book[1]/@name" />

API Connector for CData Sync

api:setm

api:setm キーワードは、api:set の省略であり、複数のセットを一つのキーワードから実行するために使われます。

\r\n により区切られた、それぞれのラインが異なるオペレーションセットです。Python のように、複数値はシングルクオート(''')で指定されます。

はじめのイコールサイン("=") はアトリビュート名と値を区別します。これは、アトリビュート名がスペースを含むことができることを意味します。ただし、最初と最後のスペースは無視されます。例で示されているように、最初と最後のスペースを含むためには引用符を使うことができます。

パラメータ

  • item:アトリビュートがセットされているアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアイテムが使われます。

アトリビュートの制御

None

サンプル

キーワードのスコープを使ってコンタクトアトリビュートを設定:

<api:setm>
name = ContactName 
company = ContactCompany
address = 600 Market Street
includespace = " This string has a leading space"
</api:setm>

関連項目

  • api:set:アイテムでアトリビュートを設定。

API Connector for CData Sync

api:throw

api:throw キーワードは、スクリプト内から(例外)エラーをあげるために使われます。

パラメータ

  • code:ソースを特定するため、もしくは例外の意味を特定するための文字列値。このパラメータは必須です。
  • desc[ription]:エラー状況を説明する短いメッセージを特定する、オプションのパラメータ。
  • details:エラー状況を診断するために役立つ追加データを特定する、オプションのパラメータ。

アトリビュートの制御

None

サンプル

次のサンプルは、エラーコードおよび説明を明示的に定義します:

<api:throw code="myerror" desc="thedescription" />

関連項目

  • api:try:例外のキャッチのスコープを定義します。
  • api:catch:スローされた例外をキャッチし、例外処理を定義します。

API Connector for CData Sync

api:try

api:try およびapi:catch キーワードは、スクリプト内で例外処理ブロックを作成するために使われます。api:try のボディ中のキーワードがAPIException をスローすると、Sync App は、スコープ内で合致するapi:catch キーワードを探し、キャッチボディを実行します。

パラメータ

None

アトリビュートの制御

None

サンプル

例外をスローし、キャッチする。キーワードのスコープ内で、rsb エンコードおよびrsb メッセージアトリビュートが、現在のアイテムに足され、追加されます。

<api:call op="...">
  <api:try>
    <api:throw code="myerror" description="thedescription" details="Other Details."/>
    <api:catch code="myerror">
      <api:set attr="api:ecode" value="[_code]"/>
      <api:set attr="api:emessage" value="[_description]: [_details]"/>
      <api:push/>
    </api:catch>
  </api:try>
</api:call>

関連項目

  • api:catch:例外がスローされるプロセス。
  • api:throw:例外の強制。

API Connector for CData Sync

api:unset

api:unset キーワードは、アイテムからのアトリビュート、もしくはアイテム自身を削除するために使われます。

パラメータ

  • item:アトリビュートが削除されるアイテム。アイテムを指定しない場合には、ディフォルトアウトプットアイテムが使われます。このパラメータはアイテムを削除するためにも使われます。
  • attr:アイテムから削除するアトリビュート。glob mask を使って、複数のパラメータを削除することができます。例えば、"*.foo"。

アトリビュートの制御

None

サンプル

追加される前にアイテムからアトリビュートを削除する:

<api:call op="fileListDir">
  <api:unset attr="file:size"/>
  <api:push/>
</api:call>

関連項目

  • api:set:アイテムでアトリビュートを設定。

API Connector for CData Sync

api:validate

api:validate を使って、必須の値が提供されない場合にエラーをスローできます。

パラメータ

  • item:確認するアトリビュートを含むアイテム。
  • attr:確認するアトリビュート。アトリビュートが存在しない場合、エラーが投げられます。
  • code:確認が失敗した場合に投げられるエラーコード。デフォルトは"rsb.validate" です。
  • desc:確認が失敗した場合に投げられるエラー説明。デフォルトで、指定されたアトリビュートが必須である旨のメッセージが投げられます。

サンプル

_query アイテムがId アトリビュートを含まない場合には、特定のメッセージが投げられます:

<api:validate attr="_query.Id"   desc="The Id is required to delete."/>

関連項目

  • api:throw:スクリプト内から(例外)エラーをあげます。

API Connector for CData Sync

接続文字列オプション

接続文字列プロパティは、接続を確立するために使用できるさまざまなオプションです。このセクションでは、本プロバイダーの接続文字列で設定できるオプションの一覧を示します。詳細については各リンクをクリックしてください。

接続を確立する方法について詳しくは、接続の確立を参照してください。

Authentication


プロパティ説明
User認証で使用されるAPI ユーザーアカウント。

OAuth


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdOAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。
OAuthClientSecretOAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。

SSL


プロパティ説明
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

Firewall


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。

Proxy


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

Logging


プロパティ説明
LogModulesログファイルに含めるコアモジュール。

Schema


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。

APIProfile


プロパティ説明
ProfileThe profile property specifies the location on disk of the profile you would like to connect to.
ProfileSettingsA semicolon-separated list of name-value pairs required by your chosen data source, e.g.: username=myname; password=mypassword;appid=myapp.

APIServer


プロパティ説明
AuthSchemeThe scheme used for authentication. Accepted entries are None, NTLM, Basic or OAuth
PasswordThe authtoken used to authenticate to the API Server.
URLThe API Server base resource url. For example, http://localhost:8153/api.rsc.

Miscellaneous


プロパティ説明
MaxRowsクエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
API Connector for CData Sync

Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。


プロパティ説明
User認証で使用されるAPI ユーザーアカウント。
API Connector for CData Sync

User

認証で使用されるAPI ユーザーアカウント。

解説

このフィールドは、Password とともに、API サーバーに対して認証をするために使われます。

API Connector for CData Sync

OAuth

このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdOAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。
OAuthClientSecretOAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。
API Connector for CData Sync

OAuthVersion

使われているOAuth のバージョン。

解説

使われているOAuth のバージョン。次のオプションが利用可能です:Disabled,1.0,2.0

API Connector for CData Sync

OAuthClientId

OAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。

解説

OAuth アプリケーションの登録の一環として、コンシューマキーとも呼ばれるOAuthClientId 値、およびクライアントシークレットOAuthClientSecret が提供されます。

API Connector for CData Sync

OAuthClientSecret

OAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。

解説

OAuth アプリケーションの登録の一環として、コンシューマキーとも呼ばれるOAuthClientId が提供されます。また、コンシューマーシークレットと呼ばれるクライアントシークレットも提供されます。クライアントシークレットをOAuthClientSecret プロパティに設定します。

API Connector for CData Sync

SSL

このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。


プロパティ説明
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。
API Connector for CData Sync

SSLServerCert

TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

解説

TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。

このプロパティは、次のフォームを取ります:

説明 例
フルPEM 証明書(例では省略されています) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
証明書を保有するローカルファイルへのパス。 C:\cert.cer
公開鍵(例では省略されています) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
MD5 Thumbprint (hex 値はスペースおよびコロン区切り) ecadbdda5a1529c58a1e9e09828d70e4
SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) 34a929226ae0819f2ec14b4a3d904f801cbb150d

これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。

すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。

API Connector for CData Sync

Firewall

このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。
API Connector for CData Sync

FirewallType

プロキシベースのファイアウォールで使われるプロトコル。

解説

このプロパティは、Sync App がFirewallServer プロキシ経由でトンネルトラフィックを使うためのプロトコルを指定します。デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し次のプロキシタイプのどれかで接続するには、ProxyAutoDetect をfalse に設定します。

タイプ デフォルトポート 説明
TUNNEL 80 これが設定されている場合、Sync App はAPI への接続を開き、プロキシを経由して通信が行われます。
SOCKS4 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 4 プロキシ経由で送信し、接続リクエストが許容されるかどうかを決定します。
SOCKS5 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 5 プロキシ経由で送信します。プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。

HTTP プロキシへの接続には、ProxyServer およびProxyPort ポートを使ってください。HTTP プロキシへの認証には、ProxyAuthScheme、ProxyUser、およびProxyPassword を使ってください。

API Connector for CData Sync

FirewallServer

プロキシベースのファイアウォールの名前もしくはIP アドレス。

解説

ファイアウォールトラバーサルを許容するために設定するIP アドレス、DNS 名、もしくはプロキシホスト名を指定するプロパティです。プロトコルはFirewallType で指定されます。このプロパティとFirewallServer を使って、SOCKS 経由での接続、もしくはトンネリングが可能です。HTTP プロキシへの接続には、ProxyServer を使用します。

Sync App はデフォルトでシステムプロキシを使うので注意してください。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定してください。

API Connector for CData Sync

FirewallPort

プロキシベースのファイアウォールのTCP ポート。

解説

ファイアウォールトラバーサルを許容するために設定するプロキシベースのファイアウォールのTCP ポート。名前もしくはIP アドレスを指定するには、FirewallServer を使います。FirewallType でプロトコルを指定します。

API Connector for CData Sync

FirewallUser

プロキシベースのファイアウォールに認証するために使うユーザー名。

解説

FirewallUser およびFirewallPassword プロパティは、FirewallType により指定された認証方式に則り、FirewallServer、およびFirewallPort で指定されたプロキシに対しての認証に使われます。

API Connector for CData Sync

FirewallPassword

プロキシベースのファイアウォールへの認証に使われるパスワード。

解説

このプロパティは、FirewallType により指定された認証メソッドに則り、FirewallServer およびFirewallPort で指定されたプロキシに渡されます。

API Connector for CData Sync

Proxy

このセクションでは、本プロバイダーの接続文字列で設定可能なProxy プロパティの全リストを提供します。


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。
API Connector for CData Sync

ProxyAutoDetect

これは、システムプロキシ設定を使用するかどうかを示します。これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。

解説

これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。

HTTP プロキシへの接続には、ProxyServer を参照してください。SOCKS やトンネリングなどの他のプロキシには、FirewallType を参照してください。

API Connector for CData Sync

ProxyServer

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。

解説

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。HTTP プロキシへの認証には、Sync App はHTTP、Windows(NTLM)、もしくはKerberos 認証タイプを使用することができます。

SOCKS プロキシを経由して接続する、もしくは接続をトンネルするには、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定します。

API Connector for CData Sync

ProxyPort

ProxyServer プロキシが起動しているTCP ポート。

解説

HTTP トラフィックをリダイレクトするHTTP プロキシが実行されているポート。ProxyServer でHTTP プロキシを指定します。その他のプロキシタイプについては、FirewallType を参照してください。

API Connector for CData Sync

ProxyAuthScheme

ProxyServer プロキシへの認証で使われる認証タイプ。

解説

この値は、ProxyServer およびProxyPort で指定されるHTTP プロキシに認証するために使われる認証タイプを指定します。

Sync App は、デフォルトでsystem proxy settings を使い、追加での設定が不要です。他のプロキシへの接続をする場合には、ProxyServer およびProxyPort に加え、ProxyAutoDetect をfalse に設定します。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

認証タイプは、次のどれかになります。

  • BASIC: Sync App はHTTP BASIC 認証を行います。
  • DIGEST: Sync App はHTTP DIGEST 認証を行います。
  • NEGOTIATE: Sync App は認証において有効なプロトコルに応じて、NTLM もしくはKereros トークンを取得します。
  • PROPRIETARY: Sync App はNTLM もしくはKerberos トークンを発行しません。このトークンを、HTTP リクエストのAuthorization ヘッダーに含める必要があります。

SOCKS 5 認証のような他の認証タイプを使用するには、FirewallType を参照してください。

API Connector for CData Sync

ProxyUser

ProxyServer プロキシへの認証に使われるユーザー名。

解説

ProxyUser および ProxyPassword オプションは、ProxyServer で指定されたHTTP プロキシに対して接続および認証するために使用されます。

ProxyAuthScheme で使用可能な認証タイプを選択することができます。HTTP 認証を使う場合、これをHTTP プロキシで識別可能なユーザーのユーザー名に設定します。Windows もしくはKerberos 認証を使用する場合、このプロパティを次の形式のどれかでユーザー名に設定します。

user@domain
domain\user

API Connector for CData Sync

ProxyPassword

ProxyServer プロキシへの認証に使われるパスワード。

解説

このプロパティは、NTLM(Windows)、Kerberos、もしくはHTTP 認証をサポートするHTTP プロキシサーバーに認証するために使われます。HTTP プロキシを指定するためには、ProxyServer およびProxyPort を設定します。認証タイプを指定するためにはProxyAuthScheme を設定します。

HTTP 認証を使う場合、さらにHTTP プロキシにProxyUser およびProxyPassword を設定します。

NTLM 認証を使う場合、Windows パスワードにProxyUser およびProxyPassword を設定します。Kerberos 認証には、これらを入力する必要があります。

SOCKS 5 認証もしくは、トンネリングは、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシに接続する場合には、これをfalse に設定します。

API Connector for CData Sync

ProxySSLType

ProxyServer プロキシへの接続時に使用するSSL タイプ。

解説

このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この値は、AUTO、ALWAYS、NEVER、TUNNEL のいずれかです。有効な値は次のとおりです。

AUTOデフォルト設定。URL がHTTPS URL の場合、Sync App は、TUNNEL オプションを使います。URL がHTTP URL の場合、コンポーネントはNEVER オプションを使います。
ALWAYS接続は、常にSSL 有効となります。
NEVER接続は、SSL 有効になりません。
TUNNEL接続は、トンネリングプロキシを経由します。プロキシサーバーがリモートホストへの接続を開き、プロキシを経由して通信が行われます。

API Connector for CData Sync

ProxyExceptions

ProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

解説

ProxyServer は、このプロパティで定義されたアドレスを除くすべてのアドレスに使用されます。セミコロンを使用してエントリを区切ります。

Sync App は、追加設定なしにデフォルトでシステムのプロキシ設定を使います。この接続のプロキシ例外を明示的に構成するには、ProxyAutoDetect をfalse に設定して、ProxyServer およびProxyPort を設定する必要があります。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

API Connector for CData Sync

Logging

このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。


プロパティ説明
LogModulesログファイルに含めるコアモジュール。
API Connector for CData Sync

LogModules

ログファイルに含めるコアモジュール。

解説

指定された(';' で区切られた)モジュールのみがログファイルに含まれます。デフォルトではすべてのモジュールが含まれます。

概要はログ ページを参照してください。

API Connector for CData Sync

Schema

このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。
API Connector for CData Sync

Location

テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。

解説

Sync App のスキーマファイル(テーブルとビューの場合は.rsd ファイル、ストアドプロシージャの場合は.rsb ファイル)を含むディレクトリへのパス。このフォルダの場所は、実行ファイルの場所からの相対パスにすることができます。Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。

指定しない場合、デフォルトの場所は"%APPDATA%\\CData\\API Data Provider\\Schema" となり、%APPDATA% はユーザーのコンフィギュレーションディレクトリに設定されます:

API Connector for CData Sync

BrowsableSchemas

このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。

解説

スキーマをデータベースからリストすると、負荷がかかる可能性があります。接続文字列でスキーマのリストを提供すると、 パフォーマンスが向上します。

API Connector for CData Sync

Tables

このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。

解説

テーブルを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でテーブルのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

API Connector for CData Sync

Views

使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。

解説

ビューを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でビューのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

API Connector for CData Sync

APIProfile

このセクションでは、本プロバイダーの接続文字列で設定可能なAPIProfile プロパティの全リストを提供します。


プロパティ説明
ProfileThe profile property specifies the location on disk of the profile you would like to connect to.
ProfileSettingsA semicolon-separated list of name-value pairs required by your chosen data source, e.g.: username=myname; password=mypassword;appid=myapp.
API Connector for CData Sync

Profile

The profile property specifies the location on disk of the profile you would like to connect to.

解説

The Sync App enables you to connect to a variety of data sources by selecting a profile using the Profile property. The selected profile should be available in the configured Location.

API Connector for CData Sync

ProfileSettings

A semicolon-separated list of name-value pairs required by your chosen data source, e.g.: username=myname; password=mypassword;appid=myapp.

解説

The Sync App allows you to connect to a variety of data sources by selecting a profile using the Profile property. A profile may require other connection properties to function; these connection properties are determined by the profile author and can be specified via the ProfileSettings property.

API Connector for CData Sync

APIServer

このセクションでは、本プロバイダーの接続文字列で設定可能なAPIServer プロパティの全リストを提供します。


プロパティ説明
AuthSchemeThe scheme used for authentication. Accepted entries are None, NTLM, Basic or OAuth
PasswordThe authtoken used to authenticate to the API Server.
URLThe API Server base resource url. For example, http://localhost:8153/api.rsc.
API Connector for CData Sync

AuthScheme

The scheme used for authentication. Accepted entries are None, NTLM, Basic or OAuth

解説

Together with Password and User, this field is used to authenticate against the service. Basic is the default option.

  • NTLM: Set this to use your Windows credentials for authentication.
  • Basic: Set this to use HTTP Basic authentication.
  • Oauth: Set this to authenticate via OAuth.

API Connector for CData Sync

Password

The authtoken used to authenticate to the API Server.

解説

Authtokens are created in the API Server. To create an API Server user, click Settings -> Users in the API Server administration console.

API Connector for CData Sync

URL

The API Server base resource url. For example, http://localhost:8153/api.rsc.

解説

The API Server base resource url. For example, http://localhost:8153/api.rsc.

API Connector for CData Sync

Miscellaneous

このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。


プロパティ説明
MaxRowsクエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
API Connector for CData Sync

MaxRows

クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。

解説

クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。

API Connector for CData Sync

Other

これらの隠しプロパティは特定のユースケースでのみ使用されます。

解説

以下にリストされているプロパティは、特定のユースケースで使用可能です。通常のドライバーのユースケースおよび機能では、これらのプロパティは必要ありません。

複数のプロパティをセミコロン区切りリストで指定します。

統合およびフォーマット

DefaultColumnSizeデータソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。
ConvertDateTimeToGMT日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。
RecordToFile=filename基底のソケットデータ転送を指定のファイルに記録します。

API Connector for CData Sync

PseudoColumns

このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。

解説

Entity Framework ではテーブルカラムでない疑似カラムに値を設定できないため、この設定はEntity Framework で特に便利です。この接続設定の値は、"Table1=Column1, Table1=Column2, Table2=Column3" の形式です。"*=*" のように"*" 文字を使用して、すべてのテーブルとすべてのカラムを含めることができます。

API Connector for CData Sync

Timeout

タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。

解説

Timeout が0に設定されている場合は、操作がタイムアウトしません。処理が正常に完了するか、エラー状態になるまで実行されます。

Timeout の有効期限が切れても処理が完了していない場合は、Sync App は例外をスローします。

API Connector for CData Sync

UserDefinedViews

カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。

解説

ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。Sync App は、このファイルで指定されたビューを自動的に検出します。

また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。

このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。

  • 各ルートエレメントはビューの名前を定義します。
  • 各ルートエレメントには、query と呼ばれる子エレメントが含まれており、この子エレメントにはビューのカスタムSQL クエリが含まれています。

次に例を示します。

{
	"MyView": {
		"query": "SELECT * FROM NorthwindOData WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479