El CDS es una extensión del Diccionario ABAP que le permite definir modelos de datos semánticamente ricos en la base de datos y usar esos modelos de datos en sus programas ABAP. CDS es una parte integral para habilitar la inserción de código en aplicaciones ABAP.
Puede encontrar más información sobre CDS en el Documentación de palabras clave ABAP y el Pobal SAP.
Durante este tutorial, el nombre del objeto incluye el sufijo XXX
. Reemplace siempre esto con su número de grupo o sus iniciales.
Paso 1: crear una vista de CDS
En el menú contextual, seleccione su paquete Nuevo y luego seleccione Otro propósito del repositorio ABAP.
Escoger Definición de datos, luego seleccione Hacia adelante.
Ingrese los siguientes valores, luego seleccione Hacia adelante:
- Nombre
Z_INVOICE_ITEMS_XXX
- Descripción artículos de factura
- Nombre
Acepte la solicitud de transporte predeterminada (local) simplemente seleccionando Hacia adelante otra vez.
Seleccione la entrada Definir visual, luego seleccione Finalizar
Hecho
Inicie sesión para responder la pregunta
Paso 2: ingrese la fuente de datos
La nueva escena aparece en un editor. Ignore el error a partir de ahora. En este editor, ingrese los siguientes valores:
Ingresar
Z_ITEMS_XXX
como nombre de vista SQL.Entrar en la vista CDS
sepm_sddl_so_invoice_item
como fuente de datos para su opinión. Puede obtener propuestas para la fuente de datos ingresando algunos caracteres y luego usando la finalización de código (método abreviado de teclado CTRL + ESPACIO).
El nombre de la vista SQL es el nombre interno / técnico de la vista que se creará en la base de datos. Z_Invoice_Items
es un nombre para la vista CDS que proporciona capacidades mejoradas para construir ABAP. Siempre debe utilizar el nombre visual de CDS en sus aplicaciones ABAP.
Hecho
Inicie sesión para responder la pregunta
Paso 3: Edite la instrucción SELECT
Ahora ingresarás a los campos currency_code
y gross_amount
en la lista SELECT de la siguiente manera:
Complete un código de activación en la lista SELECT (haciendo clic en la lista SELECT y usando un atajo de teclado CTRL + ESPACIO), luego haga doble clic en la entrada Ingrese todas las características – plantilla. Todos los elementos (campos y asociaciones) de la fuente de datos original se agregan a la lista SELECT.
Elimine todos los elementos de la lista SELECT enviada para completar el código en su lugar
currency_code
ygross_amount
. Recuerde separar los elementos de la instrucción SELECT con una coma.
Hecho
Inicie sesión para responder la pregunta
Paso 4: use una asociación de CDS existente
Ahora modelará las relaciones entre las fuentes de datos utilizando algunas asociaciones de CDS existentes. Puede utilizar asociaciones en expresiones de ruta para acceder a elementos (campos y asociaciones) en fuentes de datos relacionadas sin especificar Condiciones. Ahora puede mostrar la información del elemento colocando el cursor sobre el nombre de la fuente de datos sepm_sddl_so_invoice_item
y eligiendo F2.
Para ver las fuentes de datos relacionadas a las que se puede acceder a través de asociaciones, desplácese hacia abajo.
Para ver detalles sobre la fuente de datos del encabezado de la asociación, seleccione el hipervínculo sepm_sddl_so_invoice_header
.
Hecho
Inicie sesión para responder la pregunta
Paso 5: agregue campos de asociaciones existentes
Ahora agregará campos de fuentes de datos relacionadas a la lista SELECT de Z_Invoice_Items
, usando las asociaciones en expresiones de ruta. Cada elemento de la expresión de la ruta debe estar separado por un punto.
Agregar la asociación
header
a su lista de selección, y comente si es posible, agregando el siguiente código. no olvides agregar una coma después del artículo anterior,gross_amount
:Obtendrá un error, «Se debe incluir un encabezado de campo en la lista de selección junto con un campo
SEPM_SDDL_SO_INVOICE_ITEM.SALES_ORDER_INVOICE_KEY
”. Resuelve esto agregando el camposepm_sddl_so_invoice_item.sales_order_invoice_key
con la instrucción Select.Pon el
company_name
del socio comercial en la lista SELECT utilizando las asociaciones encabezamiento y comprador en expresión de caminoPon el
payment_status
desde el encabezado de la factura a la lista SELECT cuando se usa la asociación encabezamiento
Hecho
Inicie sesión para responder la pregunta
Paso 6: adjunte una declaración CASE
Si la factura ha sido pagada, desea que el payment_status
a X (verdadero). Haga esto aplicando una expresión SIP y asignando el alias payment_status
con la expresión CASE.
Eliminar declaración existente, header.payment_status,
y reemplácelo con el siguiente código. No te olvides de separar payment_status
y header
con una coma.
case header.payment_status
when 'P' then 'X'
else ' '
end as payment_status,
Puede verificar su código a continuación.
Hecho
Inicie sesión para responder la pregunta
Paso 7: agregue una cláusula PLACE
Ahora filtrará los resultados para que solo se agreguen los elementos de la factura currency_code = 'USD'
para recuperar.
Agregar cláusula PLACE:
WHERE currency_code = 'USD'Guarde y active la definición de datos seleccionando Salvar (
Ctrl+S
) y Activar (Ctrl+F3
).
Hecho
Inicie sesión para responder la pregunta
Paso 8: verifique su código y observe sus cambios
Su código de vista de CDS debería verse así:
@AbapCatalog.sqlViewName: 'ZITEMS_XXX'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'CDS View for "Use-cds-view" tutorial'
define view Z_Invoice_Items_2
as select from sepm_sddl_so_invoice_item
{
header.buyer.company_name,
sepm_sddl_so_invoice_item.sales_order_invoice_key,
sepm_sddl_so_invoice_item.currency_code,
sepm_sddl_so_invoice_item.gross_amount,
case header.payment_status
when 'P' then 'X'
else ' '
end
as payment_status,
//* Associations *//
header
}
where currency_code = 'USD'
Abra la vista CDS en la vista previa de datos seleccionando F8. Su vista de CDS debería verse así:
Hecho
Inicie sesión para responder la pregunta