Scénario de test & Cas d'usage
Génération dynamique de 1000 règles de catégorisation factices via une macro SAS pour simuler un grand catalogue, avec une colonne d'identifiant de règle.
| 1 | |
| 2 | DATA casuser.rules_catalogue; |
| 3 | LENGTH config $100 rule_id_col $20; |
| 4 | DO i=1 to 1000; |
| 5 | rule_id_col = catx('_', 'RULE', i); |
| 6 | IF i=1 THEN config='categories:'; |
| 7 | ELSE DO; |
| 8 | cat_name = catx('_', 'Produit', i); |
| 9 | config = cat('- name: ', cat_name); |
| 10 | OUTPUT; |
| 11 | config = ' rules:'; |
| 12 | OUTPUT; |
| 13 | config = cat(' - (SENT, "ref_prod_', i, '")'); |
| 14 | OUTPUT; |
| 15 | END; |
| 16 | END; |
| 17 | |
| 18 | RUN; |
| 19 |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.loadTable / caslib='casuser' |
| 4 | SOURCE='rules_catalogue' casout={name='rules_catalogue', replace=true}; |
| 5 | |
| 6 | RUN; |
| 7 |
| 1 | |
| 2 | PROC CAS; |
| 3 | textRuleDevelop.compileCategory / TABLE={name='rules_catalogue', caslib='casuser'} config='config' ruleId='rule_id_col' language='en' casOut={name='modele_catalogue_massif', caslib='casuser', replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Le modèle 'modele_catalogue_massif' est généré. Malgré la boucle de 1000 itérations dans les données, l'action doit performer rapidement. Le paramètre 'ruleId' ne doit pas provoquer d'erreur, confirmant que les métadonnées des règles sont bien intégrées au modèle binaire.