inputDataSource = getDataSource(jsonParam['urlSource'])
sourceConnection = inputDataSource.Connect(Document, DataSourcePromptMode.RequiredOnly)
sourceRowReader = sourceConnection.ExecuteQuery2()
targetTable = Document.Data.Tables[jsonParam['dataTableTarget']]
ignoredColumnsNames = jsonParam['ignoredColumns']
mappings = jsonParam['mappings']
rowSourceColumn = jsonParam['rowSourceColumn']
rowSourceValue = jsonParam['rowSourceValue']
originalRowSourceValue = jsonParam['originalRowSourceValue']
if(rowSourceValue == None):
    rowSourceValue = jsonParam['urlSource']
if(originalRowSourceValue == None):
    originalRowSourceValue = jsonParam['dataTableTarget']
addRowsSettings = AddRowsSettings(targetTable, inputDataSource)
if rowSourceColumn != None:
    if not targetTable.Columns.Contains(rowSourceColumn):
        addRowsSettings = addRowsSettings.WithCreatedRowSourceColumn(rowSourceColumn, rowSourceValue, originalRowSourceValue)
    else:
        addRowsSettings = addRowsSettings.WithExistingRowSourceColumn(rowSourceColumn, rowSourceValue)
if len(ignoredColumnsNames) > 0:
    ignoredColumns = []
    for ignoredColumnName in ignoredColumnsNames:
        ignoredColumns.append(DataColumnSignature(sourceRowReader.Columns[ignoredColumnName]))
    addRowsSettings = addRowsSettings.WithIgnoredColumns(ignoredColumns)
if len(mappings) > 0:
    newMappings = {}
    for mapping in mappings:
        leftColumn = DataColumnSignature(targetTable.Columns[mapping['targetColumn']])
        rightColumn = DataColumnSignature(sourceRowReader.Columns[mapping['sourceColumn']])
        newMappings[leftColumn] = rightColumn
    addRowsSettings = addRowsSettings.WithMap(newMappings)
targetTable.AddRows(inputDataSource,addRowsSettings)