es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Establecer el campo “Para” en el formulario de correo electrónico en Dynamics 365.

Estoy intentando abrir un nuevo formulario de correo electrónico en Dynamics 365 utilizando JavaScript. Puedo rellenar fácilmente varios campos como “Asunto” pero cuando intento rellenar el campo “Para”, este permanece vacío.

Aquí hay un pequeño fragmento de código que reproduce mi problema:

let contactid = "91be7fec-2142-ec11-8c62-000d3ac23084";
let activityParameters = {};

// Establecer el campo "Asunto" -- ¡esto funciona!
activityParameters["regardingobjectid"] = contactid;
activityParameters["regardingobjectidname"] = "En relación a su último correo electrónico";
activityParameters["regardingobjectidtype"] = "contacto";

// Establecer el campo "Para" -- ¡esto no funciona!
var parties = [];
var receiver = {};
receiver["partyid_contacto@odata.bind"] = `/contactos(${contactid})`;
receiver["participationtypemask"] = 2; //Para
parties.push(receiver);
activityParameters["email_activity_parties"] = parties;

await window.parent.Xrm.Navigation.navigateTo(
            { pageType: "registroentidad", entityName: "correo electrónico", data: activityParameters },
            { target: 2 } //Abrir en modal
        )

También he intentado algunas variantes basadas en cómo se establecen las búsquedas en otros lugares, como:

var parties = [];
var receiver = {
    activityparty: {
        id: contactid,
        entityType: "contacto",
        name: "XXX"
    },
    participationtypemask: 2
};

Buscar en Google solo me dio soluciones para crear correos electrónicos utilizando la API web (como he intentado anteriormente), pero no estoy seguro de cómo cambiar el código para que navigateTo() reconozca el parámetro.

¿Alguien tiene una idea de cómo solucionarlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para rellenar previamente el campo “Para” al abrir un nuevo formulario de correo electrónico en Dynamics 365 usando JavaScript, puede usar el siguiente fragmento de código:

    let contactid = "91be7fec-2142-ec11-8c62-000d3ac23084";
    let activityParameters = {};
    
    // Establecer el campo "asunto"
    activityParameters["regardingobjectid"] = contactid;
    activityParameters["regardingobjectidname"] = "Regarding your last email";
    activityParameters["regardingobjectidtype"] = "contact";
    
    // Establecer el campo "para"
    var parties = [{
        "partyid_contact@odata.bind": `/contacts(${contactid})`,
        "participationtypemask" : { "Value": 2 } // 2 representa "Para"
    }];
    activityParameters["email_activity_parties"] = parties;
    
    await Xrm.Navigation.navigateTo(
        {
            pageType: "entityrecord", 
            entityName: "email", 
            data: activityParameters
        },
        { 
            target: 2,
            position : 1,
            width : { value: 90, unit: "%" },
            height : { value: 400, unit: "px" }
        } // Abrir en una ventana modal y establecer las dimensiones de la ventana
    );
    

    Este código rellenará el campo “Para” con el contacto especificado por la variable contactid. La modificación clave es utilizar un array del objeto parties y establecer el campo Value del objeto participationtypemask en 2, lo que representa el campo “Para”.

    También se han agregado algunas opciones adicionales a la función navigateTo() como position, width y height para personalizar el tamaño y la posición de la ventana que se abre.

Comments are closed.