マッシュアップ
マッシュアップは、サーバー上で XAPI を呼び出し、データを UI レイヤーに返すために使用されます。
マッシュアップ XML の定義
以下のコード・スニペットは、サンプル・マッシュアップ XML を定義しています。
<?xml version="1.0" encoding="UTF-8"?>
<mashups>
<mashup description="Mashup description"
endpoint="<mashup_endpoint>" id="mashup_id" mashuptype="XAPI"
skipDataProvider="false" transactional="true">
<classInformation name="<java class name with full package>" />
<API Name="<api_name>">
<Input>
<!-- APi input goes here-->
</Input>
<Template>
<!-- APi output template goes here -->
</Template>
</API>
<APINamespace inputNS="<input_namespace>" outputNS="<output_namespace>" />
<AlternateResourceIds>
<AlternateResourceId altResourceId="resource id" />
</AlternateResourceIds>
</mashup>
</mashups>ビューまたは画面コントローラーでの mashupRefs の定義
ビュー・コントローラーまたは画面コントローラーで mashupref を定義するには、以下のコード・スニペットを参照してください。"mashupRefs":[
{
mashupRefId: '<mashuprefid>',// local mashup name
mashupId: '<mashupid>',// mashup id defined in the mashup xmls
modelName: '<model_name>',// model to which output of mashup to be set
isPaginated:<true/false>,// flag to indicate whether mashup is calling a paginated XAPI
pageSize: <number>,// indicates the page size. Default value is 5, if not specified.
append:<true/false>,// flag to indicate whether mashup output should be appended to existing data.
//This is used only if isPaginated is set true
handler:'<handlerMethodName>',//method to be called for massaging the mashup output.
}
]ビュー・コントローラーからのマッシュアップの呼び出し
マッシュアップを呼び出すには、ビュー・コントローラーで MashupRefs を定義する必要があります。
iscMashup サービスを使用して、マッシュアップを呼び出します。 詳しくは、アプリケーションで使用可能な JavaScript の資料を参照してください。iscMashup.callMashup(this, mashupRefId, mashupInput, options);を使用して、単一のマッシュアップを呼び出します。 例:iscMashup.callMashup(this, "getOrderDetails",{"Order":{"OrderHeaderKey":"Order1"}},{}) .then(this.handleSuccessMethod.bind(this),this.handleErrorMethod.bind(this));- 単一のネットワーク呼び出しで複数のマッシュアップを呼び出すには、
iscMashup.callMashups(this,mashupRefObjList,options)を使用します。 例:var mashupRefList = []; mashupRefList.push(iscMashup.getMashupRefObj(this,"getOrderDetails", {"Order":{"OrderHeaderKey":"Order1"}})); mashupRefList.push(iscMashup.getMashupRefObj(this,"getCustomerDetails", {"Customer":{"CustomerKey":"Customer1"}})); iscMashup.callMashups(this,mashupRefList,{}) .then(this.handleSuccessMethod.bind(this),this.handleErrorMethod.bind(this)); iscMashup.callPaginatedMashup(this, mashupRefId, inputData,pageAction, options)を使用して、ページ編集されたマッシュアップを呼び出します。 例:iscMashup.callPaginatedMashup(this, "getOrderLineList",{"Order":{"OrderHeaderKey":"OrderNo1"}}, "NEXT",{}) .then(this.handleSuccessMethod.bind(this),this.handleErrorMethod.bind(this));
ディレクティブ・コントローラーからのマッシュアップの呼び出し
ディレクティブの場合、 mashupRef オブジェクトは定義されません。 したがって、 mashuprefid および mashupRefs 配列を使用せずに、マッシュアップを直接呼び出すことができます。
callSimpleMashup、 callSimpleMashups、および callSimplePaginatedMashupを使用します。 使用法と例については、アプリケーションで使用可能な JavaScript の資料を参照してください。
.
既存のマッシュアップ定義のカスタマイズ
既存のマッシュアップ定義 XML は、差分または完全にオーバーライドすることができます。 詳細についての参照先
注:
- AngularJS-basedのコンポーネントは 、Extensibility Workbench を使用してカスタマイズすることはできません。
インクリメンタル・マッシュアップおよびオーバーライド・マッシュアップをロードするための
initサーブレットがアプリケーションに付属しており、サーブレットは<wscwar>/extn/ngstoreフォルダー内の XML ファイルのみをスキャンします。マッシュアップ XML は、<EXTN_WORKSPACE>内のそれぞれのフィーチャー・フォルダーに配置する必要があります。 マッシュアップのファイル命名規則は、以下のとおりです。<feature/folder_name>_mashups.xml: 任意のフィーチャーのデフォルト・マッシュアップ・ファイル。<feature/folder_name>_incrementalmashups.xml: ファイルには、既存のマッシュアップに対するすべての増分変更が含まれている必要があります。<feature/folder_name>_overridemashups.xml: ファイルには、既存のマッシュアップに対するすべてのオーバーライドされた変更が含まれている必要があります。
- 変更を有効にするには、アプリケーション・サーバーを再始動する必要があります。
カスタマイズへのカスタム・マッシュアップ・クラスの追加
カスタマイズの一部としてカスタム・マッシュアップ・クラスを追加するには、以下のようにします。
- カスタム・マッシュアップ・クラス用の JAR ファイルを作成します。
- JAR ファイルを以下のいずれかのディレクトリーにコピーします。
- ソース管理プロジェクト内の files/repository/eardata/wsc/extn/WEB-INF/lib ディレクトリー
- デベロッパーズ・ツールキット・ランタイムの repository/eardata/wsc/extn/WEB-INF/lib ディレクトリー
カスタマイズのビルドとデプロイについて詳しくは、 カスタマイズのビルドとデプロイを参照してください。