/** * RFC backend selector. * * Reads SAP_RFC_BACKEND from process.env ('odata' default, 'soap' / * 'native' / 'gateway' / 'zrfc' opt-in) and routes callDispatch / callTextpool * to the matching backend module on every call. * * Default changed 2026-04-22 from 'soap' to 'odata': hardened Gateway * installs increasingly disable the /sap/bc/soap/rfc ICF node, and the * OData path goes through standard Gateway authorization (S_SERVICE) * instead of S_RFC. Existing setups that explicitly set * SAP_RFC_BACKEND=soap are unaffected. * * soap — classic /sap/bc/soap/rfc HTTPS gateway (SAP built-in) * native — direct NW RFC SDK on this host (requires SDK + node-rfc) * gateway — remote RFC Gateway middleware via HTTPS/JSON (no SDK here) * odata — SAP OData v2 service (ZMCP_ADT_SRV) via HTTPS (SEGW-free) * * Handlers import from this file, never directly from soapRfc.ts / * nativeRfc.ts / gatewayRfc.ts / odataRfc.ts, so switching backends is * a single env flip with no code change. * * Resolution is lazy (per-call) — required because: * 1. The sc4sap profile loader (lib/profile.ts activateProfile()) runs * inside main() in launcher.ts, AFTER all handler imports complete. * Handler imports transitively load this module, so eager top-level * resolution would freeze the backend before sap.env was read. * 2. ReloadProfile (handlers/system/readonly/handleReloadProfile.ts) * changes SAP_RFC_BACKEND at runtime; eager caching would defeat it. */ import * as odata from './odataRfc'; export type RfcBackend = 'soap' | 'native' | 'gateway' | 'odata' | 'zrfc'; /** Returns the active backend resolved from current process.env. */ export declare function getBackend(): RfcBackend; export declare const callDispatch: typeof odata.callDispatch; export declare const callTextpool: typeof odata.callTextpool; export declare const backend: RfcBackend; export declare const callDdicTabl: typeof odata.callDdicTabl; export declare const callDdicDtel: typeof odata.callDdicDtel; export declare const callDdicDoma: typeof odata.callDdicDoma; export declare const callDdicActivate: typeof odata.callDdicActivate; export declare const callDdicBadi: typeof odata.callDdicBadi; export declare const callDdicTablRead: typeof odata.callDdicTablRead; export declare const callDdicDtelRead: typeof odata.callDdicDtelRead; export declare const callDdicDomaRead: typeof odata.callDdicDomaRead; export declare const callWlTcodeUsage: typeof odata.callWlTcodeUsage; export declare const callWlJobUsage: typeof odata.callWlJobUsage; export type { DdicResult } from './odataRfc'; export type { DispatchResult, TextpoolResult, TextpoolRow } from './soapRfc'; //# sourceMappingURL=rfcBackend.d.ts.map