IRecordContext
IRecordContextは、IContextの機能を拡張し、RecordTypeおよびRecordIdを提供します。
インタフェースは次のとおりです:
export interface IRecordContext extends IContext {
getRecordType(): string;
getRecordId(): string;
}
関数
サブスクライブ
このAPIを使用して、サービス・センターからイベントをサブスクライブします。 このAPIを使用すると、外部アプリケーションはサービス・センターからオブジェクト・レベルのイベントをリスニングできます。 イベントがこのAPIを使用してサブスクライブされると、サブスクリプションが処分されるまで外部アプリケーションに通知されます。
次の例は、subscribeの構文を示しています:
subscribe: (requestObject: IEventRequest, callbackFunction: (response: IEventResponse) => void) => ISubscriptionContext;
Typescriptのコード・サンプルを次に示します。
const requestObject: IFieldValueChangeEventRequest = this.frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent') as IFieldValueChangeEventRequest;
requestObject.setFields(['objectType.fieldnameOne', 'objectType.fieldnameTwo', 'objectType.fieldnameThree']);
let subscription: ISubscriptionContext = await recordContext.subscribe(requestObject, (eventResponse: IEventResponse) => {
// eventResponse
});
Javascriptのコード・サンプルを次に示します。
const requestObject = this.frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent');
requestObject.setFields(['objectType.fieldnameOne', 'objectType.fieldnameTwo', 'objectType.fieldnameThree']);
let subscription = await recordContext.subscribe(requestObject, (eventResponse) => {
// eventResponse
});
subscribeOnce
Fusionアプリケーションからレコード・レベル・イベントに1回サブスクライブします。 たとえば、フィールド値変更イベントです。 イベントが起動され、コールバックが実行されると、サブスクリプションが破棄されます
次のコード例は、構文を示しています:
subscribeOnce: (requestObject: IEventRequest, callbackFunction: (response:IEventResponse) => void) => ISubscriptionContext;
Typescriptのコード・サンプルを次に示します:
const requestObject: IFieldValueChangeEventRequest = this.frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent') as IFieldValueChangeEventRequest;
requestObject.setFields(['objectType.fieldnameOne', 'objectType.fieldnameTwo', 'objectType.fieldnameThree']);
let subscription: ISubscriptionContext = await recordContext.subscribeOnce(requestObject, (eventResponse: IEventResponse) => {
// eventResponse
});
JavaScriptのコード・サンプルを次に示します:
const requestObject = this.frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent');
requestObject.setFields(['objectType.fieldnameOne', 'objectType.fieldnameTwo', 'objectType.fieldnameThree']);
let subscription = await recordContext.subscribeOnce(requestObject, (eventResponse) => {
// eventResponse
});
公開
レコード・コンテキストで操作を公開します。 たとえば、特定のフィールドの値を設定します。
次のコード例は、構文を示しています:
publish: (requestObject: IOperationRequest) => Promise<IOperationResponse>;
Typescriptのコード・サンプルを次に示します:
const requestObject: ISetFieldValueOperationRequest = this.frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation') as ISetFieldValueOperationRequest;
requestObject.field().setValue('objectType.fieldName', 'a value that matches type of field name');
recordContext.publish(requestObject).then((response: IOperationResponse) => {
console.log((response as ISetFieldValueResponse).getResponseData().getMessage());
}).catch((error) => console.log(error));
JavaScriptのコード・サンプルを次に示します:
const requestObject = this.frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation');
requestObject.field().setValue('objectType.fieldName', 'a value that matches type of field name');
recordContext.publish(requestObject).then((response) => {
console.log(response.getResponseData().getMessage());
}).catch((error) => console.log(error));
処分
Fusionアプリケーションからレコード・レベルのイベントをサブスクライブします。 たとえば、フィールド値変更イベントです。
dispose:() => void;
次のコード・サンプルは、TypescriptおよびJavaScriptの例を示しています:
recordContext.dispose();
getSupportedEvents
レコード・コンテキストでサポートされているイベントを文字列の配列として取得
次のコード例は、構文を示しています:
getSupportedEvents(): string[];
次のコード・サンプルは、Typescriptの例を示しています。
const supportedEvents: string[] = recordContext.getSupportedEvents();
次のコード・サンプルは、Javascriptの例を示しています。
const supportedEvents = recordContext.getSupportedEvents();
getSupportedActions
レコード・コンテキストでサポートされているアクションを文字列の配列として取得します。
次のコード例は、構文を示しています:
getSupportedActions(): string[];
次のコード・サンプルは、Typescriptの例を示しています。
const supportedActions: string[] = recordContext.getSupportedActions();
次のコード・サンプルは、JavascriptのgetSupportedActionsの例を示しています。
const supportedActions = recordContext.getSupportedActions();
getRecordType
レコード・コンテキストにロードされたオブジェクトのレコード・タイプを返します。
次のコード例は、構文を示しています:
getRecordType(): string;
次のコード・サンプルは、Typescriptの例を示しています。
const recordType: string = recordContext.getRecordType();
次のコード・サンプルは、Javascriptの例を示しています。
const recordType = recordContext.getRecordType();
getRecordId
レコードIDを返します。 まだ作成されていないレコードのレコード・コンテキストの場合、IDはマイナスの数値になります。
次のコード例は、構文を示しています:
getRecordId(): string;
次のコード・サンプルは、getRecordIdへのtypescriptの例を示しています:
const recordId: string = recordContext.getRecordId();
次のコード・サンプルは、JavaScriptからgetRecordIdの例を示しています:
const recordId = recordContext.getRecordId();