Сбой действия Azure ForEach: функция length ожидает, что ее параметр будет массивом или строкой. Предоставленное значение имеет тип «Целое число»

Как преобразовать мое значение в целое число?

Здесь добавлен контекст, если это полезно: Мой конвейер должен получить количество столбцов CSV-файла BLOB-объектов и передать это количество действию ForEach. Действие переключения встроено в ForEach, но конвейер дает сбой в ForEach с этой ошибкой: «Функция «длина» ожидает, что ее параметр будет массивом или строкой. Предоставленное значение имеет тип «Целое число».

Вывод метаданных:

{
    "columnCount": 52,
    "effectiveIntegrationRuntime": "AutoResolveIntegrationRuntime (Central US)",
    "executionDuration": 1,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "PipelineActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.016666666666666666,
                "unit": "Hours"
            }
        ]
    }
}

Для каждого ввода:

{
    "items": "@activity('Get Metadata1').output.columnCount",
    "activities": [
        {
            "name": "Switch1",
            "type": "Switch",
            "dependsOn": [],
            "userProperties": [],
            "typeProperties": {
                "on": "@item()",
                "cases": [
                    {
                        "value": "44",
                        "activities": [
                            {
                                "name": "Copy data1_copy1",
                                "type": "Copy",
                                "dependsOn": [],
                                "policy": {
                                    "timeout": "0.12:00:00",
                                    "retry": 0,
                                    "retryIntervalInSeconds": 30,
                                    "secureOutput": false,
                                    "secureInput": false
                                },
                                "userProperties": [],
                                "typeProperties": {
                                    "source": {
                                        "type": "DelimitedTextSource",
                                        "storeSettings": {
                                            "type": "AzureBlobStorageReadSettings",
                                            "recursive": false,
                                            "enablePartitionDiscovery": false
                                        },
                                        "formatSettings": {
                                            "type": "DelimitedTextReadSettings"
                                        }
                                    },
                                    "sink": {
                                        "type": "AzureSqlSink",
                                        "writeBehavior": "insert",
                                        "sqlWriterUseTableLock": false
                                    },
                                    "enableStaging": false,
                                    "translator": {
                                        "type": "TabularTranslator",
                                        "typeConversion": true,
                                        "typeConversionSettings": {
                                            "allowDataTruncation": true,
                                            "treatBooleanAsNumber": false
                                        }
                                    }
                                },
                                "inputs": [
                                    {
                                        "referenceName": "ten_eighty_split_CSV",
                                        "type": "DatasetReference",
                                        "parameters": {
                                            "FileName": "@pipeline().parameters.SourceFile"
                                        }
                                    }
                                ],
                                "outputs": [
                                    {
                                        "referenceName": "ten_eighty_split_10_15_SQL",
                                        "type": "DatasetReference",
                                        "parameters": {}
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "value": "52",
                        "activities": [
                            {
                                "name": "Copy data2_copy1",
                                "type": "Copy",
                                "dependsOn": [],
                                "policy": {
                                    "timeout": "0.12:00:00",
                                    "retry": 0,
                                    "retryIntervalInSeconds": 30,
                                    "secureOutput": false,
                                    "secureInput": false
                                },
                                "userProperties": [],
                                "typeProperties": {
                                    "source": {
                                        "type": "DelimitedTextSource",
                                        "storeSettings": {
                                            "type": "AzureBlobStorageReadSettings",
                                            "recursive": false,
                                            "enablePartitionDiscovery": false
                                        },
                                        "formatSettings": {
                                            "type": "DelimitedTextReadSettings"
                                        }
                                    },
                                    "sink": {
                                        "type": "AzureSqlSink",
                                        "writeBehavior": "insert",
                                        "sqlWriterUseTableLock": false
                                    },
                                    "enableStaging": false,
                                    "translator": {
                                        "type": "TabularTranslator",
                                        "typeConversion": true,
                                        "typeConversionSettings": {
                                            "allowDataTruncation": true,
                                            "treatBooleanAsNumber": false
                                        }
                                    }
                                },
                                "inputs": [
                                    {
                                        "referenceName": "ten_eighty_split_CSV",
                                        "type": "DatasetReference",
                                        "parameters": {
                                            "FileName": "@pipeline().parameters.SourceFile"
                                        }
                                    }
                                ],
                                "outputs": [
                                    {
                                        "referenceName": "ten_eighty_split_15_20_SQL",
                                        "type": "DatasetReference",
                                        "parameters": {}
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "value": "60",
                        "activities": [
                            {
                                "name": "Copy data3_copy1",
                                "type": "Copy",
                                "dependsOn": [],
                                "policy": {
                                    "timeout": "0.12:00:00",
                                    "retry": 0,
                                    "retryIntervalInSeconds": 30,
                                    "secureOutput": false,
                                    "secureInput": false
                                },
                                "userProperties": [],
                                "typeProperties": {
                                    "source": {
                                        "type": "DelimitedTextSource",
                                        "storeSettings": {
                                            "type": "AzureBlobStorageReadSettings",
                                            "recursive": false,
                                            "enablePartitionDiscovery": false
                                        },
                                        "formatSettings": {
                                            "type": "DelimitedTextReadSettings"
                                        }
                                    },
                                    "sink": {
                                        "type": "AzureSqlSink",
                                        "writeBehavior": "insert",
                                        "sqlWriterUseTableLock": false
                                    },
                                    "enableStaging": false,
                                    "translator": {
                                        "type": "TabularTranslator",
                                        "typeConversion": true,
                                        "typeConversionSettings": {
                                            "allowDataTruncation": true,
                                            "treatBooleanAsNumber": false
                                        }
                                    }
                                },
                                "inputs": [
                                    {
                                        "referenceName": "ten_eighty_split_CSV",
                                        "type": "DatasetReference",
                                        "parameters": {
                                            "FileName": "@pipeline().parameters.SourceFile"
                                        }
                                    }
                                ],
                                "outputs": [
                                    {
                                        "referenceName": "ten_eighty_split_25_30_SQL",
                                        "type": "DatasetReference",
                                        "parameters": {}
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "value": "68",
                        "activities": [
                            {
                                "name": "Copy data4_copy1",
                                "type": "Copy",
                                "dependsOn": [],
                                "policy": {
                                    "timeout": "0.12:00:00",
                                    "retry": 0,
                                    "retryIntervalInSeconds": 30,
                                    "secureOutput": false,
                                    "secureInput": false
                                },
                                "userProperties": [],
                                "typeProperties": {
                                    "source": {
                                        "type": "DelimitedTextSource",
                                        "storeSettings": {
                                            "type": "AzureBlobStorageReadSettings",
                                            "recursive": false,
                                            "enablePartitionDiscovery": false
                                        },
                                        "formatSettings": {
                                            "type": "DelimitedTextReadSettings"
                                        }
                                    },
                                    "sink": {
                                        "type": "AzureSqlSink",
                                        "writeBehavior": "insert",
                                        "sqlWriterUseTableLock": false
                                    },
                                    "enableStaging": false,
                                    "translator": {
                                        "type": "TabularTranslator",
                                        "typeConversion": true,
                                        "typeConversionSettings": {
                                            "allowDataTruncation": true,
                                            "treatBooleanAsNumber": false
                                        }
                                    }
                                },
                                "inputs": [
                                    {
                                        "referenceName": "ten_eighty_split_CSV",
                                        "type": "DatasetReference",
                                        "parameters": {
                                            "FileName": "@pipeline().parameters.SourceFile"
                                        }
                                    }
                                ],
                                "outputs": [
                                    {
                                        "referenceName": "ten_eighty_split_30_35_SQL",
                                        "type": "DatasetReference",
                                        "parameters": {}
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

Выход ForEach: {}

Не уверен, как удовлетворить эту ошибку. Спасибо!

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Тип сбоя: проблема с конфигурацией пользователя Подробности: функция length ожидает, что ее параметр будет массивом или строкой. Предоставленное значение имеет тип «Целое число».

Поскольку вы используете целочисленное значение (columnCount) в качестве входных данных для каждого действия, вы получаете эту ошибку. Если у вас есть массив значений и вы хотите повторить действие на основе каждого значения массива, вы можете использовать для каждого действия. В этом случае вы можете использовать операцию переключения регистра сразу после операции получения метаданных. В активности Switch выражение дается в фигурных скобках {...} .

Выражение: @{activity('Get Metadata1').output.columnCount}

Я попробовал это в своей среде и получил ту же ошибку, когда я даю выражение без фигурных скобок {..}. Когда добавлены {}, это сработало. Ниже приведены шаги.

  • Принимается действие Get MetaData, а количество столбцов принимается в качестве аргумента.

Вывод активности метаданных:

{
    "columnCount": 2,
    "effectiveIntegrationRuntime": "AutoResolveIntegrationRuntime (West US)",
    "executionDuration": 1,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "PipelineActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.016666666666666666,
                "unit": "Hours"
            }
        ]
    }
}
  • Затем берется действие Switch и задаются выражение и регистр. Выражение: @{activity('Get Metadata1').output.columnCount}

  • Когда конвейер отлажен, он успешно выполняется без ошибок.

Другие вопросы по теме