sn_erp_integration API - スコープ対象、グローバル
ERP 向けゼロコピーコネクタ (エンタープライズリソースプランニング) モデルとやり取りするためのチェーン可能な API を提供するスクリプトインクルード。
このスクリプトインクルードは、 ERP 向けゼロコピーコネクタ (com.sn_erp_integration) ストアアプリケーションを必要とし、sn_erp_integration 名前空間内で提供されます。詳細については、「Zero Copy Connector for ERP」を参照してください。
必要なロール:sn_erp_integration.erp_user
- メタデータ
- メタデータメソッドを使用して、 ERP 向けゼロコピーコネクタ 環境で利用可能なシステム、モデル、および IDoc 情報を検出します。
- getAvailableSystems()
- getAvailableModels()
- getAvailableOperations()
- getAvailableInputs()
- getRequiredInputs()
- getAvailableOutputs()
- getAvailableIdocConfigs()
- 設定
- 構成方法を使用して、処理に使用可能なシステム、モデル、操作、および IDoc 構成を選択します。これらのメソッドを使用して、モデルフィールドの戻り値をフィルタリングすることもできます。
- システム()
- モデル()
- operation()
- idocConfig()
- フィールド ()
- limit()
- offset()
- クエリの構築
- クエリ構築メソッドを使用して結果をフィルタリングします。
- addEncodedQuery()
- addQuery()
- addOrQuery()
- データ入力
- データ入力メソッドを使用してフィールド値を設定します。withJSON()メソッドは、ネストされたオブジェクトと IDoc フィールドへの入力に使用できます。set() メソッドは、単一のフィールド値を設定するために使用されます。
- set()
- withJSON()
- 操作実行
- 複数のレコードを操作する場合は execute() メソッドを使用し、単一のレコードの結果の場合は get() メソッドを使用します。
- 実行()
- get()
API:API コンストラクター
新しい ERP 向けゼロコピーコネクタ API インスタンスを初期化します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
次の例は、ERP システムにアクセスするための API のインスタンスを作成する方法を示しています。
// Select the system1 system
const api = new sn_erp_integration.API().system('system1');
API - addEncodedQuery(文字列 encodedQuery)
エンコードされたクエリを使用してレコードをフィルタリングします。
| 名前 | タイプ | 説明 |
|---|---|---|
| encodedQuery | 文字列 | エンコードされたクエリ文字列。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、エンコードされたクエリを使用して米国の会社コードを取得する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('read')
.addEncodedQuery('company_codes_countryregion_key=US')
.execute();
API - addOrQuery(文字列フィールド, 文字列演算子, 文字列値)
OR クエリ条件を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| フィールド | 文字列 | クエリ対象のフィールドの名前。 |
| オペレーター | 文字列 | オプション。クエリ演算子。使用されるクエリーオプションは、 value パラメーターに指定されたデータが数値か文字列かによって異なります。 デフォルト値:= 番号:
文字列 (大文字である必要があります):
注:
LIKE 演算子の代わりに CONTAINS を使用します。 |
| value | 文字列 | クエリ対象の値 (大文字と小文字は区別されません)。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、米国とカナダのすべての会社コードを返す方法を示しています。
const api = new sn_erp_integration.API();
const companyCodes = api
.system('system1')
.model('company_code')
.operation('read')
.addQuery('company_codes_countryregion_key', 'US')
.addOrQuery('company_codes_countryregion_key', 'CA')
.fields(['company_codes_company_code', 'company_codes_company_name', 'company_codes_countryregion_key', 'company_codes_currency'])
.execute();
// Process the results
companyCodes.forEach(companyCode => {
gs.info('Company Code: ${companyCode.company_codes_company_code}, Name: ${companyCode.company_codes_company_name}, Country: ${companyCode.company_codes_countryregion_key}');
// Do something with each company code
if (companyCode.company_codes_countryregion_key === 'US') {
// Process US company codes
} else {
// Process Canadian company codes
}
});
API - addQuery(文字列フィールド, 文字列演算子, 文字列値, 文字列 joinType)
データをフィルタリングするためのクエリ条件を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| フィールド | 文字列 | クエリ対象のフィールドの名前。 |
| オペレーター | 文字列 | オプション。クエリ演算子。使用されるクエリーオプションは、 value パラメーターに指定されたデータが数値か文字列かによって異なります。 デフォルト値:= 番号:
文字列 (大文字である必要があります):
注:
LIKE 演算子の代わりに CONTAINS を使用します。 |
| value | 文字列 | クエリ対象の値 (大文字と小文字は区別されません)。 |
| joinType | 文字列 | オプション。参加タイプ。 可能な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、>演算子を使用して、優先度 1 または優先度 2 より大きい結果を返す方法を示しています。
// Results in: priority=1^ORpriority>2
const api = new sn_erp_integration.API();
.system('system1')
.model('request')
.operation('read')
.addQuery('priority', '1)
.addOrQuery('priority', '>', '2')
.execute();
API - execute()
構成された操作を実行します。
単一の結果に対して操作を実行するには、 API:get()を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト|アレイ | 操作の結果。失敗した場合はエラー。 |
次の例は、新しい会社コードを作成する方法を示しています。
const newCompanyCode = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('create')
.withJSON({
company_codes_company_code: '1234',
company_codes_company_name: 'New York Office',
company_codes_countryregion_key: 'US',
company_codes_language_key: 'EN'
})
.execute();
API - フィールド (アレイフィールド)
返すモデルフィールドを指定します。これは、フィールドを選択する主要な方法です。
モデルで利用可能なフィールドのリストを取得するには、 API - getAvailableOutputs()を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| フィールド | アレイ | 文字列としてリストされる 1 つ以上のモデルフィールド名。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、米国のすべての会社コードの特定のフィールドを返す方法を示しています。
const companyCodes = new API()
.system('system1')
.model('company_code')
.operation('read')
.addQuery('company_codes_countryregion_key', 'US')
.fields(['company_codes_company_code', 'company_codes_company_name', 'company_codes_countryregion_key'])
.execute();
API:get()
結果内の単一のレコードを取得するための execute() メソッドのエイリアス。
「API - execute()」も参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 操作の最初の結果。 |
次の例は、特定の販売伝票を取得する方法を示しています。
const salesDoc = new sn_erp_integration.API()
.system('system1')
.model('sales_document')
.operation('read')
.addQuery('document_number', '0000123456')
.get();
API - getAvailableIdocConfigs()
選択したシステムで利用可能な IDoc 構成の詳細を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトのアレイ | 使用可能な IDoc 構成のリスト。システムが選択されていない場合はエラーをスローします。 「API - system(文字列 systemId)」も参照してください。 |
| object.id | IDoc ID。この値を使用して、 API - idocConfig(文字列 configId) メソッドの IDoc を選択します。 データタイプ:文字列 |
| object.name | IDoc 表示名。 データタイプ:文字列 |
| object.description | IDoc の説明。 データタイプ:文字列 |
次の例は、選択したシステムで利用可能なすべての IDoc 構成を取得する方法を示しています。
const idocConfigs = new sn_erp_integration.API()
.system('system1')
.getAvailableIdocConfigs();
gs.info(JSON.stringify(idocConfigs, null, 2));
出力:
[
{
"id": "OBC0001002",
"name": "Sales Order IDoc",
"description": "IDoc for sales order processing"
},
{
"id": "OBC0001003",
"name": "Material IDoc",
"description": "IDoc for material core data"
}
]
API - getAvailableInputs()
選択した操作で利用可能なすべての入力フィールドのリストを返します。
選択したモデルの必須入力フィールドのみのリストについては、 API - getRequiredInputs() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 利用可能な入力とそのタイプを記述するオブジェクト。 「API - system(文字列 systemId)」も参照してください。 |
| object.variable_name | 入力フィールドの変数名。 データタイプ:文字列 |
| object.label | 入力フィールドの表示名。 データタイプ:文字列 |
| object.data_type | 操作入力のデータタイプ。 データタイプ:文字列 |
| object.required | 入力フィールドが必須かどうかを示すフラグ。 有効な値:
データタイプ:ブーリアン |
会社コードの作成に利用可能な入力を取得します。
const inputs = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('read')
.getAvailableInputs();
gs.info(JSON.stringify(operations, null, 2));
出力:
[
{
"variable_name": "company_codes_company_code",
"label": "Company Code",
"data_type": "string",
"required": true
},
{
"variable_name": "company_codes_company_name",
"label": "Company Name",
"data_type": "string",
"required": true
}
]
API - getAvailableModels()
選択したシステムで利用可能なモデルのリストを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトのアレイ | ID、名前、および説明プロパティを持つ JSON オブジェクトとしてリストされる利用可能なモデルのリスト。システムが選択されていない場合はエラーをスローします。 「API - system(文字列 systemId)」も参照してください。 |
| object.id | モデル ID。この値を使用して、 API - model (文字列 modelId) メソッドのモデルを選択します。 データタイプ:文字列 |
| object.name | モデルラベル、つまり表示名。 データタイプ:文字列 |
| object.description | モデルの説明。 データタイプ:文字列 |
次の例は、選択したシステムで利用可能なすべてのモデルを取得する方法を示しています。
// Get all available models for system1
const models = new sn_erp_integration.API()
.system('system1')
.getAvailableModels();
gs.info(JSON.stringify(models, null, 2));
出力:
[
{
"id": "company_code",
"name": "Company Code",
"description": "Company Code"
},
{
"id": "country",
"name": "Country",
"description": "Country"
},
{
"id": "currency",
"name": "Currency",
"description": "Currency"
},
{
"id": "customer_invoice",
"name": "Customer Invoice",
"description": "Customer Invoice"
},
{
"id": "language",
"name": "Language",
"description": "Language"
}
]
API - getAvailableOperations()
選択したモデルで利用可能な操作を取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| アレイ | 利用可能な ERP モデル操作のリスト。モデルまたはシステムが選択されていない場合はエラーをスローします。 |
| object.id | モデル操作 ID。この値を使用して、 API - operation(文字列 operationId) メソッドでモデル操作を選択します。 データタイプ:文字列 |
| object.name | モデル操作ラベル、つまり表示名。 データタイプ:文字列 |
次の例は、 company_code モデルで利用可能なすべての操作を取得する方法を示しています。
const operations = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.getAvailableOperations();
gs.info(JSON.stringify(operations, null, 2));
出力:
[
{
"id": "create",
"name": "Company Code - Create"
},
{
"id": "read",
"name": "Company Code - Read"
}
]
API - getAvailableOutputs()
選択した操作で利用可能なすべての出力フィールドのリストを取得します。
このメソッドによって返されたフィールド名は、 API - フィールド (アレイフィールド) メソッドで使用してフィールド結果をフィルタリングできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトのアレイ | 利用可能な出力フィールドのリスト。モデルまたはシステムが選択されていない場合はエラーをスローします。 「API - system(文字列 systemId)」も参照してください。 |
| object.variable_name | 出力フィールドの変数名。 データタイプ:文字列 |
| object.label | 出力フィールドの表示名。 データタイプ:文字列 |
| object.data_type | 操作出力のデータタイプ。 データタイプ:文字列 |
次の例は、 vendor というモデル操作を読み取って提供される利用可能な出力を取得する方法を示しています。
// Get available outputs for read operation on a vendor model
const outputs = new sn_erp_integration.API()
.system('system1')
.model('vendor')
.operation('read')
.getAvailableOutputs();
gs.info(JSON.stringify(outputs, null, 2));
出力:
[
{
"variable_name": "supplier_country",
"label": "Country",
"data_type": "string"
}
{
"variable_name": "supplier_city",
"label": "City",
"data_type": "string"
},
{
"variable_name": "supplier_location",
"label": "Location",
"data_type": "string"
},
{
"variable_name": "supplier_street",
"label": "Street",
"data_type": "string"
},
{
"variable_name": "supplier_name",
"label": "Name",
"data_type": "string"
},
{
"variable_name": "supplier_postal_code",
"label": "Postal Code",
"data_type": "string"
},
{
"variable_name": "supplier_state",
"label": "State",
"data_type": "string"
}
]
API - getAvailableSystems()
API を介してアクセスできる利用可能なすべての ERP システムのリストを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトのアレイ | 利用可能な ERP システムのリスト。 |
| object.id | Sys ID。この値を使用して、 API - system(文字列 systemId) 方式のシステムを選択します。 データタイプ:文字列 |
| object.name | システムラベル、つまり表示名。 データタイプ:文字列 |
次の例は、利用可能なすべての ERP システムのリストを取得する方法を示しています。
const systems = new sn_erp_integration.API().getAvailableSystems();
gs.info(JSON.stringify(systems));
出力:
[
{
"id": "system1",
"name": "SAP DEV"
},
{
"id": "system2",
"name": "SAP PROD"
}
]
API - getRequiredInputs()
選択したモデルと作成操作の必須入力フィールドのみのリストを返します。
必須入力フィールドは、モデルの作成時に設定されます。
選択したモデルの入力フィールドの完全なリストについては、 API - getAvailableInputs() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクトのアレイ | 必須入力フィールド名のリスト。 |
| object.variable_name | 必須入力フィールドの変数名。 データタイプ:文字列 |
| object.label | 必須入力フィールドの表示名。 データタイプ:文字列 |
| object.data_type | 入力が必要な操作のデータタイプ。 データタイプ:文字列 |
| object.required | 入力フィールドが必須かどうかを示すフラグ。このメソッドは、値が true の場合にのみ結果を返します。 データタイプ:ブーリアン |
次の例は、請求書を作成するために必要な入力フィールドを返す方法を示しています。
const requiredInputs = new sn_erp_integration.API()
.system('system1')
.model('invoice')
.operation('create')
.getRequiredInputs();
gs.info(JSON.stringify(requiredInputs, null, 2));
出力:
{
"variable_name": "INVOICE01",
"label": "INVOICE01",
"data_type": "array",
"required": true
}
API - idocConfig(文字列 configId)
操作対象の IDoc 構成を選択します。
| 名前 | タイプ | 説明 |
|---|---|---|
| configId | 文字列 | IDoc 送信構成の ID。IDoc 構成 ID のリストを取得するには、 API - getAvailableIdocConfigs() メソッドを使用します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、IDoc 構成を選択し、処理する値を設定する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.idocConfig('OBC0001002')
.withJSON({
idoc_field1: 'value1',
idoc_field2: 'value2'
})
.execute();
API:limit(最大数)
返される結果の数を制限します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 最大 | 番号 | 返されるレコードの最大数。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、最初の 10 件の会社コードレコードのみを取得する方法を示しています。
// Get only the first 10 company codes
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.fields(['company_codes_company_code', 'company_codes_company_name'])
.limit(10)
.execute();
API - model (文字列 modelId)
操作対象のモデルを選択します。
| 名前 | タイプ | 説明 |
|---|---|---|
| modelId | 文字列 | モデルの ID。 すべてのモデルのリストをその ID とともに取得するには、 API - getAvailableModels() を使用します。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、system1 でcompany_codeモデルを選択する方法を示しています。選択したモデルのデータを取得および設定するための追加のメソッドをチェーンできます。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.execute();
API - offset (数字開始)
結果の開始オフセットを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 開始 | 番号 | 結果の取得を開始する開始点。たとえば、この値を 10 に設定すると、クエリで返された最初の 10 件の結果がスキップされます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、最初の 10 件の結果 (11 〜 20) をスキップして 10 件の会社コードレコードを取得する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.fields(['company_codes_company_code', 'company_codes_company_name'])
.limit(10)
.offset(10)
.execute();
API - operation(文字列 operationId)
選択したモデルで使用する操作を選択します。
モデル操作のリストを返すには、 API - getAvailableOperations()を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| operationId | 文字列 | モデル操作の ID。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、 company_code モデルの読み取り操作を選択する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('read')
.execute();
API - set(文字列フィールド, 文字列値)
作成または更新操作に対して単一のフィールド値を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| フィールド | 文字列 | 値を設定するフィールドの名前。 |
| value | 文字列 | フィールドに設定する値。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、会社コードエントリを作成し、それにフィールド値を割り当てる方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('create')
.set('company_codes_company_code', '1234')
.set('company_codes_company_name', 'New York Office')
.set('company_codes_countryregion_key', 'US')
.set('company_codes_language_key', 'EN')
.execute();
次の例は、ネストされたプロパティを使用して販売ドキュメントを更新する方法を示しています。追加のレベルを持つネストされたデータ構造の場合は、 API - withJSON(オブジェクトデータ)を使用します。
const api = new sn_erp_integration.API()
.system('system1')
.model('sales_document')
.operation('update')
.set('document_number', '0000123456')
.set('header.document_type', 'OR')
.set('header.sales_organization', '1000')
.execute();
API - system(文字列 systemId)
操作対象のシステムを選択します。
| 名前 | タイプ | 説明 |
|---|---|---|
| systemId | 文字列 | システム ID。API - getAvailableSystems() メソッドを使用してシステム ID を取得できます。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、システムを選択する方法を示しています。システム内のモデルを選択するための追加のメソッドと、選択したシステムのデータを使用するための追加のメソッドをチェーンできます。
const api = new sn_erp_integration.API().system('system1');
API - withJSON(オブジェクトデータ)
操作の JSON データを設定します。読み取り操作の場合、このメソッドはフィルター条件を設定します。作成または更新操作の場合、このメソッドは作成または更新するデータを含むフィールドを設定します。
「API - set(文字列フィールド, 文字列値)」も参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| データ | オブジェクト | フィールドとその値を一覧表示する JSON データ。 Format (形式): |
| タイプ | 説明 |
|---|---|
| オブジェクト | チェーンのためにこのインスタンスを返します。 |
次の例は、作成操作のデータを設定する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('company_code')
.operation('create')
.withJSON({
company_codes_company_code: '1234',
company_codes_company_name: 'New York Office',
company_codes_countryregion_key: 'US'
})
.execute();
次の例は、読み取り操作のネストされたフィルターを設定する方法を示しています。
const api = new sn_erp_integration.API()
.system('system1')
.model('sales_document')
.operation('read')
.withJSON({
header: {
document_type: 'OR',
sales_organization: '1000'
}
})
.operation('read')
.execute();