Добрый день.
Коллеги, в попытке переложить на VBA работу связки 2-х ФМ (EAM_TASKLIST_CREATE, EAM_TASKLIST_POST), столкнулся с проблемой.
Вызов второго ФМ возвращает false, и соответственно commit я не могу запустить.
В se37 тестовая последовательность отрабатывает. Инструкция ТОРО создается.
Из vba нет, хотя входные данные идентичны.
Более того. В отладке по внешней точке прерывания данные фм так же корректно отрабатывает, но при возврате в vba имеем false?
Листинг прилагаю.
Что может мешать?Самое интересное, что в таблицу ET_RETURN тож ничего не пишется.
Code:
Sub Create_Instruction()
' Загрузка инструкций ТОРО
' Определение временных объектов
DefinitionObjects
' Инициализация временных объектов
Set sapConnection = objBAPIControl.Connection
' Проверка соединения с системой SAP
' If ConnectToSap(sapConnection) <> True Then
If ConnectToSap_e4d(sapConnection) <> True Then
MsgBox "Нет соединения с системой SAP"
Exit Sub
Else
' MsgBox "Есть соединение с системой SAP"
End If
' Определение вызываемых дистанционных модулей
Set objFM = objBAPIControl.Add("EAM_TASKLIST_CREATE")
Set objFM2 = objBAPIControl.Add("EAM_TASKLIST_POST")
Set t_header = objFM.Exports("IS_HEADER")
t_header(1) = "A" 'Тип технологической карты
t_header(2) = "00000007" 'Ключ группы технологических карт
t_header(3) = "4" 'Счетчик группы технологических карт
t_header(8) = 4 'Использование техкарты
t_header(9) = "3000" 'Завод
t_header(10) = 4 'Статус техкарты
t_header(12) = "Тест создания макросом" 'Краткий текст техкарты
't_header(1, 15) ="" 'Завод, планирующий ТОРО
't_header(1, 21) ="" 'Рабочее место
't_header(1, 22) ="" 'Завод
Set t_oper = objFM.Tables("IT_OPERATIONS")
t_oper.AppendRow
t_oper(1, 1) = "A" 'Тип технологической карты
t_oper(1, 2) = "00000007" 'Ключ группы технологических карт
t_oper(1, 3) = "4" 'Счетчик группы технологических карт
t_oper(1, 4) = "00000000" 'Номер узла технологической карты
t_oper(1, 5) = "0010" 'Номер операции
t_oper(1, 7) = "PM01" 'Управляющий ключ
t_oper(1, 8) = "3000-OPM" 'Рабочее место
t_oper(1, 11) = "TEST" 'Краткий текст к операции
't_oper(1, 42) = 8 'Работа, относящаяся к операции
't_oper(1, 43) = "Ч" 'Единица работы
If objFM.call Then
'EAM_TASKLIST_POST
objFM2.Exports("IV_PLNTY") = "A"
objFM2.Exports("IV_PLNNR") = "00000007"
If objFM2.call Then
Set objFM3 = objBAPIControl.Add("BAPI_TRANSACTION_COMMIT")
objFM3.call
End If
End If
End Sub