fcmpact

addPrototypes

L'essentiel
En resumen
Para los arquitectos de software que necesitan trascender las funciones estándar de SAS Viya, la operación addPrototypes ofrece una vía directa para inyectar lógica compilada externa en el flujo de trabajo. Al actuar como un gestor de enlaces dentro del conjunto FCMP, esta herramienta permite registrar bibliotecas C/C++ personalizadas para que sean consumibles como funciones nativas en pasos DS2 o DATA Step. A continuación, presentamos una recopilación de dudas frecuentes y soluciones técnicas diseñadas para ayudarle a configurar correctamente estas definiciones y potenciar sus cálculos analíticos con código externo.

Descripción

Añade las definiciones PROTO y las almacena en una tabla.

fcmpact.addPrototypes <result=results> <status=rc> / bridgeCatchSignals=TRUE | FALSE, bridgeFile="string", encode=TRUE | FALSE, funcTable={casouttable}, library="string", package="string", routineCode={"string-1" <, "string-2", ...>}, saveTable=TRUE | FALSE, stdcall=TRUE | FALSE;
Parámetros
ParámetroDescripción
bridgeCatchSignals Especifica que el archivo puente debe contener código para instalar y manejar señales.
bridgeFile Especifica la ruta al módulo fuente del archivo puente PROTO.
encode Especifica que las definiciones de prototipos se codifican en la tabla de funciones guardada.
funcTable Especifica la tabla donde se escriben las definiciones PROTO.
library Especifica una biblioteca FCMP existente para cargar.
package Especifica el nombre del paquete FCMP utilizado para almacenar las definiciones PROTO.
routineCode Especifica el código de la definición PROTO que se guarda en la tabla.
saveTable Especifica si la tabla FCMP debe guardarse.
stdcall Especifica que las funciones deben ser llamadas usando la convención __stdcall (solo para PC con Windows).
Creación de Datos de Ejemplo

Este ejemplo no requiere una tabla de datos de entrada, ya que la acción se utiliza para definir prototipos de funciones que pueden ser utilizadas posteriormente en otros pasos de CAS.

¡Copiado!
1/* No se necesita código de creación de datos para este ejemplo. */

Ejemplos

Este ejemplo define un prototipo para una función externa simple llamada 'mycfunc' y lo guarda en una tabla CAS llamada 'myprotos'.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 routineCode={"proto mycfunc(double) returns double;"},
4 funcTable={name="myprotos", caslib="casuser", replace=true};
5QUIT;
Resultado :
La acción se ejecuta correctamente y crea la tabla 'myprotos' en la caslib 'casuser' con la definición del prototipo.

Este ejemplo define prototipos para dos funciones externas, 'mycfunc1' y 'mycfunc2', dentro de un paquete llamado 'myextfuncs'. Las definiciones se guardan en una tabla CAS llamada 'myprotos_advanced', y la definición se codifica para proteger la propiedad intelectual.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 routineCode={
4 "proto mycfunc1(double) returns double;",
5 "proto mycfunc2(double, double) returns double;"
6 },
7 package="myextfuncs",
8 encode=true,
9 funcTable={name="myprotos_advanced", caslib="casuser", replace=true, label="Prototipos Avanzados para Funciones Externas"};
10QUIT;
Resultado :
La acción crea una tabla llamada 'myprotos_advanced' en la caslib 'casuser'. La tabla contiene las definiciones codificadas de los dos prototipos dentro del paquete 'myextfuncs'.

FAQ

¿Cuál es el propósito de la acción `addPrototypes`?
¿Qué hace el parámetro `bridgeCatchSignals`?
¿Para qué se utiliza el parámetro `bridgeFile`?
¿Cuál es la función del parámetro `encode`?
¿Qué especifica el parámetro obligatorio `funcTable`?
¿Qué hace el parámetro `library`?
¿Cuál es el propósito del parámetro `package`?
¿Qué se define con el parámetro obligatorio `routineCode`?
¿Qué controla el parámetro `saveTable`?
¿Para qué sirve el parámetro `stdcall` y en qué sistema operativo se aplica?

Escenarios asociados

Caso de uso
Integración de un Modelo de Riesgo Crediticio Propietario

Una entidad financiera necesita integrar una función de cálculo de riesgo crediticio, desarrollada externamente en C, dentro de su entorno SAS Viya. El objetivo es registrar el ...

Caso de uso
Registro Seguro y Codificado de Algoritmos Genómicos

Una empresa de biotecnología distribuye un paquete de algoritmos genómicos a sus clientes para ser usados en SAS Viya. Es crucial que la lógica de negocio, representada por las ...

Caso de uso
Prueba de Estrés y Compatibilidad entre Plataformas

Un equipo de desarrollo de software está creando un conjunto de funciones que deben funcionar tanto en Windows como en Linux. Necesitan verificar cómo la acción `addPrototypes` ...