@abapify/adt-rfc (中文(简体) )
为SAP系统提供SOAP-over-HTTP RFC运输. 调用经典的 RFC 函数模块( BAPIs, STFC CONNECTION, TH USER LIST,自定义调频等) 而不要求本地 libsapnwrfc SDK——通过SAP的内置管道将电话挖出 /sap/bc/soap/rfc 终点.
这个包裹是活的 外部 页:1
/sap/bc/adt/*URL空间. RFC是从ADT中分离出来的运输层——这就是为什么它是一个单独的包,而不是一个根据ADT制定的计划/合同@abapify/adt-client。 。 。 .
安装
bun add @abapify/adt-rfc
使用量
import { createAdtClient } from '@abapify/adt-client';
import { createRfcClient } from '@abapify/adt-rfc';
const adt = createAdtClient({
baseUrl: 'https://my.sap.example.com',
username: 'DEVELOPER',
password: '…',
client: '100',
});
const rfc = createRfcClient({
fetch: (url, opts) => adt.fetch(url, opts),
client: '100',
});
const resp = await rfc.call('STFC_CONNECTION', { REQUTEXT: 'hello' });
console.log(resp.ECHOTEXT); // → "hello"
console.log(resp.RESPTEXT); // → "SAP R/3 Rel. 7.55 Sysid: TRL …"
参数类型
参数和反应模拟为松散的JSON树:
| RFC 类型 | 类型脚本表达式 |
|---|---|
| 斯卡尔 | string | number | boolean | null |
| 结构 | { FIELD1: …, FIELD2: … } |
| 图表 | [{ FIELD: … }, { FIELD: … }] |
表格为SAP的序列 <TABLE_NAME><item>…</item><item>…</item></TABLE_NAME> 电线上的公约.
错误
RfcSoapFault——服务器返回 asoap:Fault. 展览faultcode, (中文(简体) ),faultstring,原始反应体.RfcTransportUnavailable- 那个/sap/bc/soap/rfc端点回401/403/404/501. 一些SAP系统禁用SOAP-RFC;抓住它来优雅地降级.
限制
- 仅限SOAP-RFC. 土著
libsapnwrfc绑定( 通过node-rfc——轨道@abapify/adt-plugin-rfc-native未来的道路. - 类型编码. SAP的SOAP-RFC包装器并不完美地将每个RFC数据类型进行往返. 二进制字段作为基数64外观字符串回来;日期/时间作为SAP内部字符串回来(
YYYYMMDD, (中文(简体) ),HHMMSS。呼叫者转换. - 鉴定. 重新使用 ADT 客户端的会话/CSRF/cookie 状态——没有单独的认证管道.
另见
- 谱:
docs/roadmap/epics/e13-startrfc.md - 参考执行情况:
tmp/sapcli-ref/sapcli/sap/rfc/