Я пытаюсь прочитать детали списка задач из функции SAP "EAM_TASKLIST_GET_DETAIL", но я получаю сообщение об ошибке "Список задач A 000000001 не иерархический".
Из моего исследования проблемы Я вижу, это потому, что таблицы иерархии запрашиваются в вызове (строка 91 - 93 в исходном коде BAPI ниже)
* Hierarchy
IF et_hdr_hierarchy IS REQUESTED AND et_opr_hierarchy IS REQUESTED.
lv_obj_sel_htl = abap_true.
ENDIF.
Если я отлаживаю функцию из SAP, я могу добавить точку останова после оператора if сбросьте флаг, и он вернет данные OK.
Моя проблема в том, что я не могу понять, как не запрашивать таблицы "et_hdr_hierarchy" и "et_opr_hierarchy" из C#.
Изнутри C# Я попытался установить неактивные параметры таблицы (в соответствии с документацией, которая у меня есть, это должно работать):
rfcFunction.SetParameterActive("ET_HDR_HIERARCHY", false);
rfcFunction.SetParameterActive("ET_OPR_HIERARCHY", false);
Я также создал новую структуру, которая не содержат следующие таблицы:
// Get the default function metadata
var sourceMetaData = repo.GetFunctionMetadata("EAM_TASKLIST_GET_DETAIL");
// Create new metadata object
RfcFunctionMetadata metaData = new RfcFunctionMetadata("EAM_TASKLIST_GET_DETAIL");
// Add required tables
metaData.AddParameter(sourceMetaData["ET_HEADERS"]);
metaData.AddParameter(sourceMetaData["ET_RETURN"]);
// Import params
metaData.AddParameter(sourceMetaData["IV_PLNTY"]);
metaData.AddParameter(sourceMetaData["IV_PLNNR"]);
// Create function from meta data
IRfcFunction rfcFunction = metaData.CreateFunction();
// Execute
rfcFunction.Invoke(destination);
Но оба примера по-прежнему возвращают одну и ту же ошибку «Список задач 000000001 не иерархическая» ошибка.
Как примечание, мы должны использовать стандарт d BAPI функционирует для нашего решения, поэтому создание новой функции и изменение исходного кода не вариант.
Может кто-нибудь помочь или дать мне какое-то руководство по этому вопросу?