с таблицами разобрались. теперь другая проблема.
завел в RFC импортный параметр I_SRU типа TLINE
Code:
FUNCTION ZDDK_LOGIN .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_LOGIN) TYPE STRING
*" VALUE(I_PASSWORD) TYPE STRING
*" VALUE(I_STRU) TYPE TLINE
*" EXPORTING
*" VALUE(E_TOKEN) TYPE STRING
*" VALUE(ET_ORGS) TYPE ZDDK_ORG_T
*"----------------------------------------------------------------------
ENDFUNCTION.
на стороне сервера прописал его в репозитарий
Code:
RfcStructureMetadata I_STRU = new RfcStructureMetadata("I_STRU");
I_STRU.AddField(new RfcFieldMetadata("TDFORMAT", RfcDataType.CHAR, 2, 0, 0, 0));
I_STRU.AddField(new RfcFieldMetadata("TDLINE", RfcDataType.CHAR, 132, 0, 0, 0));
fmd.AddParameter(new RfcParameterMetadata("I_STRU", I_STRU, RfcDirection.IMPORT, false));
и в самой функции
Code:
IRfcStructure I_STRU = function.GetStructure("I_STRU");
string tdline = I_STRU.GetValue("TDLINE").ToString();
все работает.
теперь хочу чтобы сервер вернул в RFC точно такую же структуру. прописал экспортный параметр E_STRU
Code:
FUNCTION ZDDK_LOGIN .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(I_LOGIN) TYPE STRING
*" VALUE(I_PASSWORD) TYPE STRING
*" VALUE(I_STRU) TYPE TLINE
*" EXPORTING
*" VALUE(E_TOKEN) TYPE STRING
*" VALUE(ET_ORGS) TYPE ZDDK_ORG_T
*" VALUE(E_STRU) TYPE TLINE
*"----------------------------------------------------------------------
ENDFUNCTION.
прописал на стороне сервера в репозитарий
Code:
RfcStructureMetadata E_STRU = new RfcStructureMetadata("E_STRU");
E_STRU.AddField(new RfcFieldMetadata("TDFORMAT", RfcDataType.CHAR, 2, 0, 0, 0));
E_STRU.AddField(new RfcFieldMetadata("TDLINE", RfcDataType.CHAR, 132, 0, 0, 0));
fmd.AddParameter(new RfcParameterMetadata("E_STRU", E_STRU, RfcDirection.EXPORT, false));
в самой функции пока с ней никак не работаю.
запускаю RFC и опять получаю дамп с ошибкой "Индекс находился вне границ массива.".
не понимаю... тут-то что может быть?