Scénario de test & Cas d'usage
Ejecución de funciones SAS FCMP en el entorno CAS.
Descubrir todas las acciones de fcmpactCreación de una tabla de transacciones de clientes. Contiene el ID del cliente y el importe de cada compra.
| 1 | DATA mycas.transacciones_clientes; |
| 2 | LENGTH id_cliente $ 10; |
| 3 | INPUT id_cliente $ importe_compra; |
| 4 | DATALINES; |
| 5 | CUST001 150.75 |
| 6 | CUST002 45.20 |
| 7 | CUST001 300.50 |
| 8 | CUST003 1200.00 |
| 9 | CUST002 89.90 |
| 10 | CUST001 525.00 |
| 11 | CUST003 250.25 |
| 12 | CUST004 30.00 |
| 13 | ; |
| 14 | RUN; |
| 1 | PROC CAS; |
| 2 | fcmpact.addRoutines |
| 3 | routineCode='function obtener_nivel_cliente(gasto_total) $; |
| 4 | length nivel $ 6; |
| 5 | if gasto_total >= 1000 then nivel = "Oro"; |
| 6 | else if gasto_total >= 150 then nivel = "Plata"; |
| 7 | else nivel = "Bronce"; |
| 8 | return(nivel); |
| 9 | endsub;' |
| 10 | package='herramientas_mkt' |
| 11 | funcTable={name='funciones_marketing', caslib='mycas', replace=true}; |
| 12 | RUN; |
| 13 | QUIT; |
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | datastep.runCode / |
| 4 | code='data mycas.segmentacion_clientes (groupBy={id_cliente}); |
| 5 | dcl package fcmpact("herramientas_mkt") p; |
| 6 | method run(); |
| 7 | set mycas.transacciones_clientes; |
| 8 | by id_cliente; |
| 9 | dcl double gasto_total; |
| 10 | if first.id_cliente then gasto_total=0; |
| 11 | gasto_total + importe_compra; |
| 12 | if last.id_cliente then do; |
| 13 | nivel_cliente = p.obtener_nivel_cliente(gasto_total); |
| 14 | output; |
| 15 | end; |
| 16 | end; |
| 17 | run;'; |
| 18 | RUN; |
| 19 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / TABLE='segmentacion_clientes' sortBy={{name='id_cliente', order='ASCENDING'}}; |
| 3 | RUN; |
| 4 | QUIT; |
La tabla 'segmentacion_clientes' debe contener cuatro filas, una por cada cliente único. Cada fila mostrará el 'id_cliente', el 'gasto_total' acumulado y la columna 'nivel_cliente' con el valor 'Oro', 'Plata' o 'Bronce' correctamente asignado según la lógica de la función FCMP. CUST003 será 'Oro', CUST001 será 'Plata', CUST002 será 'Bronce' y CUST004 será 'Bronce'.