#include <stdio.h>
#include <stdlib.h>
#include <sapnwrfc.h>
int main()
{
RFC_CONNECTION_PARAMETER connectionParams[7];
RFC_CONNECTION_HANDLE connectionHandle;
RFC_FUNCTION_HANDLE functionHandle;
RFC_ERROR_INFO errorInfo;
RFC_TABLE_HANDLE tableHandle;
RFC_RC rc;
// Configuración de los parámetros de conexión
connectionParams[0].name = "ASHOST";
connectionParams[0].value = "SAP_SERVER_HOSTNAME";
connectionParams[1].name = "SYSNR";
connectionParams[1].value = "00";
connectionParams[2].name = "CLIENT";
connectionParams[2].value = "100";
connectionParams[3].name = "USER";
connectionParams[3].value = "SAP_USER";
connectionParams[4].name = "PASSWD";
connectionParams[4].value = "SAP_PASSWORD";
connectionParams[5].name = "LANG";
connectionParams[5].value = "EN";
connectionParams[6].name = NULL;
connectionParams[6].value = NULL;
// Conexión al sistema SAP
rc = RfcOpenConnection(connectionParams, 7, &errorInfo);
if (rc != RFC_OK) {
printf("Error al conectar a SAP: %s\n", errorInfo.message);
exit(1);
}
// Obtención del handle de la función a invocar
rc = RfcGetFunctionDescByName(connectionHandle, "NAME_OF_SAP_FUNCTION", &functionDesc, &errorInfo);
if (rc != RFC_OK) {
printf("Error al obtener la descripción de la función: %s\n", errorInfo.message);
exit(1);
}
// Invocación de la transacción
rc = RfcCallTransaction(connectionHandle, "SAP_TRANSACTION_CODE", NULL, &errorInfo);
if (rc != RFC_OK) {
printf("Error al invocar la transacción: %s\n", errorInfo.message);
exit(1);
}
// Cierre de la conexión
RfcCloseConnection(connectionHandle, &errorInfo);
return 0;
}