Передача файлов управления данными Siebel COM

Получите вложение от Siebel с помощью COM Data Control.

SiebelBusObjectInterfaces.SiebelDataControl sblDataControl = new SiebelBusObjectInterfaces.SiebelDataControl();
bool success = sblDataControl.Login("host=\"siebel.TCPIP.None.None://bla bla bla /EAIObjMgr_enu\"", "karephul", getPassword());
string errorCode = sblDataControl.GetLastErrCode() + " " + sblDataControl.GetLastErrText();
SiebelBusObjectInterfaces.SiebelBusObject oBO;
SiebelBusObjectInterfaces.SiebelBusComp serviceRequest;
SiebelBusObjectInterfaces.SiebelBusComp actionAttachment;

oBO = sblDataControl.GetBusObject("Action");

actionAttachment = oBO.GetBusComp("Action Attachment");
success = actionAttachment.ActivateField("Activity Id");
success = actionAttachment.ActivateField("ActivityFileName");

success = actionAttachment.ClearToQuery();
success = actionAttachment.SetSearchSpec("Activity Id", "3-QOUKDD"); // hard code for now.
success = actionAttachment.SetSearchSpec("ActivityFileExt", "txt");
success = actionAttachment.ExecuteQuery(1); // ForwardOnly = 1, I guess;

if (actionAttachment.FirstRecord())
{
  string fileName = actionAttachment.GetFieldValue("ActivityFileName");
  string fileLoc = actionAttachment.InvokeMethod("GetFile", "ActivityFileName");
}

Этот фрагмент кода ниже получает соответствующий файл и сохраняет его во временной папке сервера и дает мне полный путь.

string fileLoc = actionAttachment.InvokeMethod("GetFile", "ActivityFileName");

Есть ли способ получить файл на мою локальную машину?

Контекст:

Этот код написан на C#, и мы запускаем этот код на стороне клиента, у которого нет доступа к временному каталогу сервера.

Спасибо, Карефул.


person karephul    schedule 17.10.2011    source источник
comment
Обратите внимание, что в SO вам не нужно использовать блоки <pre><code>. Просто отступ кода четыре пробела.   -  person    schedule 18.10.2011


Ответы (2)


Поскольку вы подключаетесь через контроль данных к http, это эквивалентно подключению к тонкому клиенту. Если вы подключаетесь через специальный клиент, вы можете сохранить файл прямо в вашей системе.

Приведенные выше 3 решения будут работать, но я предлагаю вам отправить файл по электронной почте, если размер вложения не является проблемой.

person Max    schedule 14.12.2011

Поговорив с некоторыми ребятами, работающими над Siebel, я обнаружил, что с COM API я не могу передать файл на локальный компьютер.

Варианты:
1. Сделайте временную папку общедоступной и получите файл.
2. Попросите команду Siebel предоставить доступ к веб-службе для получения файла.
3. Попросите команду Siebel предоставить ссылку типа REST для загрузки файла.

person karephul    schedule 19.10.2011