Передача файлов Siebel COM Data Control - PullRequest
1 голос
/ 17 октября 2011

Получить вложение от 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 #, и мы запускаем этот код на стороне клиента, который не имеет доступа к временному каталогу сервера.

Спасибо Karephul

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

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

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

0 голосов
/ 19 октября 2011

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

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

...