REST Connector for CData Sync

Build 25.0.9540
  • REST
      • リモートREST メタデータの表示
    • 接続の確立
      • Kerberos の使用
      • データアクセスのファインチューニング
    • REST データのモデリング
      • Raw データ
      • 階層データの解析
        • フラット化されたドキュメントモデル
        • トップレベルのドキュメントモデル
        • リレーショナルモデル
      • 自動スキーマ検出
      • フリーフォームクエリ
      • 垂直フラット化
      • XML 関数
      • JSON 関数
      • スキーマのカスタマイズ
        • スキーマファイルの生成
        • カラム定義
        • SELECT 実行
        • INSERT 実行
        • UPDATE 実行
        • DELETE 実行
        • Raw データ
        • クエリスライサー
        • ストアドプロシージャの定義
        • GetOAuthAccessToken のオーバーライド
        • オペレーション
          • jsonproviderGet
          • xmlproviderGet
          • csvproviderGet
          • oauthGetAccessToken
          • oauthGetUserAuthorizationURL
          • utiladoRefreshOAuth
          • utiladoSleep
          • utiladoPushPageToken
          • httpopsGet
          • httpopsPost
          • fileRead
          • fileWrite
    • 高度な機能
      • SSL の設定
      • ファイアウォールとプロキシ
    • API Script Reference
      • Items in API Script
      • Value Formatters
        • String Formatters
        • Date Formatters
        • Math Formatters
      • Operations
        • httpPost
        • httpGet
      • 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
        • AuthScheme
        • AccessKey
        • SecretKey
        • ApiKey
        • User
        • Password
        • SharePointEdition
        • AuthorizationHeaderPrefix
        • ImpersonateUserMode
      • Connection
        • ConnectionType
        • Format
        • URI
        • Region
        • OracleNamespace
        • StorageBaseURL
        • SimpleUploadLimit
        • UseVirtualHosting
        • UseLakeFormation
      • AWS Authentication
        • AWSAccessKey
        • AWSSecretKey
        • AWSRoleARN
        • AWSPrincipalARN
        • AWSRegion
        • AWSCredentialsFile
        • AWSCredentialsFileProfile
        • AWSSessionToken
        • AWSExternalId
        • MFASerialNumber
        • MFAToken
        • TemporaryTokenDuration
        • AWSWebIdentityToken
        • ServerSideEncryption
        • SSEContext
        • SSEEnableS3BucketKeys
        • SSEKey
      • Azure Authentication
        • AzureStorageAccount
        • AzureAccessKey
        • AzureSharedAccessSignature
        • AzureTenant
        • AzureEnvironment
      • Keycloak Authentication
        • KeycloakRealmURL
      • SSO
        • SSOLoginURL
        • SSOProperties
        • SSOExchangeURL
      • JSON and XML
        • XPath
        • DataModel
        • JSONFormat
        • XMLFormat
        • FlattenArrays
        • FlattenObjects
        • BackwardsCompatibilityMode
        • QualifyColumns
        • URISeparator
      • CSV
        • FMT
        • IncludeColumnHeaders
      • OAuth
        • OAuthVersion
        • OAuthClientId
        • OAuthClientSecret
        • SubjectId
        • SubjectType
        • Scope
        • OAuthPasswordGrantMode
        • OAuthIncludeCallbackURL
        • OAuthAuthorizationURL
        • OAuthAccessTokenURL
        • OAuthRefreshTokenURL
        • OAuthRequestTokenURL
        • AuthToken
        • AuthKey
        • OAuthParams
        • SupportCaseSensitiveOAuthParams
      • JWT OAuth
        • OAuthJWTCert
        • OAuthJWTCertType
        • OAuthJWTCertPassword
        • OAuthJWTEncryptionKey
        • OAuthJWTCertSubject
        • OAuthJWTIssuer
        • OAuthJWTSubject
        • OAuthJWTSubjectType
        • OAuthJWTPublicKeyId
        • OAuthJWTAudience
        • OAuthJWTEncryption
        • OAuthJWTHeaders
        • OAuthJWTValidityTime
      • Kerberos
        • KerberosKDC
        • KerberosRealm
        • KerberosSPN
        • KerberosUser
        • KerberosKeytabFile
        • KerberosServiceRealm
        • KerberosServiceKDC
        • KerberosTicketCache
      • SSL
        • SSLClientCert
        • SSLClientCertType
        • SSLClientCertPassword
        • SSLClientCertSubject
        • SSLMode
        • SSLServerCert
      • SSH
        • SSHAuthMode
        • SSHClientCert
        • SSHClientCertPassword
        • SSHClientCertSubject
        • SSHClientCertType
        • SSHUser
        • SSHPassword
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
      • Miscellaneous
        • AWSCertificate
        • AWSCertificatePassword
        • AWSCertificateType
        • AWSPrivateKey
        • AWSPrivateKeyPassword
        • AWSPrivateKeyType
        • AWSProfileARN
        • AWSSessionDuration
        • AWSTrustAnchorARN
        • Charset
        • ClientCulture
        • Culture
        • CustomHeaders
        • CustomURLParams
        • DirectoryRetrievalDepth
        • ExcludeFiles
        • ExcludeStorageClasses
        • FolderId
        • GenerateSchemaFiles
        • IncludeDropboxTeamResources
        • IncludeFiles
        • IncludeItemsFromAllDrives
        • MaxRows
        • MetadataDiscoveryURI
        • Other
        • Pagesize
        • PseudoColumns
        • RowScanDepth
        • Timeout
        • TypeDetectionScheme
        • UserDefinedViews
    • Third Party Copyrights

REST Connector for CData Sync

概要

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

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

REST バージョンサポート

Sync App はREST API を双方向のデータベーステーブルとして、XML/JSON ファイルをビューとしてモデル化します(ローカルファイル、一般的なクラウドサービスに保存されたファイル、およびFTP サーバー)。Sync App は、データの処理に加えて、TLS/SSL、HTTP/FTP、認証などのリモートデータへの接続も抽象化します。HTTP Basic、Digest、NTLM、OAuth、FTP を含む主要な認証スキームがサポートされています。

REST Connector for CData Sync

リモートREST メタデータの表示

CData Sync App は、REST ストリーミング専用です。

このストリームファイルのコンテンツには、リモートで保存されたREST ファイルに関連するファイル名やフォルダ名などのメタデータはすべて含まれていません。

ファイルのメタデータとファイルの実際のコンテンツの両方にアクセスする必要がある場合は、CData Sync App は、REST ファイルがリモートで格納されているサービスの関連ファイルシステムドライバーと併せて使用する必要があります。

以下のファイルシステムドライバーが利用可能です。

  • AmazonS3
  • Box
  • Dropbox
  • FTP
  • GoogleCloudStorage
  • IBLCloudObjectStorage
  • OneDrive
  • SFTP

保存されているREST ファイルメタデータに接続するための設定方法については、関連するCData ファイルシステムドライバーのドキュメントを参照してください。

REST Connector for CData Sync

接続の確立

REST への接続を追加

REST への接続を追加するには:

  1. アプリケーションコンソールで、接続ページに移動します。
  2. 接続の追加パネルで、追加したい接続のアイコンを選択します。
  3. REST アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからREST コネクタをダウンロードおよびインストールします。

必須プロパティについては、設定タブを参照してください。

通常必須ではない接続プロパティについては、高度な設定タブを参照してください。

XML/JSON/CSV データのモデル化

DataModel プロパティは、データをテーブルにどのように表現するかを制御するプロパティです。

  • Document (デフォルト):REST データのトップレベルのドキュメントビューをモデル化します。Sync App は、ネストされたオブジェクト配列を集約されたXML/JSON/CSV オブジェクトとして返します。
  • FlattenedDocuments:ネストされた配列オブジェクトと親オブジェクトを、単一テーブルに暗黙的に結合します。
  • Relational:ネストされたオブジェクト配列を、親ドキュメントにリンクする主キーと外部キーを含む個々の関連テーブルとして表示します。

接続するREST ソースで使用されるデータ構造化標準に従ってFormat をXML、JSON、またはCSV に設定し、DataModel を設定してデータ表現とデータ構造をより密接に一致させます。

接続の認証

各種認証方法については、AuthScheme を参照してください。

次のステップ

  • スキーマ検出のカスタマイズとREST へのSQL の実行方法については、REST データのモデリング を参照してください。
  • 高度な接続設定については、データアクセスのファインチューニング を参照してください。データモデリングの設定を微調整したり、ファイアウォールを介して接続したり、接続のトラブルシューティングを行います。

REST Connector for CData Sync

Kerberos の使用

Kerberos

Kerberos でREST への認証を行うには、AuthScheme をNEGOTIATE に設定します。

Kerberos 経由でREST への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。

Kerberos チケットの取得

Kerberos チケットは、依頼者のID を認証するために使用されます。正式なログイン / パスワードの代わりにチケットを使用することで、パスワードをローカルに保存したり、ネットワーク経由で送信したりする必要がなくなります。 ユーザーは、ローカルコンピュータでログインするか、 コマンドプロンプトでkinit USER と入力するたびに、再認証されます(チケットはリフレッシュされます)。

Sync App は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。

MIT Kerberos 資格情報キャッシュファイル

このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。

このオプションは、KRB5CCNAME がシステムに作成されている必要があります。

MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:

  1. お使いの環境にKRB5CCNAME 変数が存在することを確認します。
  2. KRB5CCNAME を資格情報キャッシュファイルを指すパスに設定します。(例えば、C:\krb_cache\krb5cc_0 または/tmp/krb5cc_0 です。)資格情報キャッシュファイルは、MIT Kerberos チケットマネージャーを使用してチケットを生成するときに作成されます。
  3. チケットを取得するには:
    1. MIT Kerberos チケットマネージャーアプリケーションを開きます。
    2. Get Ticket をクリックします。
    3. プリンシパル名とパスワードを入力します。
    4. OK をクリックします。

    チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。

Sync App はキャッシュファイルを使用してREST に接続するためのKerberos チケットを取得します。

Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、Sync App は指定されたキャッシュファイルを使用してREST に接続するためのKerberos チケットを取得します。

Keytab ファイル

お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。

この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。

User およびPassword

お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。

この方法を使用するには、User およびPassword プロパティを、REST での認証に使用するユーザー / パスワードの組み合わせに設定します。

クロスレルム認証の有効化

より複雑なKerberos 環境では、複数のレルムおよびKDC サーバーが使用されるクロスレルム認証が必要になる場合があります。例えば、1つのレルム / KDC がユーザー認証に使用され、別のレルム / KDC がサービスチケットの取得に使用される場合です。

このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。

REST Connector for CData Sync

データアクセスのファインチューニング

CData Sync App を使うと、より複雑な開発やネットワークトポロジに役立つきめ細かな制御が可能になります。次の接続プロパティを使用して、データアクセスを微調整したり、ファイアウォールを介して接続したり、接続のトラブルシューティングを行ったりできます。

データアクセスのファインチューニング

次のプロパティを使って、Sync App がXML データを行にパースする方法をさらに制御できます。また、接続文字列に基づいて検出されたスキーマをカスタマイズすることもできます。

  • RowScanDepth:このプロパティは、テーブルメタデータを生成する際にカラムのデータ型を検出するためにスキャンされる行数を指定します。
  • XPath:行スキャン中に検出する代わりに、ネストされたオブジェクト配列へのパスを明示的に指定します。
  • GenerateSchemaFiles:このプロパティを使用すると、例えばテーブルメタデータを、カスタマイズしやすい静的スキーマファイルに永続化したり、カラムのデータ型の変更を永続化したりできます。このプロパティを"OnStart" に設定すると、接続時にデータベース内のすべてのテーブルのスキーマファイルを生成します。あるいは、"OnUse" に設定すると、テーブルにSELECT クエリを実行したときにスキーマを生成します。生成されるスキーマは、自動スキーマ検出 の設定に使用する接続プロパティに基づいています。

    生成されたスキーマファイルを使用するには、Location プロパティをスキーマを有するフォルダに設定します。詳しくは、スキーマのカスタマイズ を参照してください。

REST Connector for CData Sync

REST データのモデリング

このセクションでは、Sync App がリレーショナルSQL とREST サービスのギャップを埋めるために提供するさまざまなスキームを制御する方法を説明します。CData Sync App には、ネストされたデータを扱うための2つの一般的な管理された方法があります。

  • データ構造を解析し、既存の階層に基づいてリレーショナルモデルを構築する。
  • 水平および垂直フラット化を使用して、ネストされたエレメントにドリルダウンする。

階層データの解析

デフォルトでは、Sync App はドキュメント内の行を自動的に検出するため、SQL でクエリするために基底のデータの構造を知る必要はありません。DataModel プロパティを設定して、Sync App がどのように行をテーブルにモデル化するかの基礎構成を選択します。

オブジェクトと配列を行にフラット化

データをフラット化するには、オブジェクトと配列という2つのデータ構造に精通しているだけで十分です。JSON では、これらはリテラル構造です。XML では、類似の構造は以下のとおりです。

  • Object:同じ階層で繰り返されない親エレメント。
  • Array:同じ階層で繰り返すエレメント。

people コレクションの次の例では、各ノードに子エレメントがあるため、maintenance はオブジェクト配列です。

<maintenance>
  <date>07-17-2017</date>
  <desc>oil change</desc>
</maintenance>
<maintenance>
  <date>01-03-2018</date>
  <desc>new tires</desc>
</maintenance> 

自動スキーマ検出の設定

Sync App は、配列内のオブジェクトのRowScanDepth 数をスキャンすることで、カラムおよびデータ型を検出します。FlattenObjects およびFlattenArrays プロパティを設定して、ネストされたデータをカラムにフラット化する方法を設定します。例については、自動スキーマ検出 を参照してください。

REST へのSQL の実行

フラット化でアクセスできるあらゆるリレーションへは、アドホックなSQL クエリを使ってもアクセスが可能です。Sync App を使用すると、次の機能を使用してネストされたデータをクエリできます。

  • 垂直フラット化:ネストされたオブジェクト配列に別々のテーブルとしてアクセスします。
  • フリーフォームクエリ:どんなネストされた構造でもデータをフラット化せずにクエリできます。
  • XML 関数 およびJSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

スキーマのカスタマイズ

スキーマのカスタマイズ を使用すると、ドキュメントの上に選択されたリレーショナル構造を投射することもできます。これにより、カラム名、データ型、 ドキュメント内の値の位置を選択することができます。

システムカタログ

システムテーブル は設定したスキーマ(カスタムスキーマ、または動的に検出されたスキーマ)を反映しています。Stored Procedures は、Sync App のデータ処理操作において、SELECT、INSERT、UPDATE、またはDELETE としてモデル化できない追加機能を表します。レポートされたストアドプロシージャは、Location で指定されたフォルダ内の.rsb ファイルで定義されています。Location が指定されていない場合は、インストールディレクトリのdb サブフォルダにあります。

REST Connector for CData Sync

Raw データ

以下は、この章で使用されている生データです。データには人、所有する自動車、およびさまざまな保守サービスのエントリが含まれます。

 
<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <rootAttr1>rootValue1</rootAttr1>
  <people>
    <personal>
      <age>20</age>
      <gender>M</gender>
      <name>
        <first>John</first>
        <last>Doe</last>
      </name>
    </personal>
    <jobs>support</jobs>
    <jobs>coding</jobs>
    <vehicles>
      <type>car</type>
      <model>Honda Civic</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>sunroof</features>
      <features>rims</features>
      <maintenance>
        <date>07-17-2017</date>
        <desc>oil change</desc>
      </maintenance>
      <maintenance>
        <date>01-03-2018</date>
        <desc>new tires</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>truck</type>
      <model>Dodge Ram</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>lift kit</features>
      <features>tow package</features>
      <maintenance>
        <date>08-27-2017</date>
        <desc>new tires</desc>
      </maintenance>
      <maintenance>
        <date>01-08-2018</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>work</type>
      <zip>12345</zip>
    </addresses>
    <addresses>
      <type>home</type>
      <zip>12357</zip>
    </addresses>
    <source>internet</source>
  </people>
  <people>
    <personal>
      <age>24</age>
      <gender>F</gender>
      <name>
        <first>Jane</first>
        <last>Roberts</last>
      </name>
    </personal>
    <jobs>sales</jobs>
    <jobs>marketing</jobs>
    <source>phone</source>
    <vehicles>
      <type>car</type>
      <model>Toyota Camry</model>
      <insurance>
        <company>Car Insurance</company>
        <policy_num>98765</policy_num>
      </insurance>
      <features>upgraded stereo</features>
      <maintenance>
        <date>05-11-2017</date>
        <desc>tires rotated</desc>
      </maintenance>
      <maintenance>
        <date>11-03-2017</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>car</type>
      <model>Honda Accord</model>
      <insurance>
        <company>Car Insurance</company>
        <policy_num>98765</policy_num>
      </insurance>
      <features>custom paint</features>
      <features>custom wheels</features>
      <maintenance>
        <date>10-07-2017</date>
        <desc>new air filter</desc>
      </maintenance>
      <maintenance>
        <date>01-13-2018</date>
        <desc>new brakes</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>home</type>
      <zip>98765</zip>
    </addresses>
    <addresses>
      <type>work</type>
      <zip>98753</zip>
    </addresses>
  </people>
  <rootAttr2>rootValue2</rootAttr2>
  <rootAttr3>rootValue3</rootAttr3>
  <rootAttr3>rootValue4</rootAttr3>
</root>

REST Connector for CData Sync

階層データの解析

Sync App には、ネストされたXML とJSON のデータをテーブルとしてモデル化する3つの基本設定があります。オブジェクトと配列をパースする例については、次のセクションを参照してください。

  • フラット化されたドキュメントモデル:ネストされたオブジェクト配列を単一テーブルに暗黙的に結合します。
  • リレーショナルモデル:オブジェクト配列を、親ドキュメントにリンクする主キーと外部キーを含む個々のテーブルとしてモデル化します。
  • トップレベルのドキュメントモデル:ドキュメントのトップレベルのビューをモデル化します。ネストされたオブジェクト配列は、集計として返されます。

REST Connector for CData Sync

フラット化されたドキュメントモデル

データ全体に単純にアクセスする必要があるユーザーにとっては、データを単一テーブルにフラット化することは最善のオプションです。このモードでは、Sync App はストリーミングを使用し、クエリごとにデータを1回だけパースします。

オブジェクト配列を単一テーブルに結合

DataModel を"FlattenedDocuments" に設定すると、Sync App はオブジェクト配列ごとに別のテーブルを返しますが、暗黙的に親テーブルに結合します。ネストされた任意の兄弟XPath 値(同じ高さの子パス)は、SQL CROSS JOIN として扱われます。

例

以下は、Raw データ のサンプルドキュメントと、XPaths /root/people、/root/people/vehicles、/root/people/vehicles/maintenance に基づく解析のサンプルクエリとその結果です。これは、暗黙的にvehicles エレメントをpeople エレメントと結合し、暗黙的にvehicles エレメントをmaintenance エレメントと結合します。

接続文字列

次の接続文字列を使用して、この例ではRaw データ をクエリします。

URI=C:\people.txt;Format=XML;DataModel=FlattenedDocuments;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;'

クエリ

次のクエリは、各people エレメントのネストされたエレメントをドリルします。XPath プロパティはvehicles ノードを含んだため、vehicle のエレメントを明示的にクエリできます。

SELECT
  [personal.age] AS age,
  [personal.gender] AS gender,
  [personal.name.first] AS name_first,
  [personal.name.last] AS name_last,
  [source],
  [type],
  [model],
  [insurance.company] AS ins_company,
  [insurance.policy_num] AS ins_policy_num,
  [date] AS maint_date,
  [desc] AS maint_desc
FROM
  [people]

結果

記述されたパスに基づいて水平および垂直フラット化を行うと、各vehicle エレメントはその親people エレメントに暗黙的に結合され、各maintenance エレメントはその親vehicle エレメントに暗黙的に結合されます。

agegenderfirst_namelast_namesourcetypemodelins_companyins_policy_nummaint_datemaint_desc
20MJohnDoeinternetcarHonda CivicABC Insurance123452017-07-17oil change
20MJohnDoeinternetcarHonda CivicABC Insurance123452018-01-03new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452017-08-27new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452018-01-08oil change
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-05-11tires rotated
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-11-03oil change
24FJaneRobertsphonecarHonda AccordCar Insurance987652017-10-07new air filter
24FJaneRobertsphonecarHonda AccordCar Insurance987652018-01-13new brakes

関連項目

  • 自動スキーマ検出:テーブルスキーマに報告されたカラムを設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数 およびJSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

REST Connector for CData Sync

トップレベルのドキュメントモデル

データのトップレベルドキュメントビューを使用すると、トップレベルのエレメントにすぐにアクセスできます。Sync App は、集計にネストされたエレメントを単一のカラムとして返します。

考慮すべき一つの側面はパフォーマンスです。ネストされたエレメントを処理してパースする時間とリソースを控えます。Sync App は、データを読み込むためにストリーミングを使用して、返されたデータを一度パースします。もう一つ考慮すべきは、ネストされた親エレメントに格納されているデータにアクセスする必要があることと、ツールやアプリケーションがJSON またはXML を処理する能力です。

トップレベルドキュメントビューのモデリング

DataModel が"Document"(デフォルト)に設定されている場合、Sync App はデフォルトでトップレベルのエレメントである単一のエレメントのみをスキャンします。デフォルトのオブジェクトフラット化により、トップレベルのエレメントはカラムとして利用可能です。ネストされたエレメントは集計として返されます。

XPath を設定すると、トップレベル以外のエレメントを指定できます。

例

以下は、Raw データ のサンプルドキュメントに基づいたサンプルクエリとその結果です。クエリの結果、XPath "/root/people" に基づいた単一の"people" テーブルが作成されます。

接続文字列

DataModel 接続プロパティを"Document" に設定して次のクエリを実行し、サンプル結果セットを表示します。Sync App は以下のXPath 値のみをスキャンします。

URI=C:\people.txt;Format=XML;DataModel=Document;XPath='/root/people';

クエリ

次のクエリは、トップレベルのエレメントと車両エレメントのサブエレメントを結果にプルします。

SELECT
  [personal.age] AS age,
  [personal.gender] AS gender,
  [personal.name.first] AS name_first,
  [personal.name.last] AS name_last,
  [source],
  [vehicles]
FROM
  [people]
  

結果

データのドキュメントビューでは、personal エレメントが4カラムにフラット化され、source とvehicles エレメントが個別のカラムとして返され、結果として6カラムのテーブルが作成されます。

agegendername_firstname_lastsourcevehicles
20MJohnDoeinternet
  <vehicles><type>car</type><model>Honda Civic</model><insurance><company>ABC Insurance</company><policy_num>12345</policy_num></insurance><features>sunroof</features><features>rims</features><maintenance><date>07-17-2017</date><desc>oil change</desc></maintenance><maintenance><date>01-03-2018</date><desc>new tires</desc></maintenance></vehicles><vehicles><type>truck</type><model>Dodge Ram</model><insurance><company>ABC Insurance</company><policy_num>12345</policy_num></insurance><features>lift kit</features><features>tow package</features><maintenance><date>08-27-2017</date><desc>new tires</desc></maintenance><maintenance><date>01-08-2018</date><desc>oil change</desc></maintenance></vehicles>
24FJaneRobertsphone
  <vehicles><type>car</type><model>Toyota Camry</model><insurance><company>Car Insurance</company><policy_num>98765</policy_num></insurance><features>upgraded stereo</features><maintenance><date>05-11-2017</date><desc>tires rotated</desc></maintenance><maintenance><date>11-03-2017</date><desc>oil change</desc></maintenance></vehicles><vehicles><type>car</type><model>Honda Accord</model><insurance><company>Car Insurance</company><policy_num>98765</policy_num></insurance><features>custom paint</features><features>custom wheels</features><maintenance><date>10-07-2017</date><desc>new air filter</desc></maintenance><maintenance><date>01-13-2018</date><desc>new brakes</desc></maintenance></vehicles>

関連項目

  • 自動スキーマ検出:水平フラット化を使用してカラム検出を設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数 およびJSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

REST Connector for CData Sync

リレーショナルモデル

CData Sync App は、各XPath を主キーと親文書にリンクする外部キーを含む個別のテーブルとして扱うことで、データのリレーショナルモデルを作成するように設定できます。これは、リレーショナルデータモデルを想定している既存のBI、帳票、およびETL ツールでデータを処理する必要がある場合に特に役立ちます。

ネストされた配列をテーブルとして結合

DataModel を"Relational" に設定すると、どの結合もクエリによって制御されます。JOIN クエリを実行するときはいつでも、ファイルまたはソースはクエリに含まれる各テーブルに対して一度クエリされます。

例

以下は、XPath "/root/people"、"/root/people/vehicles"、および"/root/people/vehicles/maintenance" に基づくリレーショナルモデルを使用した、Raw データ のサンプルドキュメントに対するサンプルクエリです。

接続文字列

DataModel 接続プロパティを"Relational" に設定しXPath 接続プロパティを"/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;" に設定して、次のクエリを実行してサンプル結果セットを表示します。

URI=C:\people.txt;Format=XML;DataModel=Relational;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;'

クエリ

次のクエリは、people(人)、vehicle(車両)、maintenance(メンテナンス)テーブルを明示的に結合します。

SELECT 
  [people].[personal.age] AS age, 
  [people].[personal.gender] AS gender, 
  [people].[personal.name.first] AS first_name, 
  [people].[personal.name.last] AS last_name, 
  [people].[source], 
  [vehicles].[type], 
  [vehicles].[model], 
  [vehicles].[insurance.company] AS ins_company, 
  [vehicles].[insurance.policy_num] AS ins_policy_num, 
  [maintenance].[date] AS maint_date, 
  [maintenance].[desc] AS maint_desc
FROM 
  [people]
JOIN 
  [vehicles] 
ON 
  [people].[_id] = [vehicles].[people_id]
JOIN 
  [maintenance] 
ON 
  [vehicles].[_id] = [maintenance].[vehicles_id]

結果

サンプルクエリでは、各maintenance エレメントはその親vehicle エレメントに結合され、さらにその親people エレメントに結合されて8行のテーブルを作成します(2 people それぞれに2 vehicles で、それぞれに2 maintenance エントリ)。

agegenderfirst_namelast_namesourcetypemodelins_companyins_policy_nummaint_datemaint_desc
20MJohnDoeinternetcarHonda CivicABC Insurance123452017-07-17oil change
20MJohnDoeinternetcarHonda CivicABC Insurance123452018-01-03new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452017-08-27new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452018-01-08oil change
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-05-11tires rotated
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-11-03oil change
24FJaneRobertsphonecarHonda AccordCar Insurance987652017-10-07new air filter
24FJaneRobertsphonecarHonda AccordCar Insurance987652018-01-13new brakes

関連項目

  • 自動スキーマ検出:テーブルスキーマに報告されたカラムを設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数 およびJSON 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

REST Connector for CData Sync

自動スキーマ検出

デフォルトでは、Sync App は配列内の一連のREST オブジェクトを調べ、自動的にリレーショナルスキーマを提案します。このセクションでは、これらの動的スキーマを設定するために使用できる接続プロパティについて説明します。

テーブルの検出

このセクションでは、行スキャンを微調整することによって検出されたスキーマを微調整する方法を示します。 検出される行は、RowScanDepth、DataModel、およびXPath プロパティに依存します。

  • RowScanDepth:この設定は、列を検索してカラムを検出するためにスキャンするオブジェクト配列の数を指定します。このプロセスは、ネストされたオブジェクトに従って1つのオブジェクト配列を1行として数えます。
  • DataModel:オブジェクト配列をテーブルとしてどのように表示するかを選択します。 この設定はまた、スキャンされるオブジェクトにも影響します。Relational およびFlattenedDocuments 設定では、RowScanDepth アイテム内のすべてのオブジェクト配列(ネストされたものを含む)が検索されます。Document 設定では、最初のオブジェクト配列のみが検索されます。

  • XPath:公開するオブジェクト配列を明示的に指定します。DataModel がDocument に設定されている場合は、最上位のXPath を1つしか設定できないことに注意してください。さまざまなXPath 値を持つサンプルドキュメントにアクセスする例については、階層データの解析 を参照してください。

カラムの検出

検出プロセスで特定されるカラムはFlattenArrays およびFlattenObjects プロパティに依存します。FlattenObjects が設定されている場合(これがデフォルトです)、ネストされたオブジェクトは連続したカラムにフラット化されます。 例えば、次のドキュメントを考えましょう。

<company>
  <id>12</id>
  <name>Lohia Manufacturers Inc.</name>
  <address>
    <street>Main Street</street>
    <city>Chapel Hill</city>
    <state>NC</state>
  </address>
  <office>Chapel Hill</office>
  <office>London</office>
  <office>New York</office>
  <annual_revenue>35,600,000</annual_revenue>
</company> 
デフォルトのオブジェクトフラット化では、このドキュメントは次のカラムで表されます:

カラム名データ型サンプル値
idInteger12
nameStringLohia Manufacturers Inc.
address.streetStringMain Street
address.cityStringChapel Hill
address.stateStringNC
officeString<office>Chapel Hill</office><office>London</office><office>New York</office>
annual_revenueDouble35,600,000

FlattenObjects が設定されていない場合、address.street、address.city、およびaddress.state カラムは別々にはなりません。文字列型の住所カラムは一つのオブジェクトとして表されます。値は次のようになります:

<address><street>Main Street</street><city>Chapel Hill</city><state>NC</state></address>

FlattenArrays プロパティは配列の値をフラット化してそれぞれのカラムとするために使われます。これは、以下のoffice 配列の例のように、短い配列の場合にのみ推奨されます。

<office>London</office>
<office>Los Angeles</office>
FlattenArrays プロパティは2に設定して上の配列を次のように表すことができます:

カラム名データ型Example Value
office.0StringLondon
office.1StringLos Angeles

アンバウンドの配列をそのままにしておき、必要な際にXML 関数 を使ってデータを取り出すことをお勧めします。

REST Connector for CData Sync

フリーフォームクエリ

自動スキーマ検出 の説明にあるとおり、直感的なテーブルスキーマは非構造化REST データへのSQL アクセスを可能にします。スキーマのカスタマイズ では静的なテーブルを定義でき、データのリレーショナルビューでの緻密な制御を可能にします。例えば、報告されたデータ型を変更することができます。ただし、データのスキーマのビューに限定されるわけではありません。

どんなネストされた構造でもデータをフラット化せずにクエリできます。自動スキーマ検出 を介してアクセスできるあらゆるリレーションへは、アドホックなSQL クエリを使ってもアクセスが可能です。

拡張された射影構文

次のクエリのように、SELECT 句で、ドット表記を使用してデータへのXPath を指定します。

SELECT [personal.name.last], [personal.name.first], [vehicles.1.type], [vehicles.1.model] FROM people WHERE [personal.name.last] = 'Roberts' AND [personal.name.first] = 'Jane'

特定の配列エレメントへのパスを指定するには、エレメントの順序位置を指定します。配列のインデックスはゼロオリジンなので、上記のクエリは2番目の車両を取得します。

例

上記のクエリは、サンプルのRaw データ のpeople ドキュメントからカラム名を引きます。以下はpeople 配列からのperson オブジェクトです。

<?xml version="1.0" encoding="utf-8"?>
<root>
  <rootAttr1>rootValue1</rootAttr1>
  <people>
    <personal>
      <age>20</age>
      <gender>M</gender>
      <name>
        <first>John</first>
        <last>Doe</last>
      </name>
    </personal>
    <jobs>support</jobs>
    <jobs>coding</jobs>
    <vehicles>
      <type>car</type>
      <model>Honda Civic</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>sunroof</features>
      <features>rims</features>
      <maintenance>
        <date>07-17-2017</date>
        <desc>oil change</desc>
      </maintenance>
      <maintenance>
        <date>01-03-2018</date>
        <desc>new tires</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>truck</type>
      <model>Dodge Ram</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>lift kit</features>
      <features>tow package</features>
      <maintenance>
        <date>08-27-2017</date>
        <desc>new tires</desc>
      </maintenance>
      <maintenance>
        <date>01-08-2018</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>work</type>
      <zip>12345</zip>
    </addresses>
    <addresses>
      <type>home</type>
      <zip>12357</zip>
    </addresses>
    <source>internet</source>
  </people>
</root> 

接続文字列

次の接続文字列を使用すると、Sync App はネストされたデータをパースしません。データはクエリを実行すると処理されます。トップレベルオブジェクトのプロパティは、デフォルトのFlattenObjects 機能によって変わらずフラット化されます。 ネストされたデータはXML の集計として返されます。

URI=C:\people.txt;DataModel=Document;XPath='/root/people;'

クエリ

Raw データ ドキュメントのあらゆるネスト構造にカラムとしてアクセスできます。

SELECT [personal.name.last], [personal.name.first], [vehicles.1.type], [vehicles.1.model] FROM people WHERE [personal.name.last] = 'Roberts' AND [personal.name.first] = 'Jane'

配列のインデックスはゼロオリジンです。上記のクエリでは、サンプルperson のsecond vehicle を取得します。

結果

先のクエリは、次の結果を返します。

カラム名データ型サンプル値
personal.name.firstStringJane
personal.name.lastStringRoberts
vehicles.1.typeStringcar
vehicles.1.modelStringHonda Accord

REST Connector for CData Sync

垂直フラット化

垂直フラット化クエリを使用すると、ネストされたエレメントを個別のテーブルのように取得することが可能です。

垂直フラット化クエリ構文

FROM 句では、ドット表記を使用してネストされたエレメントにドリルダウンできます。

SELECT * FROM [people.vehicles] 

例

Raw データ ドキュメントの単一の配列エレメント(people 配列のperson オブジェクト)を考えてみましょう。

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<people>
  <personal>
    <age>20</age>
    <gender>M</gender>
    <name>
      <first>John</first>
      <last>Doe</last>
    </name>
  </personal>
  <vehicles>
    <type>car</type>
    <model>Honda Civic</model>
    <insurance>
      <company>ABC Insurance</company>
      <policy_num>12345</policy_num>
    </insurance>
    <maintenance>
      <date>07-17-2017</date>
      <desc>oil change</desc>
    </maintenance>
    <maintenance>
      <date>01-03-2018</date>
      <desc>new tires</desc>
    </maintenance>
  </vehicles>
  <vehicles>
    <type>truck</type>
    <model>Dodge Ram</model>
    <insurance>
      <company>ABC Insurance</company>
      <policy_num>12345</policy_num>
    </insurance>
    <maintenance>
      <date>08-27-2017</date>
      <desc>new tires</desc>
    </maintenance>
    <maintenance>
      <date>01-08-2018</date>
      <desc>oil change</desc>
    </maintenance>
  </vehicles>
  <source>internet</source>
</people>
</root> 
  

接続文字列

次の接続文字列を使用すると、Sync App はネストされたデータをパースしません。データはクエリを実行すると処理されます。デフォルトのFlattenObjects 機能により、トップレベルエレメントのプロパティはフラット化されます。ネストされたデータはXML の集計として返されます。

URI=C:\people.txt;DataModel=Document;XPath='/root/people;'

クエリ

垂直フラット化ではvehicles エレメントを別々のテーブルとして取得することを許可します。

SELECT * FROM [people.vehicles]
このクエリは、次のデータセットを返します。

featuresinsurance.companyinsurance.policy_nummaintenancemodeltype

<features>sunroof</features><features>rims</features>
ABC Insurance12345
<maintenance><date>07-17-2017</date><desc>oil change</desc></maintenance><maintenance><date>01-03-2018</date><desc>new tires</desc></maintenance>
Honda Civiccar

<features>lift kit</features><features>tow package</features>
ABC Insurance12345
<maintenance><date>08-27-2017</date><desc>new tires</desc></maintenance><maintenance><date>01-08-2018</date><desc>oil change</desc></maintenance>
Dodge Ramtruck

<features>upgraded stereo</features>
Car Insurance98765
<maintenance><date>05-11-2017</date><desc>tires rotated</desc></maintenance><maintenance><date>11-03-2017</date><desc>oil change</desc></maintenance>
Toyota Camrycar

<features>custom paint</features><features>custom wheels</features>
Car Insurance98765
<maintenance><date>10-07-2017</date><desc>new air filter</desc></maintenance><maintenance><date>01-13-2018</date><desc>new brakes</desc></maintenance>
Honda Accordcar

REST Connector for CData Sync

XML 関数

Sync App では、XML をカラム値として返すことができます。Sync App を使って、これらのカラム値においてSQL 関数を使用できます。次のセクションでは例を示します。参考のために文字列関数 を参照してください。 このセクションの例では、次の配列を使用します(XML オブジェクトと配列のパーシングについての詳細は階層データの解析 を参照してください)。

 
<grades>
  <student>
    <grade>A</grade>
    <score>2</score>
  </student>
  <student>
    <grade>A</grade>
    <score>6</score>
  </student>
  <student>
    <grade>A</grade>
    <score>10</score>
  </student>
  <student>
    <grade>A</grade>
    <score>9</score>
  </student>
  <student>
    <grade>B</grade>
    <score>14</score>
  </student>
</grades>

XML_EXTRACT

XML_EXTRACT でXML オブジェクトから個別の値を抜き出すことができます。次のクエリは、関数に第二引数として渡されたXML パスに基づいて、以下に示す値を返します。
SELECT Name, XML_EXTRACT(grades,'[0].grade') AS Grade, XML_EXTRACT(grades,'[0].score') AS Score FROM Students;

カラム名サンプル値
GradeA
Score2

XML_COUNT

XML_COUNT 関数はXML オブジェクト内のXML 配列のエレメント数を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定されたエレメント数を返します。
SELECT Name, XML_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;

カラム名サンプル値
NumberOfGrades5

XML_SUM

XML_SUM 関数は、XML オブジェクト内のXML 配列の数値の合計を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された合計値を返します。
SELECT Name, XML_SUM(score,'[x].score') AS TotalScore FROM Students;

カラム名サンプル値
TotalScore 41

XML_MIN

XML_MIN 関数は、XML オブジェクト内のXML 配列の最小値を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された最小値を返します。
SELECT Name, XML_MIN(score,'[x].score') AS LowestScore FROM Students;

カラム名サンプル値
LowestScore2

XML_MAX

XML_MAX 関数は、XML オブジェクト内のXML 配列の最大値を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された最大値を返します。
SELECT Name, XML_MAX(score,'[x].score') AS HighestScore FROM Students;

カラム名サンプル値
HighestScore14

REST Connector for CData Sync

JSON 関数

Sync App では、JSON ストラクチャーをカラム値として返すことができます。Sync App を使って、これらのJSON ストラクチャーにおいて標準SQL 関数を使用できます。このセクションの例では、次の配列を使用します。

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]

JSON_EXTRACT

JSON_EXTRACT でJSON オブジェクトから個別の値を抜き出すことができます。次のクエリは、関数に第二引数として渡されたJSON パスに基づいて、以下に示す値を返します。
SELECT Name, JSON_EXTRACT(grades,'[0].grade') AS Grade, JSON_EXTRACT(grades,'[0].score') AS Score FROM Students;

カラム名サンプル値
GradeA
Score2

JSON_COUNT

JSON_COUNT 関数はJSON オブジェクト内のJSON 配列のエレメント数を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定されたエレメント数を返します。
SELECT Name, JSON_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;

カラム名サンプル値
NumberOfGrades5

JSON_SUM

JSON_SUM 関数は、JSON オブジェクト内のJSON 配列の数値の合計を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された合計値を返します。
SELECT Name, JSON_SUM(score,'[x].score') AS TotalScore FROM Students;

カラム名サンプル値
TotalScore 41

JSON_MIN

JSON_MIN 関数は、JSON オブジェクト内のJSON 配列の最小値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最小値を返します。
SELECT Name, JSON_MIN(score,'[x].score') AS LowestScore FROM Students;

カラム名サンプル値
LowestScore2

JSON_MAX

JSON_MAX 関数は、JSON オブジェクト内のJSON 配列の最大値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最大値を返します。
SELECT Name, JSON_MAX(score,'[x].score') AS HighestScore FROM Students;

カラム名サンプル値
HighestScore14

REST Connector for CData Sync

スキーマのカスタマイズ

自動スキーマ検出 で検出されたテーブルスキーマをカスタマイズして、カラム名やデータ型を変更したり、更新機能を有効にしたりできます。CData Sync App の処理操作は、データの処理およびリモートデータソースとの通信の複雑さを解決しながら、カスタムスキーマを介してこれらのレイヤーを制御することも可能です。

カスタムスキーマは、コンフィギュレーションファイルで定義されます。この章では、これらのファイルの構造を概説します。

スキーマファイルの生成

スキーマファイルの生成 を使用すると、自動スキーマ検出 で検出された動的スキーマを永続化およびカスタマイズできます。

スキーマファイルの編集

テーブルとビューは、APIScript でスキーマファイルを作成することによって定義されます。APIScript は、テーブルのカラムとその動作を定義するシンプルなAPIScript コンフィギュレーション言語にて書かれています。また、REST を処理可能にするビルトインオペレーションがあります。これらのデータ処理構造に加えて、APIScript は、条件分岐やループなどに対応して構成されているフル機能の言語です。ただし、サンプルスキーマに示すように、ほとんどのテーブル定義ではこれらの機能を使用する必要はありません。

スキーマ例

以下は、Raw データ 例のpeople ドキュメントをモデル化し、SQL をJSON/XML データソースに実行するために必要なすべてのコンポーネントを含む、完全に機能的なテーブルスキーマです。

スキーマは次の接続文字列を反映します。これにより、指定されたXPaths によって記述されたデータを含む単一のテーブルが返されます。異なるDataModel 設定についてのガイドは、階層データの解析 を参照してください。

DataModel=FLATTENEDDOCUMENTS;URI=C:\people.xml;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance';Location=C:\myschemas;GenerateSchemaFiles=OnStart;Format=XML;

スキーマの各コンポーネントの詳細は、カラム定義、SELECT 実行、INSERT 実行、UPDATE 実行、およびDELETE 実行 で確認できます。ストアドプロシージャを作成して、SELECT、INSERT、UPDATE、またはDELETE ステートメントとしてモデル化できないAPI の機能を実装することもできます。詳しくは、ストアドプロシージャの定義 を参照してください。

  <api:script>
     <api:info title="Persons" desc="Parse the OData Persons feed.">
    <!-- You can modify the name, type, and column size here. -->
    <!-- See Column Definitions to specify column behavior and use XPaths to extract column values from XML. -->
      <attr name="ID"           xs:type="int" key="true" readonly="false"   other:xPath="/feed/entry/content/properties/ID" />
      <attr name="EmployeeID"   xs:type="int"            readonly="true"    other:xPath="/feed/entry/content/properties/EmployeeID" />
      <attr name="Name"         xs:type="string"         readonly="false"   other:xPath="/feed/entry/content/properties/Name" />
      <attr name="TotalExpense" xs:type="double"         readonly="true"    other:xPath="/feed/entry/content/properties/TotalExpense" />
      <attr name="HireDate"     xs:type="datetime"       readonly="true"    other:xPath="/feed/entry/content/properties/HireDate" />
      <attr name="Salary"       xs:type="int"            readonly="true"    other:xPath="/feed/entry/content/properties/Salary" />
    </api:info>
    
    <api:set attr="uri" value="http://services.odata.org/V4/OData/(S(5cunewekdibfhpvoh21u2all))/OData.svc/Persons" /> 
  
    <!-- The XPath attribute of a schema is the path to a repeating element that defines the separation of rows -->
    <api:set attr="XPath" value="/feed/entry/" />
  
    <!-- See the xmlproviderGet page in the Operations subchapter to set any needed HTTP parameters. -->
    <api:set attr="ContentType"   value="application/atom+xml" />
  
  <!-- The GET method corresponds to SELECT. Here you can change the parameters of the request for data. The results of processing are pushed to the schema's output. See SELECT Execution for more information. -->
  <api:script method="GET">
    <api:call op="xmlproviderGet">
      <api:push/>
    </api:call>
  </api:script>
  
  <!-- To add support for INSERTS please see the INSERT Execution page within the help for further information and examples. -->
  <api:script method="POST">
    <api:set attr="method" value="POST"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Inserts are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  <!-- To add support for UPDATES please see the UPDATE Execution page within the help for further information and examples. -->
  <api:script method="MERGE">
    <api:set attr="method" value="PUT"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Updates are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  <!-- To add support for DELETES please see the DELETE Execution page within the help for further information and examples. -->
  <api:script method="DELETE">
    <api:set attr="method" value="DELETE"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Deletes are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  </api:script> 

REST Connector for CData Sync

スキーマファイルの生成

自動スキーマ検出 を使用して動的に検出されたスキーマをより細かく制御するには、スキーマをコンフィギュレーションファイルに保存することができます。GenerateSchemaFiles プロパティを使用すると、接続文字列で設定されたデータモデリング設定に基づいてスキーマを自動的に生成できます。CreateSchema ストアドプロシージャを使用すると、接続後に他のXPath のスキーマを作成できます。

スキーマファイルの自動生成

接続時、もしくはクエリ実行時にスキーマを生成することができます。Sync App は、Location で指定したフォルダにスキーマを保存します。

  • 接続時に検出されたすべてのテーブルのスキーマを生成するには、GenerateSchemaFiles をOnStart に設定します。
  • テーブルをクエリするときに参照されるテーブルのスキーマを生成するには、GenerateSchemaFiles をOnUse に設定します。

CreateSchema ストアドプロシージャの使用

CreateSchema ストアドプロシージャを呼び出して、指定したXPaths のスキーマファイルを生成できます。以下は、ストアドプロシージャの入力と出力です。

Input

Name Type Description
TableName String テーブル名およびスキーマ(RSD)ファイル名。
URI String リソースのUniform Resource Identifier (URI)。
XPath String ドキュメント内で同じ階層で繰り返すエレメントのXPath。(これは、ドキュメントを複数の行に分割するために使われます)。複数のパスをセミコロン区切りリストで指定します。
FileLocation String 生成されたスキーマ(RSD)ファイルが保存されるフォルダパス。指定された場合には、TableName はスキーマファイル名として使われます。
FileName String 生成されたスキーマの完全なスキーマ(RSD)ファイル名。このインプットはFileLocation よりも優先されます。

Output

Name Type Description
Result String Success またはFailure を返します。

ストアドプロシージャ呼び出しの例

接続文字列のDataModel をFLATTENDOCUMENTS に設定すると、下のサンプルストアドプロシージャコールでは、すべてのXPath 配列を単一テーブルにフラット化するスキーマが生成されます。

このデータモデルについて詳しくは、フラット化されたドキュメントモデル を参照してください。

EXECUTE CreateSchema TableName='GenPeople', 
FileLocation='C:\\tests\\scripts', 
URI='C:\\tests\\people.xml', 
XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance'

次のステップ

  • カラム定義:カラム名とデータ型またはXPath を、カラムの値に変更します。
  • SELECT 実行:HTTP リクエストにアクセスします。例えば、サーバサイドの検索を実装します。
  • INSERT 実行:INSERT ステートメントからの入力をHTTP リクエストにマッピングすることで挿入を有効にします。
  • UPDATE 実行:更新されたカラムの値をHTTP リクエストにマッピングすることで更新を有効にします。
  • DELETE 実行:主キーをHTTP リクエストにマッピングすることで削除を有効にします。

REST Connector for CData Sync

カラム定義

カラムの基本属性は、カラム名、データ型、カラムが主キーかどうか、およびXPath です。Sync App は、XPath を使って階層構造データのノードを取得します。

スキーマファイルのapi:info ブロックにカラム属性をマークアップします。以下の例で示すように、other:xPath プロパティにXPath を設定します。また、desc プロパティを使用して各属性の説明を提供することもできます。

<api:info title="Persons" desc="Parse the OData Persons feed.">
    <attr name="ID"           xs:type="int" key="true" readonly="false"   other:xPath="content/properties/ID" desc="The ID associated with an individual person." />
    <attr name="EmployeeID"   xs:type="int"            readonly="true"    other:xPath="content/properties/EmployeeID" desc="The employee ID associated with the person." />
    <attr name="Name"         xs:type="string"         readonly="false"   other:xPath="content/properties/Name" desc="The name of the person." />
    <attr name="TotalExpense" xs:type="double"         readonly="true"    other:xPath="content/properties/TotalExpense" desc="The total experience associated with the person." />
    <attr name="HireDate"     xs:type="datetime"       readonly="true"    other:xPath="content/properties/HireDate" desc="The hire date of the person." />
    <attr name="Salary"       xs:type="int"            readonly="true"    other:xPath="content/properties/Salary" desc="The salary of the person." />
  </api:info>
次のセクションでは、XPath を使用してカラムと行を抽出する方法について詳しく説明します。完全なスキーマでカラム定義を見るには、スキーマのカスタマイズ を参照してください。

カラムXPath の定義

other:xPath プロパティは、カラム値を取得するXPath を指定するために使われます。

絶対パスは'/' で始まり、ネストされたデータへのフルXPath を含みます。

<attr name="ID"           xs:type="int" key="true" other:xPath="/feed/entry/content/properties/ID" desc="The ID associated with the person." /> 

インデックスされたXPath 値は、同じ名前の複数のエレメントが同じレベルにネストされている場合、ドキュメント内のエレメントを指定するために使われます。インデックスはゼロベースです。

<api:info>
  <attr name=PhoneNumber1 xs:type="string" other:xPath="Person/PhoneNumber[0]" desc="The person's phone number." />
  <attr name=PhoneNumber2 xs:type="string" other:xPath="Person/PhoneNumber[1]" desc="The person's phone number." />
</api:info>

Notes:

  • XPath およびカラム名(XPath の生成に使われた場合)は、大文字・小文字の区別があります。
  • XPath の外に指定されたパスは、最後にプッシュされた行を除いて(その場合は見つかったすべてのパスがプッシュされます)、行(XPath )が見つかる前に見つかった場合にのみ取得されます。これは、各行がストリーミング方式でプッシュされているためです。

行XPath の定義

行XPath は、同じ階層で繰り返すエレメントへのパスを指定します。これはSync App が行に分割するオブジェクト配列です。DataModel をFlattenedDocuments またはRelational に設定すると、複数のXPath をセミコロン区切りのリストで指定できます。これらのデータモデリングストラテジーのガイドについては、階層データの解析 を参照してください。

接続文字列でXPath プロパティを定義するか、行XPath を個々のスキーマの属性として定義できます。api:set キーワードを使用して、スキーマの行のXPath を定義します。DataModel をFlattenedDocuments またはRelational に設定すると、複数のXPath をセミコロン区切りのリストで指定できます。

<api:set attr="XPath" value="/root/people;/root/people/vehicles;/root/people/vehicles/maintenance" /> 

ワイルドカードのXPath はすべてのXPath が同じ階層にあるが異なる名前を含む場合には有効です。

<api:set  attr="XPath" value="/feed/*" />

カラム値形式を定義

other:valueFormat プロパティを"aggregate" に設定して、カラムを集計として識別することができます。

  • aggregate オプションは、指定されたXPath において見出される集計を返します。例えば、次を考えてみましょう:
        <repeat>
        <name>TestAggregate</name>
        <myobjcol1>
          <object1>myData</object1>
          <object1>myData1</object1>
          <object2>myData2</object2>
        </myobjcol1>
        </repeat>
        
    次の例では、myobjcol1 エレメントをMyObjCol1 という名前のカラムに抽出します。
        <api:info>
          <attr name="MyObjCol1" xs:type="string" other:xPath="myobjcol1" other:valueFormat="aggregate" desc="An object column." />
        </api:info>
        <api:set attr="XPath" value="/repeat"/>
        
    カラム値は次のようになります。
        <myobjcol1>
          <object1>myData</object1>
          <object1>myData1</object1>
          <object2>myData2</object2>
        </myobjcol1>
        

SELECT 抽出条件のクエリパラメータへのマッピング

一部のAPI では、クエリパラメータを指定することでリクエスト結果をフィルタリングできます。このパラメータがWHERE 句にマップされている場合は、other:filter プロパティを使用してこのマッピングをプログラムできます。

  • other:filter は、<parameter name>:<operator list> のセミコロン区切りリストです。<parameter name> はクエリパラメータの名前、<operator list> はマッピングに使用される演算子のカンマ区切りのリストです。有効な演算子は<、<=、=、>、>=、およびLIKE です。

以下は、2つのクエリパラメータ'modifiedSince' および'modifiedBefore' の例です。'modifiedAt' カラムに基づいて結果をフィルタ処理します。

    <attr name="ModifiedAt"           xs:type="datetime" readonly="false"   other:xPath="content/properties/modifiedAt" other:filter="modifiedBefore:<;modifiedSince:>,>=,=" desc="Datetime when last modified." />
    

この例では、次のクエリステートメントを使用します。

SELECT * 
FROM <table> 
WHERE modifedAt < '<datetime>'
そして、クエリパラメータ'&modifiedBefore=<url encoded datetime>' をURL に追加するリクエストを生成します。

REST Connector for CData Sync

SELECT 実行

SELECT クエリが発行されると、Sync App は、スキーマのGET メソッドを実行します。GET メソッドは、Sync App の組み込みオペレーションを呼び出しREST を処理します。 GET メソッドを呼び出すことで、データのリクエストを制御できます。

以下の手順は、データのリクエストに対して制御を加えるいくつかの方法を示しています。

  • SELECT WHERE を使用して、リモートサーバー側のデータを検索
  • LIMIT を使用して、サーバーから返される結果を制限
  • ページングを実装

クエリ処理

デフォルトで、Sync App は、クライアント側でクエリを処理します。ローカルでSELECT ステートメントを実行するために必要な設定は、XPath およびURI 接続プロパティだけです。

(Sync App は、その他のクエリをクライアント側で処理する間に、サポートされているクエリをサーバーにオフロードすることもできます。 これらのフィルタをサーバーにプッシュすると、LIMIT、JOIN、GROUP BY、ORDER BY といったクエリの後半の段階を最適化できます。)

REST へのSelect の実行

以下の手順で、クライアント側で処理されたSQL-92 クエリを実行できるスクリプトを構築する方法を説明します。 データ処理操作を呼び出す前に、URI、およびオプションでXPath を指定する必要があります。 api:set キーワードを使って、これらの属性を宣言します。

  1. URI 属性を、ローカルファイルまたはHTTP アクセス可能なアドレスに設定します。

    <api:set  attr="uri"                      value="NorthwindOData.xml" /> 

  2. 必要であれば、XPath 属性を、個々の行を構成するデータのXPath に設定します。 デフォルトでは、Sync App はドキュメントをスキャンして行を検出します(階層データの解析 を参照)。

    <api:set  attr="XPath" value="/feed/entry/" /> 

  3. GET メソッドで処理を呼び出します。スクリプトブロック内でapi:push キーワードを使用して処理を呼び出します。op パラメータを使って処理を指定します。このキーワードは、処理の結果をスキーマの出力にプッシュします。

    <api:script method="GET">
      <api:set attr="method" value="GET"/>
      <api:set attr="uri" value="[uri]?$format=atom"/>
      <api:call op="xmlproviderGet">
        <api:push />
      </api:call>
    </api:script>

結果のスクリプトを拡張して、サーバー側の要求を処理するためのサポートを追加できます。

サーバー上でSELECT WHERE を処理

このセクションでは、SELECT WHERE ステートメントをREST API に対する検索リクエストに変換する方法を示します。 プロシージャは次のステートメントを使用します。

SELECT * 
FROM <table> 
WHERE modifedAt < '2017-10-10' AND modifedAt > '2017-09-01'

サーバーがクエリパラメータを介してこのフィルタをサポートする場合は、api:info カラム定義のother:filter プロパティを使用して、希望するマッピングを指定できます。 上記のクエリでは、このプロパティを使用して、modifiedAt < '<date>' フィルタを特定の日付より前に修正された結果を返すクエリパラメータにマッピングし、modifedAt > '<date> フィルタを、その日付以降に修正された結果をフィルタリングするクエリパラメータに使用できます。

other:filter はセミコロン区切りリストで、フォーマットは以下のとおりです:<parameter name>:<operator list>

  • <parameter name> はクエリパラメータの名前
  • <operator list> はマッピングに使用される演算子のカンマ区切りのリスト

有効な演算子は<、<=、=、>、>=、およびLIKE です。

このマッピングを実行するには、modifedAt カラム定義に次のマークアップを使用します:

    <attr name="modifiedAt"           xs:type="datetime" readonly="false"   other:xPath="content/properties/modifiedAt" other:filter="modifiedBefore:<;modifiedSince:>" />
    

このクエリは次のリクエストになります:

[url]?modifedBefore=2017-10-10&modifedSince=2017-09-01

API フィルタがクエリパラメータで渡されない場合は、スクリプトで渡す必要があります。 例えば、/persons/{name}/data endpoint をクエリして名前でフィルタするAPI を考えてみましょう。

SELECT *
FROM Persons 
WHERE (Name = 'Fran Wilson') 

スキーマのGET メソッドでは、Items in API Script のいずれかの_input アイテムの属性を使用して検索条件にアクセスし、HTTP データ取得要求を作成します。 対応する以下のスクリプトはリクエストを作成します。

api:check 要素は、その値にアクセスを試みる前に、属性の有無をチェックするのに便利です。さまざまなValue Formatters を使用して、URL エンコードのような変換を行うことができます。

<api:script method="GET">
  <api:check attr="_input.Name">
    <api:set attr="uri" value="[uri]/[_input.name|urlencode]/data"/>
  </api:check>
</api:script>

疑似カラムによる検索

結果に戻されたカラム以外の入力を使用して検索条件を作成したい場合、WHERE 句に疑似カラムを指定できます。

例えば、Weather Underground API は、指定された場所の予測を返すことをサポートしています。 Location 自体は予測データの一部ではなく、以下のリクエストのようにリクエストURI に指定されます。

http://api.wunderground.com/api/{MyAPIKey}/hourly/q/{MyLocation}.xml 

例えば、次のSQL クエリは、zip code 27516のフォーキャストを取得します。

SELECT * FROM Hourly WHERE Location="27516"

上記のクエリを実装するために、以下のようにLocation 疑似カラムを追加します。

  1. ロケーション入力パラメータをapi:info ブロックのカラム定義に追加します。 (Location は必須です。指定されていない場合、Sync App はエラーを返します。)
    <api:info>
      ...
      <input  name="Location"                 required="true"/>
    </api:info>
  2. URI を構築するには、_input アイテムのLocation 属性を参照します。
    <api:set attr='uri' value="http://api.wunderground.com/api/[_connection.APIKey]/hourly/q/[_input.Location].xml"/>
  3. リクエストを行いレスポンスを処理するには、処理を呼び出します。
    <api:script method="GET" >
      <api:push op="xmlproviderGet"/>
    </api:script> 

ページングの実装

自動ページングをサポートするには、Rows@Next 入力をapi:info ブロックのカラムリストに追加します。

<input name="rows@next" desc="Identifier for the next page of results. Do not set this value manually." />
これをattr パラメータではなくinput パラメータにすると、 カラムリストに情報が表示されなくなります。ドライバーの内部ページングメカニズムを無効にするには、EnablePaging 属性をFALSE に設定する必要があります。
<api:set attr="EnablePaging" value="TRUE" />

ドライバーは以下の4種類のページング実装を自動的にサポートします。

  • 次のページのURL がレスポンスに返される場合
  • クエリに現在のページオフセットを指定するパラメータが含まれる場合
  • 次のリクエストのクエリパラメータにページトークンを送信する場合
  • クエリに現在のページ番号を指定するパラメータが含まれる場合

これらの実装について、以下のセクションで説明します。

次ページのURL によるページング

サービスが次のページのURL をレスポンスボディやヘッダに返すときは、'pageurlpath' 属性をこのデータの場所に設定します。 この場所に値が存在する場合は、次のリクエストのURL を設定するために使用されます。

次ページのURL がレスポンスボディに渡される場合は、'pageurlpath' をエレメントのXPath に設定します。

<api:set  attr="pageurlpath"                             value="/data/nextPage" /> 

次ページのURL が'Link' ヘッダとともにレスポンスヘッダに渡される場合は、'pageurlpath' の前にheader: を付けてその場所を示すことができます。

<api:set  attr="pageurlpath"                             value="header:Link" /> 

レコードオフセットによるページング

サービスがページングを制御するレコードオフセットクエリパラメータを提供する場合は、オフセットクエリパラメータの名前、ページサイズクエリパラメータの名前、および渡されるページサイズを設定できます。 これを制御するパラメータがない場合は、ページサイズパラメータを設定する必要はありません。ただし、その場合はpagesize をデフォルトのページサイズに設定する必要があります。

<api:set  attr="pageoffsetparam"                      value="offset" /> 
<api:set  attr="pagesizeparam"                        value="limit" /> 
<api:set  attr="pagesize"                             value="100" /> 
pageoffsetparam とpagenumberparam には、開始ページを指定することもできます。次に例を示します。
<api:set  attr="pageoffsetparam"  value="offset" />
次のようになります。
URI?offset=0<OtherParams>
オフセット値を1に設定します。
<api:set  attr="pageoffsetparam"   value="offset;1" />
次のようになります。
URI?offset=1<OtherParams>

ページ番号によるページング

レコードオフセットと同様に、サービスがページ番号を設定するクエリパラメータを提供する場合は、ページ番号クエリパラメータの名前、ページサイズクエリパラメータの名前、および渡されるページサイズを設定できます。 これを制御するパラメータがない場合は、ページサイズパラメータを設定する必要はありません。ただし、その場合はpagesize をデフォルトのページサイズに設定する必要があります。

<api:set  attr="pagenumberparam"                      value="page" /> 
<api:set  attr="pagesizeparam"                        value="pagesize" /> 
<api:set  attr="pagesize"                             value="100" /> 

トークンによるページング

レスポンスボディにトークンが返される場合、トークンは'pagetokenparam' および'pagetokenpath' 属性を介して、後続リクエストでページングパラメータに渡される必要があります。 'pagetokenpath' はエレメントのXPath に設定する必要があります。

他のページがあるかどうかを示す変数を送信するサービスもあります。その場合は、'hasmorepath' 属性をXPath に設定することもできます。

ページトークンがクエリパラメータで渡される場合は、'pagetokenparam' をパラメータの名前に設定します。

<api:set  attr="pagetokenpath"                        value="/data/token" /> 
<api:set  attr="hasmorepath"                          value="/data/has_more" /> 
<api:set  attr="pagetokenparam"                       value="nextpagetoken" /> 
has_more がtrue の場合、これは/data/token にあるトークンを次のクエリに渡します:?nextpagetoken=<token>

トークンをリクエストボディに渡す必要がある場合、'pagetokenparam' をそのXPath に設定します。

<api:set  attr="pagetokenpath"                        value="/request/nextpagetoken" /> 

他のページングの種類

API が説明したページングパターンのどれにも従わない場合は、カスタムページング実装が必要になります。 最初のページから必要な情報を'Rows@Next' 属性に設定します。出力に'Rows@Next' 値が設定されている場合、このページのすべての結果が返された後、Sync App は入力に'Rows@Next' 値を使用してこのメソッドを自動的に再度呼び出します。

この入力の値を使用して、次のパスのリクエストを変更して、次ページのデータを取得することができます。次ページのデータをリクエストするために必要なあらゆる情報にRows@Next 入力を設定します。

例えば、API がレスポンスに次のページのURL を返す場合、URL にXPath を指定することでこの値を取得できます。

<api:set  attr="elementmappath#"  value="/next_page" />
<api:set  attr="elementmapname#"  value="rows@next" /> 
値が設定されている場合は、リクエストが行われたURL を変更できます。api:check エレメントを使用して、Rows@Next 入力が値を持つかどうかを最初にチェックします。Rows@Next 入力は、_input アイテムの属性としてアクセスできます。
<api:check attr="_input.rows@next">
  <api:set  attr="uri"  value="[_input.rows@next]" />
  <api:else>
    <api:set  attr="uri"  value="<first page's URL>" />
  </api:else>
</api:check> 

他のSELECT ステートメントをサーバー側で処理

任意のHTTP 要求をGET メソッドで作成できます。SELECT クエリの他のコンポーネントにアクセスするには、_query アイテムを使用します。次の表は、Sync App に発行されたクエリを説明するGET メソッド_query アイテムの属性を示します。

querySQL クエリ。次に例を示します。
SELECT Id, Name FROM Accounts WHERE City LIKE '%New%' AND COUNTRY = 'US' GROUP BY CreatedDate ORDER BY Name LIMIT 10,50;
selectcolumnsSELECT ステートメントで指定されたカラムを含むカンマ区切りのリスト。例えば、Id およびName カラムです。
tableSELECT ステートメントで指定されたテーブル名。例えば、Accounts です。
criteriaステートメントのWHERE 句。
City LIKE '%New%' AND COUNTRY = 'US'
orderbyORDER BY 句で指定されたカラム。例えば、Name です。
groupbySELECT ステートメントのGROUP BY 句。例えば、CreatedDate です。
limitSELECT ステートメントのLIMIT またはTOP 句で指定されたリミット。例えば、50 です。
offsetSELECT ステートメントのLIMIT またはTOP 句で指定されたオフセット。例えば、10 です。
isjoinクエリが結合かどうか。
jointable結合するテーブル。
isschemaonlyクエリがスキーマ情報のみを取得するかどうか。

サーバー上でLIMIT を処理

API がサポートしている場合は、LIMIT 句を実装して、サーバーから取得する必要がある結果の数を制限できます。

API リクエストを作成するときに、_query アイテムのlimit 属性の値を参照します。OData API では、$top クエリ文字列パラメータを使用して制限を指定できます。以下に示します。

http://services.odata.org/V3/Northwind/Northwind.svc/Customers?$top=10

以下は対応するスクリプトです。

<api:check attr="_query.limit">
  <api:set  attr="uri"      value="http://services.odata.org/V3/Northwind/Northwind.svc/Customers?$top=[_query.limit]" />
</api:check> 

キーワードリファレンス

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:call
  • api:push
  • api:info
  • api:check
  • api:set

REST Connector for CData Sync

INSERT 実行

INSERT ステートメントが実行されると、Sync App は、スキーマのPOST メソッドを実行し、HTTP 挿入リクエストを作成します。

REST へのInsert の実行

POST メソッドでは、Items in API Script の1つである_input アイテムに、挿入するカラムが含まれます。 例えば、次のステートメントを考えてみましょう。

INSERT INTO Persons
(Name, Id)
VALUES
('Maria Anders','7') 

_input アイテムの属性を使用して、HTTP 挿入リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP POST です。OData API で先の挿入を行うためのPOST データは次のとおりです。

<entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
  <content type="application/xml">
    <m:properties>
      <d:Name m:type="Edm.String">Maria Anders</d:Name>
      <d:ID m:type="Edm.Int32">7</d:ID>
    </m:properties>
  </content>
</entry>
サンプルスキーマの対応するPOST メソッドでは、必須カラムが最初に検証され、それからPOST データを定義するために使用されます。カラムが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。

必要な属性が存在することを検証したら、POST データにカラムの値を設定できます。"data" 属性をPOST データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

<api:script method="POST">
    <api:set attr="method" value="POST"/>
    <api:validate attr="_input.Name" desc="Name and Id are required to insert." />
    <api:validate attr="_input.Id" desc="Name and Id are required to insert." />
    <api:set attr="data">
      <entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
        <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
        <content type="application/xml">
          <m:properties>
            <d:Name m:type="Edm.String">[_input.Name]</d:Name>
            <d:ID m:type="Edm.Int32">[_input.Id]</d:ID>
          </m:properties>
        </content>
      </entry>
    </api:set>
    <api:call op="xmlproviderGet"/>
  </api:script>
  
INSERT 構文はデータを返すことがあります。例えば、新しいレコードからの発行されたId です。挿入から返された値にアクセスしたい場合には、api:callキーワードの代わりにapi:push キーワードを使います。

INSERT ステートメントのコンポーネントへのアクセス

POST メソッドでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
INSERT INTO Account (account_name, account_type) VALUES ('Contoso','Company')
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:call

REST Connector for CData Sync

UPDATE 実行

UPDATE ステートメントが実行されると、Sync App はスキーマのMERGE メソッドを実行し、HTTP 更新リクエストを作成します。

このメソッドの詳細な例を見るには、スキーマのカスタマイズ を参照してください。

REST へのUpdate の実行

MERGE メソッドでは、Items in API Script の1つである_input アイテムに、更新するカラムが含まれます。例えば、次のステートメントを考えてみましょう。

UPDATE Persons 
SET Name='Ana Trujilo'
WHERE Id = '7' 

_input アイテムの属性を使用して、HTTP 更新リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP OUT またはPATCH です。OData API で先の更新を行うためのPUT データは次のとおりです。

<entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
  <id>http://services.odata.org/V4/OData/%28S%28tjlj1hwyun3kt2iv0ef21c2d%29%29/OData.svc//Persons(ID=4)</id>
  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
  <content type="application/xml">
    <m:properties>
      <d:ID m:type="Edm.Int32">4</d:ID>
        <d:Name m:type="Edm.String">Ana Trujilo</d:Name>
    </m:properties>
  </content>
</entry>
サンプルスキーマの対応するMERGE メソッドでは、必須カラム、主キーが検証され、その後PUT データおよびURL で使用されます。インプットが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。

必要な属性が存在することを検証したら、PUT データにカラムの値を設定できます。"data" 属性をPUT データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

<api:script method="MERGE">
  <api:set attr="method" value="PUT"/>
  <api:validate attr="_input.Id" desc="An Id is required to update." />
  <api:set attr="data">
    <entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
      <api:set attr="uri" value="[uri]([_input.Id])" />
      <id>[uri]</id>
      <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
      <content type="application/xml">
        <m:properties>
          <d:ID m:type="Edm.Int32">[_input.Id]</d:ID>
          <api:check attr="_input.Name">
            <d:Name m:type="Edm.String">[_input.Name]</d:Name>
          </api:check>
        </m:properties>
      </content>
    </entry>
  </api:set>
  <api:call op="xmlproviderGet"/>
</api:script>

UPDATE ステートメントのコンポーネントにアクセス

MERGE メソッドでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
UPDATE Account SET Name='John' WHERE Id = @myId
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。
criteriaステートメントのWHERE 句。例えば、この例では次のWHERE 句です。
Id = @myId
nullupdatesnull 値またはnull パラメータ値を含む、UPDATE ステートメントのカンマ区切りのカラム。

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:check
  • api:call

REST Connector for CData Sync

DELETE 実行

DELETE ステートメントが実行されると、Sync App は、スキーマのDELETE メソッドを実行し、HTTP 削除リクエストを作成します。

このメソッドの詳細な例を見るには、スキーマのカスタマイズ を参照してください。

REST へのDelete の実行

DELETE メソッドでは、Items in API Script の1つである_input アイテムに、削除するレコードの主キーが含まれます。 例えば、次のステートメントを考えてみましょう。

DELETE FROM Persons WHERE Id = '7'

以下は、OData API の対応する削除リクエストです。

DELETE myapi.com/Persons(7)

以下の対応するDELETE メソッドでは、必須カラム、主キーが最初に検証され、それからHTTP DELETE リクエスト内のURI を変更するために使用されます。

<api:script method="DELETE">
  <api:set attr="method" value="DELETE"/>
  <api:validate attr="_input.Id" desc="An Id is required to delete." />
  <api:set attr="uri" value="[uri]([_input.Id])" />
  <api:call op="xmlproviderGet"/>
</api:script>
  

インプットが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。主キー属性が存在することを確認したら、リクエストURL に主キーを指定できます。api:set キーワードを使ってURI 値を設定します。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、メソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

DELETE ステートメントのコンポーネントへのアクセス

DELETE スクリプトでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
DELETE FROM Account WHERE Id = @myId
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。
criteriaステートメントのWHERE 句。例えば、この例では次のWHERE 句です。
Id = @myId

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:call

REST Connector for CData Sync

Raw データ

以下は、カスタムスキーマの例で使用されているPersons XML ドキュメントの構造です。このデータは、odata.org Northwind テストサービスからのXML 応答の簡易版です。このサービスは、XML ベースのREST API に対するデータ操作のデモンストレーションに使用されます。

 
<values odata.context="http://services.odata.org/V4/OData/OData.svc/$metadata#Persons">
  <value>
    <ID>0</ID>
    <Name>Paula Wilson</Name>
  </value>
  <value>
    <ID>1</ID>
    <Name>Jose Pavarotti</Name>
  </value>
  <value>
    <ID>2</ID>
    <Name>Art Braunschweiger</Name>
  </value>
  <value odata.type="#ODataDemo.Customer">
    <ID>3</ID>
    <Name>Liz Nixon</Name>
    <TotalExpense>99.99</TotalExpense>
  </value>
  <value odata.type="#ODataDemo.Customer">
    <ID>4</ID>
    <Name>Liu Wong</Name>
    <TotalExpense>199.99</TotalExpense>
  </value>
  <value odata.type="#ODataDemo.Employee">
    <ID>5</ID>
    <Name>Jaime Yorres</Name>
    <EmployeeID>10001</EmployeeID>
    <HireDate>2000-05-30T00:00:00Z</HireDate>
    <Salary>15000</Salary>
  </value>
  <value odata.type="#ODataDemo.Employee">
    <ID>6</ID>
    <Name>Fran Wilson</Name>
    <EmployeeID>10002</EmployeeID>
    <HireDate>2001-01-02T00:00:00Z</HireDate>
    <Salary>12000</Salary>
  </value>
</values>

REST Connector for CData Sync

クエリスライサー

クエリスライサーのロジックは、Sync App がIN 句を使用して、各フィルタ値に対して別々のリクエストをプッシュダウンすることを可能にします。

これにより、Sync App はクライアントサイドのフィルタリングを回避できます。

クエリスライサーロジックの設定

クエリスライサーのロジックを実装するRSD を開きます。

以下のapiscript 例を参照してください。これはXML/JSON オペレーションではなく、restadoGet オペレーションで使用する必要があります。

<api:info title="queryslicer" desc="Generated schema file." other:queryslicercolumn="flight_number2222" xmlns:other="http://apiscript.com/ns?v1">

<attr name="flight_number2222"                   xs:type="integer"  readonly="false"              other:xPath="/json/flight_number"   other:filter="{flight_number2222}"  />

<api:check attr="_input.flight_number2222">
  <api:set attr="uri" value="[uri]?flight_number={flight_number2222}"/>
</api:check>

この設定では、次のクエリはフィルタ値ごとに別々のリクエストを動的に渡すようになります。

SELECT * FROM launches WHERE flight_number2222 IN ('1', '2', '3')
さらに、フィルタのサブSELECT クエリを使用して、フィルタの動的リストを渡すことができます。
SELECT * FROM launches WHERE flight_number2222 IN (SELECT flightId FROM flights)

この関数を機能させるには、子テーブルのRSD のみにother:queryslicercolumn="flight_number2222" を設定する必要があります。

制限事項と考慮事項

スクリプトでは、スライスされたインプットにアクセスする場所のほとんどは、単一の要素を返しません。例えば、ID フィールドのスライスされた値にアクセスしようとして、GET ブロックの中で次のようなことを行うとします。

<api:set attr="URI" value="http://example.com/[_input.id]" />

これは機能せず、単一のID ではなく完全なSQL リスト(例:http://example.com/(1, 2, 3))を含むURL を返します。

スクリプト内でスライスされたID を使用できるのはURI だけで、それはスライスされたインプットが実際に使用可能になる後の段階で中括弧のビットが展開されるためです。

<api:set attr="URI" value="http://example.com/{id}" />

REST Connector for CData Sync

ストアドプロシージャの定義

ストアドプロシージャはデータソースのファンクションライクなインターフェースです。データの検索、変更、削除に使用できます。ストアドプロシージャは、SELECT、INSERT、UPDATE、またはDELETE ステートメントで一般的に表すことができないアクションをモデルします。ストアドプロシージャのモデリングは、ストアドプロシージャを実装するために同じ組み込みのデータ処理操作を使用できる点で、テーブルのモデリングと同様のプロセスです。

ストアドプロシージャスキーマ vs. テーブルスキーマ

少しの変更で、同じプロセスに従って、INSERT、UPDATE、DELETE ステートメントのサポートを追加するためのストアドプロシージャを作成できます。.rsd ファイル同様、info ブロックとデータ処理操作を呼び出すscript で構成される.rsb ファイルにストアドプロシージャを定義します。

カラムの代わりに、info ブロックでストアドプロシージャの入力パラメータと出力パラメータを定義します。attr エレメントの代わりに、info ブロックのinput エレメントを使用して入力を定義します。

他のSQL ステートメント同様、ストアドプロシージャが実行されるときは、_input 項目には入力パラメータが含まれます。_input 項目を使用すると、ストアドプロシージャの入力を操作入力にマッピングできます。

テーブルスキーマ同様、info ブロックを使用してレスポンスを処理できます。info ブロックのoutput 属性を使用して、ストアドプロシージャの出力を記述します。出力属性では、XPath を指定して階層データのノードを抽出できます。

ストアドプロシージャの例

次のストアドプロシージャは、Id を指定してPerson レコードを取得します。この完全に機能的なスキーマでは、要求の構築方法とXPath を使用して応答を解析する方法について示します。

ストアドプロシージャはスキーマのGET メソッドを実行します。このメソッドでAPI リクエストを構築します。必要な入力が提供されていることを確認し、ない場合はapi:validate キーワードでユーザーに警告します。文字列、日付、および数式での作業を簡素化するには、Value Formatters を使用します。

api:call キーワードで操作を呼び出します。データを返すには、オペレーション呼び出しのスコープ内にapi:push キーワードを挿入します。

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="GetODataPersonById" description="Retrieves the OData Person specified by Id.">
    <output name="ID"            other:xPath="/feed/entry/content/properties/ID" />
    <output name="EmployeeID"    other:xPath="/feed/entry/content/properties/EmployeeID" />
    <output name="Name"          other:xPath="/feed/entry/content/properties/Name" />
    <output name="TotalExpense"  other:xPath="/feed/entry/content/properties/TotalExpense" />
    <output name="HireDate"      other:xPath="/feed/entry/content/properties/HireDate" />
    <output name="Salary"        other:xPath="/feed/entry/content/properties/Salary" />  
  </api:info>
  
  <api:set attr="uri" value="http://services.odata.org/V4/OData/(S(5cunewekdibfhpvoh21u2all))/OData.svc/Persons" /> 
  
  <!-- The XPath attribute of the schema splits the XML into rows based on elements that repeat at the same level. -->
  <api:set attr="XPath" value="/entry/" />

  <!-- See the xmlproviderGet page in the Operations subchapter to set any needed HTTP parameters. -->
  <api:set attr="ContentType"   value="application/atom+xml" />

  <!-- The GET method corresponds to EXECUTE. Within the script block, you can see the URI modified to append a query string parameter. The results of processing are pushed to the schema's output.  -->
  <api:script method="GET">
    <api:set attr="method" value="GET"/>
    <api:set attr="uri" value="[uri]([_input.Id])?$format=atom"/>
    <api:call op="xmlproviderGet">
      <api:push />
    </api:call>
  </api:script>
	
</api:script>

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:info
  • api:validate
  • api:set
  • api:call
  • api:push

REST Connector for CData Sync

GetOAuthAccessToken のオーバーライド

There may be occasions where an API may have a login endpoint that provides an access token that expires after a certain period of time. However, what the token endpoint expects may be an input standard that deviates from OAuth 2.0, such as requiring JSON input instead of URL-encoded form-data. If you want to leverage the driver's automated refresh timing even for these integrations, then you can achieve this by overriding the GetOAuthAccessToken.rsb file and including it among the schema files in the folder specified in your Location connection setting.

Example Login

For the following example, consider an API that requires the following:

  • The login request must be in the form of a POST request.
  • An API Key must be supplied in the x-api-key header of the request.
  • The Email and Password of a user must be provided in the body of the request in JSON format.
  • The access token is returned in the token field of the response, and has an implicit lifetime of 30 minutes.

In this example, the details of the request are populated from specific connection properties via the _connection item. The URI for the request comes from the OAuthAccessTokenURL property. The value of OAuthClientId is used to populate the value of the x-api-key header here. Both User and Password are used to fill the JSON body of the request.

Any override of the GetOAuthAccessToken stored procedure must at minimum push OAuthAccessToken and ExpiresIn as outputs in order for the automated refresh to work properly. In the example below, the OAuthAccessToken output is mapped to the token field of the response in the element map. Since the expiration time is not in the response but is rather implicitly assumed, the RSB file instead sets ExpiresIn to 1800 (in seconds) explicitly in the init output item prior to pushing. Finally, the api:call keyword is configured to call jsonproviderGet instead of oauthGetAccessToken, since there is a custom tailored request that needs to be sent.

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="GetOAuthAccessToken" description="Obtains the OAuth access token to be used for authentication.">
    <output name="OAuthAccessToken"    desc="The authentication token returned. This can be used in subsequent calls to other operations for this particular service."/>
    <output name="ExpiresIn"           desc="The remaining lifetime on the access token."/>
  </api:info>

  <api:set attr="login.elementmapname#" value="OAuthAccessToken" />
  <api:set attr="login.elementmappath#" value="/json/token" />

  <api:set attr="login.authscheme" value="NONE" />
  <api:set attr="login.uri" value="[_connection.OAuthAccessTokenURL]" />
  <api:set attr="login.method" value="POST" />
  <api:set attr="login.Header:Name#1" value="x-api-key" />
  <api:set attr="login.Header:Value#1" value="[_connection.OAuthClientId]" />
  
  <api:set attr="login.ContentType" value="application/json" />
  <api:set attr="login.Data">{"Email":"[_connection.User]","Password":"[_connection.Password]"}</api:set>

  <api:call op="jsonproviderGet" input="login" out="init">
    <api:set attr="init.ExpiresIn" value="1800" />
    <api:push item="init"/>
  </api:call>
  
</api:script>

REST Connector for CData Sync

オペレーション

Sync App は、XML データソースの処理において高いパフォーマンスのオペレーションを持ちます。これらのオペレーションはプラットフォームを問いません:これらのオペレーションを呼び出すスキーマファイルは、.NET およびJava 両方で使うことができます。Sync App を、.NET またはJava で書かれたユーザー自身のオペレーションによって拡張することも可能です。

Sync App では、次のオペレーションを持ちます:

オペレーション名説明
jsonproviderGetjsonproviderGet オペレーションはJSON コンテントを処理するAPIScript オペレーションです。これにより、JSON コンテントを行に分割できます。
xmlproviderGetxmlproviderGet オペレーションはXML コンテントを処理するAPIScript オペレーションです。これにより、XML コンテントを行に分割できます。
csvproviderGetcsvproviderGet オペレーションはCSV コンテントを処理するAPIScript オペレーションです。
oauthGetAccessTokenOAuth 1.0 では、リクエストトークンとアクセストークンとを交換します。OAuth 2.0 では、アクセストークンを取得するか、リフレッシュトークンで新しいアクセストークンを取得します。
oauthGetUserAuthorizationURLユーザー認可URL を生成します。OAuth 2.0 は、この処理ではネットワークにアクセスしません。
utiladoSleep指定された時間(秒単位)プロセスを一時停止します。
utiladoPushPageToken結果セットに行をプッシュせずに、ページトークンの値をrows@next にプッシュします。
httpopsGethttpopsGet オペレーションはHTTP GET リクエストを送信するAPIScript オペレーションです。
httpopsPosthttpopsPost オペレーションはHTTP POST リクエストを送信するAPIScript オペレーションです。
fileReadfileRead オペレーションは、指定されたファイルの内容を個々の行のフィードとして読み込みます。
fileWritefileWrite オペレーションは、指定された内容を指定されたファイルに書き込みます。

REST Connector for CData Sync

jsonproviderGet

The jsonproviderGet operation is an APIScript operation that is used to process local JSON files or remote JSON data stores. It allows you to split JSON content into rows.

Required Parameters

  • URI: The URI parameter specifies the location of the JSON content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://). The URI connection property can also provide this input.
  • JSONPath: The JSONPath parameter is used to split the document into multiple rows. The Sync App will detect the paths to the rows when the DataModel property is set to FlattenedDocuments or Relational. See 階層データの解析 for a guide to configuring how the data is modeled.

    The XPath connection property can also provide the row XPaths. Specify the XPaths as absolute paths; define multiple paths in a semicolon-separated list.

    A wildcard JSONPath can also be used and is helpful in the case that the JSONPaths are all at the same height but contain different names:

    <api:set  attr="JSONPath" value="/feed/*" />

HTTP

The jsonproviderGet operation can be used to make HTTP requests to JSON data sources and process the results. It abstracts the complexity of connecting to JSON-based REST APIs but also gives you control over the layers involved, providing the following inputs to configure authentication, the HTTP request and headers, and firewall traversal.

Column Mapping

The jsonproviderGet operation reads the カラム定義 from the api:info section of the table schema file. In the column definition, the other:xPath property maps the column value to a JSON element.

Input Parameters

You can use api:set to specify the operation's input parameters, listed below. The connection properties also pass inputs to the operation; setting an attribute in the schema will override the connection property.

<api:set  attr="uri"                      value="NorthwindOData.json" /> 

Processing

  • URI: The URI parameter specifies the location of the JSON content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://).
  • JSONPath: The JSONPath parameter specifies the XPath to an array element that is used to split the document into rows. Specify multiple paths in a semicolon-separated list; see DataModel to configure the tables discovered based on these paths. By default the Sync App will detect the object arrays in the document as the rows -- see 自動スキーマ検出 to configure the row scan.

    A wildcard JSONPath can also be used and is helpful in the case that the JSONPaths are all at the same height but contain different names:

    <api:set  attr="JSONPath" value="/feed/*" />

HTTP

  • Method: The HTTP method that corresponds to the SQL data manipulation statement. The allowed values are GET, POST, PUT, DELETE, and MERGE. The default value is GET.
  • ContentType: The content type of the HTTP post. Relevant only if data is specified.
  • Data: Data to include in the put or the post.
  • Text: Input JSON text (an alternative to URI).
  • Header:Name#: The name for each custom header to pass with the request.
  • Header:Value#: The value for each custom header to pass with the request.
  • ParamName#: The name for each parameter to pass with the request.
  • ParamValue#: The value for each parameter to pass with the request.
  • Cookie:*: Any cookies that should be added to the request.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: The file where exchanged/transferred data is logged.
  • PushResponseHeader#: The response headers which should be returned from this operation. Any headers added to this list are returned as header:* parameters.
  • PushResponseCookie#: The response cookies which should be returned from this operation. Any cookies added to this list are returned as cookie:* parameters.

Authentication

  • User: The username used for authentication.
  • Password: The password used for authentication.
  • AuthScheme: The authentication method to use. Only relevant if User and Password are provided. The allowed values are BASIC, DIGEST, NONE, NTLM, NEGOTIATE. The default value is BASIC.
  • KerberosKDC: The KDC setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosRealm: The Realm setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosToken: The Kerberos token used for authentication.

OAuth

  • Version: The OAuth version. The allowed values are DISABLED, 1.0, 2.0. The default value is DISABLED.
  • Token: The access token for OAuth.
  • Token_Secret: The access token secret. OAuth 1.0 only.
  • Client_Id: The OAuth client Id. OAuth 1.0 only.
  • Client_Secret: The OAuth client secret. OAuth 1.0 only.
  • Sign_Method: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Other_Options: Other options to control the behavior of OAuth.

Proxy

  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.

Firewall

  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, and SOCKS5. The default value is NONE.

Advanced Processing

  • ElementMapPath#: The XPath to the subelement that you want to specify as columns within your chosen row. This can be relative to the item (for example, title) or absolute (for example, /json/@version).
  • ElementMapName#: The name of the chosen ElementMapPath. The ElementMapName input can be used to give a name to the XPath chosen in ElementMapPath.
  • ElementArrayMapPath#: The XPath to the element that you want to specify as an array.
  • ElementArrayMapName#: The name of the chosen ElementArrayMapPath. The ElementArrayMapName input can be used to give a name to the XPath chosen in ElementArrayMapPath.
  • AggregateFormat: The format to use with aggregate values. The allowed values are JSON, XML. The default value is JSON.
  • AggregatePath#: The XPath to the element that you want to return as an aggregate.
  • AggregateName#: The name of the chosen aggregate. The AggregateName input can be used to give a name to the XPath chosen in AggregatePath.
  • ResultCodeXPath: The XPath of the result code element in the response.
  • ResultSuccessCode: The success code of the value located at ResultCodeXPath that is used to verify and identify the request as being successful.
  • ErrorMsgXPath: The XPath of the error message returned in the response.
  • IndexParentNodes: Multiple occurrences of the same element will be indexed if this is set to true. If set to false, multiple occurrences will be combined into an array. The allowed values are TRUE, FALSE. The default value is TRUE.
  • TrimStartingParentIndexes: Specifies whether to trim starting parent indexes. Only valid when IndexParentNodes is TRUE. Specifically useful when the JSONPath specifies multidimensional arrays. The allowed values are TRUE, FALSE. The default value is FALSE.
  • PushEmptyArrayObjects: Specifies whether to push empty objects within multidimensional arrays. The allowed values are TRUE, FALSE. The default value is FALSE.
  • PushPrefix: The prefix to be prepended to each item attribute that is pushed.
  • EnablePaging: Specifies whether the Rows@Next input will be used for paging. The allowed values are TRUE, FALSE. The default value is FALSE.
  • OutputPrefix: Whether the prefix should be output with each pushed attribute of an item. The allowed values are TRUE, FALSE. The default value is FALSE.
  • PushOuterValueRow: Whether to generate special rows for paths outside of the repeat element when no other rows would contain them. If one of these rows is generated it will contain the values of all mapped paths outside the repeat element, along with a special attribute called @isoutervalue which is set to true. However, if there is a row in the repeat element which contains these values then the @isoutervalue is not pushed.

    The allowed values are TRUE, FALSE. The default value is FALSE.

Output Parameters

  • *: Objects found.
  • header:*: Any headers requested from the PushResponseHeader# input (e.g. adding "Content-Type" to PushResponseHeader# will return "header:Content-Type")
  • cookie:*: Any cookies requested from the PushResponseCookie# input (e.g. adding "session" to PushResponseCookie# will return "cookie:session")
Note If you are using api:push to emit rows from within different invocations of this operation (either separate calls in the schema, or in a loop), it is recommended that you use api:map to copy all the elements from the output item produced by api:call into a temporary item that is then passed to api:push:
<api:call op="jsonproviderGet" out="output">
  <api:map from="output" to="temp" map="* = *" />
  <api:push item="temp" />
</api:call >
The items produced by this operation are required to have the same layout for performance reasons, which may not be the case if different documents are used with calls to this operation. Performing this map converts the item into a more flexible form which does not have the same layout restriction.

The flexible layout has different restrictions to be aware of:

  • It is slightly slower than the optimized layout.
  • It does not support column names containing a period, so you will want to set the hidden PathDelimiter property to an underscore and access flattened columns using names like a_b_c instead of a.b.c.

REST Connector for CData Sync

xmlproviderGet

The xmlproviderGet operation is an APIScript operation that is used to process local and remote XML content. It allows you to split XML content into rows.

Required Parameters

  • URI: The URI parameter specifies the location of the XML content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://). The URI connection property can also provide this input.
  • XPath: The XPath parameter is used to split the document into multiple rows. The Sync App will detect the row XPaths in the document when the DataModel property is set to FlattenedDocuments or Relational. See 階層データの解析 for a guide to configuring how the data is modeled.

    The XPath connection property can also provide the row XPaths. Specify the XPaths as absolute paths; define multiple paths in a semicolon-separated list.

    A wildcard XPath can also be used and is helpful in the case that the XPaths are all at the same height but contain different names:

    <api:set  attr="XPath" value="/feed/*" />

HTTP Operation

The xmlproviderGet operation can be used to make HTTP requests to XML data sources and process the results. It abstracts the complexity of connecting to XML-based REST APIs but also gives you control over the layers involved, providing the following inputs to configure authentication, the HTTP request and headers, and firewall traversal.

Column Mapping

The xmlproviderGet operation reads the カラム定義 from the api:info section of the table schema file. In the column definition, the other:xPath property maps the column value to an XML element.

Input Parameters

You can use api:set to specify the operation's input parameters, as shown below.

<api:set  attr="uri"                      value="NorthwindOData.xml" /> 

The connection properties also pass inputs to the operation; setting one of the following input attributes in the schema will override the connection property.

Processing

  • URI: The URI parameter specifies the location of the XML content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://).
  • XPath: The XPath parameter is used to split the document into multiple rows. The Sync App will detect the row XPaths in the document when the DataModel property is set to FlattenedDocuments or Relational. See 階層データの解析 for a guide to configuring how the data is modeled.

    You can also set the XPath connection property to delineate the paths to the tables. Specify absolute paths and define multiple paths in a semicolon-separated list.

    A wildcard XPath can also be used and is helpful in the case that the XPaths are all at the same height but contain different names:

    <api:set  attr="XPath" value="/feed/*" />

HTTP

  • Method: The HTTP method that corresponds to the SQL data manipulation statement. The allowed values are GET, POST, PUT, DELETE, and MERGE. The default value is GET.
  • ContentType: The content type of the HTTP post. Relevant only if data is specified.
  • Data: Data to include in the put or the post. To post a file use a file:// URI.
  • Text: Input XML text (an alternative to URI).
  • Header:Name#: The name for each custom header to pass with the request.
  • Header:Value#: The value for each custom header to pass with the request.
  • ParamName#: The name for each parameter to pass with the request.
  • ParamValue#: The value for each parameter to pass with the request.
  • Cookie:*: Any cookies that should be added to the request.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: The file where exchanged/transferred data is logged.
  • PushResponseHeader#: The response headers which should be returned from this operation. Any headers added to this list are returned as header:* parameters.
  • PushResponseCookie#: The response cookies which should be returned from this operation. Any cookies added to this list are returned as cookie:* parameters.

Authentication

  • User: The username used for authentication.
  • Password: The password used for authentication.
  • AuthScheme: The authentication method to use. Only relevant if User and Password are provided. The allowed values are BASIC, DIGEST, NONE, NTLM, NEGOTIATE. The default value is BASIC.
  • KerberosKDC: The KDC setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosRealm: The Realm setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosToken: The Kerberos token used for authentication.

OAuth

  • Version: The OAuth version. The allowed values are DISABLED, 1.0, 2.0. The default value is DISABLED.
  • Token: The access token for OAuth.
  • Token_Secret: The access token secret. OAuth 1.0 only.
  • Client_Id: The OAuth client Id. OAuth 1.0 only.
  • Client_Secret: The OAuth client secret. OAuth 1.0 only.
  • Sign_Method: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Other_Options: Other options to control the behavior of OAuth.

Proxy

  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.

Firewall

  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, and SOCKS5. The default value is NONE.

Advanced Processing

  • ElementMapPath#: The XPath to the subelement that you want to specify as columns within your chosen row. This can be relative to the item (for example, title) or absolute (for example, /rss/@version).
  • ElementMapName#: The name of the chosen ElementMapPath. The ElementMapName input can be used to give a name to the XPath chosen in ElementMapPath.
  • ElementArrayMapPath#: The XPath to the element that you want to specify as an array.
  • ElementArrayMapName#: The name of the chosen ElementArrayMapPath. The ElementArrayMapName input can be used to give a name to the XPath chosen in ElementArrayMapPath.
  • AggregateFormat: The format to use with aggregate values. The allowed values are JSON, XML. The default value is XML.
  • AggregatePath#: The XPath to the element that you want to return as an aggregate.
  • AggregateName#: The name of the chosen aggregate. The AggregateName input can be used to give a name to the XPath chosen in AggregatePath.
  • ResultCodeXPath: The XPath of the result code element in the response.
  • ResultSuccessCode: The success code of the value located at ResultCodeXPath that is used to verify and identify the request as being successful.
  • ErrorMsgXPath: The XPath of the error message returned in the response.
  • IndexParentNodes: Multiple occurrences of the same element will be indexed if this is set to true. If set to false, multiple occurrences will be combined into an array. The allowed values are TRUE, FALSE. The default value is TRUE.
  • PushPrefix: The prefix to be prepended to each item attribute that is pushed.
  • EnablePaging: Specifies whether the Rows@Next input will be used for paging. The allowed values are TRUE, FALSE. The default value is FALSE.
  • OutputPrefix: Whether the prefix should be output with each pushed attribute of an item. The allowed values are TRUE, FALSE. The default value is FALSE.
  • PushOuterValueRow: Whether to generate special rows for paths outside of the repeat element when no other rows would contain them. If one of these rows is generated it will contain the values of all mapped paths outside the repeat element, along with a special attribute called @isoutervalue which is set to true. However, if there is a row in the repeat element which contains these values then the @isoutervalue is not pushed.

    The allowed values are TRUE, FALSE. The default value is FALSE.

Output Parameters

  • *: The elements and the attributes found within each item element.
  • header:*: Any headers requested from the PushResponseHeader# input (e.g. adding "Content-Type" to PushResponseHeader# will return "header:Content-Type")
  • cookie:*: Any cookies requested from the PushResponseCookie# input (e.g. adding "session" to PushResponseCookie# will return "cookie:session")
Note If you are using api:push to emit rows from within different invocations of this operation (either separate calls in the schema, or in a loop), it is recommended that you use api:map to copy all the elements from the output item produced by api:call into a temporary item that is then passed to api:push:
<api:call op="xmlproviderGet" out="output">
  <api:map from="output" to="temp" map="* = *" />
  <api:push item="temp" />
</api:call>
The items produced by this operation are required to have the same layout for performance reasons, which may not be the case if different documents are used in calls to this operation. Performing this map converts the item into a more flexible form which does not have the same layout restriction (though it may be slower to read from).

REST Connector for CData Sync

csvproviderGet

The csvproviderGet operation is an API Script operation that is used to process CSV content. It allows you to split CSV content into rows.

Required Parameters

  • URI: The URI parameter specifies the location of the CSV content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://).

Network Operation

The csvproviderGet operation can be used to execute remote data retrieval operations. It abstracts the request and also enables configuration of most aspects through the following inputs, including authentication and firewall traversal. See ProxyAuthScheme and FirewallType the properties needed to negotiate a firewall.

Column Mapping

The csvproviderGet operation reads the api:info section of the table schema file to map various elements in the CSV document into column values within a row. It does so using the other:internalname property of the column definition.

HTTP

  • Method: The HTTP method that corresponds to the SQL data manipulation statement. The allowed values are GET, POST, PUT, DELETE, and MERGE. The default value is GET.
  • ContentType: The content type of the HTTP post. Relevant only if data is specified.
  • Data: Data to include in the put or the post.
  • Text: Input CSV text (an alternative to URI).
  • Header:Name#: The name for each custom header to pass with the request.
  • Header:Value#: The value for each custom header to pass with the request.
  • ParamName#: The name for each parameter to pass with the request.
  • ParamValue#: The value for each parameter to pass with the request.
  • Cookie:*: Any cookies that should be added to the request.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: The file where exchanged/transferred data is logged.
  • PushResponseHeader#: The response headers which should be returned from this operation. Any headers added to this list are returned as header:* parameters.

Authentication

  • User: The username used for authentication.
  • Password: The password used for authentication.
  • AuthScheme: The authentication method to use. Only relevant if User and Password are provided. The allowed values are BASIC, DIGEST, NONE, NTLM, NEGOTIATE. The default value is BASIC.
  • KerberosKDC: The KDC setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosRealm: The Realm setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosToken: The Kerberos token used for authentication.

OAuth

  • Version: The OAuth version. The allowed values are DISABLED, 1.0, 2.0. The default value is DISABLED.
  • Token: The access token for OAuth.
  • Token_Secret: The access token secret. OAuth 1.0 only.
  • Client_Id: The OAuth client Id. OAuth 1.0 only.
  • Client_Secret: The OAuth client secret. OAuth 1.0 only.
  • Sign_Method: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Other_Options: Other options to control the behavior of OAuth.

Proxy

  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.

Firewall

  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, and SOCKS5. The default value is NONE.

Output Parameters

  • *: CSV columns from CSV content.
  • header:*: Any headers requested from the PushResponseHeader# input (e.g. adding "Content-Type" to PushResponseHeader# will return "header:Content-Type")

REST Connector for CData Sync

oauthGetAccessToken

The oauthGetAccessToken operation is an APIScript operation that is used to facilitate the OAuth authentication and refresh flows.

The Sync App includes stored procedures that invoke this operation to complete the OAuth exchange. The following example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

See ストアドプロシージャの定義 for more information on working with custom stored procedures. For a guide to using the Sync App to authenticate, see the "Getting Started" chapter.

Creating a GetOAuthAccessToken Stored Procedure

Invoke the oauthGetAccessToken with the GetOAuthAccessToken stored procedure. The following inputs are required for most data sources and will provide default values for the connection properties of the same name.

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="GetOAuthAccessToken"   description="Obtains the OAuth access token to be used for authentication with various APIs."                                                         >
    <input  name="AuthMode"               desc="The OAuth flow. APP or WEB."                                                                                                                    />
    <input  name="CallbackURL"            desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />
    <input  name="OAuthAccessToken"       desc="The request token. OAuth 1.0 only."                                                                                                             />
    <input  name="OAuthAccessTokenSecret" desc="The request token secret. OAuth 1.0 only."                                                                                                      />
    <input  name="Verifier"               desc="The verifier code obtained when the user grants permissions to your app."                                                                       />

    <output name="OAuthAccessToken"       desc="The access token."                                                                                                                              />
    <output name="OAuthTokenSecret"       desc="The access token secret."                                                                                                                       />
    <output name="OAuthRefreshToken"      desc="A token that may be used to obtain a new access token."                                                                                         />
 </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <api:set attr="OAuthRequestTokenURL"                                            value="http://MyOAuthRequestTokenURL" />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <api:set attr="OAuthAuthorizationURL"                                           value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <api:set attr="OAuthAccessTokenURL"                                             value="http://MyOAuthAccessTokenURL"   />
  <!-- Set GrantType to the authorization grant type. OAuth 2.0 only. -->
  <api:set attr="GrantType"                                                       value="CODE"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
  <api:set attr="SignMethod"                                                      value="HMAC-SHA1"                      />
  <api:call op="oauthGetAccessToken">
    <api:push/>
  </api:call>
  
</api:script>

Writing the RefreshOAuthAccessToken Stored Procedure

You can also use oauthGetAccessToken to refresh the access token by providing the following inputs:

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="RefreshOAuthAccessToken" description="Refreshes the OAuth access token used for authentication." >
    <input  name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           />

    <output name="OAuthAccessToken"         desc="The authentication token returned."                               />
    <output name="OAuthTokenSecret"         desc="The authentication token secret returned. OAuth 1.0 only."        />
    <output name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           />
    <output name="ExpiresIn"                desc="The remaining lifetime on the access token."                      />

  </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
    <!-- Set GrantType to REFRESH. OAuth 2.0 only. -->
    <api:set attr="GrantType"            value="REFRESH" />
    <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
    <api:set attr="SignMethod"           value="HMAC-SHA1" />
    <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
    <api:set attr="OAuthAccessTokenURL"  value="http://MyOAuthAccessTokenURL" />
    <!-- Set AuthMode to 'WEB' when calling RefreshOAuthAccessToken -->
    <api:set attr="AuthMode" value="WEB"/>
  <api:call op="oauthGetAccessToken">
    <api:push/>
  </api:call>
  
</api:script>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • AuthMode: The OAuth flow. OAuth 2.0 only. If you choose the App mode, this operation will launch your browser and prompt you to authenticate with your account credentials. Set this parameter to WEB to authenticate a Web app or if the Sync App is not allowed to open a Web browser. The default value is APP.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessTokenURL: The URL where the request for the access token is made. In OAuth 1.0, the authorized request token is exchanged for the access token.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port.
  • OAuthClientId: The client Id obtained when you register an app. Also called a consumer key.
  • OAuthClientSecret: The client secret obtained when you register an app. Also called a consumer secret.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthAccessTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • GrantType: Authorization grant type. OAuth 2.0 only. The allowed values are CODE, PASSWORD, CLIENT, REFRESH. The default value is CODE.
  • Verifier: The verifier code obtained when the user grants permissions to the Sync App. In the OAuth 2.0 code grant type, the verifier code is located in the code query string parameter of the callback URL. In OAuth 1.0, the verifier is located in the oauth_verifier query string parameter of the callback URL.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the PFX personal certificate file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters.
  • PostData: The HTTP POST data.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: Specifies a file where the request and response are logged.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • OAuthAccessToken: The access token.
  • OAuthTokenSecret: The access token secret.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • ExpiresIn: The remaining lifetime on the access token.
  • OAuthParam:*: Other parameters sent from the server.

REST Connector for CData Sync

oauthGetUserAuthorizationURL

The oauthGetUserAuthorizationURL is an APIScript operation that is used to facilitate the OAuth authentication flow for Web apps, for offline apps, and in situations where the Sync App is not allowed to open a Web browser. To pass the needed inputs to this operation, define the GetOAuthAuthorizationURL stored procedure. The Sync App can call this internally.

Define stored procedures in .rsb files with the same file name as the schema's title. The example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

For a guide to authenticating in the OAuth flow, see the "Getting Started" chapter. You can find more information about stored procedures and how to write them in ストアドプロシージャの定義.

Writing the GetOAuthAuthorizationURL Stored Procedure

Call oauthGetUserAuthorizationURL in the GetOAuthAuthorizationURL stored procedure.

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="Get OAuth Authorization URL" description="Obtains the OAuth authorization URL used for authentication with various APIs."                                                          >
    <input  name="CallbackURL"                  desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />

    <output name="URL"                          desc="The URL where the user logs in and is prompted to grant permissions to the app. "                                                               />
    <output name="OAuthAccessToken"             desc="The request token. OAuth 1.0 only."                                                                                                             />
    <output name="OAuthTokenSecret"             desc="The request token secret. OAuth 1.0 only."                                                                                                      />
  </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"          value="MyOAuthVersion"                 />
  <!-- Set ResponseType to the desired authorization grant type. OAuth 2.0 only.-->
  <api:set attr="ResponseType"           value="code"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature. OAuth 1.0 only.-->
  <api:set attr="SignMethod"            value="HMAC-SHA1"                      />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <api:set attr="OAuthAuthorizationURL"  value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <api:set attr="OAuthAccessTokenURL"   value="http://MyOAuthAccessTokenURL"/>
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <api:set attr="OAuthRequestTokenURL"   value="http://MyOAuthRequestTokenURL"       />
  <api:call op="oauthGetUserAuthorizationUrl">
    <api:push/>
  </api:call>
  
</api:script>

<p>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port. The default value is http://127.0.0.1/.
  • OAuthClientId: The client Id. Also called a consumer key.
  • OAuthClientSecret: The client secret. Also called a consumer secret.
  • ResponseType: The desired authorization grant type. OAuth 2.0 only. The allowed values are CODE, IMPLICIT. The default value is CODE.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, RSA-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the personal certificate PFX file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters. OAuth 1.0 only.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • URL: The URL where the user logs in and is prompted to grant permissions to the app. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthParam:*: Other parameters sent from the server. OAuth 1.0 only.

REST Connector for CData Sync

utiladoRefreshOAuth

The utiladoRefreshOAuth operation causes the Sync App to refresh any OAuth tokens that are close to expiring. This has no effect when AuthScheme is set to a non-OAuth authentication mode .

The operation takes no parameters and may be called like this:

<api:call op="utiladoRefreshOAuth" />

REST Connector for CData Sync

utiladoSleep

The utiladoSleep operation causes the process that calls it to suspend execution for a specifed duration.

The required parameter is timeout. The units are in seconds. For example,

<api:call op="utiladoSleep?timeout=2" />

REST Connector for CData Sync

utiladoPushPageToken

The utiladoPushPageToken operation causes the process to push a page token for rows@next without pushing a row in the result set. This is useful in some complex scenarios, such as paging the outer call while only having the nested inner call push rows.

Example Usage

The following list highlights examples of defining the desired page token, which can be retrieved from _input.rows@next in the next iteration:
  • Push a next page URL to rows@next:
    <api:set item="page" attr="pagetoken" value="[out1._next]" />
    <api:call op="utiladoPushPageToken" input="page" />
  • Push a paging token or cursor to rows@next:
    <api:set item="page" attr="pagetoken" value="[out1.cursor]" />
    <api:call op="utiladoPushPageToken" input="page" />
  • Push an incremented page number to rows@next:
    <api:set item="page" attr="pagetoken" value="[temp.currentpage | add(1)]" />
    <api:call op="utiladoPushPageToken" input="page" />
  • Push an incremented offset to rows@next:
    <api:set item="page" attr="pagetoken" value="[temp.offset | add([temp.pagesize])]" />
    <api:call op="utiladoPushPageToken" input="page" />

REST Connector for CData Sync

httpopsGet

httpopsGet オペレーションはHTTP GET リクエストを行うAPIScript オペレーションです。

入力パラメータ

以下のように、api:set を使用してオペレーションの入力パラメータを指定できます。

    <api:set  attr="url"                      value="http://www.example.com/target" /> 
  

必要なパラメータ

  • URL:取得するURL。

HTTP

  • IfModifiedSince:検索結果のフィルタとして使用するif-modified-since の日時を指定します(例:Sat, 25 Feb 2006 04:11:47 GMT)。
  • LocalFile:指定した場合、GET の結果がこのファイルに書き込まれます。
  • Header:Name#:リクエストで渡す各カスタムヘッダーの名前。
  • Header:Value#:リクエストで渡す各カスタムヘッダーの値。
  • Cookie:*:リクエストに追加されるべきcookie。
  • タイムアウト:オペレーションの完了の秒単位のタイムアウト。ゼロ(0)はタイムアウトなしを意味します。デフォルト値は60です。
  • Logfile:Exchanged/transferred データがログに記録されたファイル。
  • Verbosity:logfile 入力で指定されたファイルに交換 / 転送されたデータを記録する際に使用する詳細レベル。

認証

  • User:authscheme パラメータがNone 以外に設定されている場合に認証するユーザー名。
  • Password:authscheme パラメータがNone 以外に設定されている場合に認証するパスワード。
  • AuthScheme:使用する認可メカニズム。ユーザーとパスワードが提供された場合のみ適用されます。有効な値はBASIC、DIGEST、NTLM です。デフォルトはBASIC です。
  • KerberosKDC:Kerberos のKDC 設定で、AuthScheme がNEGOTIATE の場合に使用可能。
  • KerberosRealm:Kerberos のRealm 設定で、AuthScheme がNEGOTIATE の場合に使用可能。

OAuth

  • Version:OAuth のバージョン。OAuth を使用してリクエストを認可します。DISABLED、1.0、または2.0の値が使用可能です。デフォルト値はDISABLED です。
  • Token:OAuth のアクセストークン。
  • Token_Secret:アクセストークンシークレット。OAuth 1.0 でのみ利用可能です。
  • Client_Id:OAuth クライアントId。OAuth 1.0 でのみ利用可能です。
  • Client_Secret:OAuth クライアントシークレット。OAuth 1.0 でのみ利用可能です。
  • Sign_Method:OAuth 1.0 で署名を計算する際の署名メソッド。HMAC-SHA1 またはPLAINTEXT が使用可能です。デフォルト値はHMAC-SHA1 です。

プロキシ

  • Proxy_Auto:Windows システム設定からプロキシが検出されるかどうか。これは他のプロキシ設定より優先され、Java では使用できません。ソースはproxy_auto です。TRUE またはFALSE が使用可能です。デフォルト値はFALSE です。
  • Proxy_Server:リクエストで使われるプロキシサーバーのIP アドレスもしくはホスト名。ソースはproxy_server です。
  • Proxy_Port:プロキシサーバーのポート番号。ソースはproxy_port です。
  • Proxy_User:プロキシサーバーに認証するためのユーザーId。ソースはproxy_user です。
  • Proxy_Password:プロキシサーバーに認証するためのパスワード。ソースはproxy_password です。
  • Proxy_AuthScheme:プロキシサーバーの認証スキーム。有効な値はBASIC、DIGEST、NONE、NTLM、およびNEGOTIATE です。デフォルトはBASIC です。
  • Proxy_AuthToken:プロキシ認証トークン。
  • Proxy_SSLType:プロキシサーバーのSSL タイプ。AUTO、ALWAYS、NEVER、またはTUNNEL が使用可能です。デフォルト値はAUTO です。

ファイアウォール

  • Firewall_Server:ファイアーウォールのIP アドレスとホスト名。ソースはfirewall_host です。
  • Firewall_Port:ファイアーウォールのポート番号。ソースはfirewall_port です。
  • Firewall_User:ファイアーウォールに認証するためのユーザーId。ソースはfirewall_user です。
  • Firewall_Password:ファイアーウォールに認証するためのパスワード。ソースはfirewall_password です。
  • Firewall_Type:ファイアーウォールのタイプ。ソースはfirewall_type です。有効な値は、NONE、TUNNEL、SOCKS4、およびSOCKS5 です。デフォルトはNONE です。

その他

  • Internalconfig#:内部コンフィギュレーション設定の設定。
  • Charset:交換 / 転送されるデータの文字セット。デフォルトはUTF-8 です。
  • HTTPVersion:使用するHTTP プロトコルのバージョン。有効な値は1.0および1.1です。デフォルトは1.1です。
  • FollowRedirects:HTTP リダイレクトに従うかどうか。有効な値はTRUE およびFALSE です。デフォルトはTRUE です。
  • SSLCert:サーバーが受け入れ可能なSSL 証明書。他の証明書はすべて拒否されます。これは、完全なPEM 証明書、証明書を含むファイルへのパス、公開鍵、MD5 サムプリント、またはSHA-1 サムプリントの形式を取ることができます。これを指定しない場合は、任意の有効な証明書が受け入れられます。デフォルトはTRUSTED です。
  • SSLClientCert:クライアント証明書のための証明書ストア名。
  • SSLClientCertType:クライアント証明書のストアタイプ。有効な値は、USER、MACHINE、PFXFILE、PFXBLOB、JKSFILE、JKSBLOB、PEMKEY_FILE、PEMKEY_BLOB、PUBLIC_KEY_FILE、PUBLIC_KEY_BLOB、SSHPUBLIC_KEY_BLOB、P7BFILE、P7BBLOB、SSHPUBLIC_KEY_FILE、PPKFILE、PPKBLOB、XMLFILE、およびXMLBLOB です。
  • SSLClientCertPassword:クライアント証明書のパスワード。
  • SSLClientCertSubject:クライアント証明書のサブジェクト。アスタリスクを使用すると、ストア内の最初の証明書が検出されます。

出力パラメータ

  • ssl:issuer:SSL 証明書の発行者。
  • ssl:subject:SSL 証明書のサブジェクト。
  • statuscode:リクエストから返されたHTTP ステータスコード。
  • content:HTTP レスポンスのコンテンツ。
  • cookie:*:レスポンスで返されたCookie。
  • allcookies:単一の文字列として返された、レスポンスからのすべてのCookie。
  • header:*:レスポンスで返されたヘッダー。

例:

    <api:set attr="URL" value="http://www.example.com/target">
    <api:set attr="Header:Name#" value="x-custom">
    <api:set attr="Header:Value#" value="abcd">

    <api:call op="httpops.post" out="output">
      <api:set attr="temp.data" value="[output.content]">
    </api:call >
  

REST Connector for CData Sync

httpopsPost

httpopsPost オペレーションはHTTP POST リクエストを行うAPIScript オペレーションです。

Input Parameters

以下のように、api:set を使用してオペレーションの入力パラメータを指定できます。

    <api:set  attr="url"                      value="http://www.example.com/target" /> 
  

必要なパラメータ

  • URL:取得するURL。

HTTP

  • Method:HTTP メソッド。有効な値は、POST、PUT、およびPATCH です。デフォルトはPOST です。
  • ContentType:post のコンテンツタイプ。デフォルトはapplication/x-www-form-urlencoded です。
  • PostData:post に含めるデータ。file:// の後にファイルパスを使用して、ファイルのコンテンツを送信します。デフォルトは空です。
  • FormEncoding:paramname# とparamvalue# をエンコードする際に使用するフォーマット。有効な値は、URLENCODED およびFORMDATA です。デフォルトはURLENCODED です。
  • Header:Name#:リクエストで渡す各カスタムヘッダーの名前。
  • Header:Value#:リクエストで渡す各カスタムヘッダーの値。
  • ParamName#:リクエストで渡す各パラメータの名前。
  • ParamValue#:リクエストで渡す各パラメータの値。
  • Cookie:*:リクエストに追加されるべきcookie。
  • Timeout:オペレーションの完了の秒単位のタイムアウト。ゼロ(0)はタイムアウトなしを意味します。デフォルト値は60です。
  • Logfile:Exchanged/transferred データがログに記録されたファイル。
  • Verbosity:logfile 入力で指定されたファイルに交換 / 転送されたデータを記録する際に使用する詳細レベル。

認証

  • User:authscheme パラメータがNone 以外に設定されている場合に認証するユーザー名。
  • Password:authscheme パラメータがNone 以外に設定されている場合に認証するパスワード。
  • AuthScheme:使用する認可メカニズム。ユーザーとパスワードが提供された場合のみ適用されます。有効な値はBASIC、DIGEST、NTLM です。デフォルトはBASIC です。
  • KerberosKDC:Kerberos のKDC 設定で、AuthScheme がNEGOTIATE の場合に使用可能。
  • KerberosRealm:Kerberos のRealm 設定で、AuthScheme がNEGOTIATE の場合に使用可能。

OAuth

  • Version:OAuth のバージョン。OAuth を使用してリクエストを認可します。DISABLED、1.0、または2.0の値が使用可能です。デフォルト値はDISABLED です。
  • Token:OAuth のアクセストークン。
  • Token_Secret:アクセストークンシークレット。OAuth 1.0 でのみ利用可能です。
  • Client_Id:OAuth クライアントId。OAuth 1.0 でのみ利用可能です。
  • Client_Secret:OAuth クライアントシークレット。OAuth 1.0 でのみ利用可能です。
  • Sign_Method:OAuth 1.0 で署名を計算する際の署名メソッド。HMAC-SHA1 またはPLAINTEXT が使用可能です。デフォルト値はHMAC-SHA1 です。

プロキシ

  • Proxy_Auto:Windows システム設定からプロキシが検出されるかどうか。これは他のプロキシ設定より優先され、Java では使用できません。ソースはproxy_auto です。TRUE またはFALSE が使用可能です。デフォルト値はFALSE です。
  • Proxy_Server:リクエストで使われるプロキシサーバーのIP アドレスもしくはホスト名。ソースはproxy_server です。
  • Proxy_Port:プロキシサーバーのポート番号。ソースはproxy_port です。
  • Proxy_User:プロキシサーバーに認証するためのユーザーId。ソースはproxy_user です。
  • Proxy_Password:プロキシサーバーに認証するためのパスワード。ソースはproxy_password です。
  • Proxy_AuthScheme:プロキシサーバーの認証スキーム。有効な値はBASIC、DIGEST、NONE、NTLM、およびNEGOTIATE です。デフォルトはBASIC です。
  • Proxy_AuthToken:プロキシ認証トークン。
  • Proxy_SSLType:プロキシサーバーのSSL タイプ。AUTO、ALWAYS、NEVER、またはTUNNEL が使用可能です。デフォルト値はAUTO です。

ファイアウォール

  • Firewall_Server:ファイアーウォールのIP アドレスとホスト名。ソースはfirewall_host です。
  • Firewall_Port:ファイアーウォールのポート番号。ソースはfirewall_port です。
  • Firewall_User:ファイアーウォールに認証するためのユーザーId。ソースはfirewall_user です。
  • Firewall_Password:ファイアーウォールに認証するためのパスワード。ソースはfirewall_password です。
  • Firewall_Type:ファイアーウォールのタイプ。ソースはfirewall_type です。有効な値は、NONE、TUNNEL、SOCKS4、およびSOCKS5 です。デフォルトはNONE です。

その他

  • Internalconfig#:内部コンフィギュレーション設定の設定。
  • Charset:交換 / 転送されるデータの文字セット。デフォルトはUTF-8 です。
  • HTTPVersion:使用するHTTP プロトコルのバージョン。有効な値は1.0および1.1です。デフォルトは1.1です。
  • FollowRedirects:HTTP リダイレクトに従うかどうか。有効な値はTRUE およびFALSE です。デフォルトはTRUE です。
  • SSLCert:サーバーが受け入れ可能なSSL 証明書。他の証明書はすべて拒否されます。これは、完全なPEM 証明書、証明書を含むファイルへのパス、公開鍵、MD5 サムプリント、またはSHA-1 サムプリントの形式を取ることができます。これを指定しない場合は、任意の有効な証明書が受け入れられます。デフォルトはTRUSTED です。
  • SSLClientCert:クライアント証明書のための証明書ストア名。
  • SSLClientCertType:クライアント証明書のストアタイプ。有効な値は、USER、MACHINE、PFXFILE、PFXBLOB、JKSFILE、JKSBLOB、PEMKEY_FILE、PEMKEY_BLOB、PUBLIC_KEY_FILE、PUBLIC_KEY_BLOB、SSHPUBLIC_KEY_BLOB、P7BFILE、P7BBLOB、SSHPUBLIC_KEY_FILE、PPKFILE、PPKBLOB、XMLFILE、およびXMLBLOB です。
  • SSLClientCertPassword:クライアント証明書のパスワード。
  • SSLClientCertSubject:クライアント証明書のサブジェクト。アスタリスクを使用すると、ストア内の最初の証明書が検出されます。

出力パラメータ

  • ssl:issuer:SSL 証明書の発行者。
  • ssl:subject:SSL 証明書のサブジェクト。
  • statuscode:リクエストから返されたHTTP ステータスコード。
  • content:HTTP レスポンスのコンテンツ。
  • cookie:*:レスポンスで返されたCookie。
  • allcookies:単一の文字列として返された、レスポンスからのすべてのCookie。
  • header:*:レスポンスで返されたヘッダー。

例:

    <api:set attr="URL" value="http://www.example.com/target">
    <api:set attr="method" value="POST">
    <api:set attr="postdata" value="abcd">
    <api:set attr="contenttype" value="text/plain">

    <api:call op="httpops.post" out="output">
      <api:set attr="temp.data" value="[output.content]">
    </api:call >
  

REST Connector for CData Sync

fileRead

The fileRead operation ingests the file located at the specified URI and returns a feed with one line of the target file's content per item.

Required Parameters

The input item for the fileRead operation must set the following parameter:

  • file: a URI pointing to a file.

Optional Parameters

The input item for the fileRead operation can optionally set the following parameter:

  • encoding: the encoding to use when reading the file. The allowed values are determined by the JVM/OS being used. Values for encodings that are generally supported by most operating systems and JVMs include UTF-8, ASCII, BASE64, Hex, windows-1522, and ISO-8859-2. The default is UTF-8.

Output Parameters

The output items returned by the fileRead operation have the following parameter:

  • data: the data from the input file.

Example

In the following example, the path to the file "example.txt" is provided in the input item, the operation is executed, and, for each line in example.txt, the "currentlinevalue" variable is set to the value of the current line.

<api:set attr="input.file" value="C:/Users/Public/example.txt" />
<!-- Passing in the input item -->
<api:call op="fileRead" in="input" out="result" >
  <api:set attr="fileOut.currentlinevalue" value="[result.data]" />
</api:call>

REST Connector for CData Sync

fileWrite

The fileWrite operation writes the specified data to the file at the specified URI.

Required Parameters

The input item for the fileWrite operation must set the following parameters:

  • file: the URI pointing to the file that you want to write data to. If this file does not exist, the Sync App creates it when executing this operation.
  • data: the data that you want to write to the specified file.

Optional Parameters

The input item for the fileWrite operation can optionally set the following parameters:

  • force: when this parameter is set to true, if one or more of the folders in the path specified in the "file" parameter do not exist, the Sync App creates those missing directories. The allowed values are true and false. If this parameter is set to false and folders in the specified directory are missing, the Sync App does not perform the write operation and returns an error. The default is true.
  • mode: specifies whether to truncate (overwrite the existing data in the file with the new data) or append (add the new data onto the end of the existing data in the file) when executing this operation. The default behavior is to truncate.
  • encoding: the encoding to use when creating a new file. The allowed values are determined by your JVM/OS. The default is UTF-8.

Output Parameters

The output items returned by the fileWrite operation have the following parameters:

  • file: the full path of the file that was written to.
  • cdate: the modified date of the file that was written to.

Example

The following example adds the message "This is a sample value." to the file "new.txt".

<rsb:set item=inputitem attr=file value="C:/Users/Publish/new.txt"/>
<rsb:set item=inputitem attr=data value="This is a sample value."/>
<rsb:call op="fileWrite" in=inputitem out=outitem/>

REST Connector for CData Sync

高度な機能

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

ユーザー定義ビュー

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

SSL の設定

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

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

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

クエリ処理

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

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

ログ

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

REST Connector for CData Sync

SSL の設定

SSL 設定のカスタマイズ

デフォルトでは、Sync App はサーバーとのTLS のネゴシエーションを試みます。サーバー証明書は、デフォルトのシステム信頼済み証明書ストアで検証されます。SSLServerCert 接続プロパティを使用して、証明書の検証方法をオーバーライドできます。

別の証明書を指定するには、SSLServerCert 接続プロパティを参照してください。

クライアントSSL 証明書

REST Sync App はクライアント証明書の設定もサポートしています。次を設定すれば、クライアント証明書を使って接続できます。

  • SSLClientCert:クライアント証明書のための証明書ストア名。
  • SSLClientCertType:TLS / SSL クライアント証明書を格納するキーストアの種類。
  • SSLClientCertPassword:TLS / SSL クライアント証明書のパスワード。
  • SSLClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。

REST Connector for CData Sync

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

Firewall またはProxy 経由の接続

HTTP プロキシ

HTTP プロキシへの認証には、以下のように設定します。

  • ProxyServer:HTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。
  • ProxyPort:プロキシサーバーが起動しているTCP ポート。
  • ProxyAuthScheme:プロキシサーバーに対して認証する際にSync App が使用する認証方法。
  • ProxyUser:プロキシサーバーに登録されているユーザーアカウントのユーザー名。
  • ProxyPassword:ProxyUser に紐付けられたパスワード。

その他のプロキシ

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

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

REST Connector for CData Sync

API Script Reference

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

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 構文などのハイレベルなプログラミング構成を使う。
  • オペレーションを呼び出し、カスタムオペレーションを定義する。
  • アイテム、オペレーションのインプット、フィード、オペレーションの結果を作成し、変更する。
  • アイテムの反復によりオペレーション呼び出しからの結果フィードを処理する。

REST 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)

_connection アイテムはSync App の接続プロパティを持ちます。Sync App は、接続文字列プロパティの検証を行いません。どのプロパティを必須とするか、どのように使用するかなどは、スキーマ作成者の決定に委ねられています。

_connection アイテムは、接続プロパティへのアクセスを提供するだけでなく、接続にデータの一部を格納するために使用することもできます。例えば、接続が持続している間に再利用可能なセッショントークンを保持する必要がある場合が考えられます。以下のコード例に示すようにapi:set キーワードを使って任意の値を格納することができます。

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

Note:_ 記号で始まる属性のみを設定することができます。これは、ユーザーが設定した接続プロパティをオーバーライドできないようにするためです。

SQL Clauses (_query)

_query アイテムには、Sync App に発行されたクエリを説明する次の属性があります。

querySQL ステートメント。次に例を示します。
SELECT Id, Name FROM Accounts WHERE City LIKE '%New%' AND COUNTRY = 'US' GROUP BY CreatedDate ORDER BY Name LIMIT 10,50;
selectcolumnsSELECT 句のカラムのカンマ区切りリスト。例えば、この例ではId およびName カラムです。SELECT 句に "*" が指定された場合、[_query.selectcolumns] の値は "*" となります。
tableテーブル名。例えば、この例ではAccounts です。
isjoinクエリが結合かどうか。
jointableJOIN 句のテーブル。
criteriaWHERE 句。例えば、この例では次のWHERE 句です。
City LIKE '%New%' AND COUNTRY = 'US'
orderbyORDER BY 句。例えば、この例ではName です。
groupbyGROUP BY 句。例えば、この例ではCreatedDate です。
limitSELECT ステートメントのLIMIT またはTOP 句で指定されたリミット。例えば、この例では50 です。
offsetSELECT ステートメントのLIMIT またはTOP 句で指定されたオフセット。例えば、この例では10 です。
insertselectINSERT ステートメントにネストされたSELECT ステートメント。
updateselectUPDATE ステートメントにネストされたSELECT ステートメント。
upsertselectUPSERT ステートメントにネストされたSELECT ステートメント。
deleteselectDELETE ステートメントにネストされたSELECT ステートメント。
bulkoperationcolumns一括操作が変更するテーブルのカラム。カンマ区切りで指定します。例えば、次のクエリを考えてみましょう:
INSERT INTO Account(account_name, account_type) SELECT customer_name, customer_type FROM Customer#TEMP
[_query.bulkoperationcolumns] は次のカラムを返します。
[account_name], [account_type]
temptablecolumns一括操作でtemp テーブルから選択されたカラム。カンマ区切りで指定します。例えば、次のクエリを考えてみましょう:
DELETE FROM Account WHERE EXISTS SELECT customer_name, customer_type FROM Customer#TEMP
[_query.temptablecolumns] は次のカラムを返します。
[customer_name], [customer_type]
nullupdatesnull 値またはnull パラメータ値を含む、UPDATE ステートメントのカンマ区切りのカラム。
isschemaonlyクエリがスキーマ情報のみを取得するかどうか。

API 呼び出し間での属性値の保持(global)

global アイテムは、複数ページにまたがる複雑なマルチリクエストフローにおいて、rows@next のページング値以外に、複数の異なる値を保存して保持する必要がある場合に便利です。このアイテムに設定された属性は、クエリ処理で次のページのデータを処理する際にも引き続きアクセス可能です。

REST Connector for CData Sync

Value Formatters

値フォーマッタを使うと、特定のフォーマットを持つ新しい値を生成できます。値フォーマッタを使用して、値に対して文字列、日付、算術演算を実行できます。

フォーマッタを呼び出すための一般的なフォーマット:

[ item.attribute | formatter(parameters) | formatter (parameters) | ...]
formatter はフォーマッタの名前で、parameters はフォーマッタのアウトプットを制御するためのオプションのパラメータセットです。フォーマッタの出力は、パイプ文字("|")を使用して別のフォーマッタへの入力として提供できます。

サンプル

  • 以下のスニペットでは、myid 属性の値に含まれる"*" 文字が"-" に置き換えられ、結果の値がinput1.id に割り当てられます。
    <api:set attr="input1.id" value="[myid | replace('*', '-')]"/>
  • 以下では、2つの値フォーマッタをパイプ("|")文字で連結します。この例では、オペレーションから.log ファイルのみがプッシュされます。
    <api:call op="fileListDir">
      <api:check attr="name" value="[filename|tolower | endswith('.log')]">
        <api:push/>
      </api:check>
    </api:call>

REST Connector for CData Sync

String Formatters

[attr | allownull()]

属性が存在しない場合はNULL、存在する場合は値を返します。

[attr | arrayfind(substring)]

属性配列で文字列が見つかったときのインデックスを返します。インデックスは1ベースです。

  • searchstring:元の値で検索する文字列。

[attr | base64decode()]

属性値をBase64 デコードされた文字列に変換します。

[attr | base64encode()]

属性値をBase64 エンコードされた文字列に変換します。

[attr | capitalize()]

最初の文字のみを大文字にした元の属性値を返します。

[attr | capitalizeall()]

すべての単語の最初の文字を大文字にした元の属性値を返します。

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

最初のパラメータで指定された幅の文字列の中心の属性値を返します。パディングは、2番目のパラメータで指定されたfillchar を使用して行われます。

  • width:出力文字列の合計幅。
  • character:パディングに使用される文字(オプション)。指定されていない場合、デフォルトはスペースになります。

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

属性値がパラメータ値を含む場合はtrue(またはifcontains)を返し、それ以外の場合はfalse(ifnotcontains)を返します。

  • value:属性値から検索する文字列。
  • ifcontains:属性値がパラメータ値を含む場合に返される値(オプション)。
  • ifnotcontains:属性値がパラメータ値を含まない場合に返される値(オプション)。

[attr | count(substring)]

最初のパラメータで指定された部分文字列の属性値の出現回数を返します。

  • substring:属性値で検索する部分文字列。

[attr | currency([integer_count])]

通貨としてフォーマットされた数値を返します。

  • count:小数点以下の表示桁数を指定する数値(オプション)。デフォルトは2です。

[attr | decimal([integer_count])]

10進数としてフォーマットされた数値を返します。

  • count:小数点以下の表示桁数を示す数値(オプション)。デフォルトは2です。

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

属性の存在を確認し、存在しない場合は指定されたパラメータ値を返します。

  • notexists:属性値が存在しない場合に返す値(オプション)。
  • exists:元の属性値が存在する場合に返す値(オプション)。指定しない場合は、属性の元の値が返されます。

[attr | empty(value)]

属性値が空の場合は指定された値を返し、それ以外の場合は元の属性値を返します。

  • value:属性が空の場合に使用される値。

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

属性値が指定されたパラメータで終わるかどうかを決定します。属性が値で終わっている場合はtrue(またはiftrue)を返し、それ以外の場合はfalse(またはiffalse)を返します。

  • substring:最後に期待される文字列。
  • iftrue:属性値がパラメータ値で終わる場合に返される値(オプション)。
  • iffalse:属性値がパラメータ値で終わらない場合に返される値(オプション)。

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

属性値を最初のパラメータの値と比較して、同じ場合はtrue(またはifequals)を返し、それ以外の場合はfalse(またはifnotequals)を返します。

  • value:属性値と比較する文字列。
  • ifequals:属性値が最初のパラメータで表される値と等しい場合に返される値(オプション)。
  • ifnotequals:属性値が最初のパラメータで表される値と等しくない場合に返される値(オプション)。

[attr | extendtabs([integer_width])]

属性値にあるすべてのタブ文字をスペースに置き換えます。パラメータで指定されたタブサイズが指定されていない場合は、デフォルトの8文字のタブサイズが使用されます。

  • width:タブ幅(オプション)。指定しない場合のデフォルトは8です。

[attr | expr(expression)]

数式を評価します。

  • expression:式。

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

属性値で部分文字列が見つかったときのゼロベースの最小のインデックスを返します。

  • substring:属性値で検索する文字列。
  • startindex:検索を開始するインデックス(オプション)。

[attr | getlength()]

属性値の文字数を返します。

[attr | hmacshamd5([key], [toBase64, isBase64Encoded])]

渡されたキーとHmacSHAMD5 アルゴリズムで文字列を暗号化します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。
  • isBase64Encoded:入力がbase 64 エンコードかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。

[attr | hmacsha1([key], [toBase64, isBase64Encoded])]

渡されたキーとHmacSHA1 アルゴリズムで文字列を暗号化します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。
  • isBase64Encoded:入力がbase 64 エンコードかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。

[attr | hmacsha256([key], [toBase64, isBase64Encoded])]

渡されたキーとHmacSHA256 アルゴリズムで文字列を暗号化します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。
  • isBase64Encoded:入力がbase 64 エンコードかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。

[attr | hmacsha512([key], [toBase64, isBase64Encoded])]

渡されたキーとHmacSHA512 アルゴリズムで文字列を暗号化します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。
  • isBase64Encoded:入力がbase 64 エンコードかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。

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

属性値を最初のパラメータの値と比較して、同じ場合はtrue(またはifequals)を返し、それ以外の場合はfalse(またはifnotequals)を返します。

  • value:属性値と比較する文字列。
  • ifequals:属性値が最初のパラメータで表される値と等しい場合に返される値(オプション)。
  • ifnotequals:属性値が最初のパラメータで表される値と等しくない場合に返される値(オプション)。

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

属性値が最初のパラメータと一致する場合はtrue(またはifmatch)を返し、それ以外の場合はfalse(またはifnotmatch)を返します。

  • value:属性値と比較される値。
  • ifmatch:属性値がパラメータ値と一致する場合に返される値(オプション)。
  • ifnotmatch:属性値がパラメータ値と一致しない場合に返される値(オプション)。

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

属性値を確認してtrue の場合はtrue(またはiftrue)、false の場合はfalse(またはiffalse)を返します。

  • iftrue:属性値がtrue の場合に返される値(オプション)。
  • iffalse:属性値がfalse の場合に返される値(オプション)。

[attr | implode([separator])]

複数の値を区切り文字で区切られた文字列に分解します。

  • separator:区切り文字(オプション)。

[attr | insert(integer_index, string)]

指定したインデックスに指定した文字列を挿入します。

  • index:新しい文字列が挿入される元の値の位置のゼロベースのインデックス。
  • string:元の値に挿入する文字列。

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

属性値のすべての文字がアルファベットで、少なくとも1つの文字がある場合はtrue(またはifalpha)を返し、それ以外の場合はfalse(ifnotalpha)を返します。

  • ifalpha:属性値がアルファベットの場合に返される値(オプション)。
  • ifnotalpha:属性値がアルファベットではない場合に返される値(オプション)。

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

属性値のすべての文字がアルファベットで、少なくとも1つの文字がある場合はtrue(またはifalpha)を返し、それ以外の場合はfalse(ifnotalpha)を返します。

  • ifalpha:属性値がアルファベットの場合に返される値(オプション)。
  • ifnotalpha:属性値がアルファベットではない場合に返される値(オプション)。

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

属性値のすべての文字が英数字で、少なくとも1つの文字がある場合はtrue(またはifalphanum)を返し、それ以外の場合はfalse(ifnotalphanum)を返します。

  • ifalphanum:属性値がアルファベットまたは数字のみを含む場合に返される値(オプション)。
  • ifnotalphanum:属性値が非アルファベットまたは非数字のみを含む場合に返される値(オプション)。

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

属性値のすべての文字が英数字で、少なくとも1つの文字がある場合はtrue(またはifalphanum)を返し、それ以外の場合はfalse(ifnotalphanum)を返します。

  • ifalphanum:属性値がアルファベットまたは数字のみを含む場合に返される値(オプション)。
  • ifnotalphanum:属性値が非アルファベットまたは非数字のみを含む場合に返される値(オプション)。

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

属性値のすべての文字が数字で、少なくとも1つの文字がある場合はtrue(またはifnum)を返し、それ以外の場合はfalse(ifnotnum)を返します。

  • ifnum:属性値が数字の場合に返される値(オプション)。
  • ifnotnum:属性値が数字ではない場合に返される値(オプション)。

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

属性値のすべての文字が小文字で、少なくとも1つの文字がある場合はtrue(またはiflower)を返し、それ以外の場合はfalse(ifnotlower)を返します。

  • iflower:属性値が小文字の場合に返される値(オプション)。
  • ifnotlower:属性値が小文字ではない場合に返される値(オプション)。

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

属性値のすべての文字が数字で、少なくとも1つの文字がある場合はtrue(またはifnum)を返し、それ以外の場合はfalse(ifnotnum)を返します。

  • ifnum:属性値が数字の場合に返される値(オプション)。
  • ifnotnum:属性値が数字ではない場合に返される値(オプション)。

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

属性値が空白文字のみで、少なくとも1つの文字がある場合はtrue(またはifspace)を返し、それ以外の場合はfalse(ifnotspace)を返します。

  • ifspace:属性値が空白の場合に返される値(オプション)。
  • ifnotspace:属性値が空白でない場合に返される値(オプション)。

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

属性値のすべての文字が大文字で、少なくとも1つの文字がある場合はtrue(またはifupper)を返し、それ以外の場合はfalse(ifnotupper)を返します。

  • ifupper:属性値が大文字の場合に返される値(オプション)。
  • ifnotupper:属性値が大文字ではない場合に返される値(オプション)。

[attr | join([separator])]

複数の値を区切り文字で区切られた文字列に分解します。

  • separator:区切り文字(オプション)。

[attr | jsonescape()]

属性値をJSON エスケープされた単一行の文字列に変換します。

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

最初のパラメータで指定した長さの文字列で左揃えされた属性値を返します。パディングは、2番目のパラメータで指定されたfillchar を使用して行われます。

  • width:出力文字列の合計幅。
  • character:パディングに使用される文字(オプション)。デフォルトはスペースです。

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

属性値で部分文字列が見つかったときのゼロベースの最小のインデックスを返します。

  • substring:属性値で検索する文字列。
  • startindex:検索を開始するインデックス(オプション)。

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

最初のパラメータで指定した長さの文字列で左揃えされた属性値を返します。パディングは、2番目のパラメータで指定されたfillchar を使用して行われます。

  • width:出力文字列の合計幅。
  • character:パディングに使用される文字(オプション)。デフォルトはスペースです。

[attr | lsplit(delimiter, integer_index)]

属性値で表される文字列を、最初のパラメータで区切られたトークンに分割し、2番目のパラメータで指定されたインデックスのトークンを返します。左から数えます。

  • delimiter:文字列をトークンに分割するための区切り文字として使用される文字列。
  • index:最初のトークンがインデックス1にある場合にリクエストされるトークンのインデックス。

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

属性値で表される文字列から、pattern パラメータで指定された正規表現が出現しているものを検索します。

  • pattern:一致する正規表現パターン。
  • index:返す一致の番号付きインデックス(オプション)。デフォルトは0です。
  • option:正規表現オプションのカンマ区切りリスト(オプション)。一般的に使用されるオプションは、IgnoreCase、Multiline、Singleline、およびIgnorePatternWhitespace です。

[attr | md5hash([converttobase64])]

属性値のMD5 ハッシュを計算します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。

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

属性値を最初のパラメータの値と比較します。異なる場合はtrue(またはnotequals)、等しい場合はfalse(またはequals)を返します。

  • value:属性値と比較する文字列。
  • notequals:属性値が最初のパラメータで表される値と等しくない場合に返される値(オプション)。
  • equals:属性値が最初のパラメータで表される値と等しい場合に返される値(オプション)。

[attr | nowhitespace()]

属性値で表される文字列から空白を削除します。

[attr | percentage([integer_count])]

パーセンテージとしてフォーマットされた数値を返します。

  • count:小数点以下の表示桁数を示す数値(オプション)。

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

属性値で表される文字列から、pattern パラメータで指定された正規表現が出現しているものを検索します。

  • pattern:一致する正規表現パターン。
  • index:返す一致の番号付きインデックス(オプション)。デフォルトは0です。
  • option:正規表現オプションのカンマ区切りリスト(オプション)。一般的に使用されるオプションは、IgnoreCase、Multiline、Singleline、およびIgnorePatternWhitespace です。

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

属性値で表される文字列から、pattern パラメータで指定された正規表現が出現しているものを検索します。

  • pattern:一致する正規表現パターン。
  • index:返す一致の番号付きインデックス(オプション)。デフォルトは0です。
  • option:正規表現オプションのカンマ区切りリスト(オプション)。一般的に使用されるオプションは、IgnoreCase、Multiline、Singleline、およびIgnorePatternWhitespace です。

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

属性値で見つかったすべての正規表現パターンをreplacewith で置き換えます。

  • search:検索する正規表現。
  • replacewith:合致した部分を置換するテキスト。
  • startat:置換を開始する文字インデックス(オプション)。デフォルトは0です。

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

属性値から文字を削除します。最初のパラメータで指定されたゼロベースのインデックスから始まります。

  • index:文字の削除を開始する位置。
  • count:削除する文字数(オプション)。指定しない場合は、指定されたインデックスから始まるすべての文字が削除されます。

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

属性値で表される文字列内の最初のパラメータのすべての出現箇所を2番目のパラメータの値で置き換えます。

  • oldvalue:置き換えられる文字列。
  • newvalue:最初のパラメータのすべての出現箇所を置き換える文字列。
  • ishex:最初のパラメータが置換する文字の16進表記であるかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。

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

属性値で部分文字列が見つかったときのゼロベースの最大のインデックスを返します。

  • substring:元の値で検索する文字列。
  • startindex:検索を開始するインデックス(オプション)。

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

2番目のパラメータで指定した長さの文字列で右揃えされた属性値を返します。パディングは、最初のパラメータで指定されたfillchar を使用して行われます。

  • width:出力文字列の合計幅。
  • character:パディングに使用される文字(オプション)。指定されていない場合、デフォルトはスペースになります。

[attr | rsplit(delimiter, integer_index)]

属性値で表される文字列を、最初のパラメータで区切られたトークンに分割し、2番目のパラメータで指定されたインデックスのトークンを返します。右から数えます。

  • delimiter:文字列をトークンに分割するための区切り文字として使用される文字列。
  • index:最初のトークンがインデックス1にある場合にリクエストされるトークンのインデックス。

[attr | sha1hash([converttobase64])]

属性値のSHA-1 ハッシュを計算します。

  • encodetobase64:結果をbase 64 エンコード文字列に変換するかどうかを指定するboolean 値(オプション)。デフォルトはtrue です。

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

属性値の部分文字列を返します。パラメータで指定されたインデックスから始まり、右にカウントします。

  • index:部分文字列が右から始まるゼロベースのインデックス。
  • length:開始インデックスからの文字の長さ(オプション)。長さが指定されていない場合は、最後までの部分文字列を返します。

[attr | split(delimiter, integer_index)]

属性値で表される文字列を、最初のパラメータで区切られたトークンに分割し、2番目のパラメータで指定されたインデックスのトークンを返します。左から数えます。

  • delimiter:文字列をトークンに分割するための区切り文字として使用される文字列。
  • index:最初のトークンがインデックス1にある場合にリクエストされるトークンのインデックス。

[attr | sqlescape()]

属性値をSQL エスケープされた単一行の文字列に変換します。

  • dbtype:エンコードするデータベースの種類。SQL またはSQLite が使用可能です。デフォルトはSQL です。

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

属性値が指定したパラメータから始まっている場合はtrue(またはiftrue)を返し、それ以外の場合はfalse(またはiffalse)を返します。

  • substring:最初に期待される文字列。
  • iftrue:属性値がパラメータ値で始まる場合に返される値(オプション)。
  • iffalse:属性値がパラメータ値で始まらない場合に返される値(オプション)。

[attr | striphtml()]

HTML マークアップが削除された文字列を返します。

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

属性値の部分文字列を返します。パラメータで指定されたインデックスから始まります。

  • index:部分文字列が始まるゼロベースのインデックス。
  • length:開始インデックスからの文字の長さ(オプション)。長さが指定されていない場合は、文字列の最後までの部分文字列を返します。

[attr | toalpha()]

文字列内の文字のみを返します。

[attr | toalphanum()]

文字列内の英数字のみを返します。

[attr | tolower()]

すべての文字が小文字に変換された属性値で表される文字列を返します。

[attr | toupper()]

すべての文字が大文字に変換された属性値で表される文字列を返します。

[attr | trim()]

属性の先頭と末尾のスペースを削除します。

[attr | trimend()]

属性の末尾のスペースを削除します。

[attr | trimstart()]

属性の先頭のスペースを削除します。

[attr | truncate(integer_count)]

属性値を、パラメータで指定された文字数に切り捨てます。

  • count:結果の文字列の文字数。

[attr | urlencode([isurlcomponent])]

属性値をURL エンコード文字列に変換します。

  • isurlcomponent:属性値がURL コンポーネントかフルURL かを指定する boolean 値(オプション)。false に設定すると、最初の'?' 文字以降のコンテンツのみをエンコードし、すべての'=' および'&' 文字を無視します。デフォルトはtrue で、URL コンポーネントです。

[attr | urldecode()]

属性値をURL デコード文字列に変換します。

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

文字列を指定された文字数に折り返します。

  • width:文字列が折り返される文字数(オプション)。
  • break:改行に使用するbreak パラメータ(オプション)。
  • cut:指定された幅で、またはその前で文字列を折り返すかどうかを指定するboolean 値(オプション)。デフォルトはfalse です。
  • wrapexp:ブレーク可能な文字として使用される正規表現(オプション)。デフォルトはスペースです。

[attr | print([delim])]

指定された区切り文字を使用して連結された属性のすべての値を含む文字列を返します。

  • delim:値を区切る区切り文字(オプション)。デフォルトはカンマです。

[attr | xmldecode()]

属性値をXML デコードされた文字列に変換します。

[attr | xmlencode()]

属性値をXML エンコードされた文字列に変換します。

REST Connector for CData Sync

Date Formatters

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

属性値とパラメータ値によって表される日付の相対値を示す符号付き数値を返します。

  • value:属性値と比較される日付の文字列表現(オプション)。デフォルトはnow です。
  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | date([outputformat])]

現在のシステム日時を、パラメータで指定されている場合は、指定された形式で返します。

  • outputformat:フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。

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

日付の指定されたdate 部分に、指定されたnumber 間隔(符号付き整数)を加算したdatetime の文字列値を返します。

  • interval:追加する間隔(オプション)。year、month、day、hour、minute、second、またはmillisecond を指定します。
  • value:追加する間隔の数(オプション)。将来の日付に正、または過去の日付に負のどちらでも構いません。
  • outputformat:出力フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。
  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

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

現在と2つ目のパラメータで指定した日付との差を(1つ目のパラメータで指定した単位で)返します。

  • interval:結果を表示する間隔(オプション)。day、hour、minute、second、またはmillisecond を指定します。
  • value:属性値と比較する日付の文字列表現(オプション)。デフォルトはnow です。
  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | day([inputformat])]

属性値で表される日付の、1から31までの値で表される日の部分を返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | dayofweek([inputformat])]

属性値で表される日付の曜日を返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | dayofyear([inputformat])]

属性値で表される日付の、1から366までの値で表される年日を返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | filetimenow()]

現在のシステムファイルの時刻の日時を返します。

[attr | fromfiletime([outputformat])]

有効なファイル時刻を、パラメータが指定されている場合は、パラメータで指定された形式の有効な日時値に変換します。

  • outputformat:出力フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。

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

属性値で表される4桁の年がうるう年であればtrue(またはifleap)、それ以外の場合はfalse(またはifnotleap)を返します。

  • ifleap:属性値がうるう年の場合に返される値(オプション)。
  • ifnotleap:属性値がうるう年でない場合に返される値(オプション)。

[attr | month([inputformat])]

属性値で表される日付の、1から12までの値で表される月の部分を返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | now([outputformat])]

現在のシステム日時を、パラメータで指定されている場合は、指定された形式で返します。

  • outputformat:フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。

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

パラメータが指定されている場合は、パラメータで指定された形式の属性値で指定された日付を返します。

  • outputformat:出力フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。
  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | tofiletime([inputformat])]

有効な日時を有効なファイル時刻値に変換します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | tomonth()]

属性値で指定された数値の月の名前を返します。

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

属性値で指定された日付をUTC に変換し、outputformat パラメータが指定されている場合はそれに合わせてフォーマットして返します。

  • outputformat:フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。

[attr | utcnow([outputformat])]

現在のシステムのUTC 日時を返します。

  • outputformat:フォーマット指定子(オプション)。有効な指定子は、d(短い形式の日)、D(長い形式の日)、f(長い形式の日/短い形式の時間 )、F(長い形式の日/時間)、g(標準の短い形式の日/時)、G(標準の短い形式の日/長い形式の時間)、r またはR (RFC1123 形式)、s(ソート可能な形式の日/時)、t(短い形式の時間)、T(長い形式の時間)、file(Windows ファイル時間)、MM/dd/yy などです。

[attr | weekday([inputformat])]

曜日を、月曜日が0、日曜日が6の整数値で返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

[attr | year([inputformat])]

属性値で表される日付の年部分を返します。

  • inputformat:入力フォーマット指定子(オプション)。デフォルトは自動検出されます。

REST Connector for CData Sync

Math Formatters

[attr | abs()]

数値属性値の絶対値を返します。

[attr | add([value])]

数値属性値とパラメータで指定された値の合計を返します。

  • value:指定された属性値に追加する数値(オプション)。デフォルトは1です。

[attr | and(value)]

2つの値のAND を返します。両側の値は、1/0、yes/no、true/false である必要があります。

  • value:比較するboolean 値。

[attr | ceiling()]

数値属性値以上で最小の整数を返します。

[attr | div([value])]

数値属性値をパラメータの指定された値で除算した結果を返します。

  • value:数値属性値を除算する数値(オプション)。デフォルトは2です。

[attr | divide([value])]

数値属性値をパラメータの指定された値で除算した結果を返します。

  • value:数値属性値を除算する数値(オプション)。デフォルトは2です。

[attr | floor()]

指定された数値属性値以下で最大の整数を返します。

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

属性値がパラメータ値より大きい場合はtrue(またはifgreater)を返し、それ以外の場合はfalse(ifnotgreater)を返します。

  • value:属性値と比較する数値。
  • ifgreater:属性値がパラメータ値より大きい場合に返される値(オプション)。
  • ifnotgreater:属性値がパラメータ値より大きくない場合に返される値(オプション)。

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

属性値が、1つ目のパラメータ値以上で2つ目のパラメータ値以下の場合はtrue(またはifbetween)を返し、それ以外の場合はfalse(ifnotbetween)を返します。

  • lowvalue:確認する範囲の下限。
  • highvalue:確認する範囲の上限。
  • ifbetween:属性値が1つ目のパラメータ値以上で、2つ目のパラメータ値以下の場合に返される値(オプション)。
  • ifnotbetween:属性値が1つ目のパラメータ値以下、または2つ目のパラメータ値以上の場合に返される値(オプション)。

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

属性値がパラメータ値と等しい場合はtrue(またはifequal)を返し、それ以外の場合はfalse(ifnotequal)を返します。

  • value:属性値と比較する数値。
  • ifequal:属性値がパラメータ値と等しい場合に返される値(オプション)。
  • ifnotequal:属性値がパラメータ値と等しくない場合に返される値(オプション)。

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

属性値がパラメータ値より大きい場合はtrue(またはifgreater)を返し、それ以外の場合はfalse(ifnotgreater)を返します。

  • value:属性値と比較する数値。
  • ifgreater:属性値がパラメータ値より大きい場合に返される値(オプション)。
  • ifnotgreater:属性値がパラメータ値より大きくない場合に返される値(オプション)。

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

属性値がパラメータ値より小さい場合はtrue(またはifless)を返し、それ以外の場合はfalse(ifnotless)を返します。

  • value:属性値と比較する数値。
  • ifless:属性値がパラメータ値より小さい場合に返される値(オプション)。
  • ifnotless:属性値がパラメータ値より小さくない場合に返される値(オプション)。

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

属性値がパラメータ値より小さい場合はtrue(またはifless)を返し、それ以外の場合はfalse(ifnotless)を返します。

  • value:属性値と比較する数値。
  • ifless:属性値がパラメータ値より小さい場合に返される値(オプション)。
  • ifnotless:属性値がパラメータ値より小さくない場合に返される値(オプション)。

[attr | mathadd([value])]

数値属性値とパラメータで指定された値の合計を返します。

  • value:指定された属性値に追加する数値(オプション)。デフォルトは1です。

[attr | mathmod(value)]

数値属性値を指定されたパラメータ値で除算した係数を返します。

  • value:属性値を除算する数値。

[attr | mathpow([value])]

パラメータ値で指定された指数で累乗された数値属性値を返します。

  • value:属性値を引き上げる指数(オプション)。デフォルトは2です。

[attr | mathround([integer_value])]

パラメータで指定された小数点以下の桁数に丸められた数値属性値を返します。

  • value:小数点以下の桁数(オプション)。デフォルトは2です。

[attr | mathsub([value])]

数値属性値とパラメータで指定された値の差を返します。

  • value:属性値を減算する数値(オプション)。

[attr | modulus(value)]

数値属性値を指定されたパラメータ値で除算した係数を返します。

  • value:属性値を除算する数値。

[attr | multiply([value])]

数値属性値をパラメータの指定された値で乗算した結果を返します。

  • value:数値属性値を乗算する数値(オプション)。デフォルトは2です。

[attr | or(value)]

2つの値のOR を返します。両側の値は、1/0、yes/no、true/false である必要があります。

  • value:比較するboolean 値。

[attr | pow([value])]

パラメータ値で指定された指数で累乗された数値属性値を返します。

  • value:属性値を引き上げる指数(オプション)。デフォルトは2です。

[attr | rand([integer_value])]

0 とパラメータ値の間のランダムな整数を返します。

  • value:可能な限り最大の乱数を制限する値(オプション)。デフォルトは100です。

[attr | random([integer_value])]

0 とパラメータ値の間のランダムな整数を返します。

  • value:可能な限り最大の乱数を制限する値(オプション)。デフォルトは100です。

[attr | round([integer_value])]

パラメータで指定された小数点以下の桁数に丸められた数値属性値を返します。

  • value:小数点以下の桁数(オプション)。デフォルトは2です。

[attr | sqrt()]

数値属性値の平方根を返します。

[attr | subtract([value])]

数値属性値とパラメータで指定された値の差を返します。

  • value:属性値を減算する数値(オプション)。

REST Connector for CData Sync

Operations

Value Formatters は単純なデータ操作や書式設定を行いますが、 Operations はAPI スクリプト内でより複雑な処理を行う場合に使用します。

REST Connector for CData Sync

httpPost

HTTP POST メソッドを使用してURL にデータを送信します。

必要なパラメータ

  • url:送信先のURL。

オプションのパラメータ

  • timeout:オペレーションが完了するまでのタイムアウト(秒)。ゼロ(0)はタイムアウトなしを意味します。デフォルトは60です。
  • proxy_server:プロキシサーバーのIP アドレスとホスト名。
  • proxy_auto:Windows システム設定からプロキシが検出されるかどうか。使用できる値:TRUE、FALSE。デフォルトはFALSE です。
  • proxy_port:プロキシサーバーのポート番号。
  • proxy_user:プロキシサーバーのユーザーID。
  • proxy_password:プロキシサーバーのパスワード。
  • proxy_authscheme:プロキシサーバーの認証スキーム。使用できる値:BASIC、DIGEST、PROPRIETARY、NONE、NTLM。デフォルトはBASIC です。
  • proxy_authtoken:プロキシ認証トークン。
  • proxy_ssltype:プロキシのSSL/TLS タイプ。使用できる値:AUTO、ALWAYS、NEVER、TUNNEL。デフォルトはAUTO です。
  • firewall_server:ファイアーウォールのIP とホスト名。
  • firewall_port:ファイアーウォールのポート。
  • firewall_user:ファイアーウォールのユーザー名。
  • firewall_password:ファイアーウォールのパスワード。
  • firewall_type:ファイアーウォールのタイプ。使用できる値:NONE、TUNNEL、SOCKS4、SOCKS5。デフォルトはNONE です。
  • kerberoskdc:Kerberos のKDC 設定で、AuthScheme がNegotiate の場合に使用。
  • kerberosrealm:Kerberos のRealm 設定で、AuthScheme がNegotiate の場合に使用。
  • internalconfig#:内部コンフィギュレーション設定の設定。
  • charset:交換データの文字セット。デフォルトはUTF-8 です。
  • httpversion:HTTP バージョン。使用できる値:1.0、1.1。デフォルトは1.1です。
  • cookie:*:リクエストに追加する任意のCookie。
  • followredirects:HTTP リダイレクトに従うかどうか。使用できる値:TRUE、FALSE。デフォルトはTRUE です。
  • sslcert:受け入れるSSL/TLS 証明書。PEM、ファイルパス、公開鍵、拇印、TRUSTED のいずれかを指定します。
  • sslclientcert:クライアント証明書ストアの名前。
  • sslclientcerttype:クライアント証明書のストアタイプ。使用できる値:USER、MACHINE、PFXFILE など。
  • sslclientcertpassword:クライアント証明書のパスワード。
  • sslclientcertsubject:クライアント証明書のサブジェクト。アスタリスクは、ストア内の最初の証明書を検出します。
  • user:認証用のユーザー名。
  • password:認証用のパスワード。
  • authscheme:認可の仕組み。使用できる値:BASIC、DIGEST、NTLM。デフォルトはBASIC です。
  • version:OAuth のバージョン。使用できる値:Disabled、1.0、2.0。デフォルトはDisabled です。
  • token:OAuth リクエストトークン。
  • token_secret:OAuth リクエストトークンシークレット(1.0 のみ)
  • sign_method:OAuth 1.0 用の署名方法。使用できる値:HMAC-SHA1、PLAINTEXT。デフォルトはHMAC-SHA1 です。
  • client_id:クライアントID(OAuth 1.0 のみ)。
  • client_secret:クライアントシークレット(OAuth 1.0 のみ)。
  • header:name#:カスタムヘッダーの名前。
  • header:value#:カスタムヘッダーの値。
  • paramname#:含めるパラメータの名前。
  • paramvalue#:含めるパラメータの値。
  • formencoding:パラメータのエンコーディング。使用できる値:URLENCODED、FORMDATA。デフォルトはURLENCODED です。
  • postdata:POST に含める生データ。ファイルを含めるにはfile://path を使用します。
  • contenttype:POST のコンテンツタイプ。デフォルトはapplication/x-www-form-urlencoded です。
  • logfile:リクエスト / レスポンスデータのログファイルへのフルパス(verbosity が必須)
  • verbosity:ログのVerbosity レベル、1-5。

アウトプット属性

  • ssl:issuer:SSL/TLS 証明書の発行者。
  • ssl:subject:SSL/TLS 証明書のサブジェクト。
  • http:statuscode:返されたHTTP ステータスコード。
  • http:content:HTTP レスポンスのコンテンツ。
  • cookie:*:レスポンスで返されたCookie。
  • http:allcookies:単一の文字列としてのすべてのレスポンスCookie。
  • header:*:レスポンスで返されたヘッダー。

例


<api:set item="http" attr="URL" value="http://example.com/people"/>
<api:set item="http" attr="paramname#1" value="name"/>
<api:set item="http" attr="paramvalue#1" value="Charlie"/>
<api:set item="http" attr="paramname#2" value="age"/>
<api:set item="http" attr="paramvalue#2" value="28"/>

<api:call op="httpPost" in="http">
  <api:set attr="output.data" value="[http:content]"/>
</api:call>

<api:set attr="output.filename" value="httpContent.txt"/>
<api:push item="output"/>

REST Connector for CData Sync

httpGet

HTTP GET メソッドを使用してWeb からドキュメントを取得します。

必要なパラメータ

  • url:取得するURL。

オプションのパラメータ

  • timeout:オペレーションが完了するまでのタイムアウト(秒)。ゼロ(0)はタイムアウトなしを意味します。デフォルトは60です。
  • proxy_server:プロキシサーバーのIP アドレスとホスト名。
  • proxy_auto:Windows システム設定からプロキシが検出されるかどうか。使用できる値:TRUE、FALSE。デフォルトはFALSE です。
  • proxy_port:プロキシサーバーのポート番号。
  • proxy_user:プロキシサーバーのユーザーID。
  • proxy_password:プロキシサーバーのパスワード。
  • proxy_authscheme:プロキシサーバーの認証スキーム。使用できる値:BASIC、DIGEST、PROPRIETARY、NONE、NTLM。デフォルトはBASIC です。
  • proxy_authtoken:プロキシ認証トークン。
  • proxy_ssltype:プロキシのSSL/TLS タイプ。使用できる値:AUTO、ALWAYS、NEVER、TUNNEL。デフォルトはAUTO です。
  • firewall_server:ファイアーウォールのIP とホスト名。
  • firewall_port:ファイアーウォールのポート。
  • firewall_user:ファイアーウォールのユーザー名。
  • firewall_password:ファイアーウォールのパスワード。
  • firewall_type:ファイアーウォールのタイプ。使用できる値:NONE、TUNNEL、SOCKS4、SOCKS5。デフォルトはNONE です。
  • kerberoskdc:Kerberos のKDC 設定で、AuthScheme がNegotiate の場合に使用。
  • kerberosrealm:Kerberos のRealm 設定で、AuthScheme がNegotiate の場合に使用。
  • internalconfig#:内部コンフィギュレーション設定の設定。
  • charset:交換データの文字セット。デフォルトはUTF-8 です。
  • httpversion:HTTP バージョン。使用できる値:1.0、1.1。デフォルトは1.1です。
  • cookie:*:リクエストに追加する任意のCookie。
  • followredirects:HTTP リダイレクトに従うかどうか。使用できる値:TRUE、FALSE。デフォルトはTRUE です。
  • sslcert:受け入れるSSL/TLS 証明書。PEM、ファイルパス、公開鍵、拇印、TRUSTED のいずれかを指定します。
  • sslclientcert:クライアント証明書ストアの名前。
  • sslclientcerttype:クライアント証明書のストアタイプ。使用できる値:USER、MACHINE,、PFXFILE、JKSFILE、JKSBLOB、PEMKEY_FILE、PEMKEY_BLOB、PUBLIC_KEY_FILE、PUBLIC_KEY_BLOB、SSHPUBLIC_KEY_BLOB、P7BFILE、P7BBLOB、SSHPUBLIC_KEY_FILE、PPKFILE、PPKBLOB、XMLFILE、XMLBLOB。
  • sslclientcertpassword:クライアント証明書のパスワード。
  • sslclientcertsubject:クライアント証明書のサブジェクト。アスタリスクは、ストア内の最初の証明書を検出します。
  • user:認証用のユーザー名。
  • password:認証用のパスワード。
  • authscheme:認可の仕組み。使用できる値:BASIC、DIGEST、NTLM。デフォルトはBASIC です。
  • version:OAuth のバージョン。使用できる値:Disabled、1.0、2.0。デフォルトはDisabled です。
  • token:OAuth リクエストトークン。
  • token_secret:OAuth リクエストトークンシークレット(1.0 のみ)
  • sign_method:OAuth 1.0 用の署名方法。使用できる値:HMAC-SHA1、PLAINTEXT。デフォルトはHMAC-SHA1 です。
  • client_id:クライアントID(OAuth 1.0 のみ)。
  • client_secret:クライアントシークレット(OAuth 1.0 のみ)。
  • header:name#:カスタムヘッダーの名前。
  • header:value#:カスタムヘッダーの値。
  • ifmodifiedsince:If-Modified-Since の値(例:Sat, 25 Feb 2006 04:11:47 GMT)。
  • localfile:指定した場合、GET の結果をこのファイルに書き込みます。
  • logfile:リクエスト / レスポンスデータのログファイルへのフルパス(verbosity が必須)
  • verbosity:ログのVerbosity レベル、1-5。

アウトプット属性

  • ssl:issuer:SSL/TLS 証明書の発行者。
  • ssl:subject:SSL/TLS 証明書のサブジェクト。
  • http:statuscode:返されたHTTP ステータスコード。
  • http:content:HTTP レスポンスのコンテンツ。
  • cookie:*:レスポンスで返されたCookie。
  • http:allcookies:単一の文字列としてのすべてのレスポンスCookie。
  • header:*:レスポンスで返されたヘッダー。

REST 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 などです。

REST 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:オペレーションにより返されたアイテムのループ。

REST 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:次の反復に続く。

REST 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 のデフォルトケースを書く。

REST 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:例外の強制。

REST 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:同じ値ではないかのチェック。

REST 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:スクリプト、オペレーション、もしくはフィードを呼び出す。

REST 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 ブロックを書く。

REST 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:同じ値かどうかのチェック。

REST 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:最後の反復で特別な処理を行う。

REST 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:同じ値ではない場合に実行されるブロックの作成。

REST 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:条件が充足されない場合に実行されるブロックの作成。

REST 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:反復の最後のみコードブロックを実行する。

REST 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:スクリプトブロックの作成。

REST 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:同じ値である場合に実行されるブロックの作成。

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

REST 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:アイテムでアトリビュートを設定。

REST 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:反復の最初のみコードブロックを実行する。

REST 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:アイテムのアトリビュートを設定する。

REST 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:複数の値の比較。

REST 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:条件が充足されない場合に実行されるブロックの作成。

REST 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:条件が充足されない場合に実行されるブロックの作成。

REST 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:条件が充足されない場合に実行されるブロックの作成。

REST 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>

REST 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 REST.この例は、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>

REST 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 のデフォルトケースを書く。

REST 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:一つのキーワードしか持たないマルチプルアトリビュートを設定する。

REST 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" />

REST 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:アイテムでアトリビュートを設定。

REST Connector for CData Sync

api:throw

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

パラメータ

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

アトリビュートの制御

None

サンプル

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

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

関連項目

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

REST 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:例外の強制。

REST 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:アイテムでアトリビュートを設定。

REST 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:スクリプト内から(例外)エラーをあげます。

REST Connector for CData Sync

接続文字列オプション

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

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

Authentication


プロパティ説明
AuthSchemeリモートサービスへの接続時に使用する認証のタイプ。
AccessKeyREST への認証に使用されるアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。
SecretKeyアカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。
ApiKeyIBM Cloud にユーザーを識別させるためのAPI キー。
UserThe authenticating user, required with the Password for authentication to the server..
PasswordThe authenticating user's password, required with the User name for authentication to the server.
SharePointEdition使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。
AuthorizationHeaderPrefixSpecifies a value to be prepended to the client secret, to form the Authorization header. The prepended value is usually a client ID.
ImpersonateUserModeSpecify the type of the user impersonation. It should be whether the User mode or the Admin mode.

Connection


プロパティ説明
ConnectionTypeREST のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。
FormatSpecifies the format reported by the data source. Required when using either the CreateSchema stored procedure or the Generate Schema File feature.
URIXML/JSON/CSV リソースロケーションのUniform Resource Identifier (URI)。
RegionS3ライクなWeb サービスのホスティングリージョン。
OracleNamespace使用するOracle Cloud Object Storage ネームスペース。
StorageBaseURLクラウドストレージサービスプロバイダーのURL を指定します。
SimpleUploadLimitこの設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。
UseVirtualHostingTrue(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

AWS Authentication


プロパティ説明
AWSAccessKeyAWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSPrincipalARNAWS アカウントのSAML ID プロバイダーのARN。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
AWSWebIdentityTokenID プロバイダーが提供するOAuth 2.0 アクセストークンまたはOpenID Connect ID トークン。
ServerSideEncryption有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。
SSEContextA BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.
SSEEnableS3BucketKeysConfiguration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.
SSEKeyA symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

Azure Authentication


プロパティ説明
AzureStorageAccountAzure ストレージアカウント名。
AzureAccessKeyAzure アカウントに関連付けられているストレージキー。
AzureSharedAccessSignature認証に使用可能な共有アクセスキー署名。
AzureTenantデータにアクセスするために使用されているREST テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。
AzureEnvironment接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。

Keycloak Authentication


プロパティ説明
KeycloakRealmURL認証と認可に使用される特定のレルムを含むKeycloak サーバーへの完全なURL を指定します。

SSO


プロパティ説明
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesID プロバイダーへの接続に必要な追加プロパティを、セミコロンで区切ったリスト形式で指定します。
SSOExchangeURLSAML 応答を処理してサービスの資格情報と交換するために使用するURL。

JSON and XML


プロパティ説明
XPathSpecifies the XPath of an element that has the same name as other elements at that same height within the XML/JSON document. This XPath is used to split the document into multiple rows.
DataModelSpecifies the data model configuration to use when parsing XML/JSON documents and generating the database metadata. The value supplied here controls how the driver models nested object arrays into tables.
JSONFormatSpecifies the format of the JSON document. Requires Format to be set to JSON.
XMLFormatSpecifies the format of the XML document.
FlattenArraysSpecifies the number of elements you want to return from nested arrays, as columns of their own. Only recommended for arrays that are expected to be short.
FlattenObjectsSpecifies that object properties should be flattened into columns of their own. Otherwise, objects nested in arrays are returned as XML/JSON strings.
BackwardsCompatibilityModeOptional property that, when set to True, specifies that XML/JSON functionality should match the functionality and features of the 2017 version. To access the most recent XML/JSON flattening features, leave this blank.
QualifyColumnsSpecifies whether the provider will use relative column names.
URISeparatorA delimiter used to separate different values in the URI property.

CSV


プロパティ説明
FMTSpecifies the format to use when parsing all CSV files.
IncludeColumnHeadersDirects the driver to derive column names for each table from the first line of CSV files.

OAuth


プロパティ説明
OAuthVersion使われているOAuth のバージョンを指定します。
OAuthClientIdカスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。
OAuthClientSecretカスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ)
SubjectIdThe user subject for which the application is requesting delegated access.
SubjectTypeThe Subject Type for the Client Credentials authentication.
Scopeデータへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。
OAuthPasswordGrantModeOAuth Client ID およびClient Secret を認可サーバーに送信する方法を指定します。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。
SupportCaseSensitiveOAuthParamstrueの場合、 OAuthParams 内のパラメータ名は、ユーザーが指定した大文字小文字の区別を使用してリクエストに送信されます。

JWT OAuth


プロパティ説明
OAuthJWTCertクライアント証明書のJWT 証明書ストアの名前を指定します。
OAuthJWTCertTypeJWT 証明書を格納しているキーストアの種類を指定します。
OAuthJWTCertPasswordパスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
OAuthJWTEncryptionKeyJWT トークンのHMAC 署名に使用されるキー。
OAuthJWTCertSubjectストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
OAuthJWTIssuerJava Web Token の発行者。
OAuthJWTSubjectアプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。
OAuthJWTSubjectTypeJWT 認証のサブタイプ。
OAuthJWTPublicKeyIdJWT の公開キーのID。
OAuthJWTAudienceJWT を使用できるエンティティのスペース区切りリスト。
OAuthJWTEncryptionJWT 認証で使用される暗号化アルゴリズム。
OAuthJWTHeadersJWT に含める追加ヘッダーのコレクション。
OAuthJWTValidityTimeJWT の有効期限(秒)。

Kerberos


プロパティ説明
KerberosKDCユーザーの認証に使用されるKerberos キー配布センター(KDC)サービスを識別します。(SPNEGO またはWindows 認証のみ)
KerberosRealmユーザーの認証に使用される Kerberos レルムを識別します。
KerberosSPNKerberos ドメインコントローラーのサービスプリンシパル名(SPN)を指定します。
KerberosUserKerberos ドメインコントローラーのプリンシパル名を確認します。形式はhost/user@realm です。
KerberosKeytabFileKerberos のプリンシパルと暗号化されたキーのペアを含むKeytab ファイルを指定します。
KerberosServiceRealmサービスのKerberos レルムをを指定します。(クロスレルム認証のみ)
KerberosServiceKDCサービスのKerberos Key Distribution Center(KDC)を指定します。
KerberosTicketCacheMIT Kerberos 認証情報キャッシュファイルの完全ファイルパスを指定します。

SSL


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。
SSLClientCertTypeSSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。
SSLClientCertPasswordTLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。
SSLModeFTP またはFTPS サーバーに接続する際の認証メカニズム。
SSLServerCertTLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。

SSH


プロパティ説明
SSHAuthModeサービスへのSSH トンネルを確立する際に使用される認証方法。
SSHClientCertSSHUser の認証に使用する証明書。
SSHClientCertPasswordSSHClientCert キーのパスワード(ある場合)。
SSHClientCertSubjectSSH クライアント証明書のサブジェクト。
SSHClientCertTypeSSHClientCert 秘密鍵の種類。
SSHUserSSH ユーザー。
SSHPasswordSSH パスワード。

Firewall


プロパティ説明
FirewallTypeprovider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。
FirewallServerファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。
FirewallPortプロキシベースのファイアウォールで使用するTCP ポートを指定します。
FirewallUserプロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。
FirewallPasswordプロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。

Proxy


プロパティ説明
ProxyAutoDetectprovider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。
ProxyServerHTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレスを指定します。
ProxyPortクライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバーのTCP ポートを指定します。
ProxyAuthSchemeProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。
ProxyUserProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名を提供します。
ProxyPasswordProxyUser 接続プロパティで指定されたユーザーのパスワードを指定します。
ProxySSLTypeProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプを指定します。
ProxyExceptionsProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリストを指定します。

Logging


プロパティ説明
LogModulesログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。

Schema


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
BrowsableSchemasレポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesレポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
Viewsレポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。

Miscellaneous


プロパティ説明
AWSCertificateThe absolute path to the certificate file or the certificate content in PEM format encoded in base64.
AWSCertificatePasswordThe password for the certificate if applicable, otherwise leave blank.
AWSCertificateTypeThe type of AWSCertificate .
AWSPrivateKeyThe absolute path to the private key file or the private key content in PEM format encoded in base64.
AWSPrivateKeyPasswordThe password for the private key if it is encrypted, otherwise leave blank.
AWSPrivateKeyTypeThe type of AWSPrivateKey .
AWSProfileARNProfile to pull policies from.
AWSSessionDurationDuration, in seconds, for the resulting session.
AWSTrustAnchorARNTrust anchor to use for authentication.
CharsetREST ファイルに移行、またはREST ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。
ClientCultureこのプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。
Cultureこの設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。
CustomHeaders他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。
CustomURLParamsHTTP リクエストに含めるカスタムURL パラメータの文字列で、field1=value1&field2=value2&field3=value3 の形式。
DirectoryRetrievalDepthIncludeSubdirectories が有効の場合に、再帰的にスキャンされるサブフォルダを制限します。
ExcludeFilesテーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。
ExcludeStorageClasses無視するストレージクラスのカンマ区切りリスト。
FolderIdGoogle Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IncludeDropboxTeamResourcesDropbox チームフォルダやファイルを含めるかどうかを示します。
IncludeFilesテーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。
IncludeItemsFromAllDrivesGoogle Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。
MaxRows集計やGROUP BY を含まないクエリで返される最大行数を指定します。
MetadataDiscoveryURI複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。
Other特定の問題に対処するため、特殊なシナリオ向けの高度な接続プロパティを指定します。このプロパティは、サポートチームの指示がある場合にのみ使用してください。
Pagesizeprovider がREST にデータをリクエストするときに返す、ページあたりの最大レコード数を指定します。
PseudoColumnsテーブルカラムとして公開する擬似カラムを、'TableName=ColumnName;TableName=ColumnName' の形式の文字列で指定します。
RowScanDepthSpecifies the number of rows (objects) to scan when dynamically determining columns for the table.
Timeoutprovider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。
TypeDetectionSchemeSpecifies how to determine the data types of columns.
UserDefinedViewsカスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。
REST Connector for CData Sync

Authentication

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


プロパティ説明
AuthSchemeリモートサービスへの接続時に使用する認証のタイプ。
AccessKeyREST への認証に使用されるアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。
SecretKeyアカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。
ApiKeyIBM Cloud にユーザーを識別させるためのAPI キー。
UserThe authenticating user, required with the Password for authentication to the server..
PasswordThe authenticating user's password, required with the User name for authentication to the server.
SharePointEdition使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。
AuthorizationHeaderPrefixSpecifies a value to be prepended to the client secret, to form the Authorization header. The prepended value is usually a client ID.
ImpersonateUserModeSpecify the type of the user impersonation. It should be whether the User mode or the Admin mode.
REST Connector for CData Sync

AuthScheme

リモートサービスへの接続時に使用する認証のタイプ。

解説

以下のオプションが利用可能です:

  • AccessKey: Azureアカウントに関連付けられたストレージキーで認証する場合に設定します。
  • AwsCredentialsFile: 認証に認証情報ファイルを使用する場合に設定します。
  • AwsTempCredentials: 一時的なセキュリティ認証情報とセッショントークンを利用して接続する場合に設定します。
  • AzureAD: Azure Active Directory OAuth認証を実行する場合に設定します。
  • AzureMSI: Azure VM上で実行する際にマネージドサービスIDの認証情報を自動的に取得する場合に設定します。
  • AzureServicePrincipal: Azureサービスプリンシパルとして認証する場合に設定します。
  • AzureServicePrincipalCert: 証明書を使用してAzureサービスプリンシパルとして認証する場合に設定します。
  • AzureStorageSAS: Shared Access Signature (SAS)で認証する場合に設定します。
  • Basic: 基本的なユーザー名/パスワード認証。
  • Digest: UserとPasswordを使用したHTTPダイジェスト認証を使用します。
  • GCPInstanceAccount: GCP仮想マシン上で実行する際、プロバイダーは仮想マシンに紐付けられたサービスアカウントを使用して認証できます。
  • IAMSecretKey: AccessKeyとSecretKeyを使用してOracle Cloud Storageに認証します。
  • Negotiate: Kerberos認証。
  • None: 認証を使用しません。
  • OAuth: 標準ユーザーアカウントでOAuthを使用します。具体的なフローはInitiateOAuthによって決定され、OAuthVersionを設定して使用するOAuthのバージョンを指定する必要があります。
  • OAuthClient: クライアント認証情報グラントタイプでOAuth2を使用します。OAuthClientIdとOAuthClientSecretが認証情報です。OAuthVersionを2.0に設定する必要があります。
  • OAuthJWT: JWTベアラーグラントタイプでOAuth2を使用します。OAuthJWTCertTypeとOAuthJWTCertによってJWTの署名に使用する証明書を決定します。OAuthVersionを2.0に設定する必要があります。
  • OAuthPassword: パスワードグラントタイプでOAuth2を使用します。UserとPasswordが認証情報です。OAuthVersionを2.0に設定する必要があります。
  • OAuthPKCE: 認可コードグラントタイプとPKCE拡張機能でOAuth2を使用します。OAuthClientIdが認証情報です。OAuthVersionを2.0に設定する必要があります。
  • SFTP: 正確な認証方法はSSHAuthModeプロパティを使用して制御されます。詳細については、このプロパティのドキュメントを参照してください。

REST Connector for CData Sync

AccessKey

REST への認証に使用されるアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。

解説

User は、AccessKey と組み合わせてREST サーバーに対してユーザーを認証するために使用されます。

REST Connector for CData Sync

SecretKey

アカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。

解説

アカウントのシークレットキー。この値には、使用しているサービスに応じたセキュリティ認証情報ページからアクセスできます。

REST Connector for CData Sync

ApiKey

IBM Cloud にユーザーを識別させるためのAPI キー。

解説

REST REST API のリソースへのアクセスは、トークンを取得するためのAPI キーで管理されています。API キーは、[Manage(管理)]->[Access(IAM)]->[Users(ユーザー)]と移動して、[Create(作成)]をクリックすることで作成できます。

REST Connector for CData Sync

User

The authenticating user, required with the Password for authentication to the server..

解説

This property varies, depending on the value of the AuthScheme and the type of connection.

Connection Type: FTP(S)

  • AuthScheme=Basic: The FTP(S) server password.

Connection Type: HDFS/HDFS Secure

  • AuthScheme=Negotiate: The HDFS instance password.

Connection Type: HTTP(S)

  • AuthScheme=Basic: The password associated with the HTTP stream.
  • AuthScheme=Digest: The password associated with the HTTP stream.
  • AuthScheme=OAuthPassword: The password associated with the HTTP stream.

Connection Type: SharePoint SOAP

  • AuthScheme=Basic: The SharePoint account password.

REST Connector for CData Sync

Password

The authenticating user's password, required with the User name for authentication to the server.

解説

This property varies, depending on the value of the AuthScheme and the type of connection.

Connection Type: FTP(S)

  • AuthScheme=Basic: The FTP(S) server password.

Connection Type: HDFS/HDFS Secure

  • AuthScheme=Negotiate: The HDFS instance password.

Connection Type: HTTP(S)

  • AuthScheme=Basic: The password associated with the HTTP stream.
  • AuthScheme=Digest: The password associated with the HTTP stream.
  • AuthScheme=OAuthPassword: The password associated with the HTTP stream.

Connection Type: SharePoint SOAP

  • AuthScheme=Basic: The SharePoint account password.

REST Connector for CData Sync

SharePointEdition

使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。

解説

使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。

REST Connector for CData Sync

AuthorizationHeaderPrefix

Specifies a value to be prepended to the client secret, to form the Authorization header. The prepended value is usually a client ID.

解説

Authorization headers are used in authentication schemes that require at least medium security, to send credentials to a server to authenticate a request. For example, when the AuthScheme is OAuth they are used to specify a custom access token type.

REST Connector for CData Sync

ImpersonateUserMode

Specify the type of the user impersonation. It should be whether the User mode or the Admin mode.

解説

Specify the type of the user impersonation. It should be whether the User mode or the Admin mode. The Admin mode is available only for Enterprise with Governance accounts and will be upon request. It will not work for any other accounts.

REST Connector for CData Sync

Connection

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


プロパティ説明
ConnectionTypeREST のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。
FormatSpecifies the format reported by the data source. Required when using either the CreateSchema stored procedure or the Generate Schema File feature.
URIXML/JSON/CSV リソースロケーションのUniform Resource Identifier (URI)。
RegionS3ライクなWeb サービスのホスティングリージョン。
OracleNamespace使用するOracle Cloud Object Storage ネームスペース。
StorageBaseURLクラウドストレージサービスプロバイダーのURL を指定します。
SimpleUploadLimitこの設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。
UseVirtualHostingTrue(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。
REST Connector for CData Sync

ConnectionType

REST のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。

解説

ConnectionType を以下のいずれかに設定します。

  • Local:REST のファイルはローカルマシンに保存されます。
  • Amazon S3
  • Azure Blob Storage
  • Azure Data Lake Storage Gen2
  • Azure Data Lake Storage Gen2 SSL
  • Azure Files
  • Box
  • Dropbox
  • FTP
  • FTPS
  • Google Cloud Storage
  • Google Drive
  • HDFS
  • HDFS Secure
  • HTTP:HTTP Streams でホストされているREST ファイルに接続します。
  • HTTPS:HTTPS Streams でホストされているREST ファイルに接続します。
  • IBM Object Storage Source
  • OneDrive
  • OneLake
  • Oracle Cloud Storage
  • SFTP
  • SharePoint REST
  • SharePoint SOAP

REST Connector for CData Sync

Format

Specifies the format reported by the data source. Required when using either the CreateSchema stored procedure or the Generate Schema File feature.

解説

When using the Generate Schema File feature, you must set GenerateSchemFiles to either OnStart or OnUse.)

REST Connector for CData Sync

URI

XML/JSON/CSV リソースロケーションのUniform Resource Identifier (URI)。

解説

URI プロパティを設定して、ファイルまたはストリームへのパスを指定します。

NOTE:

  • この接続プロパティでは、ConnectionType を設定する必要があります。
  • ディレクトリパスを指定する場合は、一般的に'folder1' ではなく'folder1/' のように、URI の末尾にパス区切り文字を付けることが推奨されます。

複数ファイルのパースおよびマージに使用できる、より高度な機能については、データアクセスのファインチューニング を参照してください。

以下は、使用可能なデータソースのURI 形式の例です。

サービスプロバイダ URI 形式
Local Single File Path One table

localPath

file://localPath

Directory Path (one table per file)

localPath

file://localPath

HTTP またはHTTPS http://remoteStream

https://remoteStream

Amazon S3 Single File Path One table

s3://remotePath

Directory Path (one table per file)

s3://remotePath

Azure Blob Storage Single File Path One table

azureblob://mycontainer/myblob/

Directory Path (one table per file)

azureblob://mycontainer/myblob/

OneDrive Single File Path One table

onedrive://remotePath

Directory Path (one table per file)

onedrive://remotePath

Google Cloud Storage Single File Path One table

gs://bucket/remotePath

Directory Path (one table per file)

gs://bucket/remotePath

Google Drive Single File Path One table

gdrive://remotePath

Directory Path (one table per file)

gdrive://remotePath

Box Single File Path One table

box://remotePath

Directory Path (one table per file)

box://remotePath

FTP またはFTPS Single File Path One table

ftp://server:port/remotePath

Directory Path (one table per file)

ftp://server:port/remotePath

SFTP Single File Path One table

sftp://server:port/remotePath

Directory Path (one table per file)

sftp://server:port/remotePath

Sharepoint Single File Path One table

sp://https://server/remotePath

Directory Path (one table per file)

sp://https://server/remotePath

リモートパスにはSharepoint URL を使用します。表示名ではありません。

接続文字列とクエリの例

以下は、XML/JSON/CSV ファイルまたはストリームへの接続文字列の例です。

サービスプロバイダ URI 形式 Connection example
Local Single File Path One table

localPath

file://localPath

Directory Path (one table per file)

localPath

file://localPath

URI=C:\folder1
Amazon S3 Single File Path One table

s3://bucket1/folder1

Directory Path (one table per file)

s3://bucket1/folder1

URI=s3://bucket1/folder1; AWSAccessKey=token1; AWSSecretKey=secret1; AWSRegion=OHIO;
Azure Blob Storage Single File Path One table

azureblob://mycontainer/myblob/

Directory Path (one table per file)

azureblob://mycontainer/myblob/

URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AzureAccessKey=myKey;

URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AuthScheme=OAuth;

OneDrive Single File Path One table

onedrive://remotePath

Directory Path (one table per file)

onedrive://remotePath

URI=onedrive://folder1; AuthScheme=OAuth;

URI=onedrive://SharedWithMe/folder1; AuthScheme=OAuth;

Google Cloud Storage Single File Path One table

gs://bucket/remotePath

Directory Path (one table per file)

gs://bucket/remotePath

URI=gs://bucket/folder1; AuthScheme=OAuth; ProjectId=test;
Google Drive Single File Path One table

gdrive://remotePath

Directory Path (one table per file)

gdrive://remotePath

URI=gdrive://folder1;
Box Single File Path One table

box://remotePath

Directory Path (one table per file)

box://remotePath

URI=box://folder1; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;
FTP or FTPS Single File Path One table

ftp://server:port/remotePath

Directory Path (one table per file)

ftp://server:port/remotePath

URI=ftps://localhost:990/folder1; User=user1; Password=password1;
SFTP sftp://server:port/remotePath URI=sftp://127.0.0.1:22/remotePath; User=user1; Password=password1;
Sharepoint

sp://https://server/remotePath

リモートパスにはSharepoint URL を使用します。表示名ではありません。

URI=sp://https://domain.sharepoint.com/Documents; User=user1; Password=password1;

REST Connector for CData Sync

Region

S3ライクなWeb サービスのホスティングリージョン。

解説

S3ライクなWeb サービスのホスティングリージョン。

Oracle Cloud Object Storage のリージョン

値 リージョン
商用クラウドリージョン
ap-hyderabad-1 India South (Hyderabad)
ap-melbourne-1 Australia Southeast (Melbourne)
ap-mumbai-1 India West (Mumbai)
ap-osaka-1 Japan Central (Osaka)
ap-seoul-1 South Korea Central (Seoul)
ap-sydney-1 Australia East (Sydney)
ap-tokyo-1 Japan East (Tokyo)
ca-montreal-1 Canada Southeast (Montreal)
ca-toronto-1 Canada Southeast (Toronto)
eu-amsterdam-1 Netherlands Northwest (Amsterdam)
eu-frankfurt-1 Germany Central (Frankfurt)
eu-zurich-1 Switzerland North (Zurich)
me-jeddah-1 Saudi Arabia West (Jeddah)
sa-saopaulo-1 Brazil East (Sao Paulo)
uk-london-1 UK South (London)
us-ashburn-1 (default) US East (Ashburn, VA)
us-phoenix-1 US West (Phoenix, AZ)
US Gov FedRAMP High Regions
us-langley-1 US Gov East (Ashburn, VA)
us-luke-1 US Gov West (Phoenix, AZ)
US Gov DISA IL5 Regions
us-gov-ashburn-1 US DoD East (Ashburn, VA)
us-gov-chicago-1 US DoD North (Chicago, IL)
us-gov-phoenix-1 US DoD West (Phoenix, AZ)

Wasabi のリージョン

値 リージョン
eu-central-1 Europe (Amsterdam)
us-east-1 (Default) US East (Ashburn, VA)
us-east-2 US East (Manassas, VA)
us-west-1 US West (Hillsboro, OR)

REST Connector for CData Sync

OracleNamespace

使用するOracle Cloud Object Storage ネームスペース。

解説

使用するOracle Cloud Object Storage ネームスペース。リクエストを行う前に、この設定をOracle Cloud アカウントに関連付けられてたOracle Cloud Object Storage ネームスペースに設定する必要があります。お使いのアカウントのObject Storage ネームスペースを検索する方法については、Oracle Cloud ドキュメントのUnderstanding Object Storage Namespaces ページを参照してください。

REST Connector for CData Sync

StorageBaseURL

クラウドストレージサービスプロバイダーのURL を指定します。

解説

このプロパティは、以下を指定するために使われます。

  • カスタムS3 サービスのURL。
  • SharePoint SOAP / REST クラウドストレージサービスプロバイダーに必要なURL。

    このオプションのドメインが-my で終わる場合(例えば、https://bigcorp-my.sharepoint.com)、sp:// またはsprest:// スキームの代わりに onedrive:// スキームを使用する必要がある場合があります。

非ルートレベルのSharePoint Online サイト(/sites/<your site>/ の下など)内のファイルに接続する場合は、このプロパティをフルサイトパスに設定します。次に例を示します。 StorageBaseURL=https://<your domain>.sharepoint.com/sites/<your site>/

完全なSharePoint サイトURL を使用することで、コネクタはサブサイトやその他の非ルートレベルのサイト構造に格納されたファイルを確実に検索できます。

REST Connector for CData Sync

SimpleUploadLimit

この設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。

解説

この設定はしきい値をバイト単位で設定します。このしきい値を超えると、Sync App は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。

REST Connector for CData Sync

UseVirtualHosting

True(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。

解説

True(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。

REST Connector for CData Sync

UseLakeFormation

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

解説

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

REST Connector for CData Sync

AWS Authentication

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


プロパティ説明
AWSAccessKeyAWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSPrincipalARNAWS アカウントのSAML ID プロバイダーのARN。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
AWSWebIdentityTokenID プロバイダーが提供するOAuth 2.0 アクセストークンまたはOpenID Connect ID トークン。
ServerSideEncryption有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。
SSEContextA BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.
SSEEnableS3BucketKeysConfiguration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.
SSEKeyA symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.
REST Connector for CData Sync

AWSAccessKey

AWS アカウントのアクセスキーを指定します。この値には、AWS セキュリティ認証情報ページからアクセスできます。

解説

AWS アカウントのアクセスキーを見つけるには、次の手順に従います。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択します。
  3. メニューでMy Security Credentials を選択します。
  4. Continue to Security Credentials をクリックします。
  5. ルートアカウントのアクセスキーを表示または管理するには、Access Keys セクションを展開します。

REST Connector for CData Sync

AWSSecretKey

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

解説

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

REST Connector for CData Sync

AWSRoleARN

認証時に使用するロールのAmazon リソースネーム。

解説

AWS の外部で認証する場合は、AWS アカウント認証情報ではなく、ロールを認証に使用するのが 一般的です。AWSRoleARN を入力すると、CData Sync App はAWSAccessKey とAWSSecretKey を直接 使用する代わりに、ロールベースの認証を実行します。この認証を実行するためには、AWSAccessKey と AWSSecretKey を指定する必要があります。RoleARN を設定するときは、AWS ルートユーザーの 認証情報を使用できません。AWSAccessKey およびAWSSecretKey はIAM ユーザーのものである必要があります。

REST Connector for CData Sync

AWSPrincipalARN

AWS アカウントのSAML ID プロバイダーのARN。

解説

AWS アカウントのSAML ID プロバイダーのARN。

REST Connector for CData Sync

AWSRegion

Amazon Web サービスのホスティングリージョン。

解説

Amazon Web サービスのホスティングリージョン。利用可能な値は、OHIO、NORTHERNVIRGINIA、NORTHERNCALIFORNIA、OREGON、CAPETOWN、HONGKONG、TAIPEI、HYDERABAD、JAKARTA、MALAYSIA、MELBOURNE、MUMBAI、OSAKA、SEOUL、SINGAPORE、SYDNEY、THAILAND、TOKYO、CENTRAL、CALGARY、BEIJING、NINGXIA、FRANKFURT、IRELAND、LONDON、MILAN、PARIS、SPAIN、STOCKHOLM、ZURICH、TELAVIV、MEXICOCENTRAL、BAHRAIN、UAE、SAOPAULO、GOVCLOUDEAST、GOVCLOUDWEST、ISOLATEDUSEAST、ISOLATEDUSEASTB、ISOLATEDUSEASTF、ISOLATEDUSSOUTHF、ISOLATEDUSWEST、およびISOLATEDEUWEST です。

REST Connector for CData Sync

AWSCredentialsFile

認証に使用するAWS クレデンシャルファイルへのパス。

解説

認証に使用するAWS クレデンシャルファイルへのパス。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

REST Connector for CData Sync

AWSCredentialsFileProfile

提供されたAWSCredentialsFile から使用されるプロファイルの名前。

解説

提供されたAWSCredentialsFile から使用されるプロファイルの名前。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

REST Connector for CData Sync

AWSSessionToken

AWS のセッショントークン。

解説

AWS のセッショントークン。この値はさまざまな方法で取得できます。詳しくは、this link を参照してください。

REST Connector for CData Sync

AWSExternalId

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

解説

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

REST Connector for CData Sync

MFASerialNumber

MFA デバイスが使用されている場合は、そのシリアル番号。

解説

AWS マネジメントコンソールにアクセスしてユーザーのセキュリティ認証情報を表示することで、IAM ユーザーのデバイスを見つけることができます。 仮想デバイスの場合、これは実際にはAmazon リソースネームです( arn:aws:iam::123456789012:mfa/user など)。

REST Connector for CData Sync

MFAToken

MFA デバイスから利用できる一時トークン。

解説

MFA が必要な場合、この値はログインのためのテンポラリクレデンシャルを取得するためにMFASerialNumber とともに使用されます。 AWS から入手可能な一時的な認証情報はデフォルトで最長1時間しか持続しません(TemporaryTokenDuration を参照してください)。時間が経過したら、新しい認証情報を取得できるように、接続を 更新して新しいMFA トークンを指定する必要があります。 %AWSpSecurityToken; %AWSpTemporaryTokenDuration;

REST Connector for CData Sync

TemporaryTokenDuration

一時トークンが持続する時間(秒単位)。

解説

一時トークンは、MFA 認証とロールベース認証の両方で使用されます。一時トークンは、やがてタイムアウトします。 そのときには、新しい一時トークンを取得する必要があります。MFA が使用されていない状況では、これは大したこと ではありません。一時トークンが期限切れになると、CData Sync App は内部的に新しい一時トークンをリクエストします。

ただし、MFA が必要な接続の場合は、新しい一時トークンを取得するために新しいMFAToken を接続で指定 する必要があります。これは、ユーザーによる接続の更新が必要になるため、より煩わしい問題です。指定できる 最大値と最小値は、使用されている接続によって大きく異なります。

ロールベース認証の場合は、最小期間は900秒(15分)で、最大期間は3600秒(1時間)です。 ロールベース認証でMFA が使用されている場合でも、3600秒が依然として最大です。

MFA 認証自体では(IAM ユーザーまたはルートユーザーを使用)、最小値は900秒(15分)、 最大値は129600(36時間)です。

REST Connector for CData Sync

AWSWebIdentityToken

ID プロバイダーが提供するOAuth 2.0 アクセストークンまたはOpenID Connect ID トークン。

解説

ID プロバイダーが提供するOAuth 2.0 アクセストークンまたはOpenID Connect ID トークン。 アプリケーションは、Web ID プロバイダーでユーザーを認証することで、このトークンを取得できます。 指定しない場合、この接続プロパティの値は、 環境変数'AWS_WEB_IDENTITY_TOKEN_FILE' の値から自動的に取得されます。

REST Connector for CData Sync

ServerSideEncryption

有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。

解説

サーバー側の暗号化とは、データを受信するアプリケーションまたはサービスによって、送信先でデータを暗号化することです。Amazon S3は、データセンターのディスクに書き込まれるときにデータをオブジェクトレベルで暗号化し、ユーザーがデータにアクセスするときに復号します。詳しくは、こちらを参照してください。https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/serv-side-encryption.html

REST Connector for CData Sync

SSEContext

A BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.

解説

Example of what the JSON may look decoded: {"aws:s3:arn": "arn:aws:s3:::_bucket_/_object_"}.

REST Connector for CData Sync

SSEEnableS3BucketKeys

Configuration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.

解説

Configuration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.

REST Connector for CData Sync

SSEKey

A symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

解説

A symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

REST Connector for CData Sync

Azure Authentication

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


プロパティ説明
AzureStorageAccountAzure ストレージアカウント名。
AzureAccessKeyAzure アカウントに関連付けられているストレージキー。
AzureSharedAccessSignature認証に使用可能な共有アクセスキー署名。
AzureTenantデータにアクセスするために使用されているREST テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。
AzureEnvironment接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。
REST Connector for CData Sync

AzureStorageAccount

Azure ストレージアカウント名。

解説

Azure ストレージアカウントの名前。

REST Connector for CData Sync

AzureAccessKey

Azure アカウントに関連付けられているストレージキー。

解説

REST アカウントに関連付けられているストレージキー。以下のように取得できます:

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定で[アクセスキー]をクリックします。
  4. ページ上にストレージアカウント名とキーが表示されます。

REST Connector for CData Sync

AzureSharedAccessSignature

認証に使用可能な共有アクセスキー署名。

解説

共有アクセス署名。以下の手順で作成することができます。

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定で[Shared Access Signature]をクリックします。
  4. 権限およびトークンの有効期限を設定します。
  5. [Generate SAS]をクリックするとトークンをコピーできます。

REST Connector for CData Sync

AzureTenant

データにアクセスするために使用されているREST テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。

解説

テナントとは、Microsoft Entra ID(旧称:Azure AD)を通じて管理される、組織のユーザーやリソースのためのデジタルコンテナです。 各テナントには一意のディレクトリID が関連付けられており、多くの場合、カスタムドメイン(例:microsoft.com やcontoso.onmicrosoft.com)も関連付けられています。

Microsoft Entra 管理センターでディレクトリ(テナント)ID を確認するには、Microsoft Entra ID -> プロパティに移動し、「ディレクトリ(テナント)ID」と表示されている値をコピーします。

このプロパティは以下の場合に必要です。

  • AuthScheme がAzureServicePrincipal またはAzureServicePrincipalCert に設定されている場合
  • AuthScheme がAzureAD で、ユーザーアカウントが複数のテナントに属している場合

テナントの値は、2つの形式のいずれかで指定できます。

  • ドメイン名(例:contoso.onmicrosoft.com)
  • GUID 形式のディレクトリ(テナント)ID(例:c9d7b8e4-1234-4f90-bc1a-2a28e0f9e9e0)

テナントを明示的に指定することで、認証リクエストが正しいディレクトリにルーティングされるようになります。これは、ユーザーが複数のテナントに所属している場合や、サービスプリンシパルベースの認証を使用する場合に特に重要です。

この値が必要な場面で省略されると、認証に失敗したり、誤ったテナントに接続されたりする可能性があります。その結果、認可されていないまたはリソースが見つからないといったエラーが発生する可能性があります。

REST Connector for CData Sync

AzureEnvironment

接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。

解説

Azure アカウントがGlobal ネットワークとは異なるネットワーク(China、USGOVT、USGOVTDOD など)の一部である場合は、必要です。

REST Connector for CData Sync

Keycloak Authentication

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


プロパティ説明
KeycloakRealmURL認証と認可に使用される特定のレルムを含むKeycloak サーバーへの完全なURL を指定します。
REST Connector for CData Sync

KeycloakRealmURL

認証と認可に使用される特定のレルムを含むKeycloak サーバーへの完全なURL を指定します。

解説

このURL は、http(s)://{server-url}:{port}/realms/{realm-name} の形式で指定する必要があります。

Keycloak におけるレルムとは、ユーザー、ロール、クライアント、および設定のセットを管理するための論理的な名前空間です。 これは異なるアプリケーションやサービスの認証と認可を分離し、各レルムが独自のユーザーベースとセキュリティ設定を持つことができます。 複数のレルムが単一のKeycloak インスタンス内に存在でき、異なる環境やグループ間の分離を実現します。

KeycloakRealmURL の指定は、AuthScheme = Keycloak のときに必要です。

REST Connector for CData Sync

SSO

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


プロパティ説明
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesID プロバイダーへの接続に必要な追加プロパティを、セミコロンで区切ったリスト形式で指定します。
SSOExchangeURLSAML 応答を処理してサービスの資格情報と交換するために使用するURL。
REST Connector for CData Sync

SSOLoginURL

ID プロバイダーのログインURL。

解説

ID プロバイダーのログインURL。

REST Connector for CData Sync

SSOProperties

ID プロバイダーへの接続に必要な追加プロパティを、セミコロンで区切ったリスト形式で指定します。

解説

ID プロバイダーへの接続に必要な追加プロパティを、セミコロンで区切ったリスト形式で指定します。

SSOLoginURL と一緒に使用します。

SSO 設定については、 で詳しく説明します。

REST Connector for CData Sync

SSOExchangeURL

SAML 応答を処理してサービスの資格情報と交換するために使用するURL。

解説

CData Sync App はここで指定されたURL を使用してSAML 応答を処理し、サービスの資格情報と交換します。 取得した資格情報はSSO 接続時の最後の情報であり、REST との通信に使用されます。

REST Connector for CData Sync

JSON and XML

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


プロパティ説明
XPathSpecifies the XPath of an element that has the same name as other elements at that same height within the XML/JSON document. This XPath is used to split the document into multiple rows.
DataModelSpecifies the data model configuration to use when parsing XML/JSON documents and generating the database metadata. The value supplied here controls how the driver models nested object arrays into tables.
JSONFormatSpecifies the format of the JSON document. Requires Format to be set to JSON.
XMLFormatSpecifies the format of the XML document.
FlattenArraysSpecifies the number of elements you want to return from nested arrays, as columns of their own. Only recommended for arrays that are expected to be short.
FlattenObjectsSpecifies that object properties should be flattened into columns of their own. Otherwise, objects nested in arrays are returned as XML/JSON strings.
BackwardsCompatibilityModeOptional property that, when set to True, specifies that XML/JSON functionality should match the functionality and features of the 2017 version. To access the most recent XML/JSON flattening features, leave this blank.
QualifyColumnsSpecifies whether the provider will use relative column names.
URISeparatorA delimiter used to separate different values in the URI property.
REST Connector for CData Sync

XPath

Specifies the XPath of an element that has the same name as other elements at that same height within the XML/JSON document. This XPath is used to split the document into multiple rows.

解説

DataModel enables you to configure how the XPath values will be used to create tables and display data. Multiple paths can be specified using a semi-colon-separated list.

If left empty, the CData Sync App determine the XPaths by parsing the REST document and identifying the object arrays.

If a schema file (RSD) is not present, this property is used to generate the schema definition.

REST Connector for CData Sync

DataModel

Specifies the data model configuration to use when parsing XML/JSON documents and generating the database metadata. The value supplied here controls how the driver models nested object arrays into tables.

解説

The Sync App splits JSON documents into rows based on the objects nested in arrays. The following subsections describe how that works in each of the three supported configurations. For examples of how to query data in each of the different configurations, see 階層データの解析.

Document

Returns a single table representing a row for each top-level object. Nested object arrays that may exist are not flattened, and are returned as aggregates.

If you explicitly specify an XPath value, the Sync App uses that XPath. If you do not, the Sync App identifies the top-most object array found, and uses that as the XPath.

FlattenedDocuments

Returns a single table representing a JOIN of the available documents in the file. Nested XPath values act in the same manner as a SQL JOIN, and nested sibling XPath values (child paths at the same height), are treated as a SQL CROSS JOIN.

If you explicitly identify the XPath values to use, the Sync App uses those. If you do not, the Sync App parses the file and identifies the available documents, including nested documents, and uses those as the XPath values.

Relational

Returns multiple tables, one for each XPath value specified. Nested documents (object arrays) are returned as relational tables that contain a primary key and a foreign key that links to the parent table. If you explicitly identify the XPath values to use, the Sync App uses those. If you do not, the Sync App parses the file and identifies the available documents, including nested documents, and uses those as the XPath values.

See Also

  • XPath: Explicitly sets the paths to the XML documents you want to include.
  • FlattenArrays and FlattenObjects: Customizes the columns that will be identified for each of these data models. For examples, see 自動スキーマ検出.
  • 階層データの解析: Compares the schemas resulting from different DataModel settings, with example queries.
  • For details about the data modeling and flattening techniques available in this Sync App, see REST データのモデリング.

REST Connector for CData Sync

JSONFormat

Specifies the format of the JSON document. Requires Format to be set to JSON.

解説

This option allows you to specify the format of the JSON document, which enables parsing specifically for the selected format.

The following sections describe each available JSONFormat configuration.

JSON

This is the default format, and should be used most of the time.

JSONRows

In this format, data is returned in a relational format consisting of rows of data contained within primitive arrays. Column information is returned in a separate array.

Note: This JSONFormat does not require you to set DataModel.

Example:

  {
    "dataset": {
      "column_names": [
        "Name",
        "Age",
        "Gender"
      ],
      "data": [
        [
          "John Doe",
          37,
          "M"
        ],
        [
          "David Thomas",
          25,
          "M"
        ]
      ]
    }
  }
  

The XPath property requires special syntax to identify the column and row paths. In this syntax, you specify a path for each using a "column:" and "row:" prefix. For example, in the above example the XPath would be set to:

column:/dataset/column_names;row:/dataset/data

If columns are returned in an object with additional data, an additional "columnname:" prefix can be specified to identify the path to the value containing the column name.

Example:

  {
    "columns": [
      {
        "name":"first_name",
        "type":"text"
      },
      {
        "name":"last_name",
        "type":"text"
      }
    ],
    "rows": [
      [
        "John",
        "Doe"
      ],
      [
        "David",
        "Thomas"
      ]
    ]
  }
  

In the above example, XPath would be set to:

column:/columns;columnname:/columns.name;row:/rows

LDJSON (Line-Delimited JSON)

This format is used to parse line-delimited JSON files (also known as NDJSON or JSONLines). Line-delimited JSON files contain a separate JSON document on each line.

Example LDJSON File:

  { "Name": "John Doe", "Age": 37, "Gender": "M" }
  { "Name": "David Thomas", "Age": 25, "Gender": "M" }
  { "Name": "Susan Price", "Age": 35, "Gender": "F" }
  

The XPath value is treated the same as when using the regular JSON format, except that the root path ($.) is always used.

In the above example, the XPath, "/", would return 3 rows containing the columns: Name, Age, and Gender.

REST Connector for CData Sync

XMLFormat

Specifies the format of the XML document.

解説

The following XMLFormat configurations are available.

XML

XML is the default format, and should be used most of the time. This format uses the element or attribute name containing each value as that value's column name.

XMLTable

Use this format when the column name is separate from the data contained in that column. This is useful when the element or attribute containing the data has a generic name (like "Value"), instead of being specific to each column.

Note: When XMLFormat = XMLTable, DataModel does not need to be configured.

Example:

    <Report>
      <Table>
          <Row>
              <Value label="Customer">Mark Rodgers</Value>
              <Value label="SupportCost">89.28</Value>
              <Value label="ContractValue">299.99</Value>
          </Row>
          <Row>
              <Value label="Customer">Hank Howards</Value>
              <Value label="SupportCost">225.63</Value>
              <Value label="ContractValue">0.00</Value>
          </Row>
      </Table>
    </Report>
  

The XPath property requires special syntax to identify the column and row paths. Each path is given with a prefix, depending on the type of path it is. All of the following are required:

  • row: The XPath of the element that contains each row's data. In the above example, this is row:/Report/Table/Row
  • name: The XPath of the element containing the column name. In the above example, this is column:/Report/Table/Row/Value@label
  • value: The XPath of the element that contains each column's data inside the row. In the above example, this is value:/Report/Table/Row/Value

Each of these paths is separated by a semicolon, so the complete XPath for the above example is: row:/Report/Table/Row;name:/Report/Table/Row/Value@label;value:/Report/Table/Row/Value

REST Connector for CData Sync

FlattenArrays

Specifies the number of elements you want to return from nested arrays, as columns of their own. Only recommended for arrays that are expected to be short.

解説

By default, nested arrays are returned as XML/JSON strings. Set FlattenArrays to the number of elements you want to return from nested arrays. The specified elements are returned as columns, with the zero-based index concatenated to the column name. Other elements are ignored.

For example, to return an arbitrary number of elements from an array of strings:

["FLOW-MATIC","LISP","COBOL"]
When FlattenArrays is set to 1, the preceding array is flattened into the following table:

Column NameColumn Value
languages.0FLOW-MATIC

To flatten all the elements of nested arrays, set FlattenArrays to -1.

REST Connector for CData Sync

FlattenObjects

Specifies that object properties should be flattened into columns of their own. Otherwise, objects nested in arrays are returned as XML/JSON strings.

解説

By default, nested objects are returned as XML/JSON strings. To flatten object properties into columns of their own, set FlattenObjects to true. The Sync App generates the column name by concatenating the property name onto the object name with a dot.

For example, you can flatten the nested objects below at connection time:

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]
When FlattenObjects is set to true and FlattenArrays is set to 1, the preceding array is flattened into the following table:

Column NameColumn Value
grades.0.gradeA
grades.0.score2

REST Connector for CData Sync

BackwardsCompatibilityMode

Optional property that, when set to True, specifies that XML/JSON functionality should match the functionality and features of the 2017 version. To access the most recent XML/JSON flattening features, leave this blank.

解説

Flattening eliminates nested hierarchies and puts all values into a single level, resulting in clean columns and rows. The ability to flatten or unflatten complex JSON objects makes nested JSON, arrays, or tables linked by foreign keys, more usable for analytics, reporting, or machine learning.

Available flattening features include DataModel, FlattenArrays, FlattenObjects, and the ability to flatten tables and columns dynamically via a SQL query.

REST Connector for CData Sync

QualifyColumns

Specifies whether the provider will use relative column names.

解説

By default (QualifyColumns = none), the Sync App only qualifies a column name as much as is necessary to make it unique. For example, in the following document the Sync App will produces two columns: id (referring to the company id) and employee.id.

<company>
  <id>Smith Holdings</id>
  <employees>
    <employee>
      <id>George Smith</id>
    </employee>
    <employee>
      <id>Mike Johnson</id>
    </employee>
  </employees>
</company>

When QualifyColumns = parent, the Sync App uses a similar procedure to the one above. However, the Sync App always qualifies columns by one level so that their table name is included, even if the column name is unique. For example, the above document would generate the columns company.id and employee.id ,because both are unique when including their parent.

When QualifyColumns = full, the Sync App qualifies all column names with their full XPath. This generates longer column names, but ensures that it is clear where each column name comes from within the document. For example, the above document would generate the columns company.id and company.employees.employee.id.

REST Connector for CData Sync

URISeparator

A delimiter used to separate different values in the URI property.

解説

Using the default delimiter (a comma), enables you to join together multiple URIs like this:

URI=c:/data/json1.json,c:/data/json2.json,c:/data/json3.json

When this connection property is set to an empty string, the entire value of the URI connection property is treated as a single URI, with no characters regarded as separators.

REST Connector for CData Sync

CSV

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


プロパティ説明
FMTSpecifies the format to use when parsing all CSV files.
IncludeColumnHeadersDirects the driver to derive column names for each table from the first line of CSV files.
REST Connector for CData Sync

FMT

Specifies the format to use when parsing all CSV files.

解説

When this connection property is set, the Sync App parses all CSV files in the URI according to the specified file format:

  • CsvDelimited: The Sync App separates each field by commas.
  • TabDelimited: The Sync App separates each field by tabs.
  • FixedLength: The Sync App counts a specified number of characters to separate each field. Requires you to also set the width of each column in Schema.ini.

The following connection string parses all CSV files in the folder specified in the URI as tab-delimited values with headers:

URI=C:\mytsv;FMT=TabDelimited

If the property is set to anything other than the values specified above, the literal character of the specified input is read as the delimiter. For example:

URI=C:\mypipdelimitedfile;FMT=||

REST Connector for CData Sync

IncludeColumnHeaders

Directs the driver to derive column names for each table from the first line of CSV files.

解説

When false, the table column names are the same as the column numbers; the first column name would be 1, etc.

The following connection string parses .csv files as CSV without headers:

DataSource=C:\mycsvlogs;IncludeColumnHeaders=False

REST Connector for CData Sync

OAuth

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


プロパティ説明
OAuthVersion使われているOAuth のバージョンを指定します。
OAuthClientIdカスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。
OAuthClientSecretカスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ)
SubjectIdThe user subject for which the application is requesting delegated access.
SubjectTypeThe Subject Type for the Client Credentials authentication.
Scopeデータへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。
OAuthPasswordGrantModeOAuth Client ID およびClient Secret を認可サーバーに送信する方法を指定します。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。
SupportCaseSensitiveOAuthParamstrueの場合、 OAuthParams 内のパラメータ名は、ユーザーが指定した大文字小文字の区別を使用してリクエストに送信されます。
REST Connector for CData Sync

OAuthVersion

使われているOAuth のバージョンを指定します。

解説

有効な入力値は次のとおりです:1.0,2.0

REST Connector for CData Sync

OAuthClientId

カスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。

解説

このプロパティは2つのケースで必要となります:

  • カスタムOAuth アプリケーションを使用する場合。たとえば、Web ベースの認証フロー、サービスベースの認証、またはアプリケーションの登録が必要な証明書ベースのフローなどが該当します。
  • ドライバーが埋め込みOAuth 資格情報を提供しない場合。

(ドライバーが埋め込みOAuth 資格情報を提供する場合、この値はすでにSync App によって設定されており、手動で入力する必要がないことがあります。)

OAuthClientId は、認証付きの接続を構成する際に、OAuthClientSecret やOAuthSettingsLocation などの他のOAuth 関連プロパティと一緒に使用されるのが一般的です。

OAuthClientId は、ユーザーがOAuth 経由で認証を行う前に設定する必要がある、主要な接続パラメータの1つです。 この値は、通常、ID プロバイダーのアプリケーション登録設定で確認できます。 Client ID、Application ID、Consumer Key などとラベル付けされた項目を探してください。

クライアントID は、クライアントシークレットのような機密情報とは見なされませんが、アプリケーションの識別情報の一部であるため、慎重に取り扱う必要があります。公開リポジトリや共有設定ファイルでこの値を露出させないようにしてください。

接続設定時にこのプロパティを使用する方法の詳細については、接続の確立 を参照してください。

REST Connector for CData Sync

OAuthClientSecret

カスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ)

解説

このプロパティ(アプリケーションシークレットまたはコンシューマシークレットとも呼ばれます)は、安全なクライアント認証を必要とするすべてのフローでカスタムOAuth アプリケーションを使用する場合に必要です。たとえば、Web ベースのOAuth、サービスベースの接続、証明書ベースの認可フローなどが該当します。 組み込みOAuth アプリケーションを使用する場合は必要ありません。

クライアントシークレットは、OAuth フローのトークン交換ステップで使用されます。このステップでは、ドライバーが認可サーバーにアクセストークンを要求します。 この値が欠落しているか正しくない場合、認証はinvalid_client またはunauthorized_client エラーで失敗します。

OAuthClientSecret は、ユーザーがOAuth 経由で認証を行う前に設定する必要がある、主要な接続パラメータの1つです。この値は、OAuth アプリケーションを登録する際にID プロバイダーから取得できます。

Notes:

  • この値は安全に保管し、公開リポジトリやスクリプト、安全でない環境では決して公開しないようにしてください。
  • クライアントシークレットは、一定期間が経過すると有効期限が切れる場合もあります。 アクセスを中断させないために、有効期限を常に監視し、必要に応じてシークレットをローテーションするようにしてください。

接続設定時にこのプロパティを使用する方法の詳細については、接続の確立 を参照してください。

REST Connector for CData Sync

SubjectId

The user subject for which the application is requesting delegated access.

解説

Id of the user or enterprise, based on the configuration set in SubjectType.

REST Connector for CData Sync

SubjectType

The Subject Type for the Client Credentials authentication.

解説

The Subject Type for the Client Credentials authentication. Set this to "enterprise" or "user" depending on the type of token being requested.

REST Connector for CData Sync

Scope

データへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。

解説

スコープは、認証ユーザーがどのようなアクセス権を持つかを定義するために設定されます。例えば、読み取り、読み取りと書き込み、機密情報への制限付きアクセスなどです。システム管理者は、スコープを使用して機能またはセキュリティクリアランスによるアクセスを選択的に有効化できます。

InitiateOAuth がGETANDREFRESH に設定されている場合、要求するスコープを変更したい場合はこのプロパティを使用する必要があります。

InitiateOAuth がREFRESH またはOFF のいずれかに設定されている場合、このプロパティまたはScope 入力を使用して、要求するスコープを変更できます。

スコープは、認証ユーザーがどのようなアクセス権を持つかを定義するために設定されます。例えば、読み取り、読み取りと書き込み、機密情報への制限付きアクセスなどです。システム管理者は、スコープを使用して機能またはセキュリティクリアランスによるアクセスを選択的に有効化できます。

InitiateOAuth がGETANDREFRESH に設定されている場合、要求するスコープを変更したい場合はこのプロパティを使用する必要があります。

InitiateOAuth がREFRESH またはOFF のいずれかに設定されている場合、このプロパティまたはScope 入力を使用して、要求するスコープを変更できます。

REST Connector for CData Sync

OAuthPasswordGrantMode

OAuth Client ID およびClient Secret を認可サーバーに送信する方法を指定します。

解説

OAuth RFC では、OAuthClientId とOAuthClientSecret を渡す2つの方法を提供します。

  • POST:トークンリクエストのPOST ボディにOAuthClientId とOAuthClientSecret を含めて送信します。これは最も一般的にサポートされている方法で、ほとんどのOAuth フローで機能します。
  • BASIC:Basic 認証を使用してHTTP Authorization ヘッダーにOAuthClientId とOAuthClientSecret を送信します。一部のOAuth サーバーでは、コンプライアンスやセキュリティのためにこの方法が必要とされます。

REST Connector for CData Sync

OAuthIncludeCallbackURL

アクセストークンリクエストにコールバックURL を含めるかどうか。

解説

デフォルトではtrue です。 標準に準拠したOAuth サービスでは、redirect_uri パラメータを必要としないCLIENT やPASSWORD などのグラント種別では、 redirect_uri パラメータを無視するからです。

このオプションは、redirect_uri が含まれる場合にエラーを報告するOAuth サービスに対してのみ有効にしてください。

REST Connector for CData Sync

OAuthAuthorizationURL

OAuth サービスの認可URL。

解説

OAuth サービスの認可URL。このURL でユーザーはサーバーにログインしてアプリケーションにアクセス許可を与えます。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。

REST Connector for CData Sync

OAuthAccessTokenURL

OAuth アクセストークンを取得するURL。

解説

OAuth 1.0 では、このURL で認可されたリクエストトークンがアクセストークンと交換されます。

REST Connector for CData Sync

OAuthRefreshTokenURL

OAuth トークンをリフレッシュするURL。

解説

OAuth トークンをリフレッシュするURL。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。

REST Connector for CData Sync

OAuthRequestTokenURL

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。

解説

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。

REST Connector for CData Sync

AuthToken

OAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthKey とともに指定して、OAuthAccessToken を取得できます。

REST Connector for CData Sync

AuthKey

OAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthToken とともに指定して、OAuthAccessToken を取得できます。

REST Connector for CData Sync

OAuthParams

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

解説

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

REST Connector for CData Sync

SupportCaseSensitiveOAuthParams

trueの場合、 OAuthParams 内のパラメータ名は、ユーザーが指定した大文字小文字の区別を使用してリクエストに送信されます。

解説

trueの場合、OAuthParams 内のパラメータ名は、ユーザーが指定した大文字小文字の区別を使用してリクエストに送信されます。

REST Connector for CData Sync

JWT OAuth

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


プロパティ説明
OAuthJWTCertクライアント証明書のJWT 証明書ストアの名前を指定します。
OAuthJWTCertTypeJWT 証明書を格納しているキーストアの種類を指定します。
OAuthJWTCertPasswordパスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
OAuthJWTEncryptionKeyJWT トークンのHMAC 署名に使用されるキー。
OAuthJWTCertSubjectストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
OAuthJWTIssuerJava Web Token の発行者。
OAuthJWTSubjectアプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。
OAuthJWTSubjectTypeJWT 認証のサブタイプ。
OAuthJWTPublicKeyIdJWT の公開キーのID。
OAuthJWTAudienceJWT を使用できるエンティティのスペース区切りリスト。
OAuthJWTEncryptionJWT 認証で使用される暗号化アルゴリズム。
OAuthJWTHeadersJWT に含める追加ヘッダーのコレクション。
OAuthJWTValidityTimeJWT の有効期限(秒)。
REST Connector for CData Sync

OAuthJWTCert

クライアント証明書のJWT 証明書ストアの名前を指定します。

解説

OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword を使用してパスワードを指定します。

OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値が設定され、かつOAuthJWTCertSubject が設定されている場合、CData Sync App は証明書の検索を開始します。 詳しくは、OAuthJWTCertSubject を参照してください。

証明書ストアの指定はプラットフォームに依存します。

注記

  • Windows の共通のユーザーとシステム証明書ストアは以下のとおりです。
    • MY:個人証明書と関連付けられた秘密キーを 格納している証明書ストア。
    • CA:証明機関の証明書。
    • ROOT:ルート証明書。
    • SPC:ソフトウェア発行元証明書。
  • Javaでは、証明書ストアは通常、証明書および 任意の秘密キーを含むファイルです。
  • 証明書ストアの種類がPFXFile の場合は、 このプロパティにファイル名を設定します。
  • PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。

REST Connector for CData Sync

OAuthJWTCertType

JWT 証明書を格納しているキーストアの種類を指定します。

解説

値説明注記
USER現在のユーザーが所有する証明書ストア。 Windows のみ使用可能です。
MACHINEマシンストア。Java やその他の非Windows 環境では使用できません。
PFXFILE証明書を含むPFX(PKCS12)ファイル。
PFXBLOBPFX(PKCS12)形式の証明書ストアをbase-64 でエンコードした文字列。
JKSFILE証明書を含むJava キーストア(JKS)ファイル。Java 専用。
JKSBLOBJava キーストア(JKS)形式の証明書ストアをbase-64 でエンコードした文字列。 Java 専用。
PEMKEY_FILE秘密鍵とオプションの証明書を含むPEM でエンコードされたファイル。
PEMKEY_BLOB秘密鍵とオプションの証明書をbase-64 でエンコードした文字列。
PUBLIC_KEY_FILEPEM またはDER でエンコードされた公開鍵証明書を含むファイル。
PUBLIC_KEY_BLOBPEM またはDER でエンコードされた公開鍵証明書をbase-64 でエンコードした文字列。
SSHPUBLIC_KEY_FILESSH 形式の公開鍵を含むファイル。
SSHPUBLIC_KEY_BLOBSSH 形式の公開鍵ををbase-64 でエンコードした文字列。
P7BFILE証明書を含むPKCS7 ファイル。
PPKFILEPuTTY 秘密キー(PPK)を含むファイル。
XMLFILEXML 形式の証明書を含むファイル。
XMLBLOBXML 形式の証明書を含む文字列。
BCFKSFILEBouncy Castle キーストアを含むファイル。
BCFKSBLOBBouncy Castle キーストアを含む文字列(base-64エンコード)。
GOOGLEJSONサービスアカウント情報を含むJSON ファイル。 Google サービスに接続する場合にのみ有効。
GOOGLEJSONBLOBサービスアカウントのJSON を含む文字列。 Google サービスに接続する場合にのみ有効。
BOXJSONサービスアカウント情報を含むJSON ファイル。 Box に接続する場合にのみ有効。
BOXJSONBLOBこの証明書ストアは、サービスアカウントのJSON を含む文字列です。 Box に接続する場合にのみ有効。

REST Connector for CData Sync

OAuthJWTCertPassword

パスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。

解説

このプロパティは、パスワードで保護された証明書ストアを開くために必要なパスワードを指定します。 パスワードが必要かどうかを判断するには、ご利用の証明書ストアのドキュメントまたは設定を参照してください。

GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーは暗号化されていません。

REST Connector for CData Sync

OAuthJWTEncryptionKey

JWT トークンのHMAC 署名に使用されるキー。

解説

このプロパティは、OAuthJWTEncryption がHMAC 署名方式に設定されている場合に必須であり、そうでない場合は使用されません。

値は、base64 でエンコードされたHMAC キーです。 キー自体の長さは任意ですが、必要に応じてSync App がキーをパディングまたはハッシュして、選択したOAuthJWTEncryption メソッドの要件に合わせます。 ベストなセキュリティを得るためには、キーは少なくともハッシュの計算量と同じ長さである必要があります(例えば、SHA-256 の場合は32バイト)。

REST Connector for CData Sync

OAuthJWTCertSubject

ストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。

解説

このプロパティの値は、ストアで一致する証明書を検索するために使用されます。検索プロセスは以下のように動作します。

  • サブジェクトに完全に一致する証明書が見つかれば、該当する証明書が選択されます。
  • 完全に一致するものがない場合、ストアは、サブジェクトがプロパティ値を含む証明書を検索します。
  • 一致する証明書がない場合、証明書は選択されません。

値を '*' に設定すると、ストアの先頭の証明書が自動的に選択されます。 証明書のサブジェクトは識別名フィールドおよび値のカンマ区切りのリストです。 例:CN=www.server.com, OU=test, C=US, [email protected]。

一般的なフィールドには以下のものが含まれます。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EE メールアドレス

フィールド値にカンマが含まれる場合は、引用符で囲んでください。例:"O=ACME, Inc."。

REST Connector for CData Sync

OAuthJWTIssuer

Java Web Token の発行者。

解説

Java Web Token の発行者。 通常は、OAuth アプリケーションのクライアントId またはE メールアドレスとなります。

GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーには、発行者アカウントのコピーが含まれています。

REST Connector for CData Sync

OAuthJWTSubject

アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。

解説

アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクトです。通常は、ユーザーのアカウント名またはE メールアドレスとなります。

REST Connector for CData Sync

OAuthJWTSubjectType

JWT 認証のサブタイプ。

解説

JWT 認証のサブタイプ。要求されているトークンの種類に応じて[enterprise]または[user]に設定します。

REST Connector for CData Sync

OAuthJWTPublicKeyId

JWT の公開キーのID。

解説

JWT の公開キーのID。アプリケーション設定の公開キーID の値に設定します。

REST Connector for CData Sync

OAuthJWTAudience

JWT を使用できるエンティティのスペース区切りリスト。

解説

これはJWT のaud フィールドに相当します。 このリストの項目は通常URL ですが、正確な値は使用するAPI に依存します。

REST Connector for CData Sync

OAuthJWTEncryption

JWT 認証で使用される暗号化アルゴリズム。

解説

このプロパティには次の値の1つを設定できます。

RS256、RS384、RS512SHA ハッシュ(SHA-256、SHA-384、SHA-512)によるRSA 署名
ES256、ES384、ES512NIST 曲線(P-256、P-384、P-512)とSHA ハッシュ(SHA-256、SHA-384、SHA-512)によるECDSA 署名
HS256、HS384、HS512SHA ハッシュ(SHA-256、SHA-384、SHA-512)によるHMAC 署名

REST Connector for CData Sync

OAuthJWTHeaders

JWT に含める追加ヘッダーのコレクション。

解説

各ヘッダーは等号で区切られた名前と値のペアです。名前と値のペアはそれぞれカンマで区切られます。例:header1=value1,header2=value2

REST Connector for CData Sync

OAuthJWTValidityTime

JWT の有効期限(秒)。

解説

これはJWT のexp フィールドの算出に使用されます。 デフォルトでは3600に設定されており、これはJWT が生成されてから1時間有効であることを意味します。 API によっては、これより低い値を要求するものもあります。

REST Connector for CData Sync

Kerberos

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


プロパティ説明
KerberosKDCユーザーの認証に使用されるKerberos キー配布センター(KDC)サービスを識別します。(SPNEGO またはWindows 認証のみ)
KerberosRealmユーザーの認証に使用される Kerberos レルムを識別します。
KerberosSPNKerberos ドメインコントローラーのサービスプリンシパル名(SPN)を指定します。
KerberosUserKerberos ドメインコントローラーのプリンシパル名を確認します。形式はhost/user@realm です。
KerberosKeytabFileKerberos のプリンシパルと暗号化されたキーのペアを含むKeytab ファイルを指定します。
KerberosServiceRealmサービスのKerberos レルムをを指定します。(クロスレルム認証のみ)
KerberosServiceKDCサービスのKerberos Key Distribution Center(KDC)を指定します。
KerberosTicketCacheMIT Kerberos 認証情報キャッシュファイルの完全ファイルパスを指定します。
REST Connector for CData Sync

KerberosKDC

ユーザーの認証に使用されるKerberos キー配布センター(KDC)サービスを識別します。(SPNEGO またはWindows 認証のみ)

解説

Kerberos のプロパティは、SPNEGO またはWindows 認証を使用する場合に使用されます。 Sync App は、Kerberos KDC サービス(通常はドメインコントローラーと同じ場所にあります)にセッションチケットと一時的なセッションキーを要求します。

KerberosKDC が指定されていない場合、Sync App は以下の場所から自動的にプロパティを検出しようとします。

  • KRB5 Config File (krb5.ini/krb5.conf): KRB5_CONFIG 環境変数が設定され、ファイルが存在する場合、Sync App は指定されたファイルからKDC を取得します。見つからない場合は、Sync App はOS に基づいてデフォルトのMIT ロケーションからの読み取りを試みます: C:\ProgramData\MIT\Kerberos5\krb5.ini (Windows) または/etc/krb5.conf (Linux)。
  • ドメイン名およびホスト: Kerberos レルムおよびKerberos KDC が別の場所から推測できなかった場合、Sync App は設定されているドメイン名およびホストからそれらを推測します。

REST Connector for CData Sync

KerberosRealm

ユーザーの認証に使用される Kerberos レルムを識別します。

解説

レルムとは、ドメインに似た論理的なネットワークで、同じマスターKDC の下にあるシステムのグループを定義します。一部のレルムは階層構造を持ち、一方のレルムが他方の上位集合となることもありますが、通常は非階層型(「直接型」)であり、2つのレルム間のマッピングを定義する必要があります。 Kerberos のクロスレルム認証により、異なるレルム間での認証が可能になります。各レルムは、相手レルムのプリンシパル情報を自レルムのKDC に登録しておく必要があります。

Kerberos のプロパティは、SPNEGO またはWindows 認証を使用する場合に使用されます。 Sync App は、Kerberos KDC サービス(通常はドメインコントローラーと同じ場所にあります)にセッションチケットと一時的なセッションキーを要求します。 Kerberos レルムは、管理者が任意の文字列に設定できますが、通常はドメイン名に基づいて設定されます。

Kerberos レルムが指定されていない場合、Sync App は、これらのプロパティを自動的に次の場所から検出しようとします。

  • KRB5 Config File (krb5.ini/krb5.conf): KRB5_CONFIG 環境変数が設定され、ファイルが存在する場合、Sync App は指定されたファイルからデフォルトレルムを取得します。それ以外の場合は、OS に基づいてデフォルトのMIT ロケーションからの読み取りを試みます:C:\ProgramData\MIT\Kerberos5\krb5.ini (Windows) または/etc/krb5.conf (Linux)
  • ドメイン名およびホスト: Kerberos レルムおよびKerberos KDC が別の場所から推測できなかった場合、Sync App はユーザー設定されているドメイン名およびホストからそれらを推測します。これは、一部のWindows 環境で機能します。

REST Connector for CData Sync

KerberosSPN

Kerberos ドメインコントローラーのサービスプリンシパル名(SPN)を指定します。

解説

Kerberos ドメインコントローラー上のSPN が認証先のURL と異なる場合は、このプロパティを使用してSPN をKDC のURL に設定します。

REST Connector for CData Sync

KerberosUser

Kerberos ドメインコントローラーのプリンシパル名を確認します。形式はhost/user@realm です。

解説

Kerberos プリンシパルが存在する場合、データベースへの認証には常にそのKerberos プリンシパル名を使用する必要があります。

REST Connector for CData Sync

KerberosKeytabFile

Kerberos のプリンシパルと暗号化されたキーのペアを含むKeytab ファイルを指定します。

解説

keytab(“key table” の略)は、1つ以上のプリンシパルの長期キーを格納します。 ほとんどの場合、エンドユーザーはクライアントシークレット(パスワード)を使用してKDCに 認証します。 ただし、自動化されたスクリプトやアプリケーションで認証や再認証が行われる場合、keytab を使用する方が効率的です。keytab はパスワードを暗号化された形式で自動的にKDC に送信します。

Keytab は通常、標準形式のファイルで表現され、type:value の形式で命名されます。 通常、type はFILE で、value はファイルの絶対パス名です。 type のもう一つの可能な値はMEMORY で、これは現在のプロセスのメモリに格納された一時的なkeytab を示します。

keytab には1つ以上のエントリが含まれ、各エントリはタイムスタンプ(エントリがkeytab に書き込まれた時刻を示す)、プリンシパル名、キーバージョン番号、暗号化タイプ、および暗号化キー自体で構成されます。 これらはkutil を使用して生成できます。

例:

[admin@myhost]# ktutil

ktutil: addent -password -p starlord/[email protected] -k 1 -e aes256-cts-hmac-sha1-96
Password for starlord/myhost.galaxy.com:

ktutil: addent -password -p starlord/[email protected] -k 1 -e aes128-cts-hmac-sha1-96
Password for starlord/myhost.galaxy.com:

ktutil: addent -password -p starlord/[email protected] -k 1 -e des3-cbc-sha1
Password for starlord/myhost.galaxy.com:

ktutil: wkt /path/to/starlord.keytab

Note: サポートしたいすべての認証方法(暗号化タイプ)に対してプリンシパルを作成する必要があります。

keytab を表示するには、klist -k を使用します。

REST Connector for CData Sync

KerberosServiceRealm

サービスのKerberos レルムをを指定します。(クロスレルム認証のみ)

解説

KerberosServiceRealm は、クロスレルムKerberos 認証を使用する際にサービスのKerberosRealm を指定するために使われます。

ほとんどの場合、Kerberos 認証の実行には単一のレルムとKDC マシンが使用されるため、このプロパティは必要ありません。ただし、認証チケット(AS リクエスト)とサービスチケット(TGS リクエスト)の取得に異なるレルムとKDC マシンが使用される複雑なセットアップではこのプロパティを使用できます。

REST Connector for CData Sync

KerberosServiceKDC

サービスのKerberos Key Distribution Center(KDC)を指定します。

解説

KerberosServiceKDC は、クロスレルムKerberos 認証を使用する際にサービスKerberos KDC を指定するために使われます。

ほとんどの場合、Kerberos 認証の実行には単一のレルムとKDC マシンが使用されるため、このプロパティは必要ありません。ただし、認証チケット(AS リクエスト)とサービスチケット(TGS リクエスト)の取得に異なるレルムとKDC マシンが使用される複雑なセットアップではこのプロパティを使用できます。

REST Connector for CData Sync

KerberosTicketCache

MIT Kerberos 認証情報キャッシュファイルの完全ファイルパスを指定します。

解説

MIT Kerberos Ticket Manager またはkinit コマンドを使用して作成された認証情報キャッシュファイルを使用する場合は、このプロパティを設定します。

REST Connector for CData Sync

SSL

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


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。
SSLClientCertTypeSSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。
SSLClientCertPasswordTLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。
SSLModeFTP またはFTPS サーバーに接続する際の認証メカニズム。
SSLServerCertTLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。
REST Connector for CData Sync

SSLClientCert

SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。

解説

このプロパティは、SSL クライアント認証のためのクライアント証明書ストアを指定します。 このプロパティは、証明書ストアの種類を定義するSSLClientCertType、およびパスワードで保護されたストア用のパスワードを指定するSSLClientCertPassword と一緒に使用します。 SSLClientCert が設定され、SSLClientCertSubject が設定されている場合、ドライバーは指定されたサブジェクトに一致する証明書を検索します。

証明書ストアの指定はプラットフォームによって異なります。 Windowsでは、証明書ストアはMY(個人証明書)などの名前で識別されますが、Java では、証明書ストアは通常、証明書とオプションの秘密キーを含むファイルです。

Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。

MY個人証明書と関連付けられた秘密キーを格納している証明書ストア。
CA証明機関の証明書。
ROOTルート証明書。
SPCソフトウェア発行元証明書。

PFXFile タイプの場合、このプロパティをファイル名に設定します。PFXBlob タイプの場合は、このプロパティをPKCS12 形式のファイルのバイナリコンテンツに設定します。

REST Connector for CData Sync

SSLClientCertType

SSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。

解説

このプロパティは、クライアント証明書を指定するために使用されるキーストアの形式と場所を決定します。 サポートされている値には、プラットフォーム固有およびユニバーサルなキーストア形式があります。 有効な値と使用方法は以下のとおりです。

USER - デフォルトWindows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。この種類はJava では利用できませんので注意してください。
MACHINEWindows の場合、この証明書ストアがシステムストアであることを指定します。この種類はJava では利用できませんので注意してください。
PFXFILEこの証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。
PFXBLOBこの証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。
JKSFILEこの証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。この種類はJava でのみ利用できますので注意してください。
JKSBLOBこの証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。この種類はJava でのみ利用できますので注意してください。
PEMKEY_FILEこの証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。
PEMKEY_BLOBこの証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。
PUBLIC_KEY_FILEこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。
PUBLIC_KEY_BLOBこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。
SSHPUBLIC_KEY_FILEこの証明書ストアは、SSH 公開キーを含むファイルの名前です。
SSHPUBLIC_KEY_BLOBこの証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。
P7BFILEこの証明書ストアは、証明書を含むPKCS7 ファイルの名前です。
PPKFILEこの証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。
XMLFILEこの証明書ストアは、XML 形式の証明書を含むファイルの名前です。
XMLBLOBこの証明書ストアは、XML 形式の証明書を含む文字列の名前です。
BCFKSFILEこの証明書ストアは、Bouncy Castle キーストアを含むファイルの名前です。
BCFKSBLOBこの証明書ストアは、Bouncy Castle キーストアを含む文字列(Base-64エンコード)です。

REST Connector for CData Sync

SSLClientCertPassword

TLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。

解説

このプロパティは、パスワードで保護された証明書ストアを開くために必要なパスワードを指定します。 このプロパティは、PFX やJKS タイプのストアによく推奨されるように、復号化のためにパスワードを必要とする証明書ストアを使用する場合に必要です。

証明書ストアの種類がパスワードを必要としない場合(Windows のUSER やMACHINE など)、このプロパティは空白のままにできます。 認証エラーを回避するため、パスワードが指定された証明書ストアに関連付けられたものと一致していることを確認してください。

REST Connector for CData Sync

SSLClientCertSubject

TLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。

解説

このプロパティは、サブジェクトに基づいてロードするクライアント証明書を決定します。Sync App は、指定されたサブジェクトに完全に一致する証明書を検索します。 完全に一致するものが見つからない場合、Sync App はサブジェクトの値を含む証明書を検索します。 一致する証明書がない場合、証明書は選択されません。

サブジェクトは、識別名フィールドと値のカンマ区切りリストという標準の形式に従うべきです。 例えば、CN=www.server.com, OU=Test, C=US です。一般的なフィールドには以下のものが含まれます。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EE メールアドレス

Note: フィールドにカンマなどの特殊文字が含まれている場合は、値を引用符で囲む必要があります。例:CN="Example, Inc.", C=US。

REST Connector for CData Sync

SSLMode

FTP またはFTPS サーバーに接続する際の認証メカニズム。

解説

SSLMode がNONE に設定されている場合、サーバーへのログインには、デフォルトのプレーンテキストでの認証が使われます。 SSLMode がIMPLICIT に設定されている場合、接続が確立された直後にSSL ネゴシエーションが開始されます。 SSLMode がEXPLICIT に設定されている場合、Sync App は最初にプレーンテキストで接続し、次にSTARTTLS などのプロトコルコマンドを使用してSSL ネゴシエーションを明示的に開始します。 SSLMode がAUTOMATIC に設定されている場合、リモートポートがプロトコルの標準のプレーンテキストポート(適用可能な場所)に設定されている場合、コンポーネントはSSLMode がEXPLICIT に設定されている場合と同じように動作します。その他すべてのケースでは、SSL ネゴシエーションはIMPLICIT になります。

  • AUTOMATIC
  • NONE
  • IMPLICIT
  • EXPLICIT

REST 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

Note:'*' を使用してすべての証明書を受け入れるように指定することも可能ですが、セキュリティ上の懸念があるため推奨されません。

REST Connector for CData Sync

SSH

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


プロパティ説明
SSHAuthModeサービスへのSSH トンネルを確立する際に使用される認証方法。
SSHClientCertSSHUser の認証に使用する証明書。
SSHClientCertPasswordSSHClientCert キーのパスワード(ある場合)。
SSHClientCertSubjectSSH クライアント証明書のサブジェクト。
SSHClientCertTypeSSHClientCert 秘密鍵の種類。
SSHUserSSH ユーザー。
SSHPasswordSSH パスワード。
REST Connector for CData Sync

SSHAuthMode

サービスへのSSH トンネルを確立する際に使用される認証方法。

解説

  • None:認証は行われません。現在のSSHUser の値は無視され、接続は匿名でログインされます。
  • Password:Sync App は、SSHUser とSSHPassword の値を使用してユーザーを認証します。
  • Public_Key:Sync App は、SSHUser とSSHClientCert の値を使用してユーザーを認証します。SSHClientCert には、この認証方法を成功させるために使用可能な秘密鍵が必要です。

REST Connector for CData Sync

SSHClientCert

SSHUser の認証に使用する証明書。

解説

公開鍵認証を使用するには、SSHClientCert に有効な秘密鍵が含まれている必要があります。 公開鍵はオプションで、含まれていない場合はSync App が秘密鍵から生成します。 Sync App は公開鍵をサーバーに送信し、ユーザーが公開鍵を認証した場合に接続が許可されます。

SSHClientCertType フィールドは、SSHClientCert により指定されたキーストアの種類を指定します。 ストアがパスワードで保護されている場合は、SSHClientCertPassword でパスワードを指定します。

一部の種類のキーストアは、複数のキーを含むことができるコンテナです。 デフォルトでは、Sync App はストアの最初のキーを選択しますが、SSHClientCertSubject を使用して特定のキーを指定することも可能です。

REST Connector for CData Sync

SSHClientCertPassword

SSHClientCert キーのパスワード(ある場合)。

解説

このプロパティは、証明書ベースの認証を使用する場合のSSH トンネリングに必要です。 SSH 証明書がパスワードで保護されたキーストアにある場合、証明書にアクセスするためにこのプロパティを使用してパスワードを指定します。

REST Connector for CData Sync

SSHClientCertSubject

SSH クライアント証明書のサブジェクト。

解説

証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。

完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。

それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。

"*" に設定すると、証明書ストアの1番目の証明書が選択されます。

証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EEメールアドレス

フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。

REST Connector for CData Sync

SSHClientCertType

SSHClientCert 秘密鍵の種類。

解説

このプロパティには次の値の1つを設定できます。

種類説明許容されるBlob 値
MACHINE/USER Blob 値はサポートされていません。
JKSFILE/JKSBLOB base64のみ
PFXFILE/PFXBLOBPKCS12形式(.pfx)のファイル。証明書と秘密鍵の両方を含む必要があります。base64のみ
PEMKEY_FILE/PEMKEY_BLOBPEM 形式のファイル。RSA、DSA、またはOPENSSH の秘密鍵を含む必要があります。オプションで、秘密鍵と一致する証明書を含むことができます。base64またはプレーンテキスト。
PPKFILE/PPKBLOBputtygen ツールで作成されたPuTTY 形式の秘密鍵。base64のみ
XMLFILE/XMLBLOB.NET のRSA クラスによって生成される形式のXML キー:RSA.ToXmlString(true)。base64またはプレーンテキスト。

REST Connector for CData Sync

SSHUser

SSH ユーザー。

解説

SSH ユーザー。

REST Connector for CData Sync

SSHPassword

SSH パスワード。

解説

SSH パスワード。

REST Connector for CData Sync

Firewall

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


プロパティ説明
FirewallTypeprovider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。
FirewallServerファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。
FirewallPortプロキシベースのファイアウォールで使用するTCP ポートを指定します。
FirewallUserプロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。
FirewallPasswordプロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。
REST Connector for CData Sync

FirewallType

provider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

Note:デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し、次のプロキシタイプのいずれかに接続するには、ProxyAutoDetect をfalse に設定します。

次の表は、サポートされている各プロトコルのポート番号情報です。

プロトコル デフォルトポート 説明
TUNNEL 80 Sync App がREST への接続を開くポート。トラフィックはこの場所のプロキシを経由して行き来します。
SOCKS4 1080 Sync App がREST への接続を開くポート。SOCKS 4 は次にFirewallUser 値をプロキシに渡し、接続リクエストが許容されるかどうかを決定します。
SOCKS5 1080 Sync App がREST にデータを送信するポート。SOCKS 5 プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。

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

REST Connector for CData Sync

FirewallServer

ファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

REST Connector for CData Sync

FirewallPort

プロキシベースのファイアウォールで使用するTCP ポートを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

REST Connector for CData Sync

FirewallUser

プロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

REST Connector for CData Sync

FirewallPassword

プロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

REST Connector for CData Sync

Proxy

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


プロパティ説明
ProxyAutoDetectprovider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。
ProxyServerHTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレスを指定します。
ProxyPortクライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバーのTCP ポートを指定します。
ProxyAuthSchemeProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。
ProxyUserProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名を提供します。
ProxyPasswordProxyUser 接続プロパティで指定されたユーザーのパスワードを指定します。
ProxySSLTypeProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプを指定します。
ProxyExceptionsProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリストを指定します。
REST Connector for CData Sync

ProxyAutoDetect

provider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。

解説

この接続プロパティをTrue に設定すると、Sync App は既存のプロキシサーバー構成についてシステムプロキシ設定をチェックします(プロキシサーバーの詳細を手動で入力する必要はありません)。

この接続プロパティは他のプロキシ設定より優先されます。特定のプロキシサーバーに接続するためにSync App を構成する場合は、ProxyAutoDetect をFalse に設定します。

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

REST Connector for CData Sync

ProxyServer

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

解説

ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたプロキシサーバーを通じてのみHTTP トラフィックをルーティングします。

ProxyAutoDetect がTrue(デフォルト)に設定されている場合、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーを介してHTTP トラフィックをルーティングします。

REST Connector for CData Sync

ProxyPort

クライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバーのTCP ポートを指定します。

解説

ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたProxyServer ポートを通じてのみHTTP トラフィックをルーティングします。

ProxyAutoDetect がTrue(デフォルト)に設定されている場合、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーポートを介してHTTP トラフィックをルーティングします。

その他のプロキシタイプについては、FirewallType を参照してください。

REST Connector for CData Sync

ProxyAuthScheme

ProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。

解説

サポートされる認証の種類:

  • BASIC:Sync App はHTTP Basic 認証を行います。
  • DIGEST:Sync App はHTTP ダイジェスト認証を行います。
  • NTLM:Sync App はNTLM トークンを取得します。
  • NEGOTIATE: Sync App は認証において有効なプロトコルに応じて、NTLM もしくはKerberos トークンを取得します。
  • NONE:ProxyServer が認証を必要としないことを示します。

NONE 以外のすべての値については、ProxyUser およびProxyPassword 接続プロパティも設定する必要があります。

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

REST Connector for CData Sync

ProxyUser

ProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名を提供します。

解説

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

ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。

ProxyAuthScheme の値 ProxyUser に設定する値
BASIC プロキシサーバーに登録されているユーザーのユーザー名。
DIGEST プロキシサーバーに登録されているユーザーのユーザー名。
NEGOTIATE プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。
NTLM プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。
NONE ProxyPassword 接続プロパティは設定しないでください。

Note:Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このユーザー名を使用します。 ProxyAutoDetect がTrue(デフォルト)に設定されている場合、Sync App は代わりにシステムのプロキシ設定で指定されているユーザー名を使用します。

REST Connector for CData Sync

ProxyPassword

ProxyUser 接続プロパティで指定されたユーザーのパスワードを指定します。

解説

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

ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。

ProxyAuthScheme の値 ProxyPassword に設定する値
BASIC ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。
DIGEST ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。
NEGOTIATE ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。
NTLM ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。
NONE ProxyPassword 接続プロパティは設定しないでください。

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

Note:Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このパスワードを使用します。 ProxyAutoDetect がTrue(デフォルト)に設定されている場合、Sync App は代わりにシステムのプロキシ設定で指定されているパスワードを使用します。

REST Connector for CData Sync

ProxySSLType

ProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプを指定します。

解説

このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この接続プロパティには、以下の値を設定できます。

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

REST Connector for CData Sync

ProxyExceptions

ProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリストを指定します。

解説

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

Note:Sync App はデフォルトでシステムプロキシ設定を使用するため、それ以上の設定は必要ありません。 この接続にプロキシ例外を明示的に設定する場合は、ProxyAutoDetect をFalse に設定します。

REST Connector for CData Sync

Logging

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


プロパティ説明
LogModulesログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。
REST Connector for CData Sync

LogModules

ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。

解説

Sync App は、実行する各操作の詳細を Logfile 接続プロパティで指定されたログファイルに書き込みます。

ログに記録される各操作は、モジュールと呼ばれるカテゴリに分類されます。各モジュールには対応する短いコードがあり、個々の Sync App の操作がどのモジュールに属するかを示すラベルとして使用されます。

この接続プロパティにモジュールコードをセミコロン区切りのリストで設定すると、指定したモジュールに属する操作のみがログファイルに書き込まれます。この設定は今後のログ記録にのみ適用され、既存のログファイルの内容には影響しません。例: INFO;EXEC;SSL;META;

デフォルトでは、すべてのモジュールの操作がログに含まれます。

モジュールを明示的に除外するには、先頭に「-」を付けます。例: -HTTP

サブモジュールにフィルターを適用するには、<モジュール名>.<サブモジュール名> の構文で指定します。たとえば、次の値を設定すると、Sync App は HTTP モジュールに属するアクションのみをログに記録し、さらに HTTP モジュールの Res サブモジュールに属するアクションを除外します: HTTP;-HTTP.Res

Verbosity 接続プロパティによるログファイルのフィルタリングは、この接続プロパティによるフィルタリングよりも優先されます。そのため、Verbosity 接続プロパティで指定したレベルよりも高い詳細レベルの操作は、この接続プロパティで指定したモジュールに属していても、ログファイルには出力されません。

使用可能なモジュールとサブモジュールは次のとおりです。

モジュール名 モジュールの説明 サブモジュール
INFO 一般情報。接続文字列、製品バージョン(ビルド番号)、および初期接続メッセージが含まれます。
  • Connec — 接続の作成または破棄に関連する情報。
  • Messag — 接続、接続文字列、製品バージョンに関するメッセージの汎用ラベル。これらのメッセージは通常、サービスから直接受信して転送されるものではなく、Sync App 固有のものです。
EXEC クエリ実行。ユーザーが記述した SQL クエリ、解析済み SQL クエリ、正規化済み SQL クエリの実行メッセージが含まれます。クエリおよびクエリページの成功/失敗メッセージもここに表示されます。
  • Messag — クエリ実行に関するメッセージ。これらのメッセージは通常、サービスから直接受信して転送されるものではなく、Sync App 固有のものです。
  • Normlz — クエリの正規化ステップ。クエリの正規化とは、ユーザーが送信したクエリを、最適なパフォーマンスで同じ結果を得られるように書き換える処理です。
  • Origin — ユーザーの元のクエリ(ユーザーが実行した正確で未変更の非正規化クエリ)を記録するメッセージに適用されるラベル。
  • Page — クエリのページングに関連するメッセージ。
  • Parsed — クエリの解析ステップ。解析とは、ユーザーが送信したクエリを、処理しやすい標準化された形式に変換するプロセスです。
HTTP HTTP プロトコルメッセージ。HTTP リクエスト/レスポンス(POST メッセージを含む)、および Kerberos 関連のメッセージが含まれます。
  • KERB — Kerberos に関連する HTTP リクエスト。
  • Messag — HTTP プロトコルに関するメッセージ。これらのメッセージは通常、サービスから直接受信して転送されるものではなく、Sync App 固有のものです。
  • Unpack — サービス API から返された圧縮データを製品が解凍する際のメッセージに適用されるラベル。
  • Res — HTTP レスポンスを含むメッセージ。
  • Req — HTTP リクエストを含むメッセージ。
WSDL WSDL/XSD ファイルの生成に関するメッセージ。 —
SSL SSL 証明書メッセージ。
  • Certif — SSL 証明書に関するメッセージ。
AUTH 認証関連の失敗/成功メッセージ。
  • Messag — 認証に関するメッセージ。これらのメッセージは通常、サービスから直接受信して転送されるものではなく、Sync App 固有のものです。
  • OAuth — OAuth 認証に関連するメッセージ。
  • Krbros — Kerberos 関連の認証メッセージ。
SQL SQL トランザクション、SQL 一括転送メッセージ、および SQL 結果セットメッセージが含まれます。
  • Bulk — 一括クエリ実行に関するメッセージ。
  • Cache — パフォーマンス向上のため、製品のキャッシュへの行データの読み書きに関連するメッセージ。
  • Messag — SQL トランザクションに関するメッセージ。これらのメッセージは通常、サービスから直接受信して転送されるものではなく、Sync App 固有のものです。
  • ResSet — クエリの結果セット。
  • Transc — 実行されたジョブ数やバックアップテーブルの処理に関する情報を含む、トランザクション処理に関連するメッセージ。
META メタデータキャッシュとスキーマメッセージ。
  • Cache — パフォーマンス向上のため、製品のキャッシュ内のカラムおよびテーブル定義の読み取りと変更に関連するメッセージ。
  • Schema — サービススキーマからのメタデータの取得またはサービススキーマの変更に関連するメッセージ。
  • MemSto — インメモリメタデータキャッシュへの書き込みまたは読み取りに関連するメッセージ。
  • Storag — メモリ内ではなく、ディスクまたは外部データストアへのメタデータの保存に関連するメッセージ。
FUNC SQL 関数の実行に関連する情報。
  • Errmsg — SQL 関数の実行に関連するエラーメッセージ。
TCP TCP トランスポートレイヤーメッセージでの送受信生バイト。
  • Send — TCP プロトコル経由で送信された生データ。
  • Receiv — TCP プロトコル経由で受信した生データ。
FTP File Transfer Protocol に関するメッセージ。
  • Info — FTP プロトコルでの通信に関連するステータスメッセージ。
  • Client — FTP 通信中に FTP クライアント(製品)が実行したアクションに関連するメッセージ。
  • Server — FTP 通信中に FTP サーバーが実行したアクションに関連するメッセージ。
SFTP Secure File Transfer Protocol に関するメッセージ。
  • Info — SFTP プロトコルでの通信に関連するステータスメッセージ。
  • To_Server — SFTP 通信中に SFTP クライアント(製品)が実行したアクションに関連するメッセージ。
  • From_Server — SFTP 通信中に SFTP サーバーが実行したアクションに関連するメッセージ。
POP Post Office Protocol 経由で転送されるデータに関するメッセージ。
  • Client — POP 通信中に POP クライアント(製品)が実行したアクションに関連するメッセージ。
  • Server — POP 通信中に POP サーバーが実行したアクションに関連するメッセージ。
  • Status — POP プロトコルでの通信に関連するステータスメッセージ。
SMTP Simple Mail Transfer Protocol 経由で転送されるデータに関するメッセージ。
  • Client — SMTP 通信中に SMTP クライアント(製品)が実行したアクションに関連するメッセージ。
  • Server — SMTP 通信中に SMTP サーバーが実行したアクションに関連するメッセージ。
  • Status — SMTP プロトコルでの通信に関連するステータスメッセージ。
CORE 他のモジュールでカバーされていない、さまざまな製品内部操作に関連するメッセージ。 —
DEMN SQL リモーティングに関連するメッセージ。 —
STRG CSV や JSON などの形式の生ファイルの読み書きに関連するメッセージ。 —
CLJB 一括データアップロード(クラウドジョブ)に関するメッセージ。
  • Commit — 一括データアップロードの送信。
SRCE 他のモジュールに属さない、製品が生成するその他のメッセージ。 —
TRANCE 低レベルの製品操作に関する高度なメッセージ。 —

REST Connector for CData Sync

Schema

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


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
BrowsableSchemasレポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesレポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
Viewsレポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。
REST Connector for CData Sync

Location

テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。

解説

Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。

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

プラットフォーム %APPDATA%
Windows APPDATA 環境変数の値
Linux ~/.config

REST Connector for CData Sync

BrowsableSchemas

レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。

解説

利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

REST Connector for CData Sync

Tables

レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。

解説

データベースによっては、利用可能なすべてのテーブルをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にテーブルのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

利用可能なテーブルがたくさんあり、すでに作業したいテーブルが決まっている場合、このプロパティを使用して対象のテーブルのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。

Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、表示する各テーブルを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するテーブルが混同されることを防ぎます。

REST Connector for CData Sync

Views

レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。

解説

データベースによっては、利用可能なすべてのビューをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にビューのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

利用可能なビューがたくさんあり、すでに作業したいビューが決まっている場合、このプロパティを使用して対象のビューのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。

Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、確認する各ビューを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するビューが混同されることを防ぎます。

REST Connector for CData Sync

Miscellaneous

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


プロパティ説明
AWSCertificateThe absolute path to the certificate file or the certificate content in PEM format encoded in base64.
AWSCertificatePasswordThe password for the certificate if applicable, otherwise leave blank.
AWSCertificateTypeThe type of AWSCertificate .
AWSPrivateKeyThe absolute path to the private key file or the private key content in PEM format encoded in base64.
AWSPrivateKeyPasswordThe password for the private key if it is encrypted, otherwise leave blank.
AWSPrivateKeyTypeThe type of AWSPrivateKey .
AWSProfileARNProfile to pull policies from.
AWSSessionDurationDuration, in seconds, for the resulting session.
AWSTrustAnchorARNTrust anchor to use for authentication.
CharsetREST ファイルに移行、またはREST ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。
ClientCultureこのプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。
Cultureこの設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。
CustomHeaders他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。
CustomURLParamsHTTP リクエストに含めるカスタムURL パラメータの文字列で、field1=value1&field2=value2&field3=value3 の形式。
DirectoryRetrievalDepthIncludeSubdirectories が有効の場合に、再帰的にスキャンされるサブフォルダを制限します。
ExcludeFilesテーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。
ExcludeStorageClasses無視するストレージクラスのカンマ区切りリスト。
FolderIdGoogle Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IncludeDropboxTeamResourcesDropbox チームフォルダやファイルを含めるかどうかを示します。
IncludeFilesテーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。
IncludeItemsFromAllDrivesGoogle Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。
MaxRows集計やGROUP BY を含まないクエリで返される最大行数を指定します。
MetadataDiscoveryURI複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。
Other特定の問題に対処するため、特殊なシナリオ向けの高度な接続プロパティを指定します。このプロパティは、サポートチームの指示がある場合にのみ使用してください。
Pagesizeprovider がREST にデータをリクエストするときに返す、ページあたりの最大レコード数を指定します。
PseudoColumnsテーブルカラムとして公開する擬似カラムを、'TableName=ColumnName;TableName=ColumnName' の形式の文字列で指定します。
RowScanDepthSpecifies the number of rows (objects) to scan when dynamically determining columns for the table.
Timeoutprovider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。
TypeDetectionSchemeSpecifies how to determine the data types of columns.
UserDefinedViewsカスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。
REST Connector for CData Sync

AWSCertificate

The absolute path to the certificate file or the certificate content in PEM format encoded in base64.

解説

The absolute path to the certificate file or the certificate file content in PEM format encoded in base64, depending on the value of AWSCertificateType.

REST Connector for CData Sync

AWSCertificatePassword

The password for the certificate if applicable, otherwise leave blank.

解説

The password for the certificate if applicable, otherwise leave blank.

REST Connector for CData Sync

AWSCertificateType

The type of AWSCertificate .

解説

This property can take one of the following values:

PEM_FILEAbsolute path to a certificate file in PEM format.
PEM_BLOBA string (base64-encoded) representing a PEM-encoded certificate.

REST Connector for CData Sync

AWSPrivateKey

The absolute path to the private key file or the private key content in PEM format encoded in base64.

解説

The absolute path to the private key file or the private key file content in PEM format encoded in base64, depending on the value of AWSPrivateKeyType.

REST Connector for CData Sync

AWSPrivateKeyPassword

The password for the private key if it is encrypted, otherwise leave blank.

解説

The password for the private key if it is encrypted, otherwise leave blank.

REST Connector for CData Sync

AWSPrivateKeyType

The type of AWSPrivateKey .

解説

This property can take one of the following values:

PEM_FILEAbsolute path to a private key file in PEM format.
PEM_BLOBA string (base64-encoded) representing a PEM-encoded private key.

REST Connector for CData Sync

AWSProfileARN

Profile to pull policies from.

解説

Profile to pull policies from.

REST Connector for CData Sync

AWSSessionDuration

Duration, in seconds, for the resulting session.

解説

Duration, in seconds, for the resulting session. Default: 3600 seconds.

REST Connector for CData Sync

AWSTrustAnchorARN

Trust anchor to use for authentication.

解説

Trust anchor to use for authentication.

REST Connector for CData Sync

Charset

REST ファイルに移行、またはREST ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。

解説

REST ファイルに移行、またはREST ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。

REST Connector for CData Sync

ClientCulture

このプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。

解説

このオプションは、Sync App 出力の形式に影響を与えます。入力の解釈方法を定義する形式を指定するには、Culture オプションを使用します。デフォルトでは、Sync App は入力の解釈と出力の形式に、マシンの現在のロケール設定を使用します。

REST Connector for CData Sync

Culture

この設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。

解説

このプロパティは、Sync App 入力に影響を与えます。別のカルチャ形式の値を解釈するには、Client Culture プロパティを使用します。デフォルトでは、Sync App は入力の解釈と出力の形式に、マシンの現在のロケール設定を使用します。

REST Connector for CData Sync

CustomHeaders

他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。

解説

このプロパティを使用して、Sync App から送信されるHTTP リクエストにカスタムヘッダーを追加します。

このプロパティは、追加ヘッダーや非標準ヘッダーを必要とするAPI とやり取りするためにリクエストを微調整する際に役立ちます。 ヘッダーはHTTP 仕様で記述されているとおり"header: value" の形式に従う必要があり、各ヘッダー行はキャリッジリターンとラインフィード(CRLF)文字で区切る必要があります。 重要:このプロパティを設定する際は注意してください。無効なヘッダーを指定するとHTTP リクエストが失敗する場合があります。

REST Connector for CData Sync

CustomURLParams

HTTP リクエストに含めるカスタムURL パラメータの文字列で、field1=value1&field2=value2&field3=value3 の形式。

解説

このプロパティを使用すると、HTTP リクエストに含まれるカスタムクエリ文字列パラメータを指定できます。 パラメータは、各値がURL エンコードされた形式でfield1=value1&field2=value2&field3=value3 の形式で、クエリ文字列としてエンコードする必要があります。 URL エンコーディングは、以下のようにインターネット上で送信可能な文字列に変換する方法です。

  • 非ASCII 文字は、"%" とそれに続く2桁の16進数で表される同等の文字に置き換えられます。
  • スペースはプラス記号(+)または%20 で置き換えられます。

REST Connector for CData Sync

DirectoryRetrievalDepth

IncludeSubdirectories が有効の場合に、再帰的にスキャンされるサブフォルダを制限します。

解説

IncludeSubdirectories が有効の場合は、DirectoryRetrievalDepth は、停止する前に再帰的にスキャンするサブフォルダの数を指定します。-1 は、すべてのサブフォルダをスキャンすることを示します。

REST Connector for CData Sync

ExcludeFiles

テーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。

解説

datetime フィルタを指定することも可能です。現在、CreatedDate およびModifiedDate がサポートされています。 すべての拡張フィルタは論理和(OR 演算子を使用)で評価され、結果のフィルタはdatetime フィルタと組み合わせて(AND 演算子を使用)評価されます。

例:

ExcludeFiles="TXT,CreatedDate<='2020-11-26T07:39:34-05:00'"
ExcludeFiles="TXT,ModifiedDate<=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 50, 000)"
ExcludeFiles="ModifiedDate>=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 49, 000),ModifiedDate<=CURRENT_TIMESTAMP()"

REST Connector for CData Sync

ExcludeStorageClasses

無視するストレージクラスのカンマ区切りリスト。

解説

これは、Amazon S3 から取得するファイルの種類を絞り込むために使用できます。例えば、このプロパティをGLACIER に設定すると、ストレージクラスGLACIER のファイルはすべて無視されます。 有効な値は以下のとおりです。

  • STANDARD
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • REDUCED_REDUNDANCY
  • GLACIER_IR
  • GLACIER
  • DEEP_ARCHIVE

REST Connector for CData Sync

FolderId

Google Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。

解説

Google Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。

REST Connector for CData Sync

GenerateSchemaFiles

スキーマを生成して保存するユーザーの好みのタイミングを示します。

解説

このプロパティは、Location で指定されたパスの.rsd ファイルにスキーマをアウトプットします。

有効な設定は次のとおりです。

  • Never:スキーマファイルは生成されません。
  • OnUse:スキーマファイルがまだ存在していない場合に、初めてテーブルが参照されるときにスキーマファイルが生成されます。
  • OnStart:現在スキーマファイルを持たないあらゆるテーブルに対して、接続時にスキーマファイルが生成されます。
  • OnCreate:CREATE TABLE SQL クエリを実行すると、スキーマファイルが生成されます。
ファイルを再生成したい場合には、既存のファイルを削除する必要があることに注意してください。

SQL でスキーマを生成する

GenerateSchemaFiles をOnUse に設定すると、Sync App はSELECT クエリを実行したときにスキーマを生成します。スキーマはクエリのそれぞれの参照されたテーブルに対して生成されます。

GenerateSchemaFiles をOnCreate に設定すると、CREATE TABLE クエリが実行されたときにのみスキーマが生成されます。

接続時にスキーマを生成する

このプロパティのもう一つの使い方は、接続するときにデータベース内のすべてのテーブルのスキーマを取得することです。これには、GenerateSchemaFiles をOnStart に設定して接続します。

REST Connector for CData Sync

IncludeDropboxTeamResources

Dropbox チームフォルダやファイルを含めるかどうかを示します。

解説

Dropbox チームフォルダやファイルにアクセスするには、この接続プロパティをTrue に設定してください。

REST Connector for CData Sync

IncludeFiles

テーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。

解説

テーブルとしてモデル化されたファイルセットに含めるファイル拡張子のカンマ区切りリスト。例えば、IncludeFiles=TXT,TAB です。

このプロパティにはデフォルトは設定されていません。IncludeFiles が指定されていない場合、ドライバーはFormat に基づいて以下のように推測します。

  • Format=CSV:IncludeFiles=CSC,TXT,TAB と同等であると推測されます。
  • Format=JSON:IncludeFiles=JSON と同等であると推測されます。
  • Format=XML:IncludeFiles=XML と同等であると推測されます。

'NOEXT' 値を指定すると、拡張子のないファイルを含めることができます。

アスタリスク(*)を使用してファイルマスクを指定し、フィルタリング機能を強化することができます。例:IncludeFiles=2020*.csv,TXT

datetime フィルタを指定することも可能です。現在、CreatedDate およびModifiedDate がサポートされています。 すべての拡張フィルタは論理和(OR 演算子を使用)で評価され、結果のフィルタはdatetime フィルタと組み合わせて(AND 演算子を使用)評価されます。

例:

IncludeFiles="TXT,CreatedDate<='2020-11-26T07:39:34-05:00'"
IncludeFiles="TXT,ModifiedDate<=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 50, 000)"
IncludeFiles="ModifiedDate>=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 49, 000),ModifiedDate<=CURRENT_TIMESTAMP()"

REST Connector for CData Sync

IncludeItemsFromAllDrives

Google Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。

解説

このプロパティを'True' に設定すると、共有ドライブを含むすべてのドライブからファイルが取得されます。URI の先頭を共有ドライブのパスに設定し、オプションで任意のフォルダを指定することで、ファイルの検索対象を特定の共有ドライブまたは共有ドライブ内の特定のフォルダに限定することができます(例:'gdrive://SharedDriveA/FolderA/...')。さらに、FolderId プロパティを使用すると検索対象を正確なサブディレクトリに限定できます。

REST Connector for CData Sync

MaxRows

集計やGROUP BY を含まないクエリで返される最大行数を指定します。

解説

このプロパティのデフォルト値である-1 は、クエリに明示的にLIMIT 句が含まれていない限り、行の制限が適用されないことを意味します。 (クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。)

MaxRows を0より大きい整数に設定することで、クエリがデフォルトで過度に大きな結果セットを返さないようにします。

このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し、過剰なリソース消費を防ぐのに役立ちます。

REST Connector for CData Sync

MetadataDiscoveryURI

複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。

解説

複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。

REST Connector for CData Sync

Other

特定の問題に対処するため、特殊なシナリオ向けの高度な接続プロパティを指定します。このプロパティは、サポートチームの指示がある場合にのみ使用してください。

解説

このプロパティにより、シニアユーザーはサポートチームのアドバイスに基づいて、特定の状況に対応する隠しプロパティを設定できます。 これらの設定は通常のユースケースには必要ありませんが、特定の要件に対応したり、追加の機能を提供したりすることができます。 複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。

Note:特定のシナリオや問題に対処するためにサポートチームから助言があった場合にのみ、これらのプロパティを設定することを強く推奨します。

統合およびフォーマット

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

REST Connector for CData Sync

Pagesize

provider がREST にデータをリクエストするときに返す、ページあたりの最大レコード数を指定します。

解説

クエリを処理する際、REST でクエリされたデータすべてを一度にリクエストする代わりに、Sync App はクエリされたデータをページと呼ばれる部分ごとにリクエストすることができます。

この接続プロパティは、Sync App がページごとにリクエストする結果の最大数を決定します。

Note:大きなページサイズを設定すると全体的なクエリ実行時間が短縮される可能性がありますが、その場合、クエリ実行時にSync App がより多くのメモリを使用することになり、タイムアウトが発生するリスクがあります。

REST Connector for CData Sync

PseudoColumns

テーブルカラムとして公開する擬似カラムを、'TableName=ColumnName;TableName=ColumnName' の形式の文字列で指定します。

解説

このプロパティを使用すると、Sync App がテーブルカラムとして公開する擬似カラムを定義できます。

個々の擬似カラムを指定するには、以下の形式を使用します。

Table1=Column1;Table1=Column2;Table2=Column3

すべてのテーブルのすべての擬似カラムを含めるには、次を使用してください:

*=*

REST Connector for CData Sync

RowScanDepth

Specifies the number of rows (objects) to scan when dynamically determining columns for the table.

解説

The row scan follows nested objects, counting 1 object array as 1 row. If a schema (RSD) file is not available for the table, such as when using GenerateSchemaFiles the CData Sync App determines columns dynamically.

Higher values result in a longer request, but will be more accurate.

Setting this value to 0 (zero) parses the entire document.

See Also

  • 自動スキーマ検出: Shows how to configure column discovery using RowScanDepth, FlattenObjects, and FlattenArrays.
  • REST データのモデリング: Introduces the different options for modeling data in the Sync App.

REST Connector for CData Sync

Timeout

provider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。

解説

タイムアウトは、クエリや操作全体ではなくサーバーとの個々の通信に適用されます。 例えば、各ページング呼び出しがタイムアウト制限内に完了する場合、クエリは60秒を超えて実行を続けることができます。

タイムアウトはデフォルトで60秒に設定されています。タイムアウトを無効にするには、このプロパティを0に設定します。

タイムアウトを無効にすると、操作が成功するか、サーバー側のタイムアウト、ネットワークの中断、またはサーバーのリソース制限などの他の条件で失敗するまで無期限に実行されます。

Note: このプロパティは慎重に使用してください。長時間実行される操作がパフォーマンスを低下させたり、応答しなくなる可能性があるためです。

REST Connector for CData Sync

TypeDetectionScheme

Specifies how to determine the data types of columns.

解説

NoneReturns all columns as the string type.
RowScan (default)Scans rows to heuristically determine the data type. Requires you to set RowScanDepth to specify the number of rows to be scanned.

REST Connector for CData Sync

UserDefinedViews

カスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。

解説

UserDefinedViews を使用すると、UserDefinedViews.json というJSON 形式の構成ファイルを通じてカスタムビューを定義および管理できます。 これらのビューはSync App によって自動的に認識され、標準のデータベースビューのようにカスタムSQL クエリを実行できるようになります。 JSON ファイルは、各ビューをルート要素として定義し、その子要素として"query" を持ちます。この"query" にはビューのSQL クエリが含まれています。

次に例を示します。

{
	"MyView": {
		"query": "SELECT * FROM NorthwindOData WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}

このプロパティを使用して、1つのファイルに複数のビューを定義し、ファイルパスを指定できます。 次に例を示します。

UserDefinedViews=C:\Path\To\UserDefinedViews.json
UserDefinedViews でビューを指定すると、Sync App はそのビューだけを参照します。

詳しくは、ユーザー定義ビュー を参照してください。

REST Connector for CData Sync

Third Party Copyrights

LZMA from 7Zip LZMA SDK

LZMA SDK is placed in the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original LZMA SDK code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

LZMA2 from XZ SDK

Version 1.9 and older are in the public domain.

Xamarin.Forms

Xamarin SDK

The MIT License (MIT)

Copyright (c) .NET Foundation Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

NSIS 3.10

Copyright (C) 1999-2025 Contributors THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 25.0.9540