Estoy intentando recuperar el ID y el nombre de un campo de búsqueda en la entidad Organización.
var fetchxml = ` <fetch distinct='false' mapping="logical" output-format="xml-platform" version="1.0"> <entity name="categorization"> <attribute name="categorizationid"/> <attribute name="name"/> <attribute name="category1"/> <attribute name="category2"/> <attribute name="category3"/> <order descending="false" attribute="ava_category1"/> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> </entity> </fetch>`; fetchxml = "?fetchXml=" + encodeURIComponent(fetchxml); Xrm.WebApi.retrieveMultipleRecords("categorization", fetchxml).then( function success(results) { var data = []; for (var r in results) { var category1text = results[r].attributes["category1"].name; var category1lookup = results[r]["category1"].id; if (results[r].attributes["category2"] != undefined) { category2text = results[r].attributes["category2"].name; var category2lookup = results[r].attributes["category2"].id; } var category3text = null; if (results[r].attributes["category3"] != undefined) { category3text = results[r].attributes["category3"].name; var category3lookup = results[r].attributes["category3"].id; } } } ); ¿Por qué no se ejecuta la parte results[r].attributes["category1"].name ? ¿Me estoy perdiendo de algo?
Debería ser algo como esto:
webApi.retrieveMultipleRecords("categorization", fetchxml) .then(result => { var data = []; result.entities.forEach(e => { var category1text = e.category1.name; ... etc. Algo de contexto: for in recorre las propiedades de un objeto. Devuelve valores de cadena. Puede usar for of para recorrer una matriz. Personalmente prefiero la función .forEach() con expresiones lambda.
la mejor manera es usar odata para construir su solicitud de esa manera
` var option = "?$select=categorizationid,name,_category1_value,_category2_value,_category3_value&$filter=statecode eq 0"; SDK.WEBAPI.retrieveMultipleRecords("categorización", opción, función (resultados) {
for (var i = 0; i < results.value.length; i++) { var Cat1LookupGuid = results.value[i]["_category1_value"]; var Cat1LookupName = results.value[i]["_category1_value@OData.Community.Display.V1.FormattedValue"]; var Cat2LookupGuid = results.value[i]["_category2_value"]; var Cat2LookupName = results.value[i]["_category2_value@OData.Community.Display.V1.FormattedValue"]; var Cat3LookupGuid = results.value[i]["_category3_value"]; var Cat3LookupName = results.value[i]["_category3_value@OData.Community.Display.V1.FormattedValue"]; } }, function (error) { console.error("your error" + error.message); }, function () { } ); `Esta herramienta puede ayudarte mucho a crear tu solicitud de odata https://github.com/jlattimer/CRMRESTBuilder