2016-09-15 9 views
2

グリッドの[新規追加]ボタンを更新すると、新しいウィンドウではなく現在のウィンドウで開きます。私はリボンXMLを編集した、と私は正確に「+」アイコンのクリック時に呼び出され、この関数を取得しています:グリッドから同じウィンドウに作成

etc=112&extraqs=%3f_CreateFromId%3d%257b999BA23A-B07A-E611-80DD-FC15B4286CB8 %257d%26_CreateFromType%3d10010%26etc%3d112&newWindow=false&pagetype= entityrecord

開きます

export function createCase(selectedEntityTypeCode: number, parentEntityTypeCode: number, firstPrimaryItemId: string, primaryControl: string, selectedControl: string): void { 
    window.top.location.replace(CommonLib.getCreateEntityFromParentUrl(firstPrimaryItemId, parentEntityTypeCode, selectedEntityTypeCode)); 
} 

はgetCreateEntityFromParentUrlへの呼び出しは、この文字列を作成します正しい親エンティティが既に入力されている新しいCaseフォームが作成されているため、CreateFromIDとCreateFromTypeから正しく読み込んでいることがわかります。

実際にケースを作成せずにブラウザで最新表示をクリックすると、親エンティティ(カスタムエンティティ、この場合は「ロケーション」)に戻ります。

あなたはケースを作成して保存し、ブラウザでリフレッシュをクリックすると、このエラーが出る:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #5B02AEE3Detail:
-2147220970 System.Web.HttpUnhandledException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #5B02AEE3
2016-09-15T04:30:58.0199249Z -2147220969 allgnt_location With Id = 3e10a729-fd7a-e611-80dd-fc15b4286cb8 Does Not Exist 2016-09-15T04:30:58.0199249Z

また、あなたは、このエンティティからの電話を作成する場合は、このエラーを取得し、完全をクリックしてくださいコマンドバーの[呼び出し]ボタンをクリックします。

IDはケースのIDですが、明らかにCRMはロケーションとしてロードしようとしていますが、これは明らかに失敗しています。私はそれを間違っているのですか?

+0

たぶん[Xrm.Utility.openEntityForm](https://msdn.microsoft.com/en-us/library/jj602956.aspx?f=255&MSPPError=-2147217396#BKMK_OpenEntityForm)を使用してみては?ドキュメントは、既定で現在のウィンドウで開くことを暗示しますが、CreateFromIDとCreateFromTypeを手動で生成する必要があります。 – Polshgiant

答えて

1

私が正しい道を始めるためのおかげで@Polshgiant。私はXrm.Utility.openEntityFormを呼び出す必要がありました。このTypescript関数は私のために働く!

/** 
* Opens a create form for a child entity of a parent. Useful if a subgrid add new button should redirect to the new page, rather than the default open in a new window. 
* @param parentEntityId Id of the parent entity 
* @param parentEntityTypeCode Object Type Code of the parent Entity 
* @param childLogicalName Child Logical Name 
* @param parameters Object whos properties will be added to the extraQs parameters 
*/ 
export function openCreateChildFormInCurrentWindow(parentEntityId: string, parentEntityTypeCode: number, childLogicalName: string, parameters?: any) { 
    const params = { 
     formid: null, 
     ["_CreateFromId"]: parentEntityId, 
     ["_CreateFromType"]: parentEntityTypeCode.toString() 
    } as Xrm.Utility.FormOpenParameters; 

    if (parameters) { 
     for (const param in parameters) { 
      if (parameters.hasOwnProperty(param)) { 
       params[param] = parameters[param]; 
      } 
     } 
    } 

    Xrm.Utility.openEntityForm(childLogicalName, null, params, { openInNewWindow: false } as Xrm.Utility.WindowOptions); 
} 
関連する問題