Ниже приведен пример использования операции SetEtl для добавления в задачу ETL объекта «Копирование данных». В запросе передается моникёр открытого экземпляра задачи ETL и параметры создания нового объекта: тип создаваемого объекта и его специфические настройки. В ответе приходит обновленная информация об объектах задачи ETL.
{
"SetEtl" :
{
"tEtl" :
{
"id" : "S1!M!S!L1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"objects" : "Add",
"object" :
{
"settings" : "true"
}
},
"meta" :
{
"objects" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"id" : "COPY_TABLE",
"vis" : "true",
"type" : "PlainDataCopy",
"settings" :
{
"plainDataCopy" :
{
"provider" :
{
"obDesc" :
{
"@isShortcut" : "false",
"@isLink" : "false",
"@hf" : "false",
"i" : "DATA_INDICATORS",
"n" : "Таблица",
"k" : "37885",
"c" : "769",
"p" : "4294967295",
"h" : "false"
}
},
"consumer" :
{
"obDesc" :
{
"@isShortcut" : "false",
"@isLink" : "false",
"@hf" : "false",
"i" : "BACKUP_DATA",
"n" : "Таблица",
"k" : "37886",
"c" : "769",
"p" : "4294967295",
"h" : "false"
}
},
"autoLink" : "true",
"clearConsumer" : "true"
}
}
}
]
}
}
},
"metaGet" :
{
"obInst" : "true",
"objects" : "Get"
}
}
}
}
{
"SetEtlResult" :
{
"id" :
{
"id" : "S1!M!S!L1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@fullUrl" : "\/",
"@isShortcut" : "0",
"@isLink" : "0",
"i" : "ETL_INDICATOR",
"n" : "Задача ETL для загрузки показателей",
"k" : "7012",
"c" : "4097",
"p" : "7011",
"h" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "1",
"objects" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "PLAINDATAEXCELPROVIDER1",
"n" : "Импорт из Excel (97-2003)1",
"vis" : "1",
"type" : "PlainDataExcelProvider",
"settings" : ""
},
{
"k" : "3",
"id" : "PLAINDATAMETABASECONSUMER1",
"n" : "Приемник репозитория1",
"vis" : "1",
"type" : "PlainDataMetabaseConsumer",
"settings" : ""
},
{
"k" : "5",
"id" : "PLAINDATACOPY1",
"n" : "Копирование данных1",
"vis" : "1",
"type" : "PlainDataCopy",
"settings" :
{
"plainDataCopy" :
{
"provider" : "",
"consumer" :
{
"obDesc" :
{
"@fullUrl" : "\/",
"@isShortcut" : "0",
"@isLink" : "0",
"i" : "T_INDICATOR",
"n" : "Таблица",
"k" : "7013",
"c" : "769",
"p" : "7011",
"h" : "0"
},
"keyFieldNames" : ""
},
"clearConsumer" : "1",
"commitCount" : "1024",
"actionOnProblem" : "DiscardInvalidRecords"
}
}
},
{
"k" : "7",
"id" : "COPY_TABLE",
"n" : "Копирование данных2",
"vis" : "1",
"type" : "PlainDataCopy",
"settings" :
{
"plainDataCopy" :
{
"provider" :
{
"obDesc" :
{
"@fullUrl" : "\/",
"@isShortcut" : "0",
"@isLink" : "0",
"i" : "DATA_INDICATORS",
"n" : "Таблица",
"k" : "37885",
"c" : "769",
"p" : "7011",
"h" : "0"
}
},
"consumer" :
{
"obDesc" :
{
"@fullUrl" : "\/",
"@isShortcut" : "0",
"@isLink" : "0",
"i" : "BACKUP_DATA",
"n" : "Таблица",
"k" : "37886",
"c" : "769",
"p" : "7011",
"h" : "0"
},
"keyFieldNames" : ""
},
"clearConsumer" : "1",
"commitCount" : "1024",
"actionOnProblem" : "Abort"
}
}
}
]
}
}
}
}
}
public static SetEtlResult AddETLObject(MbId mb, EtlId moniker)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSet = new SetEtl()
{
tArg = new SetEtlArg()
{
pattern = new EtlMdPattern()
{
objects = ListOperation.Add,
@object = new EtlObjectPattern()
{
settings = true
}
},
meta = new EtlMd()
{
objects = new EtlObjects()
{
its = new EtlObject[]
{
new EtlObject()
{
//Базовые свойства
id = "COPY_TABLE",
k = 0,
type = EtlObjectType.PlainDataCopy,
vis = true,
//Настройка объекта копирования данных
settings = new EtlObjectSettings()
{
plainDataCopy = new EtlPlainDataCopy()
{
autoLink = true,
clearConsumer = true,
//Источник
provider = new DtProvider()
{
obDesc = FindObjectById(mb, "DATA_INDICATORS")
},
//Приемник
consumer = new DtConsumer()
{
obDesc = FindObjectById(mb, "BACKUP_DATA")
}
}
}
}
}
}
},
metaGet = new EtlMdPattern()
{
objects = ListOperation.Get } }, tEtl = moniker }; //Добавление объекта в задачу ETL var result = somClient.SetEtl(tSet); return result; }
См. также:
SOAP