Esta publicación es la segunda de una serie sobre cómo consultar datos de entidades CDS y mostrarlos en un recurso web de aplicación basada en modelos. Hace unos días, escribí la primera publicación de esta serie Enlace de datos CDS usando Knockout. Aquí estoy respondiendo un par de preguntas y compartiendo algunos consejos más. Aunque he obtenido datos usando WebApi y J-Query, cualquier mecanismo que devuelva una matriz de objetos funcionará. Sí, también podemos usar FetchXml para consultar datos. Lo segundo es que podemos consultar datos de múltiples entidades relacionadas usando la función expandir oData. En este escenario, la consulta devuelve casos con detalles del cliente. El cliente puede ser una cuenta o un contacto: var query = «/api/data/v9.1/incidents?$select=title&$expand=customerid_account($select=name),customerid_contact($select=fullname)»; Mientras realizaba el enlace de datos varias veces, recibí un error: No se puede preparar la propiedad ‘nombre’ de indefinido. El motivo fue que pocos registros de datos no tienen cuenta_cliente (el objeto principal era nulo). Para resolver esto, he usado el enlace if (Knockout ofrece enlaces diferentes) que verifica y solo vincula los datos si el objeto no es nulo.



Para esto también se puede utilizar el enlace knockout ‘con’:



Podemos hacer algunos trucos usando enlaces if y ifnot (else) también. La consulta anterior es un ejemplo perfecto: tenemos customerid_account o customerid_contact, no ambos. Mi requisito era mostrar datos combinados de ambos campos como uno solo: aquí está el código de muestra completo:



https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.1.0.js http:// ../../../ClientGlobalContext.js.aspx



Lista de Casos

Título Cuenta Contacto Cliente










Espero que encuentres esto útil. Conectémonos así:Me gusta Cargando…

Source link