1

使用 COM Data Control 从 Siebel 获取附件。

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# 编写的,我们在客户端运行此代码,该客户端无权访问服务器的临时目录。

谢谢卡勒菲尔

4

2 回答 2

1

由于您是通过 datacontrol 连接到 http,这相当于连接到瘦客户端。如果您通过专用客户端连接,您可以将文件直接保存到您的系统中。

以上 3 种解决方案都可以,但如果附件大小不是问题,我建议您可以通过电子邮件发送文件。

于 2011-12-14T07:23:43.120 回答
0

在与一些从事 Siebel 工作的人交谈后,我发现使用 COM API 无法将文件传输到本地计算机。

选项:
1. 公开临时文件夹并获取文件。
2. 让您的 Siebel 团队公开 Web 服务以获取文件。
3. 请您的 Siebel 团队提供 REST 类型的链接以下载文件。

于 2011-10-19T17:20:16.480 回答