2016-09-15 2 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에 대한 호출이 문자열을 만듭니다 올바른 Parent 엔터티가 이미 채워진 새로운 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); 
}