1 module etc.c.sapnwrfc;
2 
3 public import etc.c.sapucx;
4 public import etc.c.sapuc;
5 
6 version(sapnwrfc_sdk_750)
7 {
8 import core.stdc.time : time_t;
9 }
10 
11 extern(C):
12 @nogc:
13 
14 alias RFC_CHAR = SAP_UC;
15 alias RFC_NUM = RFC_CHAR;
16 alias RFC_BYTE = SAP_RAW;
17 alias RFC_BCD = SAP_RAW;
18 alias RFC_INT1 = SAP_RAW;
19 alias RFC_INT2 = short;
20 alias RFC_INT = int;
21 alias RFC_INT8 = long;
22 alias RFC_FLOAT = double;
23 alias RFC_DATE = RFC_CHAR[8];
24 alias RFC_TIME = RFC_CHAR[6];
25 alias RFC_DECF16 = DecFloat16;
26 alias RFC_DECF34 = DecFloat34;
27 alias RFC_UTCLONG = RFC_INT8;
28 alias RFC_UTCSECOND = RFC_INT8;
29 alias RFC_UTCMINUTE = RFC_INT8;
30 alias RFC_DTDAY = int;
31 alias RFC_DTWEEK = int;
32 alias RFC_DTMONTH = int;
33 alias RFC_TSECOND = int;
34 alias RFC_TMINUTE = short;
35 alias RFC_CDAY = short;
36 
37 enum RFC_TID_LN = 24;
38 enum RFC_UNITID_LN = 32;
39 alias RFC_TID = SAP_UC[RFC_TID_LN+1];
40 alias RFC_UNITID = SAP_UC[RFC_UNITID_LN+1];
41 
42 enum RFCTYPE
43 {
44     RFCTYPE_CHAR = 0,
45     RFCTYPE_DATE = 1,
46     RFCTYPE_BCD = 2,
47     RFCTYPE_TIME = 3,
48     RFCTYPE_BYTE = 4,
49     RFCTYPE_TABLE = 5,
50     RFCTYPE_NUM = 6,
51     RFCTYPE_FLOAT = 7,
52     RFCTYPE_INT = 8,
53     RFCTYPE_INT2 = 9,
54     RFCTYPE_INT1 = 10,
55     RFCTYPE_NULL = 14,
56     RFCTYPE_ABAPOBJECT = 16,
57     RFCTYPE_STRUCTURE = 17,
58     RFCTYPE_DECF16 = 23,
59     RFCTYPE_DECF34 = 24,
60     RFCTYPE_XMLDATA = 28,
61     RFCTYPE_STRING = 29,
62     RFCTYPE_XSTRING = 30,
63     RFCTYPE_INT8,
64     RFCTYPE_UTCLONG,
65     RFCTYPE_UTCSECOND,
66     RFCTYPE_UTCMINUTE,
67     RFCTYPE_DTDAY,
68     RFCTYPE_DTWEEK,
69     RFCTYPE_DTMONTH,
70     RFCTYPE_TSECOND,
71     RFCTYPE_TMINUTE,
72     RFCTYPE_CDAY,
73     RFCTYPE_BOX,
74     RFCTYPE_GENERIC_BOX,
75     _RFCTYPE_max_value,
76 }
77 
78 enum RFC_RC
79 {
80     RFC_OK,
81     RFC_COMMUNICATION_FAILURE,
82     RFC_LOGON_FAILURE,
83     RFC_ABAP_RUNTIME_FAILURE,
84     RFC_ABAP_MESSAGE,
85     RFC_ABAP_EXCEPTION,
86     RFC_CLOSED,
87     RFC_CANCELED,
88     RFC_TIMEOUT,
89     RFC_MEMORY_INSUFFICIENT,
90     RFC_VERSION_MISMATCH,
91     RFC_INVALID_PROTOCOL,
92     RFC_SERIALIZATION_FAILURE,
93     RFC_INVALID_HANDLE,
94     RFC_RETRY,
95     RFC_EXTERNAL_FAILURE,
96     RFC_EXECUTED,
97     RFC_NOT_FOUND,
98     RFC_NOT_SUPPORTED,
99     RFC_ILLEGAL_STATE,
100     RFC_INVALID_PARAMETER,
101     RFC_CODEPAGE_CONVERSION_FAILURE,
102     RFC_CONVERSION_FAILURE,
103     RFC_BUFFER_TOO_SMALL,
104     RFC_TABLE_MOVE_BOF,
105     RFC_TABLE_MOVE_EOF,
106     RFC_START_SAPGUI_FAILURE,
107     RFC_ABAP_CLASS_EXCEPTION,
108     RFC_UNKNOWN_ERROR,
109     RFC_AUTHORIZATION_FAILURE,
110     _RFC_RC_max_value,
111 }
112 
113 enum RFC_ERROR_GROUP
114 {
115     OK,
116     ABAP_APPLICATION_FAILURE,
117     ABAP_RUNTIME_FAILURE,
118     LOGON_FAILURE,
119     COMMUNICATION_FAILURE,
120     EXTERNAL_RUNTIME_FAILURE,
121     EXTERNAL_APPLICATION_FAILURE,
122     EXTERNAL_AUTHORIZATION_FAILURE,
123 }
124 
125 struct RFC_ERROR_INFO
126 {
127     RFC_RC code;
128     RFC_ERROR_GROUP group;
129     SAP_UC[128] key;
130     SAP_UC[512] message;
131     SAP_UC[20+1] abapMsgClass;
132     SAP_UC[1+1] abapMsgType;
133     RFC_NUM[3 + 1] abapMsgNumber;
134     SAP_UC[50+1] abapMsgV1;
135     SAP_UC[50+1] abapMsgV2;
136     SAP_UC[50+1] abapMsgV3;
137     SAP_UC[50+1] abapMsgV4;
138 }
139 
140 struct RFC_ATTRIBUTES
141 {
142     SAP_UC[64+1] dest;
143     SAP_UC[100+1] host;
144     SAP_UC[100+1] partnerHost;
145     SAP_UC[2+1] sysNumber;
146     SAP_UC[8+1] sysId;
147     SAP_UC[3+1] client;
148     SAP_UC[12+1] user;
149     SAP_UC[2+1] language;
150     SAP_UC[1+1] trace;
151     SAP_UC[2+1] isoLanguage;
152     SAP_UC[4+1] codepage;
153     SAP_UC[4+1] partnerCodepage;
154     SAP_UC[1+1] rfcRole;
155     SAP_UC[1+1] type;
156     SAP_UC[1+1] partnerType;
157     SAP_UC[4+1] rel;
158     SAP_UC[4+1] partnerRel;
159     SAP_UC[4+1] kernelRel;
160     SAP_UC[8 + 1] cpicConvId;
161     SAP_UC[128+1] progName;
162     SAP_UC[1+1] partnerBytesPerChar;
163     SAP_UC[4 + 1] partnerSystemCodepage;
164     SAP_UC[79] reserved;
165 }
166 alias P_RFC_ATTRIBUTES = RFC_ATTRIBUTES*;
167 
168 // 250
169 struct RFC_SECURITY_ATTRIBUTES
170 {
171     SAP_UC *functionName;
172     SAP_UC *sysId;
173     SAP_UC *client;
174     SAP_UC *user;
175     SAP_UC *progName;
176     SAP_UC *sncName;
177     SAP_UC *ssoTicket;
178 }
179 alias P_RFC_SECURITY_ATTRIBUTES = RFC_SECURITY_ATTRIBUTES*;
180 
181 struct RFC_UNIT_ATTRIBUTES
182 {
183     short kernelTrace;
184     short satTrace;
185     short unitHistory;
186     short lock;
187     short noCommitCheck;
188     SAP_UC[12+1] user;
189     SAP_UC[3+1] client;
190     SAP_UC[20+1] tCode;
191     SAP_UC[40+1] program;
192     SAP_UC[40+1] hostname;
193     RFC_DATE sendingDate;
194     RFC_TIME sendingTime;
195 }
196 
197 struct RFC_UNIT_IDENTIFIER
198 {
199     SAP_UC unitType;
200     RFC_UNITID unitID;
201 }
202 
203 enum RFC_UNIT_STATE
204 {
205     RFC_UNIT_NOT_FOUND,
206     RFC_UNIT_IN_PROCESS,
207     RFC_UNIT_COMMITTED,
208     RFC_UNIT_ROLLED_BACK,
209     RFC_UNIT_CONFIRMED,
210 }
211 
212 alias RFC_ABAP_NAME = RFC_CHAR[30+1];
213 alias RFC_PARAMETER_DEFVALUE = RFC_CHAR[30+1];
214 alias RFC_PARAMETER_TEXT = RFC_CHAR[79+1];
215 
216 enum RFC_CALL_TYPE
217 {
218     RFC_SYNCHRONOUS,
219     RFC_TRANSACTIONAL,
220     RFC_QUEUED,
221     RFC_BACKGROUND_UNIT,
222 }
223 
224 struct RFC_SERVER_CONTEXT
225 {
226     RFC_CALL_TYPE type;
227     RFC_TID tid;
228     RFC_UNIT_IDENTIFIER* unitIdentifier;
229     RFC_UNIT_ATTRIBUTES* unitAttributes;
230     version(sapnwrfc_sdk_750)
231     {
232         uint isStateful;
233         SAP_UC[33] sessionID;
234     }
235 }
236 
237 struct _RFC_TYPE_DESC_HANDLE
238 {
239     void* handle;
240 }
241 alias RFC_TYPE_DESC_HANDLE = _RFC_TYPE_DESC_HANDLE*;
242 
243 struct _RFC_FUNCTION_DESC_HANDLE
244 {
245     void* handle;
246 }
247 alias RFC_FUNCTION_DESC_HANDLE = _RFC_FUNCTION_DESC_HANDLE*;
248 
249 struct _RFC_CLASS_DESC_HANDLE
250 {
251     void* handle;
252 }
253 alias RFC_CLASS_DESC_HANDLE = _RFC_CLASS_DESC_HANDLE*;
254 
255 struct RFC_DATA_CONTAINER
256 {
257     void* handle;
258 }
259 alias DATA_CONTAINER_HANDLE = RFC_DATA_CONTAINER*;
260 
261 alias RFC_STRUCTURE_HANDLE = DATA_CONTAINER_HANDLE;
262 alias RFC_FUNCTION_HANDLE = DATA_CONTAINER_HANDLE;
263 alias RFC_TABLE_HANDLE = DATA_CONTAINER_HANDLE;
264 alias RFC_ABAP_OBJECT_HANDLE = DATA_CONTAINER_HANDLE;
265 
266 struct _RFC_CONNECTION_HANDLE
267 {
268     void* handle;
269 }
270 alias RFC_CONNECTION_HANDLE = _RFC_CONNECTION_HANDLE*;
271 
272 version(sapnwrfc_sdk_750)
273 {
274 struct _RFC_SERVER_HANDLE
275 {
276     void* handle;
277 }
278 alias RFC_SERVER_HANDLE = _RFC_SERVER_HANDLE*;
279 
280 enum RFC_PROTOCOL_TYPE
281 {
282     RFC_UNKOWN,
283     RFC_CLIENT,
284     RFC_STARTED_SERVER,
285     RFC_REGISTERED_SERVER,
286     RFC_MULTI_COUNT_REGISTERED_SERVER,
287     RFC_TCP_SOCKET_CLIENT,
288     RFC_TCP_SOCKET_SERVER
289 }
290 
291 enum RFC_SERVER_STATE
292 {
293     RFC_SERVER_INITIAL,
294     RFC_SERVER_STARTING,
295     RFC_SERVER_RUNNING,
296     RFC_SERVER_BROKEN,
297     RFC_SERVER_STOPPING,
298     RFC_SERVER_STOPPED
299 }
300 
301 struct _RFC_SERVER_ATTRIBUTES
302 {
303     SAP_UC* serverName;
304     RFC_PROTOCOL_TYPE type;
305     uint registrationCount;
306     RFC_SERVER_STATE state;
307     uint currentBusyCount;
308     uint peakBusyCount;
309 }
310 alias RFC_SERVER_ATTRIBUTES = _RFC_SERVER_ATTRIBUTES;
311 
312 alias RFC_SERVER_ERROR_LISTENER = void function(RFC_SERVER_HANDLE, RFC_ATTRIBUTES*, out RFC_ERROR_INFO);
313 
314 struct _RFC_STATE_CHANGE
315 {
316     RFC_SERVER_STATE oldState;
317     RFC_SERVER_STATE newState;
318 }
319 alias RFC_STATE_CHANGE = _RFC_STATE_CHANGE;
320 
321 alias RFC_SERVER_STATE_CHANGE_LISTENER = void function(RFC_SERVER_HANDLE, RFC_STATE_CHANGE*);
322 
323 struct _RFC_SERVER_MONITOR_DATA
324 {
325     RFC_ATTRIBUTES* clientInfo;
326     int isActive;
327     int isStateful;
328     SAP_UC[128] functionModuleName;
329     time_t lastActivity;
330 }
331 alias RFC_SERVER_MONITOR_DATA = _RFC_SERVER_MONITOR_DATA;
332 
333 } // sapnwrfc_sdk_750
334 
335 struct _RFC_TRANSACTION_HANDLE
336 {
337     void* handle;
338 }
339 alias RFC_TRANSACTION_HANDLE = _RFC_TRANSACTION_HANDLE*;
340 
341 struct _RFC_UNIT_HANDLE
342 {
343     void* handle;
344 }
345 alias RFC_UNIT_HANDLE = _RFC_UNIT_HANDLE*;
346 
347 struct RFC_CONNECTION_PARAMETER
348 {
349     const(SAP_UC)* name;
350     const(SAP_UC)* value;
351 }
352 alias P_RFC_CONNECTION_PARAMETER = RFC_CONNECTION_PARAMETER*;
353 
354 struct RFC_FIELD_DESC
355 {
356     RFC_ABAP_NAME name;
357     RFCTYPE type;
358     uint nucLength;
359     uint nucOffset;
360     uint ucLength;
361     uint ucOffset;
362     uint decimals;
363     RFC_TYPE_DESC_HANDLE typeDescHandle;
364     void* extendedDescription;
365 }
366 alias P_RFC_FIELD_DESC = RFC_FIELD_DESC*;
367 
368 enum RFC_DIRECTION
369 {
370     RFC_IMPORT = 0x01,
371     RFC_EXPORT = 0x02,
372     RFC_CHANGING = RFC_IMPORT | RFC_EXPORT,
373     RFC_TABLES = 0x04 | RFC_CHANGING,
374 }
375 
376 struct RFC_PARAMETER_DESC
377 {
378     RFC_ABAP_NAME name;
379     RFCTYPE type;
380     RFC_DIRECTION direction;
381     uint nucLength;
382     uint ucLength;
383     uint decimals;
384     RFC_TYPE_DESC_HANDLE typeDescHandle;
385     RFC_PARAMETER_DEFVALUE defaultValue;
386     RFC_PARAMETER_TEXT parameterText;
387     RFC_BYTE optional;
388     void* extendedDescription;
389 }
390 alias P_RFC_PARAMETER_DESC = RFC_PARAMETER_DESC*;
391 
392 struct RFC_EXCEPTION_DESC
393 {
394     SAP_UC[128] key;
395     SAP_UC[512] message;
396 }
397 RFC_EXCEPTION_DESC* P__RFC_EXCEPTION_DESC;
398 
399 enum RFC_CLASS_ATTRIBUTE_TYPE
400 {
401     RFC_CLASS_ATTRIBUTE_INSTANCE,
402     RFC_CLASS_ATTRIBUTE_CLASS,
403     RFC_CLASS_ATTRIBUTE_CONSTANT,
404 }
405 
406 alias RFC_CLASS_ATTRIBUTE_DEFVALUE = RFC_CHAR[30+1];
407 alias RFC_CLASS_NAME = RFC_CHAR[30+1];
408 alias  RFC_CLASS_ATTRIBUTE_DESCRIPTION = RFC_CHAR[511+1];
409 
410 struct RFC_CLASS_ATTRIBUTE_DESC
411 {
412     RFC_ABAP_NAME name;
413     RFCTYPE type;
414     uint nucLength;
415     uint ucLength;
416     uint decimals;
417     RFC_TYPE_DESC_HANDLE typeDescHandle;
418     RFC_CLASS_ATTRIBUTE_DEFVALUE defaultValue;
419     RFC_CLASS_NAME declaringClass;
420     RFC_CLASS_ATTRIBUTE_DESCRIPTION description;
421     uint isReadOnly;
422     RFC_CLASS_ATTRIBUTE_TYPE attributeType;
423     void* extendedDescription;
424 }
425 alias P_RFC_CLASS_ATTRIBUTE_DESC = RFC_CLASS_ATTRIBUTE_DESC*;
426 
427 alias RFC_SERVER_FUNCTION = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
428 alias RFC_ON_CHECK_TRANSACTION = RFC_RC function(RFC_CONNECTION_HANDLE, SAP_UC*);
429 alias RFC_ON_COMMIT_TRANSACTION = RFC_RC function(RFC_CONNECTION_HANDLE, SAP_UC*);
430 alias RFC_ON_ROLLBACK_TRANSACTION = RFC_RC function(RFC_CONNECTION_HANDLE, SAP_UC*);
431 alias RFC_ON_CONFIRM_TRANSACTION = RFC_RC function(RFC_CONNECTION_HANDLE, SAP_UC*);
432 alias RFC_FUNC_DESC_CALLBACK = RFC_RC function(SAP_UC*, RFC_ATTRIBUTES, RFC_FUNCTION_DESC_HANDLE*);
433 alias RFC_PM_CALLBACK = RFC_RC function(RFC_CONNECTION_HANDLE, SAP_UC*, SAP_RAW *, size_t, size_t *); 
434 alias RFC_ON_CHECK_UNIT = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*);
435 alias RFC_ON_COMMIT_UNIT = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*);
436 alias RFC_ON_ROLLBACK_UNIT = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*);
437 alias RFC_ON_CONFIRM_UNIT = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*);
438 alias RFC_ON_GET_UNIT_STATE = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*, RFC_UNIT_STATE*);
439 alias RFC_ON_PASSWORD_CHANGE = RFC_RC function(SAP_UC*, SAP_UC*, SAP_UC*, SAP_UC*, uint, SAP_UC*, uint, out RFC_ERROR_INFO);
440 alias RFC_ON_AUTHORIZATION_CHECK = RFC_RC function(RFC_CONNECTION_HANDLE, RFC_SECURITY_ATTRIBUTES*, out RFC_ERROR_INFO); 
441 
442 RFC_RC RfcInit();
443 const(SAP_UC)* RfcGetVersion(out uint, out uint, out uint);
444 version(sapnwrfc_sdk_750)
445 {
446 RFC_RC RfcGetVersionInternal();
447 }
448 RFC_RC RfcSetIniPath(const(SAP_UC)*, out RFC_ERROR_INFO);
449 RFC_RC RfcReloadIniFile(out RFC_ERROR_INFO);
450 RFC_RC RfcSetTraceLevel(RFC_CONNECTION_HANDLE, const(SAP_UC)*, uint, out RFC_ERROR_INFO);
451 RFC_RC RfcSetTraceEncoding(const(SAP_UC)*, out RFC_ERROR_INFO);
452 RFC_RC RfcSetTraceDir(const(SAP_UC)*, out RFC_ERROR_INFO);
453 RFC_RC RfcSetTraceType(const(SAP_UC)*, out RFC_ERROR_INFO);
454 RFC_RC RfcSetCpicTraceLevel(uint, out RFC_ERROR_INFO);
455 RFC_RC RfcUTF8ToSAPUC(const(RFC_BYTE)*, uint, SAP_UC*, uint*, uint*, out RFC_ERROR_INFO);
456 RFC_RC RfcSAPUCToUTF8(const(SAP_UC)*, uint, RFC_BYTE*, uint*, uint*, out RFC_ERROR_INFO);
457 const(SAP_UC)* RfcGetRcAsString(RFC_RC);
458 const(SAP_UC)* RfcGetTypeAsString(RFCTYPE);
459 const(SAP_UC)* RfcGetDirectionAsString(RFC_DIRECTION);
460 version(sapnwrfc_sdk_750)
461 {
462 const(SAP_UC)* RfcGetServerStateAsString(RFC_SERVER_STATE);
463 }
464 RFC_RC RfcLanguageIsoToSap(const(SAP_UC)*, SAP_UC*, out RFC_ERROR_INFO);
465 RFC_RC RfcLanguageSapToIso(const(SAP_UC)*, SAP_UC*, out RFC_ERROR_INFO);
466 
467 version(sapnwrfc_sdk_750)
468 {
469 RFC_RC RfcGetSaplogonEntries(SAP_UC***, uint*, out RFC_ERROR_INFO);
470 RFC_RC RfcFreeSaplogonEntries(SAP_UC***, uint*, out RFC_ERROR_INFO);
471 } // sapnwrfc_sdk_750
472 
473 RFC_CONNECTION_HANDLE RfcOpenConnection(const(RFC_CONNECTION_PARAMETER)*, uint, out RFC_ERROR_INFO);
474 RFC_CONNECTION_HANDLE RfcRegisterServer(const(RFC_CONNECTION_PARAMETER)*, uint, out RFC_ERROR_INFO);
475 RFC_CONNECTION_HANDLE RfcStartServer(int, SAP_UC**, const(RFC_CONNECTION_PARAMETER)*, uint, out RFC_ERROR_INFO);
476 RFC_RC RfcCloseConnection(RFC_CONNECTION_HANDLE, out RFC_ERROR_INFO);
477 RFC_RC RfcIsConnectionHandleValid(RFC_CONNECTION_HANDLE, int*, out RFC_ERROR_INFO);
478 version(sapnwrfc_sdk_750)
479 {
480 RFC_RC RfcCancel(RFC_CONNECTION_HANDLE, out RFC_ERROR_INFO);
481 }
482 RFC_RC RfcResetServerContext(RFC_CONNECTION_HANDLE, out RFC_ERROR_INFO);
483 RFC_RC RfcPing(RFC_CONNECTION_HANDLE, out RFC_ERROR_INFO);
484 RFC_RC RfcGetConnectionAttributes(RFC_CONNECTION_HANDLE, RFC_ATTRIBUTES*, out RFC_ERROR_INFO);
485 RFC_RC RfcGetServerContext(RFC_CONNECTION_HANDLE, RFC_SERVER_CONTEXT*, out RFC_ERROR_INFO);
486 RFC_RC RfcGetPartnerSSOTicket(RFC_CONNECTION_HANDLE, SAP_UC*, uint, out RFC_ERROR_INFO);
487 RFC_RC RfcGetPartnerSNCName(RFC_CONNECTION_HANDLE, SAP_UC*, uint, out RFC_ERROR_INFO);
488 RFC_RC RfcGetPartnerSNCKey(RFC_CONNECTION_HANDLE, SAP_RAW*, uint*, out RFC_ERROR_INFO);
489 RFC_RC RfcSNCNameToKey(SAP_UC*, SAP_UC*, SAP_RAW *, uint*, out RFC_ERROR_INFO);
490 RFC_RC RfcSNCKeyToName(SAP_UC*, SAP_RAW*, uint, SAP_UC*, uint, out RFC_ERROR_INFO);
491 RFC_RC RfcListenAndDispatch (RFC_CONNECTION_HANDLE, int, out RFC_ERROR_INFO);
492 RFC_RC RfcInvoke(RFC_CONNECTION_HANDLE, RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
493 
494 version(sapnwrfc_sdk_750)
495 {
496 RFC_SERVER_HANDLE RfcCreateServer(const(RFC_CONNECTION_PARAMETER)*, uint, out RFC_ERROR_INFO);
497 RFC_RC RfcDestroyServer(RFC_SERVER_HANDLE, out RFC_ERROR_INFO);
498 RFC_RC RfcLaunchServer(RFC_SERVER_HANDLE, out RFC_ERROR_INFO);
499 RFC_RC RfcShutdownServer(RFC_SERVER_HANDLE, uint, out RFC_ERROR_INFO);
500 RFC_RC RfcGetServerAttributes(RFC_SERVER_HANDLE, RFC_SERVER_ATTRIBUTES*, out RFC_ERROR_INFO);
501 RFC_RC RfcGetServerConnectionMonitorData(RFC_SERVER_HANDLE, uint*, RFC_SERVER_MONITOR_DATA**, out RFC_ERROR_INFO);
502 RFC_RC RfcDestroyServerConnectionMonitorData(uint, RFC_SERVER_MONITOR_DATA*, out RFC_ERROR_INFO);
503 RFC_RC RfcAddServerErrorListener(RFC_SERVER_HANDLE, RFC_SERVER_ERROR_LISTENER, out RFC_ERROR_INFO);
504 RFC_RC RfcAddServerStateChangedListener(RFC_SERVER_HANDLE, RFC_SERVER_STATE_CHANGE_LISTENER, out RFC_ERROR_INFO);
505 RFC_RC RfcSetServerStateful(RFC_CONNECTION_HANDLE, uint, out RFC_ERROR_INFO);
506 } // sapnwrfc_sdk_750
507 
508 RFC_RC RfcGetTransactionID(RFC_CONNECTION_HANDLE, RFC_TID, out RFC_ERROR_INFO);
509 RFC_TRANSACTION_HANDLE RfcCreateTransaction(RFC_CONNECTION_HANDLE, RFC_TID, const(SAP_UC)*, out RFC_ERROR_INFO);
510 RFC_RC RfcInvokeInTransaction(RFC_TRANSACTION_HANDLE, RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
511 RFC_RC RfcSubmitTransaction(RFC_TRANSACTION_HANDLE, out RFC_ERROR_INFO);
512 RFC_RC RfcConfirmTransaction(RFC_TRANSACTION_HANDLE, out RFC_ERROR_INFO);
513 RFC_RC RfcDestroyTransaction(RFC_TRANSACTION_HANDLE, out RFC_ERROR_INFO);
514 
515 RFC_RC RfcGetUnitID(RFC_CONNECTION_HANDLE, RFC_UNITID, out RFC_ERROR_INFO);
516 RFC_UNIT_HANDLE RfcCreateUnit(RFC_CONNECTION_HANDLE, RFC_UNITID, SAP_UC* /*[]*/, uint, RFC_UNIT_ATTRIBUTES*, RFC_UNIT_IDENTIFIER*, out RFC_ERROR_INFO);
517 RFC_RC RfcInvokeInUnit(RFC_UNIT_HANDLE, RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
518 RFC_RC RfcSubmitUnit(RFC_UNIT_HANDLE, out RFC_ERROR_INFO);
519 RFC_RC RfcConfirmUnit(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*, out RFC_ERROR_INFO);
520 RFC_RC RfcDestroyUnit(RFC_UNIT_HANDLE, out RFC_ERROR_INFO);
521 RFC_RC RfcGetUnitState(RFC_CONNECTION_HANDLE, RFC_UNIT_IDENTIFIER*, RFC_UNIT_STATE*, out RFC_ERROR_INFO);
522 RFC_RC RfcInstallServerFunction(SAP_UC*, RFC_FUNCTION_DESC_HANDLE, RFC_SERVER_FUNCTION, out RFC_ERROR_INFO);
523 RFC_RC RfcInstallGenericServerFunction(RFC_SERVER_FUNCTION, RFC_FUNC_DESC_CALLBACK, out RFC_ERROR_INFO);
524 RFC_RC RfcInstallTransactionHandlers (SAP_UC, RFC_ON_CHECK_TRANSACTION, RFC_ON_COMMIT_TRANSACTION, RFC_ON_ROLLBACK_TRANSACTION, RFC_ON_CONFIRM_TRANSACTION, out RFC_ERROR_INFO);
525 //This function is documented but not exported to the library:
526 //RFC_RC RfcInstallBgRfcHandlers (SAP_UC*, RFC_ON_CHECK_UNIT, RFC_ON_COMMIT_UNIT, RFC_ON_ROLLBACK_UNIT, RFC_ON_CONFIRM_UNIT, RFC_ON_GET_UNIT_STATE, out RFC_ERROR_INFO);
527 RFC_RC RfcInstallPassportManager (RFC_PM_CALLBACK, RFC_PM_CALLBACK, RFC_PM_CALLBACK, RFC_PM_CALLBACK, out RFC_ERROR_INFO);
528 RFC_RC RfcInstallPasswordChangeHandler(RFC_ON_PASSWORD_CHANGE, out RFC_ERROR_INFO);
529 RFC_RC RfcInstallAuthorizationCheckHandler(RFC_ON_AUTHORIZATION_CHECK, out RFC_ERROR_INFO);
530 
531 RFC_FUNCTION_HANDLE RfcCreateFunction(RFC_FUNCTION_DESC_HANDLE, out RFC_ERROR_INFO);
532 RFC_RC RfcDestroyFunction(RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
533 RFC_RC RfcSetParameterActive(RFC_FUNCTION_HANDLE, const(SAP_UC)*, int, out RFC_ERROR_INFO);
534 RFC_RC RfcIsParameterActive(RFC_FUNCTION_HANDLE, const(SAP_UC)*, int*, out RFC_ERROR_INFO);
535 RFC_STRUCTURE_HANDLE RfcCreateStructure(RFC_TYPE_DESC_HANDLE, out RFC_ERROR_INFO);
536 RFC_STRUCTURE_HANDLE RfcCloneStructure(RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
537 RFC_RC RfcDestroyStructure(RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
538 RFC_TABLE_HANDLE RfcCreateTable(RFC_TYPE_DESC_HANDLE, out RFC_ERROR_INFO);
539 RFC_TABLE_HANDLE RfcCloneTable(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
540 RFC_RC RfcDestroyTable(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
541 RFC_STRUCTURE_HANDLE RfcGetCurrentRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
542 RFC_STRUCTURE_HANDLE RfcAppendNewRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
543 RFC_RC RfcAppendNewRows(RFC_TABLE_HANDLE, uint, out RFC_ERROR_INFO);
544 RFC_STRUCTURE_HANDLE RfcInsertNewRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
545 RFC_RC RfcAppendRow(RFC_TABLE_HANDLE, RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
546 RFC_RC RfcInsertRow(RFC_TABLE_HANDLE, RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
547 RFC_RC RfcDeleteCurrentRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
548 RFC_RC RfcDeleteAllRows(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
549 RFC_RC RfcMoveToFirstRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
550 RFC_RC RfcMoveToLastRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
551 RFC_RC RfcMoveToNextRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
552 RFC_RC RfcMoveToPreviousRow(RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
553 RFC_RC RfcMoveTo(RFC_TABLE_HANDLE, uint, out RFC_ERROR_INFO);
554 RFC_RC RfcGetRowCount(RFC_TABLE_HANDLE, out uint, out RFC_ERROR_INFO);
555 RFC_ABAP_OBJECT_HANDLE RfcCreateAbapObject(RFC_CLASS_DESC_HANDLE, out RFC_ERROR_INFO);
556 RFC_RC RfcDestroyAbapObject(RFC_ABAP_OBJECT_HANDLE, RFC_ERROR_INFO);
557 
558 RFC_RC RfcGetChars(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_CHAR*, uint, out RFC_ERROR_INFO);
559 RFC_RC RfcGetCharsByIndex(DATA_CONTAINER_HANDLE, uint, RFC_CHAR*, uint, out RFC_ERROR_INFO);
560 RFC_RC RfcGetNum(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_NUM*, uint, out RFC_ERROR_INFO);
561 RFC_RC RfcGetNumByIndex(DATA_CONTAINER_HANDLE, uint, RFC_NUM*, uint, out RFC_ERROR_INFO);
562 RFC_RC RfcGetDate(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_DATE, out RFC_ERROR_INFO);
563 RFC_RC RfcGetDateByIndex(DATA_CONTAINER_HANDLE, uint, RFC_DATE, out RFC_ERROR_INFO);
564 RFC_RC RfcGetTime(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_TIME, out RFC_ERROR_INFO);
565 RFC_RC RfcGetTimeByIndex(DATA_CONTAINER_HANDLE, uint, RFC_TIME, out RFC_ERROR_INFO);
566 RFC_RC RfcGetString(DATA_CONTAINER_HANDLE, const(SAP_UC)*, SAP_UC*, uint, out uint, out RFC_ERROR_INFO);
567 RFC_RC RfcGetStringByIndex(DATA_CONTAINER_HANDLE, uint, SAP_UC*, uint, out uint, out RFC_ERROR_INFO);
568 RFC_RC RfcGetBytes(DATA_CONTAINER_HANDLE, const(SAP_UC)*, SAP_RAW*, uint, out RFC_ERROR_INFO);
569 RFC_RC RfcGetBytesByIndex(DATA_CONTAINER_HANDLE, uint, SAP_RAW*, uint, out RFC_ERROR_INFO);
570 RFC_RC RfcGetXString(DATA_CONTAINER_HANDLE, const(SAP_UC)*, SAP_RAW*, uint, uint*, out RFC_ERROR_INFO);
571 RFC_RC RfcGetXStringByIndex(DATA_CONTAINER_HANDLE, uint, SAP_RAW*, uint, uint*, out RFC_ERROR_INFO);
572 RFC_RC RfcGetInt(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_INT, out RFC_ERROR_INFO);
573 RFC_RC RfcGetIntByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_INT, out RFC_ERROR_INFO);
574 RFC_RC RfcGetInt1(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_INT1, out RFC_ERROR_INFO);
575 RFC_RC RfcGetInt1ByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_INT1, out RFC_ERROR_INFO);
576 RFC_RC RfcGetInt2(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_INT2, out RFC_ERROR_INFO);
577 RFC_RC RfcGetInt2ByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_INT2, out RFC_ERROR_INFO);
578 version(sapnwrfc_sdk_750)
579 {
580 RFC_RC RfcGetInt8(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_INT8, out RFC_ERROR_INFO);
581 RFC_RC RfcGetInt8ByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_INT8, out RFC_ERROR_INFO);
582 }
583 RFC_RC RfcGetFloat(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_FLOAT, out RFC_ERROR_INFO);
584 RFC_RC RfcGetFloatByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_FLOAT, out RFC_ERROR_INFO);
585 RFC_RC RfcGetDecF16(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_DECF16, out RFC_ERROR_INFO);
586 RFC_RC RfcGetDecF16ByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_DECF16, out RFC_ERROR_INFO);
587 RFC_RC RfcGetDecF34(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_DECF34, out RFC_ERROR_INFO);
588 RFC_RC RfcGetDecF34ByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_DECF34, out RFC_ERROR_INFO);
589 RFC_RC RfcGetStructure(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
590 RFC_RC RfcGetStructureByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_STRUCTURE_HANDLE, out RFC_ERROR_INFO);
591 RFC_RC RfcGetTable(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
592 RFC_RC RfcGetTableByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_TABLE_HANDLE, out RFC_ERROR_INFO);
593 RFC_RC RfcGetAbapObject(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out RFC_ABAP_OBJECT_HANDLE, out RFC_ERROR_INFO);
594 RFC_RC RfcGetAbapObjectByIndex(DATA_CONTAINER_HANDLE, uint, out RFC_ABAP_OBJECT_HANDLE, out RFC_ERROR_INFO);
595 RFC_RC RfcGetStringLength(DATA_CONTAINER_HANDLE, const(SAP_UC)*, out uint, out RFC_ERROR_INFO);
596 RFC_RC RfcGetStringLengthByIndex(DATA_CONTAINER_HANDLE, uint, out uint, out RFC_ERROR_INFO);
597 
598 RFC_RC RfcSetChars(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(RFC_CHAR)*, uint, out RFC_ERROR_INFO);
599 RFC_RC RfcSetCharsByIndex(DATA_CONTAINER_HANDLE, uint, const(RFC_CHAR)*, uint, out RFC_ERROR_INFO);
600 RFC_RC RfcSetNum(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(RFC_NUM)*, uint, out RFC_ERROR_INFO);
601 RFC_RC RfcSetNumByIndex(DATA_CONTAINER_HANDLE, uint, const(RFC_NUM)*, uint, out RFC_ERROR_INFO);
602 RFC_RC RfcSetString(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(SAP_UC)*, uint, out RFC_ERROR_INFO);
603 RFC_RC RfcSetStringByIndex(DATA_CONTAINER_HANDLE, uint, const(SAP_UC)*, uint, out RFC_ERROR_INFO);
604 RFC_RC RfcSetDate(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_DATE, out RFC_ERROR_INFO);
605 RFC_RC RfcSetDateByIndex(DATA_CONTAINER_HANDLE, uint, RFC_DATE, out RFC_ERROR_INFO);
606 RFC_RC RfcSetTime(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_TIME, out RFC_ERROR_INFO);
607 RFC_RC RfcSetTimeByIndex(DATA_CONTAINER_HANDLE, uint, RFC_TIME, out RFC_ERROR_INFO);
608 RFC_RC RfcSetBytes(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(SAP_RAW)*, uint, out RFC_ERROR_INFO);
609 RFC_RC RfcSetBytesByIndex(DATA_CONTAINER_HANDLE, uint, const(SAP_RAW)*, uint, out RFC_ERROR_INFO);
610 RFC_RC RfcSetXString(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(SAP_RAW)*, uint, out RFC_ERROR_INFO);
611 RFC_RC RfcSetXStringByIndex(DATA_CONTAINER_HANDLE, uint, const(SAP_RAW)*, uint, out RFC_ERROR_INFO);
612 RFC_RC RfcSetInt(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_INT, out RFC_ERROR_INFO);
613 RFC_RC RfcSetIntByIndex(DATA_CONTAINER_HANDLE, uint, RFC_INT, out RFC_ERROR_INFO);
614 RFC_RC RfcSetInt1(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_INT1, out RFC_ERROR_INFO);
615 RFC_RC RfcSetInt1ByIndex(DATA_CONTAINER_HANDLE, uint, RFC_INT1, out RFC_ERROR_INFO);
616 RFC_RC RfcSetInt2(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_INT2, out RFC_ERROR_INFO);
617 RFC_RC RfcSetInt2ByIndex(DATA_CONTAINER_HANDLE, uint, RFC_INT2, out RFC_ERROR_INFO);
618 version(sapnwrfc_sdk_750)
619 {
620 RFC_RC RfcSetInt8(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_INT8, out RFC_ERROR_INFO);
621 RFC_RC RfcSetInt8ByIndex(DATA_CONTAINER_HANDLE, uint, RFC_INT8, out RFC_ERROR_INFO);
622 }
623 RFC_RC RfcSetFloat(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_FLOAT, out RFC_ERROR_INFO);
624 RFC_RC RfcSetFloatByIndex(DATA_CONTAINER_HANDLE, uint, RFC_FLOAT, out RFC_ERROR_INFO);
625 RFC_RC RfcSetDecF16(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_DECF16, out RFC_ERROR_INFO);
626 RFC_RC RfcSetDecF16ByIndex(DATA_CONTAINER_HANDLE, uint, RFC_DECF16, out RFC_ERROR_INFO);
627 RFC_RC RfcSetDecF34(DATA_CONTAINER_HANDLE, const(SAP_UC)*, RFC_DECF34, out RFC_ERROR_INFO);
628 RFC_RC RfcSetDecF34ByIndex(DATA_CONTAINER_HANDLE, uint, RFC_DECF34, out RFC_ERROR_INFO);
629 RFC_RC RfcSetStructure(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(RFC_STRUCTURE_HANDLE), out RFC_ERROR_INFO);
630 RFC_RC RfcSetStructureByIndex(DATA_CONTAINER_HANDLE, uint, const(RFC_STRUCTURE_HANDLE), out RFC_ERROR_INFO);
631 RFC_RC RfcSetTable(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(RFC_TABLE_HANDLE), out RFC_ERROR_INFO);
632 RFC_RC RfcSetTableByIndex(DATA_CONTAINER_HANDLE, uint, const(RFC_TABLE_HANDLE), out RFC_ERROR_INFO);
633 RFC_RC RfcSetAbapObject(DATA_CONTAINER_HANDLE, const(SAP_UC)*, const(RFC_ABAP_OBJECT_HANDLE), out RFC_ERROR_INFO);
634 RFC_RC RfcSetAbapObjectByIndex(DATA_CONTAINER_HANDLE, uint, const(RFC_ABAP_OBJECT_HANDLE), out RFC_ERROR_INFO);
635 RFC_ABAP_OBJECT_HANDLE RfcGetAbapClassException(RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
636 RFC_RC RfcSetAbapClassException(RFC_FUNCTION_HANDLE, RFC_ABAP_OBJECT_HANDLE, const(SAP_UC)*, out RFC_ERROR_INFO);
637 RFC_FUNCTION_DESC_HANDLE RfcDescribeFunction(RFC_FUNCTION_HANDLE, out RFC_ERROR_INFO);
638 RFC_TYPE_DESC_HANDLE RfcDescribeType(DATA_CONTAINER_HANDLE, out RFC_ERROR_INFO);
639 
640 RFC_FUNCTION_DESC_HANDLE RfcGetFunctionDesc(RFC_CONNECTION_HANDLE, const(SAP_UC)*, out RFC_ERROR_INFO);
641 RFC_FUNCTION_DESC_HANDLE RfcGetCachedFunctionDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
642 RFC_RC RfcAddFunctionDesc(const(SAP_UC)*, RFC_FUNCTION_DESC_HANDLE, out RFC_ERROR_INFO);
643 RFC_RC RfcRemoveFunctionDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
644 RFC_TYPE_DESC_HANDLE RfcGetTypeDesc(RFC_CONNECTION_HANDLE, const(SAP_UC)*, out RFC_ERROR_INFO);
645 RFC_TYPE_DESC_HANDLE RfcGetCachedTypeDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
646 RFC_RC RfcAddTypeDesc(const(SAP_UC)*, RFC_TYPE_DESC_HANDLE, out RFC_ERROR_INFO*);
647 RFC_RC RfcRemoveTypeDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
648 RFC_CLASS_DESC_HANDLE RfcGetClassDesc(RFC_CONNECTION_HANDLE, const(SAP_UC)*, out RFC_ERROR_INFO);
649 RFC_CLASS_DESC_HANDLE RfcGetCachedClassDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
650 RFC_CLASS_DESC_HANDLE RfcDescribeAbapObject(RFC_ABAP_OBJECT_HANDLE, out RFC_ERROR_INFO);
651 RFC_RC RfcAddClassDesc(const(SAP_UC)*, RFC_CLASS_DESC_HANDLE, out RFC_ERROR_INFO);
652 RFC_RC RfcRemoveClassDesc(const(SAP_UC)*, const(SAP_UC)*, out RFC_ERROR_INFO);
653 version(sapnwrfc_sdk_750)
654 {
655 RFC_RC RfcClearRepository(const(SAP_UC)*, out RFC_ERROR_INFO);
656 }
657 RFC_TYPE_DESC_HANDLE RfcCreateTypeDesc(const(SAP_UC)*, out RFC_ERROR_INFO);
658 RFC_RC RfcAddTypeField(RFC_TYPE_DESC_HANDLE, const(RFC_FIELD_DESC)*, out RFC_ERROR_INFO);
659 RFC_RC RfcSetTypeLength(RFC_TYPE_DESC_HANDLE, uint, uint, out RFC_ERROR_INFO);
660 RFC_RC RfcGetTypeName(RFC_TYPE_DESC_HANDLE, out RFC_ABAP_NAME, out RFC_ERROR_INFO);
661 RFC_RC RfcGetFieldCount(RFC_TYPE_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
662 RFC_RC RfcGetFieldDescByIndex(RFC_TYPE_DESC_HANDLE, uint, out RFC_FIELD_DESC, out RFC_ERROR_INFO);
663 RFC_RC RfcGetFieldDescByName(RFC_TYPE_DESC_HANDLE, const(SAP_UC)*, out RFC_FIELD_DESC, out RFC_ERROR_INFO);
664 RFC_RC RfcGetTypeLength(RFC_TYPE_DESC_HANDLE, out uint, out uint, out RFC_ERROR_INFO);
665 RFC_RC RfcDestroyTypeDesc(RFC_TYPE_DESC_HANDLE, out RFC_ERROR_INFO);
666 
667 RFC_FUNCTION_DESC_HANDLE RfcCreateFunctionDesc(const(SAP_UC)*, out RFC_ERROR_INFO);
668 RFC_RC RfcGetFunctionName(RFC_FUNCTION_DESC_HANDLE, out RFC_ABAP_NAME, out RFC_ERROR_INFO);
669 RFC_RC RfcAddParameter(RFC_FUNCTION_DESC_HANDLE, RFC_PARAMETER_DESC*, out RFC_ERROR_INFO);
670 RFC_RC RfcGetParameterCount(RFC_FUNCTION_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
671 RFC_RC RfcGetParameterDescByIndex(RFC_FUNCTION_DESC_HANDLE, uint, out RFC_PARAMETER_DESC, out RFC_ERROR_INFO);
672 RFC_RC RfcGetParameterDescByName(RFC_FUNCTION_DESC_HANDLE, const(SAP_UC)*, out RFC_PARAMETER_DESC, out RFC_ERROR_INFO);
673 RFC_RC RfcAddException(RFC_FUNCTION_DESC_HANDLE, RFC_EXCEPTION_DESC*, out RFC_ERROR_INFO);
674 RFC_RC RfcGetExceptionCount(RFC_FUNCTION_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
675 RFC_RC RfcGetExceptionDescByIndex(RFC_FUNCTION_DESC_HANDLE, uint, out RFC_EXCEPTION_DESC, out RFC_ERROR_INFO);
676 RFC_RC RfcGetExceptionDescByName(RFC_FUNCTION_DESC_HANDLE, const(SAP_UC)*, out RFC_EXCEPTION_DESC, out RFC_ERROR_INFO);
677 RFC_RC RfcEnableBASXML(RFC_FUNCTION_DESC_HANDLE, out RFC_ERROR_INFO);
678 RFC_RC RfcIsBASXMLSupported(RFC_FUNCTION_DESC_HANDLE, out int, out RFC_ERROR_INFO);
679 RFC_RC RfcDestroyFunctionDesc(RFC_FUNCTION_DESC_HANDLE, out RFC_ERROR_INFO);
680 RFC_RC RfcEnableAbapClassException(RFC_FUNCTION_HANDLE, RFC_CONNECTION_HANDLE, out RFC_ERROR_INFO);
681 RFC_RC RfcIsAbapClassExceptionEnabled(RFC_FUNCTION_HANDLE, out int, out RFC_ERROR_INFO);
682 
683 RFC_CLASS_DESC_HANDLE RfcCreateClassDesc(const(SAP_UC)*, out RFC_ERROR_INFO);
684 RFC_RC RfcGetClassName(RFC_CLASS_DESC_HANDLE, out RFC_ABAP_NAME, out RFC_ERROR_INFO);
685 RFC_RC RfcAddClassAttribute(RFC_CLASS_DESC_HANDLE, RFC_CLASS_ATTRIBUTE_DESC*, out RFC_ERROR_INFO);
686 RFC_RC RfcGetClassAttributesCount(RFC_CLASS_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
687 RFC_RC RfcGetClassAttributeDescByIndex(RFC_CLASS_DESC_HANDLE, uint, out RFC_CLASS_ATTRIBUTE_DESC, out RFC_ERROR_INFO);
688 RFC_RC RfcGetClassAttributeDescByName(RFC_CLASS_DESC_HANDLE, const(SAP_UC)*, out RFC_CLASS_ATTRIBUTE_DESC, out RFC_ERROR_INFO);
689 RFC_RC RfcGetParentClassByIndex(RFC_CLASS_DESC_HANDLE, RFC_CLASS_NAME, uint, out RFC_ERROR_INFO);
690 RFC_RC RfcGetParentClassesCount(RFC_CLASS_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
691 RFC_RC RfcAddParentClass(RFC_CLASS_DESC_HANDLE, RFC_CLASS_NAME, out RFC_ERROR_INFO);
692 RFC_RC RfcGetImplementedInterfaceByIndex(RFC_CLASS_DESC_HANDLE, uint, RFC_CLASS_NAME, out RFC_ERROR_INFO);
693 RFC_RC RfcGetImplementedInterfacesCount(RFC_CLASS_DESC_HANDLE, out uint, out RFC_ERROR_INFO);
694 RFC_RC RfcAddImplementedInterface(RFC_CLASS_DESC_HANDLE, RFC_CLASS_NAME, out RFC_ERROR_INFO);
695 RFC_RC RfcDestroyClassDesc(RFC_CLASS_DESC_HANDLE, out RFC_ERROR_INFO);
696 
697 alias	RFC_METADATA_QUERY_RESULT_HANDLE = void*;
698 
699 struct RFC_METADATA_QUERY_RESULT_ENTRY
700 {
701     RFC_ABAP_NAME name;
702     SAP_UC[512] errorMessage;
703 }
704 
705 enum RFC_METADATA_OBJ_TYPE
706 {
707     RFC_METADATA_FUNCTION,
708     RFC_METADATA_TYPE,
709     RFC_METADATA_CLASS
710 }
711 	
712 RFC_METADATA_QUERY_RESULT_HANDLE RfcCreateMetadataQueryResult(out RFC_ERROR_INFO);
713 RFC_RC RfcDestroyMetadataQueryResult(RFC_METADATA_QUERY_RESULT_HANDLE, out RFC_ERROR_INFO);
714 RFC_RC RfcDescribeMetadataQueryResult(RFC_METADATA_QUERY_RESULT_HANDLE, RFC_METADATA_OBJ_TYPE, uint*, uint*, out RFC_ERROR_INFO);
715 RFC_RC RfcGetMetadataQueryFailedEntry(RFC_METADATA_QUERY_RESULT_HANDLE, RFC_METADATA_OBJ_TYPE, uint, RFC_METADATA_QUERY_RESULT_ENTRY*, out RFC_ERROR_INFO);
716 RFC_RC RfcGetMetadataQuerySucceededEntry(RFC_METADATA_QUERY_RESULT_HANDLE, RFC_METADATA_OBJ_TYPE, uint, ref RFC_ABAP_NAME, out RFC_ERROR_INFO);
717 RFC_RC RfcMetadataBatchQuery(RFC_CONNECTION_HANDLE, SAP_UC**, uint, SAP_UC**, uint, SAP_UC**, uint, RFC_METADATA_QUERY_RESULT_HANDLE, out RFC_ERROR_INFO);