Establecer y obtener el campo Notas en CRM 2011 Javascript

Necesito establecer el campo Notas en el valor del campo Notas en otra entidad en el formulario CRM 2011. Entonces, necesito saber cómo obtener y configurar el campo Notas usando Javascript. Y no puedo obtener el nombre del campo Notas dentro de la sección, como puede ver en la imagen a continuación.

enter image description here

preguntado el 21 de mayo de 12 a las 12:05

¿El campo de nota en qué entidad? ¿O está tratando de obtener valores de un campo en la entidad Nota? -

Desde cualquier entidad excepto Notas, diga alguna entidad personalizada... -

¿Por qué necesita el nombre del componente de notas? Si desea crear notas, ¿no debería usar algo como bizforward.cws-international.com/2011/01/26/… ? De forma predeterminada, el componente de notas se representa como un iFrame llamado 'control de notas'. -

Sí, acabo de conocer el nombre como 'notescontrol'. Pensé en obtener el valor de la pestaña Notas por nombre. Como no es un atributo, no pude conseguirlo. Solo necesito la descripción dentro de la pestaña Nota.. -

3 Respuestas

OK, aquí se requieren dos enfoques.

@Philip_Rich señaló que las anotaciones para los registros existentes se crean tan pronto como pierden el foco y, por lo tanto, se pueden consultar. Debería poder encontrar el código existente para esto con bastante facilidad (si no, pregunte aquí).

Usted mismo reconoció que para los registros nuevos (no guardados), las anotaciones no se guardan hasta que se guarda el registro principal. No existe una forma admitida de acceder al valor en el campo de notas en este punto, sin embargo, este código desagradable debería obtener el valor que busca. Tenga en cuenta que, dado que no es compatible, es vulnerable a los cambios de DOM en los formularios:

var myNotesText = document.getElementById("notescontrol").contentWindow.document.getElementById("NotesTable").children[1].children[4].children[0].innerText;

contestado el 29 de mayo de 12 a las 13:05

Las notas en CRM se llaman 'anotaciones' debajo del capó. Cree una anotación como lo haría con cualquier otro tipo de registro de CRM y luego asocie esa anotación con el registro de entidad de interés. No he intentado recuperar campos de notas de javascript explícitamente (normalmente lo he hecho a través de un complemento, que está documentado en el SDK). Sin embargo, no veo ninguna razón por la que no pueda realizar una consulta de oData para recuperar anotaciones en las que el registro de la entidad asociada era del tipo de entidad X, por ejemplo.

contestado el 21 de mayo de 12 a las 13:05

Estoy tomando valores de todos los campos al hacer clic en algún botón de la cinta. Pero no puedo obtener la descripción del texto dentro de la pestaña Notas. Está diciendo que consulte las anotaciones, pero podría suceder antes de guardar el registro. Solo necesito la descripción ingresada en la pestaña Notas .. - Charan Raju CR

Si la nota se ha creado, el registro de la anotación existirá y debería poder consultarse incluso si el registro con el que está asociado aún no se ha guardado. Podría estar equivocado, pero esto debería ser fácilmente comprobable al crear una anotación y luego consultarla usando la fuente RSS de oData y ver si se devuelve o no. - felipe rico

Está creando un registro de notas antes de guardar el formulario principal solo para el formulario de actualización. No está creando para Crear formulario .. - Charan Raju CR

Eso tiene sentido ya que no puede asociarse con un registro que aún no se ha creado. ¿Qué intenta lograr exactamente con esta funcionalidad, algún tipo de validación? - felipe rico

Tan pronto como el control de notas pierde el foco, se guarda el registro. Si está en el formulario y el control no tiene el foco, la nota se ha guardado y el SDK puede recuperarla: glosrob

En JS no necesita hacer asignaciones, solo crea una nota.

Pero definitivamente necesita una entidad creada antes de poder adjuntarle una nota.

Las notas pueden ser de dos tipos: una nota y un archivo adjunto.

Este es el ejemplo de cómo puede crear una nota (anotación) simple (de texto) desde JS.

function _createAnnotation(entity, subject, text) {
    var orgService = GetOrganizationService();
    var annotation = {};
    annotation.Name = "annotation";
    annotation._properties = [];
    annotation._propertyTypes = [];
    annotation._properties['objectid'] = entity;
    annotation._propertyTypes['objectid'] = 'lookup';
    annotation._properties['subject'] = subject;
    annotation._propertyTypes['subject'] = 'string';
    annotation._properties['notetext'] = text;
    annotation._propertyTypes['notetext'] = 'string';
    annotation._properties['isdocument'] = 'false';
    annotation._propertyTypes['isdocument'] = 'boolean';
    annotation._properties['mimetype'] = 'text/html';
    annotation._propertyTypes['mimetype'] = 'string';
    orgService.Create(annotation);
}

Dónde:

entidad - (EntityReference) de la entidad a la que desea adjuntar una nota.

sujeto - (String) Asunto de una nota.

texto - (String) Cuerpo de una nota.

Si desea adjuntar un documento de MS Office, debe cambiar esdocumento y tipo MIME parámetros.

contestado el 22 de mayo de 12 a las 06:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.