機械翻訳について

フィールド名マッピング

UIイベント・フレームワークには、オブジェクトまたはレコードのフィールド名を受け入れ、特定の操作を実行したり、特定のイベントをリスニングする特定のイベントおよび操作があります。

フィールド・レベルの操作およびイベント(FieldValueChangeイベント、GetFieldValue操作、SetFieldValue操作など)には、オブジェクトまたはレコードに含まれるフィールド名の詳細が必要です。 オブジェクトのフィールド名の詳細は、次のAPIを使用して取得できます:

# metadata of a specific <object>
curl -X GET -u username:password https://servername.fa.us2.oraclecloud.com/crmRestApi/resources/11.13.18.05/<object>/describe

次に、ServiceRequest、CaseおよびContactオブジェクトのAPIの使用例を示します:

# serviceRequest object
curl -X GET -u username:password https://servername.fa.us2.oraclecloud.com/crmRestApi/resources/11.13.18.05/serviceRequests/describe

# case object
curl -X GET -u username:password https://servername.fa.us2.oraclecloud.com/crmRestApi/resources/11.13.18.05/cases/describe

# contact object
curl -X GET -u username:password https://servername.fa.us2.oraclecloud.com/crmRestApi/resources/11.13.18.05/contacts/describe

すべてのオブジェクトのメタデータを取得するAPIは次のとおりです:

# metadata of all the objects' names with field details
curl -X GET -u username:password https://servername.fa.us2.oraclecloud.com/crmRestApi/resources/11.13.18.05/describe
すべてのフィールドを次の書式でマップする必要があります:
ObjectType.FieldName
たとえば、SRタイトル・フォームで特定の操作をサブスクライブまたは実行する順序では、フィールド名をServiceRequestとして渡す必要があります。イベント、操作要求オブジェクトのタイトル。
ノート: ui-events-frameworkの現在のリリースの一部として、単純フィールドとLOVフィールドのみをサポートしています。 複合フィールドは、今後のリリースでサポートされます。

フィールド値変更イベント

次のコード・サンプルは、フィールド名が渡されるFieldValueChangeイベントをサブスクライブするためのTypeScriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/>   
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const tabContext: ITabContext = await frameworkProvider.getTabContext();
    const recordContext: IRecordContext = await tabContext.getActiveRecord();
    
    const requestObject: IFieldValueChangeEventRequest = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent') as IFieldValueChangeEventRequest;
    requestObject.setFields(['ServiceRequest.Title', 'ServiceRequest.ProblemDescription']);
    
    recordContext.subscribe(requestObject, (message: IEventResponse) => {
        const response = message as IFieldValueChangeEventResponse;
        const fieldName: string = response.getResponseData().getFieldName();
        const newValue: string | boolean | number = response.getResponseData().getNewValue();
        const oldValue: string | boolean | number = response.getResponseData().getOldValue();
    });
次のコード・サンプルは、フィールド名が渡されるFieldValueChangeイベントをサブスクライブするためのJavaScriptの例を示しています。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');  
    const tabContext = await frameworkProvider.getTabContext();
    const recordContext = await tabContext.getActiveRecord();   
    const requestObject = frameworkProvider.requestHelper.createSubscriptionRequest('cxEventBusFieldValueChangeEvent')
    requestObject.setFields(['ServiceRequest.Title','ServiceRequest.ProblemDescription']);
     
    recordContext.subscribe(requestObject, (response) => {          
        const fieldName = response.getResponseData().getFieldName();
        const newValue = response.getResponseData().getNewValue();
        const oldValue = response.getResponseData().getOldValue();
    });

フィールド値の取得操作

この操作は、特定のレコードまたはオブジェクトのフィールドの現在の値をフェッチするために使用します(たとえば、SRのタイトル・フィールドの現在の値を取得します)。 これはレコード・レベルの操作であるため、この操作を実行するには、レコード・コンテキストでパブリッシュAPIをコールする必要があります。

次のコード・サンプルは、フィールド名が渡されるGetFieldValue操作を公開するためのTypescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/> 
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const tabContext: ITabContext = await frameworkProvider.getTabContext();
    const recordContext: IRecordContext = await tabContext.getActiveRecord();
    const requestObject: IGetFieldValueOperationRequest = (frameworkProvider.requestHelper.createPublishRequest('cxEventBusGetFieldValueOperation') as IGetFieldValueOperationRequest);
    requestObject.setFields(['ServiceRequest.Title', 'ServiceRequest.ProblemDescription']);
    
    recordContext.publish(requestObject).then((message) => {
        const response = message as IGetFieldValueResponse;
        const titleFieldValue = response.getResponseData().getField('ServiceRequest.Title').getValue();
        const problemDescriptionValue = response.getResponseData().getField('ServiceRequest.ProblemDescription').getValue();
        // custom code
    }).catch((error: IErrorData) => {
        // custom code
    });
次のコード・サンプルは、フィールド名が渡されるGetFieldValue操作を公開するためのJavaScriptの例を示しています。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const tabContext = await frameworkProvider.getTabContext();
    const recordContext = await tabContext.getActiveRecord();
    const requestObject = frameworkProvider.requestHelper.createPublishRequest('cxEventBusGetFieldValueOperation');
    requestObject.setFields(['ServiceRequest.Title', 'ServiceRequest.ProblemDescription']);
    recordContext.publish(requestObject).then((response) => {
        // custom code
        const titleFieldValue = response.getResponseData().getField('ServiceRequest.Title').getValue();
        const problemDescriptionValue = response.getResponseData().getField('ServiceRequest.ProblemDescription').getValue();
    }).catch((error) => {
        // custom code
    });

フィールド値の設定操作

この操作は、特定のレコード、オブジェクトの特定のフィールドの値を更新するために使用されます(たとえば、SRのタイトル・フィールドを更新する場合)。 これはレコード・レベルの操作であるため、この操作を実行するには、レコード・コンテキストでパブリッシュAPIをコールする必要があります。

次のコード・サンプルは、フィールド名が渡されるSetFieldValue操作を公開するためのTypescriptの例を示しています。
/// <reference path="uiEventsFramework.d.ts"/> 
    const frameworkProvider: IUiEventsFrameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID'); 
    const tabContext: ITabContext = await frameworkProvider.getTabContext();
    const recordContext: IRecordContext = await tabContext.getActiveRecord();
    
    const requestObject: ISetFieldValueOperationRequest = (frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation') as ISetFieldValueOperationRequest);
    requestObject.field().setValue('ServiceRequest.Title', 'New Title');
    requestObject.field().setValue('ServiceRequest.ProblemDescription', 'New Problem Description');
    
    recordContext.publish(requestObject).then((message) => {
        const response = message as ISetFieldValueResponse;
        // custom code
    }).catch((error: IErrorData) => {
        // custom code
    });
次のコード・サンプルは、フィールド名が渡されるSetFieldValue操作を公開するためのJavaScriptの例を示しています。
const frameworkProvider = await CX_SVC_UI_EVENTS_FRAMEWORK.uiEventsFramework.initialize('MyFirstExtensionID');
    const tabContext = await frameworkProvider.getTabContext();
    const recordContext = await tabContext.getActiveRecord();
    
    const requestObject = frameworkProvider.requestHelper.createPublishRequest('cxEventBusSetFieldValueOperation');
    requestObject.field().setValue('ServiceRequest.Title', 'New Title');
    requestObject.field().setValue('ServiceRequest.ProblemDescription', 'New Problem Description');
    
    recordContext.publish(requestObject).then((message) => {
        // custom code
    }).catch((error) => {
        // custom code
    });