Прошу прощения, если на этот вопрос уже был дан ответ, но я провел некоторое исследование и еще не нашел что-то, что имеет смысл.
Я создаю компонент сценария SSIS, который подключается к веб-службе и должен выгружать данные в таблицу SQL. Хотя работа над компонентом сценария все еще продолжается, в настоящее время я получаю следующую ошибку: в System.Collections.Generic.Dictionary`2.get_Item (ключ TKey) в ScriptMain.CreateNewOutputRows () в UserComponent.PrimeOutput (выходы Int32, Int32 [] OutputIDs, PipelineBuffer [] Buffers, OutputNameMap OutputMap) в Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PrimeOutput (выходы Int32, Int32 [] outputID, буферы PipelineBuffer [])
Вот ядро кода, который я использую для компонента сценария:
public Dictionary<string, int> agentStatisticsColumns = new Dictionary<string, int>();
public override void CreateNewOutputRows()
{
//setSessionParameters sessionParams = new setSessionParameters();
//sessionParams.viewSettings = new viewSettings
//{
// appType = "Custom",
// forceLogoutSession = false,
// idleTimeOut = 600,
// rollingPeriod = rollingPeriod.Minutes5,
// shiftStart = 28800000,
// statisticsRange = statisticsRange.CurrentDay,
// timeZone = -25200000
//};
getStatistics statistics = new getStatistics();
statistics.statisticTypeSpecified = true;
statistics.statisticType = statisticType.AgentStatistics;
statistics.columnNames = null;
getStatisticsResponse resp = new getStatisticsResponse();
statistics statistics_return = resp.@return;
int usernameIdx = agentStatisticsColumns["Username"];
foreach (row r in statistics_return.rows)
{
Output0Buffer.Username = r.values[usernameIdx];
//string log = r.values[usernameIdx];
//Output0Buffer.Username = log;
}
}
Любая помощь будет принята с благодарностью!
agentStatisticsColumns
. Что неудивительно, поскольку я не вижу, чтобы он загружался в ваш код. Означает ли это представление данных, поступающих от веб-службы? - person Nick.McDermaid   schedule 15.08.2017agentStatisticsColumns
ничего не содержит. В него нет кода, который ничего загружает. Вам нужен код, который используетgetStatisticsResponse
(в котором что-то есть), чтобы каким-то образом заполнитьagentStatisticsColumns
. Было бы полезно, если бы вы могли проверять содержимоеgetStatisticsResponse
во время выполнения. Не уверен, что вы можете сделать это в редакторе сценариев SSIS. - person Nick.McDermaid   schedule 15.08.2017